In the earlier days of the web, there was a battle between two scripting languages VBScript and JavaScript. VBScript, thankfully, eventually died and JavaScript became the dominant language for making really easy to use and interactive websites.
In the years since, JavaScript has become more and more used. Backend code can be written in basically any language, even in JavaScript, but the client side will almost always require a developer with some JavaScript knowledge. Every industry has a lot of javascript and some are even rewriting core functionality to use more. Surprisingly, even large banks and credit card companies are beginning to use JavaScript or Node in big ways. PayPal has been rewriting very large parts of their code base to make it more scalable and usable.
There will be jobs available for the next 10 to 15 years for JavaScript developers if not longer, there is a lot of JavaScript code in production that’s been around for close to a decade now if not longer. JavaScript is now being used almost everywhere. I’ve previously put together a blog post with suggestions on Learning JavaScript.
JavaScript and the Web
In the web browser, it’s being used as frameworks (Angular, React, Vue, etc) to render pages instead of using more traditional languages like ASP, ASP.NET or PHP. I recommend taking the time and learning regular “vanilla” javascript before you dive into in any of the frontend frameworks or before you use jQuery to write terrible spaghetti code.
Wes Bos put together 30 really good ideas from projects on his website JavaScript 30 which will provide you a lot of inspiration and some really good projects for your profile using only regular html and javascript. There’s no need for compilers, transpilers or any other tooling.
JavaScript and Mobile App Development
On mobile devices, and tablets there quite a few different software development frameworks that are available for building mobile apps with html, css, and javascript.
PhoneGap / Codova
PhoneGap is an open source project from Adobe that has been in use since about 2011. There’s thousands of apps available in the Google Play Storage, and the iTunes Store that use PhoneGap. I haven’t used the framework in a very long time, but do recall there being some struggles when it initially launched. I imagine they have resolved all of those issues a long time ago.
React Native
React Native is a mobile app framework that is sponsored by Facebook. A lot of Facebook’s mobile apps are developed in it, I believe Instagram is built entirely on React Native. I haven’t really had a chance to use it yet.
Progressive Web Apps
In the next few years, I believe progressive web apps will become prevalent and probably do a way with the need for quite a few native mobile apps. Progressive web apps are basically websites that are designed to be able to store data for when the user is offline, work correctly on mobile and on desktop computers. I plan to write quite a few blog articles about this in the near future.
Google has began really pushing for changes and I believe is even offering free training courses in some countries.
JavaScript and Servers / Backend Programming
As I mentioned previously, JavaScript was originally used for client-side scripting to make websites a little more exciting and make them a lot more useful. A lot of the JavaScript I originally wrote was validating forms before it was sent to the server – this was used to catch minor errors like a field being missed or a date not being valid, etc.
In 2009, this started to change. Ryan Dahl released the initial version of Node.js which really started this paradigm shift of JavaScript becoming useful and available everywhere. One of the problems that Ryan was trying to solve was that Apache was limited to the number of connections it could handle due to the way that programming was being done. Basically, a couple of database queries or a few files uploading could cause things to block. In Node.js everything is event driven which allows servers to be a lot more scalable without having to use threading which is often the cause of a lot of very challenging to debug errors.
In the eight years or so since then, IBM, Microsoft, GoDaddy and even PayPal have become users of Node.js. A lot of different server frameworks have been developed to make development much easier on the server, there’s a lot of development environments that have support (Atom, Brackets, Microsoft Visual Studio, Visual Studio Code, etc.)
Serverless Computing
In 2015, Amazon Web Services launched a service called AWS Lambda which allows units of code, they call functions, to run on their servers. Functions can be wired up with their API Gateway to build a complete API without having to maintain any servers.
If still aren’t sure about serverless computing, I wrote a blog post called What is Serverless Computing which describes what it is and what it isn’t.
JavaScript and Salesforce
I have been using JavaScript inside of visualforce for most of my time as a Salesforce developer, but things have changed a lot since I started on the Force.com platform. JavaScript is becoming a very important tool for Salesforce Programmers.
Salesforce’s newer interface called Salesforce Lightning is built ontop of JavaScript. In the next years, I believe we’ll see JavaScript/Node being available on the Force.com platform like Apex is. I recently blogged about about why Salesforce Programmers need to learn JavaScript.
As you can see, JavaScript is evolving and truly becoming ubiquitous. I believe we will continue to see JavaScript rise in serverless computing and really change development over the next couple of years. I don’t think that languages like C/C++, Java, C#, or Python will die off as JavaScript isn’t well suited to video game development, memory intensive operations and right now there’s very few machine language frameworks available.