Being crystal clear, this is not one of those "leaving Ruby" dramas. Because I don't believe in BS like that.
I am a Rubyist and I will always be a rubyist. For the foreseeable future Ruby will remain as my primary, favorite, language.
And there is no other drama involved, by the way. Rubyconf Brazil is primarily sponsored and organized by Locaweb, and I have nothing but gratitude for their relentless support through all these years. I even owe them an apology as I did the announcement without anyone knowing. I don't know if they will want to continue with the brand or not, we still didn't talk about it.
The Conference Principles
About the event, somethings people may not know:
I don't own the conference.
I don't have any contract with any sponsor. I don't have a salary, profit-sharing (the conference was always non-profit, Locaweb itself paid premium and always spared no expense, which is why quality was always top-notch), or any other kind of financial arrangement. I've been organizing the conference in my own time.
That was by design, a principle.
I tried to guarantee as much fair game as possible. Which is also why I always limited myself of speaking at my own event. The only times I did speak, was to fill in a gap (a speaker that couldn't make it in the last minute) or at very specific moments (at the 1st Rails Summits, or the 10th anniversary of Ruby on Rails in 2014).
My main concern with the conference has always been the program curation. I handpicked talks by technical merits, as much as I could. They always reflected what I personally think are worth watching. That's why I always avoided public voting (as it unbalances towards celebrities), never a committee (as it forces politics), no blind choosing (as I believe a conference program is like storytelling and I wanted coherency).
As we were not profit-oriented, I never worried about lame things such as choosing topics just for the sake of increasing audience. It doesn't mean I always chose right, mistakes happen, but they were the exception. For the most part I believe I did the best I could.
It was always what I personally believed made sense for the audience. I am very proud not only of the speakers we were able to foster, but also the audience that followed them. If you get Rubyconf Brazil's registered attendees, most of them are not in any other of the big events in the country. It's an exclusive group of people that meet once a year.
More than that: every year, in the last 10 years, half of the attendees were new to the conference, and more than half come from all over the country (not just from Sao Paulo City).
RejectConf 2007
My very first "official" event was called RejectConf SP, in 2007. It had around 150 registrations and less than a 100 people actually attended. Almost all of the speakers are still around and doing very well.
It was named like that because in 2007, Ruby was the ugly duck, specially in Brazil. No one in their right minds would ever think how big this community would become. So it was the rejected language.
The ugly duck ended up being a Black Swan.
The next 2 years I didn't try to make a "Ruby"Conf, because most people didn't even know what "Ruby" was, but everybody was aware of "Rails" as there was a period of time of "Rails-bashing" in all the other communities. So I called my next events "Rails Summit".
Once we were able to make the Ruby name sink in and be better appreciated, that's when I made the switch to "Rubyconf Brazil" in 2010.
So 2016 was the 7th Rubyconf Brazil, but the 10th Ruby-related event in a row.
Then, Ruby on Rails reached the milestone of 10 years, in 2014. I made the closing keynote explaining why it still matters.
Most importantly I made the following important point:
“With or without religion, you would have good people doing good things and evil people doing evil things. But for good people to do evil things, that takes religion.” ― Steven Weinberg
The False Dilemma of Language Religions
If you've been paying attention on everything I do, you will know that I am not an extremist language/platform evangelist. I don't believe in language religions. I believe in freedom. Freedom to do and say whatever I want (to the limit of not harming others, of course), and most importantly: without prejudice.
But this is increasingly difficult as it automatically sounds "weird" when a "rubyist" wants to talk about Go, Clojure, or other languages. It always feel like "hey, this rubyist is talking about Clojure, he is switching, therefore Ruby is losing ground". And for that matter it always sounded strange when someone heard about an evangelist of one language speaking about another.
This is the bullshit of this generation. I witnessed my freedom being restrained, year after year. Everybody else's, for that matter. Everybody must be under some flag nowadays, having extreme, black-and-white position.
This is just stupid.
Most extreme positions meant to feel like a solid choice ends up being a very ambiguous and demagogic position.
We live in a society exquisitely dependent on science and technology, in which hardly anyone knows anything about science and technology. ― Carl Sagan
I've been writing about Critical Thinking, the Scientific Method and related topics for many years in my blog and social media.
I've been putting non-Ruby topics in a "Ruby"Conf for many years. We had Node.js in 2010, iOS in 2011, Elixir was introduced by José Valim in 2012's RubyConf. And in 2015 I did yet another big change by introducing 3 parallel tracks (out of 5) dedicated to non-Ruby topics.
This year we put all language logos (Elixir, Crystal, Go, Javascript, Clojure) in the Rubyconf Brazil materials.
No rubyist felt that was strange, and this is what I am most proud of the audience we built: Rubyists in Brazil already feel super natural to talk and use other languages and platforms without feeling like they are "betraying" a cause or without feeling the need to "abandon" Ruby because they started enjoying something else such as Elixir or Clojure.
Rubyists, in Brazil at least, are less prone to fall for the mistake of vanity metrics such as choosing a language because of the TIOBE ranking.
There was one last thing I had to do: set the final example.
For most people Fabio Akita (a.k.a. AkitaOnRails) is synonymous with Ruby. Even though I write a lot about other things for many years, most people will still associate me with RubyConf Brazil. And even though the conference changed its direction years ago, "Ruby"Conf is mostly associated with "just Ruby".
It was just too comfortable to keep going with Rubyconf Brazil as it was. I know how to do it. People like it. It's still pretty much growing without signs of slowing down (we started having to close registration a couple of weeks before because of overbooking).
When things start to get too comfortable you know it's possibly not entirely right.
I am not my favorite language.
This was the final message, the story I wanted to tell and that was 10 years in the making.
I spent 10 years building a healthy audience that is unlike any other in the domain of technology: a highly agnostic, rational, critical thinking aware, results-oriented, crowd. We really believe in "best-of-breed" and "best-tools-for-the-job".
But it couldn't be just small talk, demagogic speech. And the most uncomfortable thing I could do was to let it go.
The message was loud and clear: I am not my language, and neither should you let it be.
Akita"OnRails"
Many people asked if I will change my username.
Nope, it will still be "AkitaOnRails".
Since the very beginning, "On Rails" is not about the web framework "Ruby on Rails". It means exactly what it says: "On Rails", "Over a Line", "Embracing Constraints".
"Constraints are Liberating" - DHH
Ruby on Rails is a web framework. But it is also a statement, an opinionated point of view.
It means:
- Making efforts to write Beautiful Code
- Making efforts to write Enjoyable Code
- Making efforts to write Maintainable Code
It means using the best techniques and practices to achieve that. Test Driven-Development (Test-First, of Test-After, it doesn't matter). Continuous Integration. YAGNI (You Ain't Gonna Need It). SOLID (as Bob Martin evangelizes). Continuous Delivery. Etc.
The Ruby Community didn't invent Git, but we made it work through Github.
The Ruby Community was the very first software development crowd to adopt Agile techniques as a whole, not as a dissident faction of another mainstream group.
Now every new community aspires to be "On Rails", without naming it like that. And not by just copying the web framework. Just by the desire and discipline of writing "Good Code", never "Quick and Dirty" Code.
And these values will keep on going, with or without a Rubyconf or the Ruby language.
I know, for most people it will still feel like I am tied to the web framework, but it's not. Maybe someday I will change it, but not now.
We will not always agree on what the right techniques are, but we will always make efforts toward the same goals: writing beautiful code that yields valuable results.
The Next 10 Years
With all that said, I hope to have helped a bit in spreading the word:
Stop being extremists.
Exercise critical thinking. Do what feels right, not what pleases random influential groups. Never force your point of view upon others. Stop blindly following false prophets.
I do everything by this idea:
"I never live for the sake of another person and I never ask anyone to live for the sake of mine. I only accept voluntary trade for mutual benefit."
“I am a software engineer. I know what is to come by the principle on which it is built.
I explained this in detail in my article "_Why, Ruby Dramas, and Dynamiting Courtlandt". In a small way, I want to think that I honored this principle.
I write software (and about software) because I enjoy software. I am very fond of Ruby and will keep doing the best Ruby I can for many years. And I will also write good Elixir, and good Crystal, and perhaps good Javascript, etc.
But I will do it my way, not anyone else's.
And so should you.