Menu
November 6th, 2015

JavaScript Is Eating The World

Mobile App Testing Learn tips, techniques and trends for launching great mobile apps Get It Now
Like what you're reading? Subscribe to the weekly newsletter. Subscribe For Free

Or is the world eating JavaScript?

JavaScript is eating the world.

Well, it is if you believe Kevin Lacker, co-founder and chief technology officer of Parse.

At the Web Summit in Dublin this week, Lacker gave a talk where he made the case that the power, ecosystem and ubiquity of JavaScript will make it the default language for app, website and server-side development in the years to come.

Modern developers have to deal with three primary platforms when it comes to coding in the last 10 years or so: the browser, the server and native/mobile apps. JavaScript is already the de facto language of the Web. Where Lacker sees JavaScript taking over is on the server and later into native apps on Android and iOS.

Mobile Beta Management Learn the benefits, best practices and toolkits for mobile beta management Get It Now

“There is very little possibility of disrupting JavaScript on the browser,” Lacker said. “What’s more interesting is the server.”

The Rising Popularity Of Node.js

Lacker does have some skin in the game as Parse is a noted backend-as-a-service provider that employs server-side JavaScript. Parse was acquired by Facebook in 2013 and has become the crux of Facebook’s developer experience in the last couple of years.

Java, C, Python, Ruby, PHP and any variety of derivations of ASP.NET (among many others) have traditionally been the go-to server side languages for backend processes.

“Programming languages that run on servers have been a fragmented market forever,” Lacker said.

While Lacker might have a motive for pushing JavaScript adoption, the trend of JavaScript taking over the server has been fairly popular in the last several years.

web_summit_design

Installations of JavaScript on servers have had growing momentum for a while and more than two dozen popular frameworks exist to do it. SilkJS, MongoDB, Aptana, CouchDB, Domino (IBM), SAP HANA XS Engine, TeaJS and Opera all have server-side JavaScript frameworks out these days that have varying degrees of popularity among the tech crowd.

The most popular princess at the JavaScript server ball though is Node.js.

“If you want a job, Node.js is the thing to hop into right now,” Lacker said. “Something different is happening with Node.js. It is flipping the typical script.”

The typical script goes something like this: you have two sides of a developer team, one on the backend and one on the front. The backend team is running the servers in some compiled (as opposed to scripting) language like C# or Java. The front end team is working in HTML, CSS, JavaScript and native languages like Swift, Objective-C or Java.

Lacker’s point is that the developers tend to work best in their primary language. The popularity of JavaScript means that just about every Web developer out there can now become a server-side developer without having to change the basic rules of engagement.

“One engineering team running JavaScript and Node.js instead of Java and JavaScript,” Lacker said. “You have a huge advantage of using something that you already know.”

Netflix and PayPal are both employing the Node.js on the back, JavaScript on the front method, Lacker said.

“Almost without fail, every company has somebody working in JavaScript,” Lacker said. “The forces driving JavaScript adoption on the server are different … The advantages of adopting server-side JavaScript are that it takes less time to get it done.”

Native Apps Slowly Adopt JavaScript

Lacker noted that the weakest case in his argument that JavaScript is eating the world is in apps ecosystem. The best apps with top performance are written in the native languages—Java for Android and Objective-C/Swift for iOS.

But programmers crave a universal programming language. HTML5 mixed with CSS and JavaScript once promised to be the universal language, but “hybrid” apps (essentially websites “wrapped” for native) began falling out of favor a couple year ago because of performance issues. Lacker said that the first generation of tooling for building native apps (hybrid apps) with JavaScript—PhoneGap, Sencha, appMobi, Appcelerator—were good but did not solve the underlying problems.

Facebook and Parse are trying to solve that. React Native is a JavaScript framework that is trying to create the tooling and functionality required to use Web technologies to build dynamic native apps without the native languages. Xamarin is another company that is coming out with cross-platform tools to build native apps, helping developers call C# from JavaScript.

facebook_web_summit

See also: Write Once, Run Everywhere: React Native Spearheads Universal App Movement

“One of the reasons that it is possible to change the programming language at its core is that people are putting so much effort into employing the tooling,” Lacker said.

It is still hard for developers to build truly immersive, dynamic apps for native with JavaScript. Propose trying to build an arcade-style game in JavaScript and you will get laughed out of the room. The hardware acceleration, gaming engine (like Metal for iOS) and graphics support are just not there yet.

