Conversation

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
Workers are generally implemented as threads rather than processes, but it's abstracted. Main reason it's a lot nicer is that the whole ecosystem is built around concurrency and it works nicely for that style of parallelism too. Python's approach is a very leaky abstraction too.
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
Replying to and
JS went from forcing endless callbacks on everyone to actually having an ergonomic approach that scales. Go has an ergonomic approach to concurrency... but in a language that's super verbose and painful. I think Go's death sentence is that it can't scale to multiple cores well.
1
Show replies