6 ms·
> Lastly, I thought it was funny that both Yegge and Bray can agree to take shots at JavaScript. There's another thing you'd think nerds would get tired of alre
by zeveb 9y ago
> Lastly, I thought it was funny that both Yegge and Bray can agree to take shots at JavaScript. There's another thing you'd think nerds would get tired of already.
Why? JavaScript is really, truly, awfully horrible. It's a local maximum which could easily be escaped with just a very little bit of effort, and the fact that no-one has done so is one of the strongest-possible condemnations of our industry. JavaScript is a shame, an embarrassment and a squandered opportunity. When one thinks that we could have had Scheme, and instead thanks to a benighted Netscape executive we're stuck with JavaScript forever — it is to weep.
- seibelj 9y agoI disagree, I enjoy programming in JavaScript, and I've been around the block. Language and ecosystem improvements have made it a productive (if somewhat quirky) language. We use NodeJS as our backend language at our (serious) software company and it's well tested, clean, and maintainable.
- erpellan 9y agoFeel free to exert that 'just a very little bit of effort', for all our sakes. If it's that easy it shouldn't take more than a couple of days, right? :) I jest. ECMAScript is the most widely installed programming platform on the planet. Ever. How do you even begin to shift that?
- seanmcdirmid 9y agoI'm not sure what JavaScript being the most widely installed platform on the planet has to do with it being a good programming experience. You want to program for the web? You must use Javascript (or something that compiles to Javascript), I don't think many choose Javascript because it is a great programming experience.
- arvinsim 9y agoYou comment seems to miss the point of the parent. Regardless of the programming experience, lots and lots of people and platforms use it. Due to network effects, it would be very difficult to shift all of those to a different language.
- seanmcdirmid 9y agoYes, and I was pointing out that parent’s post missed the point of grandparent’s post.
- deleted 9y ago[deleted]
- dahart 9y ago> When one thinks that we could have had Scheme My understanding is that we do (or did) mostly have Scheme with the first release of JavaScript, just with different syntax. What about Scheme, what features or syntax, would be so much better than JS that we should switch? Would you elaborate on what makes JavaScript so bad? How much have you used it yourself? Having done lots of C++ in my life, I find writing JavaScript quite a bit more enjoyable. Especially recently now that the dev tools in all the major browsers have gotten so good.
- deckard1 9y agoEventually WebAssembly will allow you to use whatever language you want. > When one thinks that we could have had Scheme This may have been true 5 years ago. I'm probably the biggest Scheme fan there is. I've created assemblers, compilers, and even started an OS in Scheme. I've been using Scheme since the late '90s. Modern ES6 and beyond JavaScript is quite nice. I really don't miss Scheme at all. Scheme, mind you, was incredibly limited in R4RS and R5RS, around the time Netscape would have adopted it anyway. It didn't even have a module system, much like old JavaScript. We would be stuck with the largest problem still facing JS: multiple sucky module systems requiring a webpack-like monstrosity.
- anothergoogler 9y agoSingle-threaded in a multicore world is nice? Implicit type coercion on par with PHP is nice? Implicit var args are nice??? (That's the worst part by far). I would choose pretty much any non-shell mainstream programming language over JavaScript for a program with results I care about (that is, a useful program). Throwing a bag of syntactic sugar (ES6) on a rotten language is meaningless.
- kybernetikos 9y ago> Single-threaded in a multicore world is nice? Javascripts approach to threading - default single threaded event loop, but with message passing to communicate with other threads is actually a pretty good model for people who want to write multi-threaded code that doesn't break. This is important when coding for a very open platform like the web. Confusion about what is running on the UI thread and what isn't and how to communicate between them is the kind of error that pops up in java ui code. I wouldn't want that for the web. Besides, the threading approach is more about the runtime rather than the language. There are lots of clustering and threading libraries on npm if you want them for your server-side code, and you have WebWorkers in the browser. Sure, the implicit type coercion (pretty much everyone hates this) and var args (hasnt bothered me as much as it seems to have bothered you) were not good choices, although compare it to other languages of the time - first class functions were by no means universally available and now almost every modern language has them. A literal notation for maps in the language was a great decision too. Prototype inheritance may be a little weird but it is elegant, more general and radically simpler than class based inheritance. Javascript certainly has its warts but I find it fairly productive to code in. Plus it's paired with a runtime that has seen a shocking level of genius engineering over the last 10 years. The speed of iteration is unparalleled. The reach of a deployed piece of code is unique and likely to remain so for the foreseeable future. There aren't many other platforms that have developer tools for inspecting a running system, visualizing ui, network and detailed render performance that are as good.
- mcphage 9y ago> It's a local maximum which could easily be escaped with just a very little bit of effort, and the fact that no-one has done so is one of the strongest-possible condemnations of our industry. I figure, there are 3 possibilities: (1) you're right, and that Javascript is horrible, and the entire software development industry is lazy in not replacing it. (2) it's actually very difficult to replace (3) it's not as bad as you think it is. I'm not sure which is correct, but I wouldn't expect it to be the one that requires malice or incompetence on the part of an entire industry of people who love replacing thing.
- acheron 9y agoYour "Javascript delenda est" comment from a few years ago -- https://news.ycombinator.com/item?id=11447851 https://news.ycombinator.com/item?id=11447851 -- is still one of the best things I've ever read on HN.
- zeveb 9y agoThank you so very much! It really wasn't written to be persuasive — it's not an argument but rather a series of assertions — but I stand by it today. JavaScript delenda est.