3 ms·
It's the concurrency model. The industry has decided threads just don't scale and it's doing away with the two most popular languages that rely on multithreadin
by bernawil 7y ago
It's the concurrency model. The industry has decided threads just don't scale and it's doing away with the two most popular languages that rely on multithreading (Java and C#) and favoring NodeJs (event loop), Go (goroutines) and I guess Elixir (I'm not sure what really is the concurrency model, I guess the actor model somehow).
- chrismmay 7y agoThanks for clarifying. This really is a paradigm shift that is happening "under our noses" so-to-speak. I don't want to be the guy who designed his new system using a technology stack that's been shunned.
- ak39 7y agoThreads may not scale, but thread pools can. And that concept has been in Java and C# for a long time. I agree with your point about the industry now favouring the event loop model of concurrent programming. I know C# has introduced recently async/await syntax to match the idiomatics of JS (probably to appeal to JS-comfortable devs) ... but the concept of built in event queues is still not supported. (I may be mistaken as I only read a bit about this feature of C# in late 2017)
- bernawil 7y agoI think these languages are thriving in the cloud because they not only have a favored concurrency model, they have it mandatorily and so they spun a cohesive ecosystem. Take Java for example. You can make an event loop and use it on a web server (Play framework is just that). It doesn't mean you can retrofit all dependencies to do the same. It also doesn't mean business logic inside this server will necessarily use one instead of spinning up os threads nor that it can even plug into the same event loop. And it also means you just introduced opposing views into your ecosystem.
- cutler 7y ago"The industry has decided ..."? Which industry is that? Judging by the vacancies on Indeed.co.uk there are an order of magnitude more opportunities for Java/C# developers than those using Node.js or Go. As for Elixir I think it's fair to say that the industry has largely ignored it.