JavaScript As The Dominant Language For All Platforms

stack_overflow_mosted_used15

Web developers—still the most popular kind of developer—are attached to JavaScript. At this point there is really no competition. Google’s Dart was supposed to challenge JavaScript, but Google realized that it would be impossible to unseat and turned Dart into a compile-to-JavaScript language (much like CoffeeScript or GorillaScript).

One of Lacker’s main points was that the JavaScript ecosystem is what is forcing JavaScript to be better, subsequently causing big businesses to adopt and evolve the language. The ecosystem makes the product better, the better product equals adoption.

“These other programming languages are not seeing the same type of performance increase,” Lacker said.

The adoption numbers favor Lacker’s point of view.

In April, a Stack Overflow survey noted that 54.8% of developers use JavaScript. Node.js both had 13.3% adoption rates. In July, a company called Devpost noted that HTML and JavaScript were by far the most popular languages for student programmers (obtaining data from its hackathon network). Recently Stack Overflow noted the sentiment analysis of programming languages. Surprisingly, JavaScript did not register high on the dislike factor.

“The ecosystem of JavaScript programmers and JavaScript tools is causing adoption. In turn, it is making the product get better. That is why JavaScript is eating the world,” Lacker said.

This original version of this article mistakenly cited AngularJS as a server-side language. The article has been updated to reflect the correction.

Lead image: “The Real JavaScript Robot” by Flickr user Ben Alman, Creative Commons (no changes made).

  • Michael Van Meurs

    Interesting article, however it has a few errors. The most prominent one I can see is that you listed Angularjs alongside Node as being a server-side implementation of sorts for javascript. That is simply not the case. Angularjs is a PURELY frontend FRAMEWORK and does NOT run on the server in any way, shape or form.

    What’s more, in your list of commonly used languages on servers, I find it incredibly weird that PHP is no where to be seen — especially since some of the largest websites/services use it at their core, such as Facebook and WordPress.

  • Mauro Cavallin

    “Xamarin is another company that is coming out with next-generation JavaScript tools to build native apps.” This is an HUGE error: Xamarin does not use javascript it uses c#, this is the foudation of Xamarin!!

  • JavaScript definitely is eating the world though!

  • Mike

    Coming from ActionScript I’m So glad I chose JavaScript over Unity to continue my front-end career!

  • rblalock

    Just FYI…. Appcelerator’s Titanium is doing what React Native is doing. Not sure why it’s lumped in with Phonegap….

    • DanRowinski

      It is not lumped in with PhoneGap. It is just a list of cross-platform services.

  • Pingback: Tweet Parade (no.46-2015) - Best Articles of Last Week | gonzoblog()

  • Pingback: Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №185 (8 — 15 ноября 2015) - itfm.pro()

  • dP

    I really hope WebAssembly will turn things around

  • As a common error, Appcelerator is being compared with Phonegap and equivalents. This is great mistake: Appcelerator builds “native UI” apps while use JavaScript to do the logic of the app. Yes, you do the logic one time, and design the app for iOS/Android (and now Windows Phone also) native interfaces.

    • DanRowinski

      I wouldn’t call it a comparison. It is a list of services and companies that do cross-platform development.

      • Maybe not your intention, but people tend to “group” things in the same list as the same “properties”. React Native is more comparable to Appcelerator, but this is a few steps ahead

  • Pingback: JAVASCRIPT WEEKLY NO.258 | ENUE()

  • Lots and lots of errors. I agree with the primary point of the article but can’t share it do to so many of the points being wrong.

    • DanRowinski

      Well, that’s not really helpful.

  • Pierre Ovoxo

    I’m learning JavaScript now when should I start with node I’m reading head first JavaScript programing what should I read next I need tips for learning js

    • JonKelly

      Learn as much as you can from JavaScript. Even the weird parts. go to udemy and look for Anthony Aliceas “JavaScript Understanding the Weird Parts”. Don’t take my word for it, just read the reviews from 100s if not 1000s of students who took the course. To me it is by far the best Javascript course I have ever taken. All the other technologies like Node, Angular, React would make no sense if you do not get very close and personal with javascript, the language.

  • Anis Matar

    “The ecosystem of JavaScript programmers and JavaScript tools is causing adoption. In turn, it is making the product get better. That is why JavaScript is eating the world,”

    I think author needs to put full stop after this statement because it said it all and this is exactly what’s happening.

  • Richard Eng