According to a recent survey conducted by Stack Overflow, JavaScript is the most popular language on earth. What is interesting about these survey results, is that even for developers whose primary responsibility is the back-end (server-side code) they are still more likely to research questions about JavaScript than any other language. That’s largely because JavaScript is inescapable. This is also true in the working world. Any teams that do not have dedicated front-end developers, have to do it themselves.
Atwood’s Law states that: “Any application that can be written in JavaScript, will eventually be written in JavaScript.”
Jeff Atwood was making a joke at JavaScript’s expense, but it has turned out to be more true than not. With advances in browser technology and JavaScript having moved into the server with NodeJS, JavaScript is capable of so much more than it was just a few years ago. Here’s a quick run-down of what you can do with JavaScript. Some of it is pretty obvious, other things less so.
Okay, so you can file this one under ‘pretty obvious’. Adding interactivity and behavior to otherwise static sites was what JavaScript was invented to do by Brendan Eich way back in 1995. It’s still used for that. This one’s easy. Any remotely modern web site is running JavaScript on some level. This one’s a gimme.
As browsers and personal computers have continued to improve, so, too, has the abilities to create robust web applications. Just think of applications like Google Maps. If you want to explore a map in Google Maps, all you have to do is click and drag with the mouse. You may see a part of the map that is less detailed that then fills itself in. That’s JavaScript at work behind the scenes.
A very popular use for JavaScript is to create presentations as websites. Who needs Powerpoint or Keynote? Using the RevealJS library this becomes really easy if you’re already familiar with HTML and CSS. If you’re not familiar with these tools, you can still use slides.com, which uses RevealJS to build a web-based slide deck for you.
With the advent of NodeJS a few year ago, JavaScript made its way from the browser and into the server. Since then, Node has been adopted by many major companies, such as Wal-Mart, as a key part of their back-end infrastructure.
While we’re on the topic of server applications. Have you seen Node’s Hello World application? It’s easy to build a web server in about 10 lines of code. Of course, you can create much more robust servers using node or the standard server application framework expressJS. Many of the previously mentioned applications using Node are actually built using the MEAN stack (Mongo, Express, Angular, Node), of which Express is a key component.
While the browser hasn’t been a traditional games platform in the past, recently it has become a robust venue for games. Additionally, with the addition of the HTML5 canvas (more on that in a second), the level of complexity that is possible in browser-based games has increased exponentially. There are even browser games to teach you programming!
One of the new features in the HTML5 specification is the canvas element,which allows the browser to render three-dimensional shapes. This opened the browser as a new medium for digital art projects.
Popular smartwatch maker Pebble has created Pebble.js, a small javascript framework that allows a developer to create an application for the Pebble line of watches in JavaScript. But Pebble makes up a relatively small part of the market share. What if you want to develop for iOS or Android…
One of the most powerful things you can do with JavaScript is build applications for non-web contexts. That’s a fancy way of saying you can make apps for things that aren’t the internet. For instance, mobile devices are now the most popular way to access the internet. What this means is that ALL of your websites should be responsive (but that could be another blog post). Additionally, it means that mobile applications are as important a product as a web property for digital goods. The catch is that mobile apps come in two major flavors, Apple and Android. And those apps are written in two completely different languages. So thatmeans you need three times as many developers to build and support a product for mobile devices plus the web. Here’s the good news: It is possible to have a ‘write it once’ solution for all three platforms. Phonegap is one of the oldest and well-established frameworks in this space. More recently React Native has come on the scene and shows a lot of promise of becoming the major player in the cross-platform space. Long story short: You can make mobile apps with JavaScript you can deploy and download right to their respective app stores. Here’s a list of appsmade with React Native.
Yes, you read that right. Several commercially available quadcopters come outfitted with a simple OS that makes it possible to install NodeJS. This means that you can program a flying robot using JavaScript.
As it’s probably pretty clear, Atwood’s Law continues to ring true but not in a bad way. JavaScript remains the most accessible programming language on the planet. So it’s great to see that it’s possible to create such a wide variety of projects using it.