Menu

Sign Up For ARC’s Newsletters

Stay informed to make better business decisions.

Sign Up

Travel App Testing

Learn the unique challenges and opportunities with launching winning travel app

Get The Free eBook

Mobile App Testing

Learn tips, techniques and trends for launching great mobile apps

Get The Free eBook

Retail App Testing

Learn the unique challenges and opportunities with launching winning retail apps

Get The Free eBook

The Essential Guide to Mobile App Testing

Learn tips, techniques and trends for launching great mobile apps

Get The Free eBook Now

Mobile Payments: More Than Just A New Way To Pay

Learn the fundamentals of mobile payment technology and what to consider when implementing a new payment strategy

Get the Free eBook

Accessible By Design

This free eBook details why accessibility testing matters and offers guidelines to digital accessibility

Get the Free eBook

Travel App Testing

Learn the unique challenges and opportunities with launching winning travel apps

Get The Free eBook Now

Retail App Testing

Learn the unique challenges and opportunities with launching winning retail apps

Get The Free eBook Now
November 6th, 2015

JavaScript Is Eating The World

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
    • Manius

      “Those that matter don’t use it, and those that use it don’t matter.” – Hilarious, I love it.

      What the JS kiddies never realize or talk about (self-centered immature world view?) is that many of these little tech polls, “github stats” and generally most public information out there is unable to reliably capture enterprise corporate and government stats. Most companies don’t go around advertising what their stuff is built in, especially when it’s something for internal use only.

      Also, the demographics matter too. Senior developers are going to tend to be older. They post a lot less crap on the Internet than younger generations. So the young, most naive and inexperienced end up with the loudest voice if you look at the public Internet… and it can be pretty deceiving if you’re easily influenced by everything you read on the Internet. Experienced developers really are a silent majority, they just don’t care (or have the time?) to bother evangelizing for whatever tech they use. Generalizing of course, but it’s all true-enough.

      • Richard Eng

        Thank you! Excellent points.

  • Manius

    Who is pushing this crap? All these kids learned JS first because it has a lower barrier to entry (millennials, a dim and naive generation that still hasn’t grown up). So now, having never learned a proper language which was designed to actually be *used* as a programming language, they’re too intellectually lazy to bother learning one of the real languages like Java or C# (having their egos constantly inflated despite being handed everything by mommy). They don’t have the experience to know what they’re missing, and don’t want to listen to people who have already learned the tough lessons and solved the tough problems (because ego, and they want something new and cool).

    So they’ll just continue to push this objectively inferior language on the industry. In 10 or 20 years maybe they’ll have figured it out, learned all the lessons that adult languages have already adapted to, and corrected most of the HTML/JS/CSS and DOM shortcomings (or maybe not–it’s not like they have control over the fragmented platform they depend on).

    I’d like to see more of these script kiddies take on real enterprise development with their new little web-based toys. They’d get crushed by the requirements and complexity. I don’t think they’re even taking such jobs–not “cool”, but of course they couldn’t do them either.

    • Dane T

      “Real languages”? C#?? I know 10 different programming languages, including C++ and JAVA. I have written commercial applications in C#. I would think you would call something like C a “real language”, but C#? Nothing particularly standout about C# either in ease of programming or speed of execution. I can say that JS is in many ways a much better language than C#.

      The major problem with node, and why it is bad for BI is because of it’s async nature which makes code unreadable. However, that is an implementation choice, and there is no reason that it has to be that way. JS is much more powerful that C# because you can do the same thing in 1/3 the amount of code. Once JS get’s the async issues worked out (await, ES2016), it will have it’s biggest bug fixed. The flexibility that JS offers is what makes it so valuable. The other main issue with JS is poor intellisense, but the tradeoff for flexibility is more than worth it in many situations, especially for companies without infinite resources.

      If you have tons of $$ and can take forever to build a huge enterprise application, great. But you will probably be left in the dirt as somebody who writes it in JS will have it out to market in 1/3 the time.

      • Manius

        Well, that’s nice. There’s nothing wrong with C#–why does it need to be a “stand out” to count? It has very much in common with Java. Maybe you’re just anti Microsoft. Unless you also consider JS “better” (not sure what that means) than Java… of course that’s nothing to take seriously. JS has a lot of problems, not just readability. And we have to also include the broken monkeys on it’s back, CSS and DOM.

        JS is a sorry excuse for a language, look at the origin and original intent–it has far outlived what should have been it’s natural life cycle. The vast majority of “JS programmers” are amateurs who have zero theoretical or computer science background. JS is hardly the only language with “flexibility” (something seriously overrated lately anyway). Hell, ActionScript (also ECMAscript based) is very flexible and supports code completion pretty well too, but nobody wants to give any credit for that. Too many JS fanboys out there who learned hello world in a browser but never bothered to learn established theoretical fundamentals or learn from the hard earned experience of past generations of languages.

        So now we end up with crap like Node, and since the inexperienced millenials outnumber everyone else, it’s considered “popular”. The only reason they like the “flexibility” it gives them is because they use terrible programming practices that would never be able to compile in a strongly typed language where you actually have to structure things in a logical, organized fashion.

        The ONLY thing JS has going for it is that everyone is being forced to use that crap, because it’s epidemic (just like a virus). I remember, it wasn’t too long ago when NOBODY had a damn thing good to say about JS. Now, it’s like a damn fanboy cult with people defending and promoting it, and it’s sad to see people manipulated or brainwashed by a trendy fad.

        Too many dirty tech corporations and marketing firms know that it’s their best tool to ensure that they can continue to force crap spyware and ads down our throats. (Also it didn’t hurt that Apple artificially hyped it after seeing how Flash was on the verge of wiping out their crApp store profits. Yay, now they’re free to extort all they want.) Now we get to enjoy nearly unblockable JS powered ads which were trivial to block when they were Flash (which of course used to take the blame for ads, even when it wasn’t a Flash ad – lol!) This is what the JavaScript apologists have given us: unblockable ads, a slower Internet, more bandwidth and laptop battery usage, less control over our Internet experience, new security holes (in browsers), and a will-never-ever-be-standardized environment (screw DOM and CSS too).

        Google “javascript good parts vs bad parts” in Google images and look at the size of the “good parts” book vs the “all the other crap” book, and then come back and tell us how “good” a language JS is. 🙂 The “flexibility” is not unique and is not nearly as much of an asset as people think it is. Yeah, it’s useful if you’re throwing together crap as fast as possible, but not if you’re trying to create high quality software.

      • Manius

        By the way, time to market is not the only thing that matters here. The kids have yet to figure this out (lucky for them, there are lots of stupid tech-illiterate people in corporate management who are slow learners too.) Reliability, maintainability, readability, consistency, backwards compatibility… there are plenty of other factors that have a high impact on the $$$ bottom line in the long run. And that’s only *if* one concedes that JS is “faster” than all other alternatives.

  • Manius

    Read the links in this article too, it’s pretty bad. Just demonstrates how truly immature the JS scripter world still is. (Not to mention how evil copyright/patents are, but that’s another discussion.)

    “How one developer just broke Node, Babel and thousands of projects in 11 lines of JavaScript”
    http://www.theregister.co.uk/2016/03/23/npm_left_pad_chaos/