←back to thread

111 points teleforce | 4 comments | | HN request time: 0.997s | source
Show context
usrbinenv ◴[] No.43800544[source]
I constantly feel like inferior languages are picked up, while superior languages are discarded. It's almost as if the universe had a law: "inferior technology is always preferred no matter how hard you seethe".

Examples:

  * Python preferred over Ruby
  * TypeScript preferred over Dart or even JavaScript (which is fine and, as a bonus, doesn't require compilation step like TS)
  * Go is preferred over Crystal and D.
While Python, TypeScript and Go are quite alright, there is no doubt in my mind that their alternatives are absolutely superior as languages. Yes, in case of Dart, Crystal and D the ecosystem doesn't have the abundance of well-tested libraries, but as languages they are simply better. The Go argument that it's popular because it's simpler is absurd in the sense that no one really forces you to write complex code and use classes or other advanced OOP features in D.
replies(10): >>43800688 #>>43800728 #>>43800902 #>>43801262 #>>43801977 #>>43802028 #>>43802144 #>>43802418 #>>43804822 #>>43804929 #
1. pjmlp ◴[] No.43802418[source]
What pains me in Python adoption, beyond its use as Perl replacement, is that we have so much better dynamic languages with advanced JIT implementations, but have to reach out writing extensions in native languages instead.

At least Python as DSL for GPU JIT compilers is a thing now.

Yes, I know about PyPy in the corner looking for attention.

replies(1): >>43803038 #
2. creata ◴[] No.43803038[source]
> we have so much better dynamic languages with advanced JIT implementations

What are some of these better languages that you're referring to? (The usual dynamic language JITs I hear people praise are LuaJIT and Chez. And V8. And the JVM?)

replies(2): >>43804090 #>>43804163 #
3. esafak ◴[] No.43804090[source]
I'd suggest F#, Clojure, Elixir, Scala, and TS, if that counts.
4. pjmlp ◴[] No.43804163[source]
Smalltalk, Self, whose research lead to Hotspot and V8, Common Lisp.

And the usual, in Python everything is dynamic, well it is even more so in an image based live coding environment, where any break into the debugger, with code changes and resume execution can come back to a complete different world.

Additionally there are features like Smalltalk become: message, where two objects can change places everywhere they are used in the image, and current execution.