N. Sutterer: Rails's Dying...but Ruby is Not!

Creator of Trailblazer shares his thoughts about the future of Rails and Ruby
29 August 2017   1158

Nick Sutterer
Nick Sutterer

Creator of Trailblazer that introduces several new abstraction layers into Rails, Rails contributor and gem author. 

On the eve of RailsClub 2017, on which Nick will be one of the speaks, we questioned him about the job and his views on Ruby development.

Where are you located right now?

At the moment, I’m in Germany. I’m working and living in Hanover. Used to live in Australia for last 4 years. It’s different to be back in Germany. I never planned to stay in Australia. It’s really changed a lot in my life - I became addicted to surfing! It’s great to do a surfing break for few hours and then go back to coding. Now I’m in Europe, because a lot of stuff is happening here. For me, life is better here at the moment.

How did you decide to become a programmer? Why, where and when?

It’s very simple. I was 8 y.o. and I was into playing computer games and I wanted to create my own game, it was really my dream. Dad bought me some books and I started to “play” programming at Mac. He is also a programmer, so, it’s like a family tradition. My first language was С++. When I started to write my first code I never stopped programming since I was 8.

When did you decide to go to university for a computer science?

I was working at the internet cafe as a waiter. And my boss wanted to create a “database“ for selling boats and yachts. So he asked me to help. That’s how I got to php. And in high school, I was working as a developer. I started my career without university.

Why did you move to Ruby on Rails?

I was doing PHP and Perl in a strict way. I loved OOP, try to have everything as an object with a little tiny API. And my friend from my company showed me Ruby on Rails. I was intrigued but found it was lacking structure. My friend was struggling to tell me where to put code, and why. I started to play with Rails 1.1 and Active Record, and I liked the language, so I started doing Ruby in my private project, but still was working with PHP for money.

So are you still working as an employer?

No, I run my own company for a couple of years now. Working full time on Trailblazer. At the same time, I do consulting at companies that use Trailblazer and help to solve architectural problems.  

What advice can you give on how to combine work for money and work for open source?

Do open source for couple of hours a day and don’t tell your manager! Ha-ha! It is important to work both for money and on problems that developers have, to support the community and to learn what are actual problems when writing code. Also, if your open source product is used at some companies, your services as a consultant might be in demand, so your OSS work pays back.

Why is your speech at the RailsClub 2017 conference called “Ruby’s dead”?

I have an official authorization from Matz to call Ruby a dead language. Just kidding. It’s more like a provocation. I always criticize Ruby and Rails, it’s nothing new. I like Ruby but I’m aware of other languages. I will show some others like Java and Php and I will show how they evolved and improved for last decade. But Ruby is basically what it was 20 years ago. It is a wake-up call. I want to stay at Ruby, but it has to evolve. Many people move to other languages because they wanna get a language that addresses their problems. My problem is how to build a stable, solid application. In Ruby, backward-compatibility makes it hard to introduce new features, like typing. Other languages manage to get that stuff done.

I will also talk about mruby in my presentation. It is very interesting, Matz is working on it right now. I think the main Ruby problem is how to write a stable app. It is impossible right now. I always get “method not found” exception. It’s a main error in production. I am excited about Matz’ plans for “duck inference” typing in Ruby. Typing is really helpful.

The other problem is lack of structure in Rails. You can write simple apps in two hours, but for a big app, it is not very suitable. It makes you happy in first 2 weeks, but then you start to be angry. Rails is great for a demonstration - in a one day a newbie can go home with thoughts like “cool, I’ve wrote an app”. But the problem is that if you want to write stable stuff you will not get far with Rails. Developers want to write easy and rock solid apps at the same time. And we don’t have such tools in Rails.

The main issue in OOP - too much functionality in an object. I don’t think an object has to have 300 methods. But in functional languages, you have to have a function for everything. This is better in my opinion. You don’t have problem with internal state. We have many problems with designing APIs due to this issue.

