5 ms·
Whether the aesthetics are good or bad does not dictate whether a language is a “programming language.” That is determined by whether you can write programs wit
by ironmagma 6y ago
Whether the aesthetics are good or bad does not dictate whether a language is a “programming language.” That is determined by whether you can write programs with it. JavaScript is used to generate billions, if not trillions of dollars each year, through the fact that you can run programs on a computer with it, therefore being a programming language. There’s no subjectivity there, JavaScript is not a toy. Incidentally, there are a lot of spaghetti code encouraging platforms like LabView, Matlab, and PLC which nevertheless accomplish similar results, even in safety critical applications. Those are not toys either, despite their lack of sophistication.
What the language designer accomplished is not simple. JS packaged functional expressivity and dynamic binding from Scheme and Smalltalk into a marketable form using Java/C syntax. That is not a corruption, it’s a design feature. Languages that use S-expressions, while pleasing to the purists, do not see much market traction. The best languages are the ones that balance functional idealism with pragmatism. It is true that the language has warts, but there is ultimately a reason that all the JS alternatives, such as Flash, Applets, Silverlight, VBScript and Pyodide failed.
I agree the web is worse now, but it’s not due to technical reasons. We have more options for web coding than ever before with AsmJS and Wasm, plus all the compile-to-javascript languages. You can choose to write using one of those ‘superior languages’ like with Scala.js, Elm, Elixir, Clojurescript, or any number of runtime translation layers like Brython or Skulpt, but people don’t choose to. Because that isn’t the problem. The problem is that businesses want less logic in the backend and don’t find sufficient benefit in optimization to prioritize it over feature work. That’s a disturbing business trend and hardly related to technical choice. For most operations, JS is blazingly fast due to the millions of hours that have gone into optimizing it.
Last, the people who are beginners and don’t understand the stack or heap, are not the ones running Webpack and writing (a significant amount of) React code. Those are distinctly different personas, and conflating them is insane. Either you are seasoned and can deal with the complexity that is the JS tooling infrastructure, or you are not and you probably aren’t using it as a result.
- axegon_ 6y agoThe language designer's intentions were completely different(very similar situation as the situation with php). His intentions were to give very basic interactivity to the plain documents that was the web. And for that purpose javascript is fine. For anything beyond that, it's simply retarded. I've worked in large corporations for most of my life and in all instances stunts like javascript-only development or react were the consequence of either someone from management being a javascript "developer" or management blindly trusting their "top engineers". Just open up history books and look at how many times humanity has been wrong. Hell, just turn on the news and look at the political landscape - the people who were democratically elected, and you'll instantly see what I'm on about. My argument remains equally valid for the people developing those frameworks. The fact that their barebone examples eat up 200 megabytes of memory and basic navigation pumps up my cpu to at least 40% is a clear indication. And my personal computer is not a raspberry pi gen 1. Far, far from it. Look around HN and you'll see a growing support for my message: javascript is crap and needs to be abolished. As for javascript being "blazingly fast": lol. Compared to what? calculating 924^42 with pen and paper? Yeah, in that respect it's fast. For anything beyond that it remains a paper plane. Wasm initially terrified me because it potentially opened the floodgates for all the "developers" to jump into what are real programming languages and make a mess out of them too. For the time being it's fine though: Jumping from this.prop.element.parent.third_degree_cousin.grandParent.neighbors_dog.value.get_value().toInteger() = this.prop.element.parent.third_degree_cousin.grandParent.neighbors_dog.value.get_value().toInteger() + 1; to type ConnectionError = Box<dyn std::error::Error + Send + Sync + 'static>; is not humanly possible... For now...
- ironmagma 6y agoJavaScript is fast compared to what it used to be, and faster than Python for example, in many circumstances. [1] As far as large groups of people being wrong, that also applies to HN. The industry trend has been toward larger frontend components, and that’s not because of tyrannical engineers (since when do engineers have business power?). It’s just cheaper to create code on the frontend a lot of the time, especially if you have to weigh writing the code in JS versus e.g. Go with a properly formed GraphQL backend. [1] https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/python.html https://benchmarksgame-team.pages.debian.net/benchmarksgame/...
- axegon_ 6y agoGo unfortunately suffers from something similar: packaging. Even if you don't know the history of go, you have to look at it only once to figure out that this part is a hacky afterthought. Like everything in js. Also comparison of scripting languages is the stupidest thing one can do and I'd have expected better from debian but oh well... My point remains: javascript is the stupidest language ever made(including the esoteric languages) and it should have been scrapped a long time ago. I have 1000+ books on my shelves next to me and if I start describing the utter crap found in javascript, I'd have to write 10 times as much. Stupid type system, idiotic paradigms, no clear structure, shit standard library, inconsistent naming conventions even in the standard library alone, it's as compatible with lower level languages as olive oil and alcohol(ffi is absolute shit with outrageous overhead), slow, unpredictable, does not have a clear way to do basic stuff like deep cloning. But you are right, it's cheaper to write an interface using javascript. But if cost saving is our top priority, there's yet another argument for scrapping it altogether: ncurses. 10 times faster to write, 10000 times better performance, runs on anything with a screen. I'd totally vote for dropping the current web in favor of console-based web.
- ironmagma 6y ago> I'd totally vote for dropping the current web in favor of console-based web. Hardly an unpopular opinion here on beloved HN. I love you guys, but also am glad you don’t hold the reins to make this a reality. :-)