Javascript was the first modern high level programming language available to the masses, and easily the simplest to use and deploy. It allowed millions of people a degree of creative freedom only available in universities, and it's the reason the web is more than simply a collection of research papers. I know a good portion of HN wishes it were otherwise, because the endless (and at times deranged) antipathy towards javascript is so constant here there is an entire rule in the guidelines telling people to not just go on a full tilt rant about its very existence when a site requires it. But for everyone else (especially those of us for whom javascript was a gateway drug) it was obviously not a mistake.
The mistake was all of the extra complexity and nonsense that came about when SV realized the web was Serious Business. Having to compile it from a "strict superset" language because Serious Business means strict types and tests, tests tests. Taking it out of the browser, aligning the entire ecoysystem to a single, fragile, badly designed point of failure. Let's abandon the entire field of application programming and just ship an entire Chromium instance and a webapp for everything. What happened to all of my RAM? Who cares, everything is free now, numbers are a lie.
I mean the entire point of frontend frameworks was supposed to be that it would simply be faster to transport JSON diffs rather than entire html pages, and do the rendering in the browser. But of course any such efficiencies wound up being eaten by increasingly bloated and inefficient code. And now people are discovering backend rendering and "vanilla" JS like Howard Carter discovering the tomb of King Tut.
Javascript the language, even Javascript the idea (being able to write and run code on the web) is at worst neutral, and arguably a good idea. At least from the point of view of the old hacker ethos where the point is to liberate the masses from the gatekeepers of intellect and information is as many ways as possible. But as with everything else turning to shit in our world, blame capitalism for taking something with the potential for good, and utterly ruining it.
We have been able to largely get rid of COBOL. Why haven't we been able to do the same with Javascript? It's a very useful language given the amount of existing code and support, but very few people I know actually like it.
In the 90s, vendors seriously invested in major development suites (Visual Studio, Visual Age, C++ Builder, Delphi, Visual Basic) and improve languages (Java, C#, Pascal, Basic) for desktop environments. But the web development landscape is largely dominated by Javascript, which is actively hated, and Typescript, a better but far from great alternative, with everything else being a tiny percentage. What happened?
What happened is that contempt culture solidified as one language became the top language. What happened is contempt culture solidified as pro-native-users came together over their disdain for the web.
The is a steady stream of js contempt on HN. I don't think it's representative of how actual devs think about JS. The contempt forever seems stuck at the shallowest stages, of assuming JSnis terrible & disparaging it out of hand, without making a single claim or contention.
Building on the web is not difficult & gets your experience in front of users fast. We've made better and better tools, while exploring a huge variety of app development styles.
I don't know what js did to so many of y'all. I've done web stuff across libcgi, perl, php, java, and yeah early js has some warts but it's like 98% the same as any other language would be (even if classes looked weird for the first decade). The npm package management ecosystem is vastly easier to use & understand than anything I'd seen before. It's unclear what about this language makes people so miserable, and it's not something I've seen in person in my professional career. But the contempt is on high display regularly in the comments.
I think much contempt is actually directed at how JS features have not always had the same performance profile, support, or implementation across browsers.
The language itself is fine, and incongruities have long been polyfilled.
With Shared Array Buffers, Webworkers, WASM and WebGPU, offloading heavy computational work will only become easier.
npm is easy to use? In my experience npm and the ecosystem that surrounds it are the only package managers I have ever used that consistently don't work, and in terms of design/ease of use in the theoretical scenario of it working properly it's marginally better than pip and significantly worse than cargo and hex.
I guess some people don't see the problem with an excess of accidental complexity when they get paid a lot of money to do simple things like building UIs in a very complicated way.
It feels cheap to me to write off an ecosystem that did amazing things because sometimes the job might be simple. Its rooting around to try to be unhappy. And it's unclear that it really is a problem. An endpoint in node and a small react app can be be cobbled together in an hour. That same basis in skill scales up nicely. Is there really a complexity problem? It seems like a hand wavy excuse.
Yeah the hello world stories are always golden paths. People be making bloated, hard to reason about, hard to understand and debug software for some extra money and I'm digging to be unhappy? ok...
Any popular language is going to seem like it sucks because everyone is going to have an opinion of it. Yes, even your favorite language that you think would be so much better on the web than JS.
We're stuck with JS because it's easier to just improve it than swap out the entire ecosystem. Now it's quite good.
1. Cobol is still around and it is much older than JS
2. Cobol systems is not as entrenched client side JS. It is used on websites because it is what browsers support.
JavaScript (TypeScript) is my all time favorite language. I write code in Go, PHP and Python and have coded in C# and Java. But for me nothing beats the simplicity, ergonomics and maintainability of modern TypeScript.
I think you misunderstood the post, they mean that the original purpose of Javascript has been misused (with mostly the fault lying on the web stack) instead of it being a bad language.
Sure, but with things like React Server Components, the complexity and payload is pushed back onto the server while still leveraging fine grained client side effects, which is why RSCs are not like PHP, at least not at scale for build large applications with lots of interactivity.
I keep thinking how sad RSC are for users in general, in that while yes the pages load faster, it de-APIs the web/Web app.
Instead of a bunch of JSON endpoints feeding a thick client, we are back to a more thin client model, where the server controls & drives the experience.
What advanced users can do is far greater with a more data-centric web, when there is a thick client to riff on. Those folks can build & share their own tools to amplify/augment/supplement the provided experience. Leaving the door open to innovation like that is something I'm sad to see the pendulum swings away from; the user has a vastly freer hand to make their own advanced with under the thick client model.
Hey, I know you, you're an alt of rektide right? I believe we have talked before if so. Personally, I don't see the web the same way as you seem to, I am just fine with a client server model, as well as utilizing technologies like Flutter.
I think you may be confused. I'm a 6 month old account, not a 15 year old account. I don't appreciate being tied to some other past. Please, it would be polite & civil if you would delete or reword this post.
I must be mistaken then, I saw some of your other comments over the past few months and thought to myself, why does this rhetoric sound oddly familiar and thought that there was only one other person on this site which I've interacted with in my life, not just even on HN, that had such a love for the web (and also used some weirdly strong language in expressing said love as well as disdain for other anti-open-client technologies like Flutter, which I personally use), and I compared some of the comments which seemed to me to be extremely similar. But I guess, there might be more of these types of web-loving people than I had thought on HN.
This rant is at least ten years out of date, and is at this point entirely unimaginative. More importantly it does not represent where JS ecosystem efforts have been going for 3-5 years. My personal site is built with a JS framework. It’s sent to the client as ‘static’ HTML and CSS. A JS payload is also sent to power (optional) client-side-interactive functionality (e.g. the “copy” button on code snippet blocks).
Meanwhile, I get to use what is easily the best ecosystem of (lowercase) web component / templating tools, hands down. I’ve used more templating tools than I can count, and nothing compares to Vue SFCs, Svelte, or hell, even JSX as much as I loathe it.
I’m a fairly oldschool do-it-in-notepad web developer, not some kid that grew up on JavaScript. I’ve been deeply, deeply skeptical of and hesitant to employ JS-ecosystem tools. The recent work around fairly seamless isomorphic development is slowly but surely winning me over. It’s increasingly addressing my concerns re accessibility, performance, reliability, semantics, ‘letting the browser do what it does best’, etc. All things I deeply, deeply care about, and all things that caused me to rail against JavaScript in the past.
The JS ecosystem of 2024 does not represent what's on the web right now. What is out there is by-and-large codebases that were started in the mid 2010s. Sure, frameworks have been doing a great job correcting mistakes over the past couple years, but the JS-heavy junk of the 2010s is still largely out there ruining access for folks.
The genius of the web was its focus on documents: GET, POST, UPDATE, DELETE. Authoring and sharing text and images and video is essential to human knowledge and the web’s big contribution to the world was creating a fairly simple, universally understandable format for people to read and publish documents. The idea of the separation of information from presentation (and putting presentation in the control of the user-agent) was genius and lead to some of the biggest forms of innovation built on top of the web like RSS and podcasting. The gradual evolution of the web away from a hyperlinked network of documents towards being a thin frame into which we deliver complex software applications mostly destroyed so much of this value. It’s convenient for engineers but often deeply hostile to users and has lead to a systematic disregard for what was unique and special about the web. How easy do you find it to discover interesting or useful information created by actual people nowadays vs, say, 2007? Web engineers have largely destroyed one of the great human information technologies in order to make it easier to ship software. Good job everyone.
27 comments
[ 5.2 ms ] story [ 81.5 ms ] threadThe mistake was all of the extra complexity and nonsense that came about when SV realized the web was Serious Business. Having to compile it from a "strict superset" language because Serious Business means strict types and tests, tests tests. Taking it out of the browser, aligning the entire ecoysystem to a single, fragile, badly designed point of failure. Let's abandon the entire field of application programming and just ship an entire Chromium instance and a webapp for everything. What happened to all of my RAM? Who cares, everything is free now, numbers are a lie.
I mean the entire point of frontend frameworks was supposed to be that it would simply be faster to transport JSON diffs rather than entire html pages, and do the rendering in the browser. But of course any such efficiencies wound up being eaten by increasingly bloated and inefficient code. And now people are discovering backend rendering and "vanilla" JS like Howard Carter discovering the tomb of King Tut.
Javascript the language, even Javascript the idea (being able to write and run code on the web) is at worst neutral, and arguably a good idea. At least from the point of view of the old hacker ethos where the point is to liberate the masses from the gatekeepers of intellect and information is as many ways as possible. But as with everything else turning to shit in our world, blame capitalism for taking something with the potential for good, and utterly ruining it.
In the 90s, vendors seriously invested in major development suites (Visual Studio, Visual Age, C++ Builder, Delphi, Visual Basic) and improve languages (Java, C#, Pascal, Basic) for desktop environments. But the web development landscape is largely dominated by Javascript, which is actively hated, and Typescript, a better but far from great alternative, with everything else being a tiny percentage. What happened?
The is a steady stream of js contempt on HN. I don't think it's representative of how actual devs think about JS. The contempt forever seems stuck at the shallowest stages, of assuming JSnis terrible & disparaging it out of hand, without making a single claim or contention.
Building on the web is not difficult & gets your experience in front of users fast. We've made better and better tools, while exploring a huge variety of app development styles.
I don't know what js did to so many of y'all. I've done web stuff across libcgi, perl, php, java, and yeah early js has some warts but it's like 98% the same as any other language would be (even if classes looked weird for the first decade). The npm package management ecosystem is vastly easier to use & understand than anything I'd seen before. It's unclear what about this language makes people so miserable, and it's not something I've seen in person in my professional career. But the contempt is on high display regularly in the comments.
The language itself is fine, and incongruities have long been polyfilled.
With Shared Array Buffers, Webworkers, WASM and WebGPU, offloading heavy computational work will only become easier.
We're stuck with JS because it's easier to just improve it than swap out the entire ecosystem. Now it's quite good.
1. Cobol is still around and it is much older than JS 2. Cobol systems is not as entrenched client side JS. It is used on websites because it is what browsers support.
My understanding is that Cobol is still largely relevant in the banking industry, it’s not mentioned that often.
Someone could correct my if I’m wrong and has more insight.
Javascript is deeply unpleasant to work with in any way.
Instead of a bunch of JSON endpoints feeding a thick client, we are back to a more thin client model, where the server controls & drives the experience.
What advanced users can do is far greater with a more data-centric web, when there is a thick client to riff on. Those folks can build & share their own tools to amplify/augment/supplement the provided experience. Leaving the door open to innovation like that is something I'm sad to see the pendulum swings away from; the user has a vastly freer hand to make their own advanced with under the thick client model.
Finished it for you.
Meanwhile, I get to use what is easily the best ecosystem of (lowercase) web component / templating tools, hands down. I’ve used more templating tools than I can count, and nothing compares to Vue SFCs, Svelte, or hell, even JSX as much as I loathe it.
I’m a fairly oldschool do-it-in-notepad web developer, not some kid that grew up on JavaScript. I’ve been deeply, deeply skeptical of and hesitant to employ JS-ecosystem tools. The recent work around fairly seamless isomorphic development is slowly but surely winning me over. It’s increasingly addressing my concerns re accessibility, performance, reliability, semantics, ‘letting the browser do what it does best’, etc. All things I deeply, deeply care about, and all things that caused me to rail against JavaScript in the past.
The genius of the web was its focus on documents: GET, POST, UPDATE, DELETE. Authoring and sharing text and images and video is essential to human knowledge and the web’s big contribution to the world was creating a fairly simple, universally understandable format for people to read and publish documents. The idea of the separation of information from presentation (and putting presentation in the control of the user-agent) was genius and lead to some of the biggest forms of innovation built on top of the web like RSS and podcasting. The gradual evolution of the web away from a hyperlinked network of documents towards being a thin frame into which we deliver complex software applications mostly destroyed so much of this value. It’s convenient for engineers but often deeply hostile to users and has lead to a systematic disregard for what was unique and special about the web. How easy do you find it to discover interesting or useful information created by actual people nowadays vs, say, 2007? Web engineers have largely destroyed one of the great human information technologies in order to make it easier to ship software. Good job everyone.