Live data from Hacker News

Ask HN: Why is everything in JavaScript changing so fast?

news.ycombinator.com

31–40 of 303 posts

Re: Ask HN: Why is everything in JavaScript changing so fast?

#31

In an industry without a guild / license / what have you, the incentives skew towards articles of proof. Articles of proof could be demo websites, screen shots, and open source libraries. Being the creator or top two contributor of a library is now worth so much more than being a small time contributor that the incentives are skewed towards everyone just making a new thing, always. It's their way to stand out. So why…

[deleted]

Re: Ask HN: Why is everything in JavaScript changing so fast?

#32
JavaScript is being redefined. The language is flexible enough because of prototypal inheritance that every method can be redefined at runtime. ES6 added many missing features.

That's unusual. These frameworks extend the language. Angular's developers reasoned that anyone smart enough to figure out Angular 1 will be able to migrate their code to Angular 2. It's looking more like C++ and less like CSS. :)

Take a look at Meteor's code sometime. It does things I never expected possible with JavaScript.

Re: Ask HN: Why is everything in JavaScript changing so fast?

#33
Cause we are living in a transition period. Remember the CVS war, cvs vs subversion, then hg vs git. Now git seems to be the winner and there is no big change since few years. In these days there are a lot of progress going on, let's wait things get stable but it Will take a very long time considering: es6, es7, vr, webgl2, serviceworker, webaudio, http2, webassembly and a lot of other stuff in some way related to js.

Re: Ask HN: Why is everything in JavaScript changing so fast?

#34
First, Web technologies (not just JS but HTML, CSS, DOM, etc) are implemented by multiple browsers, who compete and have other agendas, as well as backend and non-Web platforms. This underlying technologies are just messy in a way that only a world-wide, massively distributed, twenty-year-old platform can be.

There's nothing quite like this anywhere else in tech, as most platforms are dominated by a single vendor. Imagine what Windows development would be like if, in addition to the need for backwards compatibility, there were three or four competing vendors of Windows, each with different feature sets and bugs.

Second, tools and libraries can overcome many of these problems, but these fixes come with costs, including library maintenance, cognitive overhead, security risks, complex build and deployment processes, and retraining and hiring issues. Because JavaScript is used across many industries and teams of all sizes, what is perfect for one may be completely inappropriate for another. Many projects, like GWT, meet the needs of the environments in which they were designed, while being so much a product of those environments that they become anti-productive elsewhere. So we have a very diverse set of tools on top of a very messy and relatively old set of underlying technologies.

Finally, many new programmers come into this incredibly diverse, sometimes frustrating, environment every year. It is an environment that encourages open-source contribution. It's no surprise that many new tools and libraries are released every year, and some of them gain adoption.

Re: Ask HN: Why is everything in JavaScript changing so fast?

#35
It is because JS does not change much that there are all this libraries around that changes a lot to try to give an underfed horse more power.

In comparison, java, PHP have undergone some more than welcome mutations in terms of syntax clarity. Evolution in JS is made by adding features in frameworks, not in the core definition of the language.

You could see JS as the assembly language of the browser and all the frameworks as some C/fortran/C# that translates into JS.

The problem is the web would look definitively balkanized/ghettoed between old and new computers if you made a non backward compatible change of JS ...

JS is the most ducked taped language of the landscape of computers. And it is leaking memory, performance, abstraction from everywhere.

Re: Ask HN: Why is everything in JavaScript changing so fast?

#36
> For example angular 2 is not compatible with angular 1

That's not the problem, angular 1 and angular 2 are 2 completely different frameworks that share the name and the team only. The team wanted to piggyback on the fame of the first version, but they share absolutely nothing conceptually. and contrary to what the Angular team says there is no "upgrade path", you need to learn the stuff from scratch once again.

The problem is, and the Angular team will find out very soon, "second systems" unless they provide huge advantages over the first version, are always a failure.

Re: Ask HN: Why is everything in JavaScript changing so fast?

#37
The answer is bit paradoxical: It is because JavaScript itself can change only very slowly. What you see changing is everything around JS but JS itself, while powering the whole web, is still to an extent the same scripting language that Brendan Eich prototyped in 10 days back in 1995. Why is that? Simply because the JS runtime environment - the browser - is not controlled by a single entity that could plan and enforce radical change. Instead all the big players have to progress together, which is usually not in the interest of all of them at the same time (It used to be Microsof who was not interested in progressing the web standards, now it seems to be Apple. Not because they are bad people but because it makes sense in their situation.) Plus you have to maintain backward compatibility with older browsers, one can still not simply use ES6 in production website because it would not work in significant portion of the (older) browsers. That is why everything around JS changes so fast in an attempt to find the best workaround, polyfil, transpiler, module etc.

Re: Ask HN: Why is everything in JavaScript changing so fast?

#38
I think all the churn is a sign of several problems. First, the language was not designed to do what people are trying to use it for. Second, I question whether the framework makers are familiar with "native" UI APIs (e.g. Java, Qt, NextStep), which solved a lot of these problems years ago. Notice the lack of churn in native UI APIs (exception of Microsoft). Third, it seems like the frameworks try to build on top of HTML, which I think is a mistake, because HTML was not designed for layout flexibility and pixel-perfectness (unlike native widget APIs). Furthermore, HTML was poorly designed for anything but simple word-processor documents: why is there no element that is inline-block?! That's the first thing I end up assigning to everything. But the whole declare-your-document approach is inherently too simplistic for much beyond a word-processor document. Note that PostScript, and PDF which is an enhancement, has been pretty stable and standard for years, which indicates it is a good solution to the problem. Ultimately, you need to be able to program your documents and put pixels exactly where you want them. But even just sending over a blank HTML page and then having JavaScript add everything programmatically is probably better-suited, despite having to ultimately get squeezed into the HTML approach.

In my opinion, we need to realize that webapps are not documents, and document-oriented HTML is the wrong tool. I don't think things will get better until we start looking at webapps as essentially drawing on the screen, like native UI APIs. I think we need a standardized virtual machine, like a lightweight JVM (or, better, a heavyweight Lua), which would allow people to use whatever language they prefer, as long as it can compile onto the instruction set. Static-type people can use a statically-typed language, and dynamic types can use dynamically-typed languages. Make an instruction set that maps well onto native CPU instructions, and provide well-thought out input and drawing primitives. We essentially need a PostScript for apps.

Re: Ask HN: Why is everything in JavaScript changing so fast?

#40

I'd say the opposite - it's changing way to slow - at least in browsers, where IMHO is the only rational place to use JavaScript. The big change will be the arrival of webassembly.

Mind sharing why you consider node.js and other server-side javascript tools irrational?

Because when asked if (9999999999999999 == 10000000000000000), they return true.
Post reply on HN