I'll always applaud creative projects like this but I'm not optimistic about the longer term health of Ruby at this point.
I'll always applaud creative projects like this but I'm not optimistic about the longer term health of Ruby at this point.
It already did, with Puppet, Chef and Vagrant.
Also, mruby is gaining adoption and Rubymotion seems to be in an interesting niche.
There's a lot of new projects currently (like Lotus), so I wouldn't as negative as this.
Also, don't ignore the foothold that Ruby has in the asian markets.
Chef, in my experience, is favored almost exclusively by people who are already Rubyists. The concept of applying The Power Of Ruby (TM) to system configuration is not attractive to non-Rubyists.
I don't see Vagrant much these days. I suspect Docker is displacing it.
Also, Docker may become more popular but I doubt it is going to replace Vagrant. There are just too many times where you need a full VM instead of a container process. Not every problem can be solved with containers.
I'm also very optimistic on the future of JRuby, as with the new 9000 release it has the potential to bring Ruby speed in line with base Java. It's got decent corporate backing now as well with Red Hat and Oracle funding people to work on it.
It's really unfortunate that the MRI devs won't support Rubinius or event adopt RSpec to ensure interoperability with it:
http://rubini.us/2014/12/31/matz-s-ruby-developers-don-t-use...
While there are lots of productive, opinionated Ruby developers, the vast majority of us don't know much about the internals of the language.
Heck, for my part I'm working on a Ruby compiler (and have been writing about it for 7 years now... Unfortunately I have far too little time to devote to it), and part of the challenge is that there's no proper language spec and even most people working on MRI does not know the full semantics of the language.
My favourite example of this, is that for a long time during the 1.8.x, the inheritance of one of the core classes was different than what was documented - I wrote an article about the Ruby object model and was "corrected"; except my diagram had been created based on instrumenting the interpreter to verify what actually happened. It was like that for years without anyone noticing (and to be fair, it was a dark corner of the language - very little code depends on the specifics of the inheritance of the eigenclasses of the core classes).
Of those of us who love Ruby and are interested in compiler technology and have the motivation to slog it out to try to get working compilers - whether JIT or AOT - there are extremely few.
And most of that effort is going into JRuby, which is definitively seeing some impressive improvements (e.g. with Truffle) but which a lot of us avoid because of the JVM.
Ruby will get faster. And will get better implementations, but it may still take some time to have much impact.
The issue is more complex than Brian puts it.
https://lobste.rs/s/oozjtg/matz_s_ruby_developers_don_t_use_...
Also, MRI makes great improvements every version _while keeping breaking changes rather low_. Changing a running system is hard.
If jitting is what you want, JRuby is a very good option.
Besides that I don't really get the fuzz about the particular tweet mentioned. This was in regard to various small changes being made that while nice were not very significant in the grand scheme of things.
Sure, it's a political debate, but just saying they don't run it also isn't honest.
Me personally, I tinkered with Ruby when Rails initially came out and it was about it, as it didn't brought anything new to my toolset.
I say this because as nice as Ruby is (at least in some ways), someone already familiar with Lisp or Smalltalk will learn nothing new from it, and yet there are no shortage of blog posts by Rubyists touting its borrowed features as if they didn't exist before Ruby, suggesting, perhaps, ignorance on the part of its more vocal advocates and of those persuaded by them
And that is incidentally why I have no interest in Lisp or Smalltalk. I have a very visual interpretation of code. I can remember the visual layout of programs I worked on 20 years ago. Those visuals matters greatly to me to be productive with code, and means I am extremely picky about formatting that works for me, and I have nothing but hate for the layout of Lisp and Smalltalk code.
I'm greatful for all the great stuff to have come out of Lisp and Smalltalk. I just pefer to use those features in the nice embrace of Ruby syntax.
But I didn't have a good excuse to really use it at work until Rails came along and completely blew the existing Java frameworks out of the water for productivity.
You can have static typing with InfraRuby (at http://infraruby.com/live), and it's opt-in in the sense that InfraRuby code runs on Ruby interpreters without modification, but (un)fortunately InfraRuby doesn't support reflection so it doesn't run Rails.
From https://github.com/rubygsoc/rubygsoc/wiki/Ideas-List#mri-mat...
"List of ideas for improving Ruby during Google Summer of Code 2015", little summary:
- Fine-grained locking (a.k.a. removing the MRI global lock)
- JIT Compiler
- Type System
- New C Extension API
- Cross-thread Fiber support