←back to thread

140 points teleforce | 3 comments | | HN request time: 0.621s | 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(14): >>43800688 #>>43800728 #>>43800902 #>>43801262 #>>43801977 #>>43802028 #>>43802144 #>>43802418 #>>43804822 #>>43804929 #>>43808022 #>>43810346 #>>43810365 #>>43810515 #
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 #
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(3): >>43804090 #>>43804163 #>>43808265 #
__s ◴[] No.43808265[source]
Even Ruby has JIT now
replies(1): >>43808315 #
creata ◴[] No.43808315[source]
True! But pjmlp was referring specifically to advanced JIT implementations, so I wondered which JITs he was referring to as advanced.
replies(1): >>43810487 #
1. pjmlp ◴[] No.43810487[source]
In Ruby's case that would be RubyMotion, TruffleRubby and JRuby.

That trace back to Apple's efforts with MacRuby, or Sun's (for a while Netbeans even had Ruby support).

replies(1): >>43810823 #
2. ysleepy ◴[] No.43810823[source]
If you go that route, GraalPy is there too, so the argument is not as strong as it seems.
replies(1): >>43814398 #
3. pjmlp ◴[] No.43814398[source]
You missed my remark about PyPy feeling abandoned on the corner, well the same applies to GraalPy.

The Ruby JITs I mentioned are used in production.

While other dynamic language comunities embrace their JITs, in Python world, outside using it as a DSL for GPGPU JITs, it is pretty much let's just keep using CPythion with C and C++ extensions. Adding a JIT to CPython only became a thing after Facebook and Microsoft decided to push for its development.