RubyC-2017 is lucky enough to welcome Xavier Noria, an independent Ruby on Rails consultant from Barcelona with over seventeen years of professional programming experience, a Ruby Hero who is a member of the Ruby on Rails core team, and proud author of Rails Contributors. We are very excited with an opportunity to hear his topic “Little Snippets” devoted to idiomatic Ruby, concise code, readable code, and exact code. As always we try to know our speakers a bit better in advance, so here are
I learned programming on my own when I was a kid, following a BASIC course in a magazine, doing exercises in a Triumph-Adler Alphatronic, which had two floppy units and no hard disk. That was the early 80s and there was no Internet, all you had was a magazine and a green on black screen.
Programming always interested me, but life took me to other places. Was a dropout from high school, did a number of things, and after some years I came back, restarting where I left, and going all the way up to finishing a degree in Mathematics, for which I discovered I had a passion.
Still, I had always an eye on programming, doing totally toy things as an amateur self-taught with no external references. In Mathematics you do not program unless you pick a subject that requires it, which are just a few, but there was still some C for applied math or numerical analysis, some Prolog in Logic-related subjects, and some Mathematica in Algebra and other subjects.
Meanwhile, I freelanced for a publisher doing proof-reading of math textbooks for about six years in my spare time. It was a wonderful job, proof-reading mathematics requires a great deal of attention to detail, because it is all very symbolic and typists may not know what they are writing (they do math in the morning, biology two hours later, history in the afternoon, ...). So all sorts of subtle errors are introduced you have to catch, in addition to supervising the actual content.
When I finished my degree and after one year of PhD, being 30 years old by then, I decided I had had a blast, my years in the faculty were among the best ones in my life, but had to move on. Then switched gears to join a software company. That was 2000, and I have been programming professionally since then.
I think there are several ways you can look at it.
From a practical standpoint, if you are a Rails developer, contributing to Rails is going to force you understand the framework better, more profoundly, because you'll need to fetch the code, find your way around it, understand how to patch something, understand how something works, and that is going to enrich you.
Also, if your contribution is a documentation, you'll think about how to explain something, and, like teaching, that makes you grow on the topic.
And there are many other ways to contribute, you can help run a local group, run a conference, you may be helping in IRC, mailing lists, Gitter, Stack Overflow, etc. All of them are ways to contribute to the project, and all of them are going to revert on you some way or another, in addition to the personal pleasure of building something, or helping people.
From a more human perspective, I think being able to participate in open source is an enormous privilege we have thanks to Internet. You are able to give back, you are participating in the huge body of work that is open source, which has been a revolution of such magnitude!
I have been taking a break lately. In the last weeks I have been doing some stuff related to docs generation, participating in some discussion, merging some PRs, but nothing deep.
I switched to being a programmer because after so many years of abstract (and extremely beautiful) stuff in the faculty, I had an inner urgency for doing actual things, solving real problems.
The startup I joined did Java, but after a few months I saw the Llama book in a table of the office, and that changed my career forever. You know those bulky hammers to demolish walls? That was the way I felt using Perl, you gave me a problem, I applied Perl, and boom! done! Next problem! You feel so empowered, so productive.
I was into Perl for about 6 years. Perl and the Perl community shaped the developer I am today, I owe Perl a lot.
And in one of those nice unexpected loops of life, the department of applied math in my faculty started to give some CS courses, and contacted me to give a last-year optional subject on dynamic languages. I taught Perl for seven years there, in the historic building of the University of Barcelona, in the heart of the city. That was something vocational, did it after work, in my spare time. It was a wonderful experience.
It depends on what we mean by "popularity".
Ruby is a wonderful language, it is a pleasure to write and read. It has reached maturity, and Ruby on Rails has reached maturity too.
Maturity in the case of Ruby and Rails does not mean stagnation at all, you only need to follow the CHANGELOGs, and they are getting better and better and keep moving forward. Look at what is coming from TruffleRuby for example, that could be an inflection point in the history of Ruby.
So Ruby and Ruby on Rails are not going anywhere, but there is perhaps less Hacker News-like excitement, let's say. People get excited about new things, statistically speaking. And there are new kids in the block that are actually really interesting by their own merits and are attractive and concentrate the excitement. Excitement is temporary, though, ten years later the excitement will be somewhere else.
But if we talk market share, Java is hugely popular, as well as C, and PHP, etc.
It all depends on how you look at it.
In the Ruby on Rails front, Rails 5.1 is going to be released with some cool new highlights, and the stream of work in core is unstoppable.
Professionally I expect to keep freelancing, which is something I really enjoy. I have been independent for the last almost eight years already as of this writing.
Personally, as regards to programming, I want this year to be one of self-study. You are always trying to keep up with things, but 2017 is actually planned to be like that, and that is why I have been less active lately, because that together with my other dozen of personal hobbies and activities (family, music, meditation, sport, you name it), eats my spare time. Right now, for example, I am totally focused on studying the implementation of Elixir, at least as much as I can cover with the time I have available. Going to give a talk at ElixirConf EU in which I'll explain some of it.