Why did you decide to visit us in Russia? What do you expect to see?

It’s my first time in Russia. I will get my visa on 31st of August, hopefully. A lot of cool people and a lot of cool speakers will be there at RailsClub. I also heard some stories about Russian afterparties! Also I would love to visit Saint Petersburg. I will stay at Russia for 1.5 week. Hope to get giant dose of inspiration!

Can you please tell me more about Trailblazer?

Funny fact - Russia has the biggest users base of Trailblazer. It’s a set of abstractions that can be used in frameworks like Rails or Hanami, and brings form objects, policies, and wiring all that together, to compose your business logic and the workflows.

At the moment, I work for a police project and 60% of a code is a control flow code. Trailblazer 2.1 introduces BPMN and workflows diagram and helps to take away control flow code from your applications. I will show you examples at the conference.

What is your forecast for Ruby/Ruby on Rails?

Mean question! In my opinion - Rails is dying. No new abstractions, no innovations for 10 years. There are enthusiasts who try to bring innovations, but most the core team are simply not interested. Rails is stuck. But I have hopes for Ruby - a lot of different implementations are coming out, JRuby for example, so i think Ruby won’t be dead for next 20-30 years. Innovation process still running. A lot of good things happening.

Unfortunately, you can’t say this about Rails. But there is a good thing about Rails - the more people use it, the more people find its disadvantages, and start using Trailblazer ha-ha. To sum it up: I’m more optimistic about Ruby than Rails.

Do you have a common set up gems to advice for a new project?

At Trailblazer, we use the Tamarama stack. It consists of

  • Sinatra for routing,
  • Trailblazer for business logic,
  • Sequel or Active Record for database
  • Cells for views

What do you think about the slowness of Ruby?

I know there are a lot of faster languages. But i think it’s not a problem. You can make it really fast, for example, with this Tamarama stack. Ruby is slow, but Rails is slower. I never have a performance problem, because I don’t use Rails! Additionally, recent Ruby versions are much faster.

What blogs or websites do you like?

I don’t read any blogs or news website on a regular basis, I live under a rock! Maybe I lose some valuable info, but also there are a lot of unnecessary information. Also, I got an advice - don’t trust everything that other people provide, trust yourself. And try to code simple. Don’t try to re-invent the wheel!

Can you recommend any programming books?

The only books I read about programming were Refactoring by Martin Fowler and TCP/IP Illustrated, Vol. 1. That was like 10 years ago. From TCP/IP I've learnt the basics of programming, layering and encapsulation, and I recommend it to everyone. Martin Fowler is like my Jesus, I have a picture of him on the wall.

How do you manage not to get burnout?

I have a good work/life balance. I focus on a lot of normal life - food, cooking, sports. Also, I work on something I love, every day. All this OSS work combined with consulting is great for me. I’m far away from burnout.

RailsClub conference on which we managed to communicate with Claudio will take place this year in Moscow 23th of September.

Get your ticket here.

N. Sutterer: "Ruby is dead. Long live Ruby!"

Creator of Trailblazer that introduces several new abstraction layers into Rails, Rails contributor and gem author, speaker at Railsclub
15 January 2018   299

Nick Sutterer at RailsClub 2017
Nick Sutterer at RailsClub 2017

Hello! Please, introduce yourself in few words.

My name is Nick Sutterer, I’m developing software for like 22-25 years and I work like a consultant of my open source project for different companies. Sometimes I give presentations at conferences.

Is it your first time in Russia, Moscow, RailsClub?

It is. Everything for a first time. I’m blown away!

How do you like it?

Great! It’s amazing! Since I arrived, people care about me, people take me out, people show me the city, people give me history lessons. It’s amazing. Great food. We go to places and have a drink. I go to hotel, sleep, and everything starts again. That’s amazing! I’m really enjoying it.

Can you tell us about your report in few keynotes?

My talk was about the lack of innovation in Ruby language and about innovations that is happening in frameworks, that use Ruby. I’m just showing what we have. I try to inspire people and Ruby core team to pick some ideas from other technologies and make Ruby even better.

