Hacker News new | comments | show | ask | jobs | submit login
Ask HN: What will the post-Javascript era will be like?
17 points by xcambar on Dec 17, 2013 | hide | past | web | favorite | 31 comments
Javascript looks a lot like "the new C": new languages compile to it while adding features to it and it can run on almost any platform. But Javascript cannot be "The End of History".

Something will come someday that will supersede it. The only question is: What can/will it be like?

First, I'm going to assume you're talking about just the Web, and for that matter, just the Web frontend, because that is the only domain in which one can even pretend that Javascript is the "end of history". Outside of that domain Javascript remains barely a blip, Node notwithstanding. The end of Javascript dominance looks like the following:

Step 1: Ship asm.js to every browser.

Step 1.5: Do a complete job of binding asm.js to all browser features. (My impression is that right now it doesn't do DOM manipulation, for instance.)

Step 2: Define a serialization of asm.js that is more like a traditional binary bytecode.

Step 3: Everybody compiles to that bytecode. No JS is in sight. Language diaspora slowly follows. Benchmarks start flying; JS, optimized as far as it can possibly be, still can't beat out more statically typed languages, though it only matters for the most performance-sensitive applications.

This is by far the most likely outcome at the moment, in my opinion. I'm not advocating or celebrating this (or necessarily upset about it, either), just observing the current landscape.

When I talk about the "end of history", yes, the web is the correct focus to read it.

Yet, companies are demanding the devs to be more than frontend or backend devs. Look at the DevOps movement. JS allows your developers to work on both sides of the network with a single knowledge. It may become more than a blip, though I doubt it could ever takeover the backend or smartcards for instance.

So your point (correct me if I'm wrong) is that we'll be going down from JS to a lower-level paradigm, then "something" will bump and from this diaspora you're talking about, one language will prevail, I guess.

It's interesting to see JS as a high-level language that will force vendors to open VMs to allow more languages that will eventually compile to the same bytecode. Sounds very much like the "Java" part of Javascript :)

I like your perspective of viewing JS as the first native inhabitant of an island called "browser languages". Yet I'll need to think more before I can agree or disagree.

Thanks for the input!

Devops implies many things including continuous integration, continuous deployment, as well as system troubleshooting and maintenance.

For server side JS, I am curious how many who believe in Node can troubleshoot below the application layer.

> Javascript looks a lot like "the new C" ... > Something will come someday that will supersede it.

What has superseded C? Nothing. Many things are built on and around C and it is no longer the only choice. I see the same future for Javascript. It will forever be the "low-level" browser based language.

it's hard to say if none or many have superseded C. It's really a hard point, and I don't mean to troll about that.

It's a question of perspective. If you're looking for a total control and great performances, nothing has superseded C. If what you want if a faster development and feature release cycles, many have.

I'm definitively not against C, and definitively not against JS. But C used to be the language for every purpose, and now it's JS. History repeating I guess...

I agree with you on the "low-level browser based" point, but the reach of JS is way broader than that.

Js gained wide adoption thanks to favorable comparison on specific traits when compared to other languages.

- ubiquity - lower barrier to entry as far is toolchain setup is concerned. Nothing to install to build a Hello world. - no weird concepts to grasp at first: many commonalities with other languages, meaning you don't start the learning curve with a big step.

I could go on but the gist is that JS is kind of like the pop music of programming languages: easy to like, with room to grow (as opposed to Justin Bieber or Miles Davis who miss one of these traits.)

To the question of what will be the next "buzz" (Js is a buzz, but those have different timelines and emotional loads than "leave Britney alone") the answer is:

Something even easier to grasp and access with a barrier to entry, smoother learning curve and wider applications.

It might even be an abstraction like those of Brett Victor.

I'd say that's not so much the language but what it allows beginners to achieve that is wave-defining.

Development has become mainstream and JS is the Pop Music of our days.

A lisp.

     "The past is never dead. It's not even past."
     -- William Faulkner

Nice, good quote!

The history keeps repeating, for sure. That's why I like to think of JS as a new C.

How will it repeat this time?

It will... - make it easier to use multiple processors - use a new type of DOM designed for web app GUIs which can be translated as necessary back to our current DOM - have built in version checking for its interpreter/JIT - make it easier to manage memory usage - have a module system - be highly specialized towards the web and web app development - eg. built in language components that make communicating with the web server easier - be messy - people will be trying to fix everything anyone thinks is difficult/wrong about Javascript and modern web development - be easier to implement in the browser

For the immediate future, I see Mozilla sticking with ECMAScript and Google sticking with Dart and trying to make it like the language defined above. Google will likely eventually build Dart into normal Chromium and Chrome and build a plugin for Firefox, which nobody will use. Others will build a Dart VM using asm.js to make Dart work efficiently within Firefox. Any successful new browser languages will be able to compile back down to Javascript, although after a while they will be buggy as the Javascript stops getting as much maintenance.

So basically: more features to JS, but JS still.

I guess that if we want to have something after JS, that will come either with: * more standardized languages, with native in-browser VMs, as Google is trying to do with Dart. * get rid of the browser.

The latter is way more contraversive, but I like it nonetheless. The less contraversive version is: the end of the browser as we know it.

I don't think we're in a position to say. JavaScript is good enough and ubiquitous enough that a replacement will have to be pretty compelling. The only thing I see on the horizon that's actually got a shot at unseating JavaScript... is JavaScript. (EcmaScript 6.)

Whatever replaces JavaScript will have to do the following just to get its foot in the door:

* Run on every browser in use

* No compile/build step required

* Work with browser tooling and debuggers

And it will probably need:

* Familiar syntax

* Work with all significant existing JS tooling, libraries, and frameworks

...and that's before we even get to the merits of the language itself.

My guess, and it's purely a guess, is that massively multi-core processors are the wave of the future, and that pure-ish functional languages are going to be needed in order to program them effectively. So that's my bet as for what will be compelling enough to replace JavaScript. But I'd also guess that EcmaScript will get there first, at least in terms of widespread adoption. Perhaps as a pragma'd subset like "use strict" or "use asm".

It's worth noting that ES6 actually does not run without compilation on every browser (and will not for a while) since it introduces breaking new syntax instead of stuff that could be polyfilled. For all intends and purposes it's a new language (it's like C++ to C). So maybe any other superset of JS would have the same chances.

Maybe, but I doubt it. ES6 is almost certain to get implemented in browsers. Other languages won't have that crucial advantage.

I'm not sure if you noticed. Bt 50% of the time that i'm interacting with the internet its a native application. Maybe a platform shift is already happening?

the better question is: what will be the next platform? there will be high momentum for change when the underlying platform changes, with todays platform it's just too convenient to compile to C or compile to javascript.

how will platforms evolve?

I'd say it will be a language that is parallel to the core and only sequential in edge cases, because thats what the underlying platform (processor, graphics card) is evolving to. parallel first, sequential second.

Good question, but I think the angle of the language is not the best way to answer it. "Killer app" prevails, and that's the story of Javascript. Take a killer platform, feature it with a poorly designed language, or even a combo of 3 more or less objectionable languages (HTML+CSS+JS), and it'll win no matter what.

I think that from the user perspective, one gets from Internet nearly everything one wants in terms of content. The new frontier, I believe, is interoperability. That is the possibility to make it work together and in smart ways all of our electronic devices, from the tiniest (e.g. wristwatch) to the biggest (e.g. TV set, car), anywhere any time. So I predict the next platform shift will be initiated by a large consumer electronics manufacturer.

This is precisely where my thoughts led me, but by a different path:

Javascript has become widely popular for 3 reasons (IMO): * it's standardized * it's easy (yes, it is, period) * it's f*ing included in each and every browser, and its rise followed closely that of the web.

Moreover, the fact that Adobe came with a more powerful yet proprietary VM (namely, Flash) forced evolution of Web standards (JS included) so they could live on. That's Darwin 101.

Every use of JS outside the browser comes from developers willing to have the same ease of use out-browser than they had in-browser. But JS, as popular as it is, is not yet as popular outside of the browser than it is inside of it. Stop looking at the Web ecosystem and dive into the industry, you'll see.

What will happen to JS if we kill the browser? Or what will come out that will kill the browser? And will it have an impact on JS?

The bond is yet very tight between those two pals, don't you think?

Since it's sort of on topic can someone tell me why "=>" is better than "." for assigning or access properties / methods? Brendan seems to want to head this direction and I'm not too excited about it.

Nice. Down votes without explanation. Love it.

Based on dart and typescript, it'll feature static typing.

True that now Dart wants to be standardized (see http://developers.slashdot.org/story/13/12/14/2047248/google...) and Dartium, we see Google's pushing it pretty hard!

Maybe it takes the horsepower of Google to replace a language as widespread as JS.

Ecmascript 7 or Ecmascript 8 should not be called "JavaScript", my proposal:

- remove "Script"

- replace "Java" with more accurate term (how about Harmony ?)

Well, ECMAScript isn't called JavaScript, it's called ECMAScript. So there you go!

ECMAScript doesn't flow as well as JavaScript though.

How do you pronounce it, anyways? E-C-M-AScript? Ec-maScript? EczemaScript?

Eck - muh script. Two syllables, same as java

I don't know but it will eventually become Lisp.

That's (probably) another topic, but it seems that FP is the new sexy :D

And the old sexy. Back in the day, UNIX was a piece of garbage and the future was LISP machines, if you asked a lot of people. Nowadays, to similar people, C/Go/Java are garbage and the future is, I dunno, Haskell or something.

I like the idea of LISP, I not only aced the SICP class back in college but tutored it, too. I get it. And I wouldn't use a LISP for the majority of the work I do these days, it's just harder to work with than imperative code for a lot of normal, boring business use cases. You can write imperative code in a functional style when you have to, it's a lot harder to get the imperative advantages from a purely functional language.

> And the old sexy. Back in the day, UNIX was a piece of garbage and the future was LISP machines, if you asked a lot of people.

I don't know... it still looks like the future today. Genera [1] was able to do things I can't do even with a lot of effort nowadays with my language/IDE/tooling.

[1] http://www.youtube.com/watch?v=o4-YnLpLgtk

post-Javascript era is still Javascript.

A new client will supersede JS and the browser.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact