back

by alexandercrohde·9y ago·view on hn ↗
I think there is merit in what he says, and it kind of explains why the hot/sexy languages (Ruby, Node, Go) seem to be outsurvived by the Javas/PHPs of the world
2 comments
Node is JavaScript and JavaScript is roughly the same age as Java and is, I think it's reasonable to say, at least as successful and long-lived. I'd be willing to believe it'll actually outlast Java, as JavaScript has been accelerating in adoption and its deployment footprint (by that I mean the variety of places it is deployed), while Java seems to be popular but pretty stable.

So, maybe I just don't understand what you're suggesting. JavaScript may be the most successful language in history; it wouldn't surprise me to find that there's more lines of code in JavaScript today than any other language (possibly by a wide margin), even counting the billions of lines of C/C++ code out there that we don't see because it never makes it to Github or whatever. If it's not true today, it seems likely to be true within a few years.

I believe Javascript wasn't really "hot" for many years, also due to compatibility problems. And there have been no alternatives for a long time.

Although I'm strongly anti-OO and hate Java with a passion for going all-OO, Java is a much better designed language than Javascript. And I think that sentiment is common enough that Javascript could become less relevant now that WebAssembly has entered the game.

I tend to think JavaScript is the "next Java": It's nobody's favorite language, but it's the one that many, many, many projects and businesses settle on as a compromise on popularity, availability of talent, quality of tooling, options for deployment, etc.

And, I would disagree with you on Java being a "much better designed language". I enjoy coding in JavaScript a lot more than Java and always have (even though neither is my favorite), and historic Java had tons of misfeatures, too. Both have evolved in very good directions, but I think JavaScript is evolving faster and in more interesting ways, partly because of its history of being an open platform vs. Java's Sun->Oracle guided path.

Both also followed some dead ends...JavaScript, in particular, has always been a mess of warring factions, and the uncomfortable bolted-on feeling of some of the Java-like things it borrowed in the early days is particularly weird feeling in today's language. Coding in JavaScript feels like coding in three or four different languages. But, the thing as a whole isn't bad at all. It's extremely powerful and has become extremely concise in recent years (which has always been the biggest turn off for me with Java...so many damned lines of code, I just can't see the forest for all the trees).

Edit: I agree that WebAssembly is going to shake things up, but it'll probably be many years before any language is as widespread as JavaScript on the web.

> JavaScript may be the most successful language in history

Which is interesting because it's not that good a language, but circumstances and "luck" put it in the position it's in.

Not unlike a lot of successful companies.

The language may not be great, but the platform (where "platform" == "an ever-expanding pile of web technologies already deployed on billions of devices") is seemingly unbeatable.
They're just older and have first mover advantage. Like Windows...
I think that's dismissive. I think the stability of PHP to not change too rapidly has made it very attractive compared to the alternatives, as well as the documentation.

When you look at why JS lost its way it changed too quickly, python changed in a non-backward-compatible way, ruby changed quickly (as did all its packages).

> I think that's dismissive. I think the stability of PHP to not change too rapidly has made it very attractive, as well as the documentation.

If that was it, we'd all be writing Perl. Seriously. The documentation is better, the backwards compatibility is second to none, it's well designed (even if it's not what people expect, and people often misinterpret how it works because it's just similar enough to most procedural languages to seem the same). Particularly when compared to PHP (which copied a lot of parts of Perl, but did so poorly), it stands up well.

That said, I think you are half there. It's not just stability and documentation, but that with a minimum level of community, which PHP garnered by being dead easy to deploy back when that was actually a concern and in-language frameworks didn't abound. Perl lost a lot of community in the early 2000's, and never really recovered fully from that (relative to popularity of other languages at least).

> If that was it, we'd all be writing Perl. Seriously. The documentation is better, the backwards compatibility is second to none, it's well designed

but you can learn how to write PHP in junior high school while being drunk at 4 am.

You could learn Perl, or Lisp, too in the same circumstances. Most people won't, though, because they'll pick a "hot" language for their domain of interest.

This is how, in our fashion-driven industry, suboptimal solutions win - they grow off tiny differences in a positive feedback loop.

Why not LISP than? I dont think Java is popular because of the first mover advantage at all. It is popular because of tooling, raw perfomance and number of libraries available.
LISP didn't capture broad market share, ever. C would be a better example. It's not just age, it's market dominance that matters for first-mover advantage.

http://kresimirbojcic.com/2012/08/14/why-lisp-did-not-and-ne...

Yes, why not? As I maintan a data driven, static content web page generator, I keep thinking in terms of LISP functions. LISP, with its stateless and functional approach appears to be the right tool for the job. Why not LISP, indeed?

With that written, LISP does have one huge barrier to entry: lack of documentation. For example, I've been trying to figure out how to use the getopt LISP library in Clozure LISP (it's the only LISP which works on my OS) and there is no documentation nor examples; the best I was able to come up with was "look at the source". Being forced to reverse engineer isn't good for adoption. That needs fixed!

What OS is that, Multics?
Solaris 10 on the i86pc platform.
Have you tried Gambit, or alternatively Gerbil (which uses Gambit as its foundation)?
Ouch, my condolences. (SBCL not working though?)
No need for condolences; I run Solaris 10 because the damn thing is unbreakable; all the other machines keep busting but this thing runs and runs and runs, and it's fast and low power. SBCL goes straight into some sort of a LISP debugger and is unusable. I guess quality control is not a term in Steel Bank's dictionary.