Last week hundreds of developers from all over the world descended on Barcelona, eager to partake in Full Stack Fest 2015. The event consisted of two separate conferences – Baruco (Barcelona Ruby Conference) and Future JS conference – catering to both backend and frontend developers.
Full Stack Fest, specifically the Baruco part of the conference, is a true innovation hub for rubyists. The Fyber team attended some fascinating talks, such as “How to Performance” by Eileen Uchitelle, which suggested different ways to benchmark and improve performance; “First do no harm: surgical refactoring” by Nell Shamrell, which covered how to refactor legacy code the right way; “Request and Response” by Aaron Patterson, which looked at response and request lifecycle in Rails; and “Nothing is something” by Sandi Metz which explored best practices of object-oriented design.
We also had the honor of meeting and listening to Yukihiro Matsumoto, or Matz, creator of the Ruby programming language and its reference implementation, Matz’s Ruby Interpreter (MRI). Matsumoto spoke about current trends in Ruby, including the new Ruby 3.0.
First, he discussed the so-called “second system syndrome”. Using Perl 5 and Perl 6 as examples, he described “second system syndrome” as being the point at which, instead of iterating over existing implementations, the language is rewritten in its entirety. The difference between Ruby and other coding languages is that, since 2012, parts of the language have been improved without any cardinal abandonment or changes. This has allowed Ruby to dodge the risk of “second system syndrome” and avoid having to fully re-implement the language from scratch. Instead, Ruby has evolved by incrementally replacing some parts of the language and offering backwards compatibility.
So what can we expect from Ruby 3.0? Matsumoto was concise in his announcement: no schedule, no plans, no promises. However, he offered broad hints of the new features that might be included by pointing to the themes of communication between man and machine, performance optimization, and concurrency:
- Communication between man and machine would allow the machine to recognize a user typo. Furthermore, it will use soft-typing and implement a check for contradictions.
- Performance optimization could possibly hint at the introduction of some compilers for Ruby. Right now JIT compiler is under investigation, but it introduces a memory bottleneck which could prevent it from being used in Ruby 3.0.
- Concurrency: There is discussion of removing GIL (Global Interpreter Lock), which would allow for concurrency and performance improvements. In the current version of Ruby, threads have proven to be too complex. As such, more abstract concurrency models are being developed by Ruby designers, such as actors, ownership models, and stream models.
There was also discussion of introducing a language operator, which would allow Ruby devs to work like they can in Unix Shell using thread-safe pipelines.
Certainly some exciting developments to look forward to with the release of Ruby 3.0! Our team would like to thank the organizers and participants of Full Stack Fest Barcelona for making it a great week of innovation and networking. We sincerely hope to see you all again in Barcelona next year! As for us, the Fyber team’s next stop is RubyConf 2015 in Braga, Portugal. So if you’re planning to attend be sure to drop by our booth to say hi!