Conversation

Replying to
What's the scale of the Y axis, and do you need to rescale it for "Java with dependency injection" ... JavaScript _after_ Rust?! Lua for a year? Liking Java to spite Python? Your life is weird. But in a good way.
1
3
Replying to
It’s definitely nonlinear. I used to think Java was super verbose and it sucks and I still think it does but then I realized that Python actually hates you and that’s worse. Had no real need to learn JavaScript (still don’t really know it). And Lua for like a week, not a year
3
4
Replying to and
JavaScript somehow became a nicer language than Python now that it has proper block scoping, async/await, generators, etc. Python standard library and broader library ecosystem has aged poorly and feels very neglected and inactive overall. Main reason to use it has been dying.
1
Java is verbose but library ecosystem is amazing if you filter out the enterprise nonsense. Kotlin fixes the issue of verbosity and either fixes or largely masks most of the nasty legacy mistakes. Kotlin is still missing an option to force handling Java checked exceptions though.
1
1
Replying to and
I'd rather use the Java ecosystem via Kotlin though. It's nice not finding endless mistakes at runtime, being able to maintain your code and using multiple cores. I still use Python a lot as my language of choice for throwing together a script, but I don't think that'll last.
1
2
I think JavaScript is gradually going to turn Python into another Perl and TypeScript is a big part of it. Python is really bad at async (lack of ecosystem adoption), static typing, performance and scaling to multiple cores. All things that people find increasingly important.
1
1
Replying to
It has worker threads and is focused on message passing between them, but you can use a shared array buffers for a relatively low level shared memory API. It evolved that way due to the limitations of the language but it's nicer in a lot of ways than Java-style locking approach.
2
Replying to
... doesn't Python also have non-shared message passing multiprocessing. (I have used neither multiprocessing nor Shared Workers, though, so not sure if they're any similar.)
1
Replying to and
Everything in JS was built around async callbacks and got rebuilt around async/await/promises. You'll rarely find a case where I/O blocks a thread. Even stuff like open(), stat(), etc. is done in an async way, unlike stuff like nginx. Waiting for stuff from workers, etc. fits in.
1
1
Replying to and
Rust and C# have similar async support but it feels a lot worse than JS because the whole ecosystem wasn't built around it, and in Rust there are different conflicting approaches. Rust needs to be that way as a low level language but most other languages are just bad at this.
1
1
Show replies