Your talk is called “Ruby is dead”. If Ruby is dead, what’s alive?

Ruby is dead. Long live Ruby. I’m trying to be provocative with my talk. I’m still coding Ruby everyday, I’m still traveling to all conference because I still believe that Ruby is an amazing programming language. There’s languages, showing up recently. Elixir or Golang for example. They have completely different way. They deal with problems and they are way more innovative. But they are brand new. I, actually, don’t think that Ruby is dead.

What you don’t like in Ruby the most?

I hate that we keep thinking in really old way. We reject innovation. It is especially due to frameworks like Rails. I would love to the more development of Rails, with all it’s huge audience. Ruby is lacking a lot of features that a lot of other languages have, like pattern matching and method overloading. The problem is that sometimes I feel that we are behind the innovations that happen to other languages. Specifically features, that make other languages amazing. We don’t have them, and it’s very sad.

What is your way to improve Ruby?

Every time is meet Matz at conference, I tell him for few hours what should be done to improve Ruby. Without any providing any help. It’s all about innovations. I try to innovate in my own framework, Trailblazer. So we can put the way we write business code to new level. I try to inspire people with my library code they use new concepts in Ruby that never been there before. I think that helping them to write the applications.

How do you see the world of programming in 10 and 50 years? And will Ruby and Rails have place in this future?

I don’t think Rails will have place. I really love Rails community and people in Rails Core. But I don’t think that Rails will be a thing in 10 years. But I think Ruby will still be around. It all depends on what is going to happen with Ruby 3.0. When it will be released and what features will it bring. I think Ruby will still be there. But I can’t tell you what will happen in 50 years. Because in 50 years there won’t be a need to program anymore. We will probably just write diagrams on the air.

In your opinion, what technologies are the most hypest today?

Craft beer and coffee, haha! Everything that hipsters do! Now everything is switching from OOP to FP. We are trying to avoid to have unwanted side effects in order to not let users to screw up internal state. Functional programming makes it impossible to users to do stuff in wrong order, for example. Like problems that we have in Ruby. I see a lot of development in functional languages because they are also way easy to paralyze and they have a lot of advanced features.

What advice can you give to average programmer to stand out the crowd?

Important thing in IT is that you always need to play with new tools. Even if you are not a super programmer, you have to look at the community and check what’s going on. It is really important to keep moving. Otherwise, I see that my current job at the police is really slow. They using very outdated technologies. A lot of people are affected. It is non productive. It’s good because a lot of people are keeping their jobs . But it is important to adopt new technologies. I’m not saying be a coding hipster and change your framework everyday. But a lot of new things in last 10 years make sense. People should use it and not just sit there and enjoy excellent job. They can get fired tomorrow.

What makes you excited about your job?

That’s beautiful question. I think that idea of open source is that you expose code that you think is helpful and people will tell you that it really is. This is what keeps me programming. When I write something and I see that a lot of people use it and they say like “It is so much better that I used before!” It’s great! This is making my day. It’s all about what comes back. I also program my own stuff and sometimes I think: “Yes!” But mostly I like when something what I do is helpful to other people.

Do you have any plans on writing a book?

I have already wrote one book. Two years ago, it took like 16 months. I was writing and inventing at the same time. That was a huge mistake! I was keeping updating my book with changes in my library code. It was massive. I plan to write more books, because it was fun. It has to be with the right timing. I’m not gonna write a book about, for example, a new version of my framework now because it’s still changing. I’m not gonna make this mistake again. It’s so much work! Unbelievable.

Do you have any nightmares, related to you job?

I used to have those kind of dreams few years ago. Sometimes I still have them.You always imagine software as something visual. Brain just does that. My dreams about those thing and passing the objects. And it’s always the wrong object! It’s the only nightmare that I have. I was able to have good work\life balance. So I have very rare the bad sleep. Even if I don’t look like it.