Hacker News new | past | comments | ask | show | jobs | submit login

JavaScript be crazy. So much success. So much pain. Tools. Tools. More tools, please.





Pain? Every new tool brought less pain and more performance to me... Lately it's just a "npm install" and I'm migrated, no configuration needed.

I'm talking about the pain at any point in time, p(t), over the long and complicated history of JavaScript. It looks like you are talking about the derivative of pain over time: dp/dt.

Well my pain got very significantly lower when I started to use React instead of jQuery and Ext.js, and then even lower with TypeScript. Since then the pain has been so low I ditched C# and switched to TS full-stack. Nothing I tried since then proved less painful.

It's not as good as it was in the Delphi days but that's because of many different target platforms and device form factors, than the technology itself.


I think we have much in common. Yes, I remember ExtJS. But not Delphi.

Yes, I remember the innovation of React and how it was a huge step forward relative to jQuery.

Roughly ten years ago, I used Clojure often, so I got to see the emergence of Om, then Reagent, and more. Somewhere along that time I saw Elm. Now, I see the innovation of Dioxus in the Rust + WebAssembly world. These developments were/are impressive. Part of fully appreciating them means embracing what they do better than JavaScript -- and many of these differences are incompatible with JavaScript's evolution. In a word, these other technologies are better largely because they have found a way to "break free".

If I were to try to "make a point" it would be probably be this: JavaScript, at any point in time, has been both useful and painful. Along the way, it has evolved remarkably well. The pain has lessened. With the birth of TypeScript, the experience is even more improved. But nevertheless, even with all the improvements, in some ways we're still paying down the "tech debt" rooted in some early decisions.

Some of the pain isn't necessarily around fundamental tech debt as much as community splintering. For example, I have a hunch, though I'm not an expert, that the Tower of Babel of JS tooling (such as bundling systems) may be resolved at some point. But I don't think this is likely until something else happens...

I look forward to a future where WebAssembly affords a direct, first-class, interface to the browser and DOM that provides high-quality, zero-cost abstractions. As great as WebAssembly is, there is still a considerable kludge in terms of how data is moved around at the interface between JS and WebAssembly. When this happens, it will arguably be a tremendous achievement -- to decouple web applications from the unnecessary constraints of JavaScript's historical choices.

I have a hope/prediction that stronger "competition" at the level of interfacing between the browser and the choice of language will spur better thinking and tooling. This gives me hope that the complexity of TS compilation + JS bundlers can give way to some elegant tooling, more along the lines of what the Rust community has achieved with Cargo.


Yep, agreed, also excited about Wasm, it's taking so long though... I was so excited I gave a series of talks at local tech conferences about it... In 2017.



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

Search: