Hacker News new | ask | show | jobs
by pjmlp 1227 days ago
Python, is an interpreted language.

Golang is actually called Go, took 10 years to get generics, still doesn't do enumerations like Pascal in 1970.

Rust, still doesn't have anything that matches Swing, JavaFX, Spring, ability to plug into runtimes into production, a standard ABI.

2 comments

> Rust, still doesn't have anything that matches Swing, JavaFX

There is GTK with gtk-rs, which surpasses Swing/JavaFX in many technical aspects and also has orders of magnitude higher popularity and bigger community.

When does it finally get a designer?
Pascal, took almost 50 years until "it" got declare-variables-anywhere feature, in Embarcadero Delphi 10.3.

Java, does it still require you to make up a class for things that are completely unrelated to classes / objects? Does it still require you to put each public class in a separate file?

Pascal still got it first than Go, no matter how you turn it.

Java is an OOP language, maybe that isn't modern for you, I dunno.

When I compare languages I care about the whole package, grammar + semantics are hardly a sales pitch when they don't have anything else to offer.

Go had declare-variables-anywhere from the start AFAIK (today, it's not usually considered a "feature" anymore). Delphi 10.3 came out November 2018. I don't know Pascal ecosystems very well but worked with Embarcadero Delphi (probably _the_ major Pascal-derived ecosystem), I believe it was version 10.1, on a job in 2018, and it wasn't possible to declare variables anywhere. I consider this to be a huge annoyance, and indeed also a correctness problem because there is a larger chance that variables are used before initialization.

> grammar + semantics are hardly a sales pitch

That's why many don't care all that much about generics.

> Java is an OOP language, maybe that isn't modern for you

"Modern" is not that interesting in itself. Familiarity and ergonomics towards what you're doing is more important. "Missing" features is often an advantage. Newer is not always better, certainly not in all dimensions or application domains.

I only used Pascal as one example for where enumerations appeared, if it makes you happy I can use ML from 1973 and be done with how "modern" Go happens to be.

Glad that at least it managed to get inspired by CLU model of generics from 1975.

There you go, enumerations, parametric types, structural typing, generics, garbage collection, modules, fast compilation to native code, REPL, checked errors, all about 50 years ago.

Pity there wasn't a Google around to push them.

I'm sure it's easy to find annoying problems with ML just as well. We're always left with a choice between being annoyed what's missing or just getting work done. Empirically, complex spaghetti code can be produced in any language. Beyond a certain point (that I suspect has long been crossed) more features only allow for more complexity before it becomes unmanageable (and then the pain is just the greater). Anecdotally, languages and language features, and experimenting how to best employ them (in a particular situation or in general), is also a huge time sink that can detract from actual work.