4 ms·
Ruby is the first language I really like. The core concept of the language is small, just not easy to get, but the change on how to programming is significant.
by windor 10y ago
Ruby is the first language I really like. The core concept of the language is small, just not easy to get, but the change on how to programming is significant.
Sadly, Ruby is not the language for the multi-core world, and many advantages of using it is disappearing.
Although Ruby is changing, 2.3, 2.4, maybe 3.0, but what's the difference?
- pizza234 10y ago> Ruby is not the language for the multi-core world, and many advantages of using it is disappearing Not really; it depends on the audience. The Ruby audience is still mainly Rails development, whose paradigm is multi-process.
- windor 10y agoRails is an excellent framework, but it isn't a feature of Ruby. When some other frameworks are rising, Ruby can lose quickly.
- RVuRnvbM2e 10y agoHave you used concurrent-ruby? https://github.com/ruby-concurrency/concurrent-ruby https://github.com/ruby-concurrency/concurrent-ruby
- Meegul 10y agoDoes this fix the issue that is the GIL?
- windor 10y agoYes, from the beginning, and there exists celluloid which try to implement actor model. The fact that concurrent-ruby cannot be truly parallelized just disappoints me. The same idea of Future,Promise applied to Ruby doesn't gain the benefit. At last, it's just a method of writing 'better' code, not getting better solution.
- xutopia 10y agoYou should check out Elixir. It is heavily inspired by the Ruby language yet makes concurrency easier than many other languages.
- windor 10y agoyeah, Elixir is a good option, indeed.
- xutopia 10y agoYou should check out Elixir. It is heavily inspired by the Ruby language yet makes concurrency easier than many other languages.
- tinco 10y agoFirst of all, Ruby has a very ambitious goal for version 3.0, which most likely involves some kind of thread parallelisation. Second, I would not say Ruby is not a language for the multi-core world. There are tens of thousands Ruby production environments over the world that make excellent use of multi-core machines. They run Ruby on problems that are embarassingly parallel such as web applications using process managing application servers such as Phusion Passenger or Unicorn. This is the way many modern web application platforms parallelize, including Node.JS and Python. Third lack of paralellization is not a language feature. Both JRuby and Rubininus support threads without a GIL. Projects like Celluloid and Concurrent-Ruby make use of this.
- windor 10y ago1. Ruby will support parallelization, it’s just a matter of time. 2.Passenger and Unicorn are multi-process, which due to developers can make use of nearly nothing in Ruby, and that's why gems like https://github.com/grosser/parallel https://github.com/grosser/parallel come out. 3. The language implementation detail matters a lot. Too many gems are not thread-safe. JRuby is an option, but not that good, as there're too many other options under JVM platform. Rubininus is awesome, I wish it comes out earlier.
- dragonwriter 10y ago> Sadly, Ruby is not the language for the multi-core world MRI isn't the implementation for the multi-core world, but MRI isn't the only Ruby implementation; on language features, JRuby, particularly, isn't particularly far behind (the current version runs Ruby 2.3 code; I wouldn't expect 2.4 support to be that far behind), and fully supports thread-based parallelism.
- gabrielc 10y agomaybe you should try crystal.