4 ms·
Every programming language needs to confront the fact that it's distribution, not syntax, that matters, and nothing else. And JavaScript won distribution. By a
by javajosh 5y ago
Every programming language needs to confront the fact that it's distribution, not syntax, that matters, and nothing else. And JavaScript won distribution. By a landslide. There are many lovely languages out there, and you can certainly describe your personal processes or even your server processes with them, but ultimately you will be limited by ad hoc and brittle distribution systems, and their adoption will reach some small asymptote.
- sshine 5y agoI fully agree. A part of distribution is mature, easy to install and use toolchain. Another is a wealth of accessible packages. A third is being able to run on popular platforms. The only way to beat JS is eventually wasm.
- buffington 5y agoWhile I don't disagree, what do you think of Crystal?
- JohnDeHope 5y agoI am interested in this topic. What is it that needs to be distributed: the compiler, the runtime environment, the attached debugger, the package manager client, the UI availability, the discoverability, the (relatively) safe execution? JavaScript had a lot of things going for it, but I wonder what was the thing that got distributed that won.
- capableweb 5y ago> Every programming language needs to confront the fact that it's distribution, not syntax, that matters, and nothing else. Every programmer needs to confront that the fact that their opinion about what really matters, isn't the same thing for them as it is for others. And even more so, what really matters changes based on what context you're using the language in, and what you're building. There is not a single metric that decides if a programming language "wins" or not. What does that even mean? For me, Clojure won a long time ago, because what does matter is simplicity. But I also realize that this is a personal opinion, not something that I spread as "fact" for others to finally realize.
- javajosh 5y ago>There is not a single metric that decides if a programming language "wins" or not Yes there is: it's the number of currently running processes described by that language. In practice this means counting every tab in every browser on every device on Earth. Even the largest DC operators in the world, Amazon, Google, Microsoft, NSA, etc who run sophisticated bespoke software distribution systems that support all kinds of runtimes, cannot compare in number to everything else. (Although it wouldn't surprise me if one or more of them attempts to maintain a stateful process for every man woman and child on Earth. That's still not enough.)
- saghm 5y agoI think you misunderstand what GP meant; by "not a single metric", I don't think they mean "there is no metric" but "there's not solely one metric". The one you give is reasonable in some contexts, but not every language is trying to optimize for that. "Winning" is relative to how you define the game, and not everyone will agree your definition is the one they care about.
- javajosh 5y agoIf people don't like an assertion on which I base my analysis they can and should throw out the result. I am making a bold assertion, but I really think its right, so if you understand it enough to disagree with it, I'll call that a win. But I personally think the success criteria I've specified is not debatable, except of course as fodder for those who like to debate.
- randito 5y agoThere's a great talk -- https://www.youtube.com/watch?v=QyJZzq0v7Z4 https://www.youtube.com/watch?v=QyJZzq0v7Z4 -- Why Isn't Functional Programming the Norm? – Richard Feldman -- that goes into this. It's a discussion of "why" programming languages succeed.
- sph 5y agoThankfully, humans are flawed so don't all go for the most perfect choice every time, because sometimes they want to try something _different_. If we were robots, we would sit 8 hours a day in grey cubicles to write Java and Javascript because they have the biggest ecosystem and mindshare, increasing our productivity. But I'm a human, for my small projects I optimise for other metrics than hireability. And truth be told, even at work sometimes I try to make my code writing a little fun with smaller ecosystems that spark joy.
- iomcr 5y agoSince we're on about distribution, I converted a nodejs application to Crystal. The docker containers were 1GB vs 20MB.
- otabdeveloper4 5y ago"Distribution" isn't a problem solved by programming languages.