Aaron Patterson: it won't be easy to support HTTP 2

According to the developer of Rails, the community can improve the HTTP work in Ruby web servers, and improving the streaming performance can be used as a launch pad for HTTP 2
08 June

Aaron Patterson

Aaron Patterson

Member of Ruby and Rails CoreTeam, top 1 Ruby contributor, Ruby Hero 2010. Speaker at RailsClub 2014.


Biggest Russian Ruby on Rails event

At RailsClub 2014 he had a speech about the future of Rack.

We had a chance to ask Aaron few questions after the speech.

What are you working on right now? 

Right now I'm working on a few things:

  • Speeding up view generation (including routing) in Rails;
  •  Speeding up tests in ActiveRecord by investigating parallel execution;
  • Working on Rack 2.0. 

What is the best and worst part of your job?

The best part is helping other developers, and of course deleting code. I think my favorite thing to do is delete code! The worst part is trying to figure out why some code is the way that it is. Working on Rails is sometimes hard because the codebase is old in some places, so it's difficult to track down where some code came from, or why a particular bit of code is the way it is.

What’s your main achievements at the moment?

I think my greatest achievement so far is the performance improvements I did on ActiveRecord (called AdequateRecord). It took me years to refactor the code to get to the point I could make this type of performance improvement. It feels good to work hard on something for so long and to see it actually ship. Also being able to make performance improvements without changing any user facing APIs makes me very happy.

On your opinion, how will Ruby and Ruby on Rails develop in the future? 

For Rails, I hope that we can improve the HTTP story in Ruby webservers. I want streaming responses to be a better supported, and use that as a launching pad for HTTP 2 support. As far as Ruby is concerned, I am excited to see improvements to Ruby's garbage collector. I think Ruby's long term future will be to add more concurrency constructs, maybe the actor pattern built in.

What’s the main problem which Ruby society faces at the moment?

On the far horizon for the Rails community, I think supporting HTTP 2 is very important and will be quite a challenge. We have lots of software that depends on HTTP 1.1, and I think it will be a challenge to upgrade.

What’s your favorite gem? 

I think minitest is a good example. It's small and easy to understand. But I have to say that no gem is perfect. Everything has some problems, you just might not see it yet!

What rules would you propose to establish for the successful development of the Ruby project with 250000 lines of code by many developers with very different skill levels?

I guess the best rule I could give would be to have good communication among the team. Other than that, stick to the SOLID design principles. I think they are good rules for new people to follow, and as you gain experience, you'll begin to understand when it's OK to break those rules.

Is there any chance that MRI will get rid of GIL in the nearest future?

Probably not in the near future, but I do think it will happen.

Do you read any Ruby\Rails blog? 

I usually read the ruby subreddit. Also I like listening to the Giant Robots podcast, but they don't really seem to talk about Giant Robots very often.

What do you like to do when not coding? 

Mostly cooking and playing video games. Mostly cooking though. I am curing my own bacon right now!

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

Get your ticket here.

A. Davidov: "I like when my work is helpful for people"

Software developer. Open source enthusiast, Hanami core, Ruby Hero 2016, speaker at RailsClub 2017
18 October

Anton Davidov
Anton Davidov at RailsClub 2017

Software developer. Open source enthusiast, Hanami core, Ruby Hero, speaker at RailsClub 2017

On the RailsClub 2017, we’ve managed to talk with Anton about his report, his job and future of programming.

What's your name? Where do you work, what do you do?

My name is Anton, I work at the American start-up. We are developing a healthcare application to help people in America buy and receive the right medicines. There are some issues with it in US. Unfortunately, we are not yet released, so I can not name the place where I work. But if you ask me about this in a month or two, I'll say. At work, we use full dry stack (dry web and rom), also we have several services on hanami.

How do you like RailsClub?

This is my fourth RailsClub. I am very happy to come every year, see many new faces, communicate with old friends, learn something new, discuss problems, and have fun.

Tell me about your report.

In my report I will motivate people not afraid to code in open source, because I believe that there are some problems in the community and by my report I want to try to solve them. This is absolutely not a technical report. Its main goal is motivation. I will be very happy if after today, at least one or two people will stop being afraid to make a mistake and do something. I will tell you about my mistakes and problems, about other people's mistakes. It is important for me to convey that the errors is normal.

What do you think are the most popular technologies?

If to speak in general - machine learning is still in hype, and people are trying to do something on it, at least in Russia. A lot of people talk about the blockchain, trying to mine Ether, buying farms for millions. And if we talk about programming and about Ruby in particular, this is an interesting question. We can say that the functional languages ​​are in hype, but it seems to me that this is far from being the case. There is a cult around functional languages, and people are just trying to be involved in it. Also, now it is a trend (like 10 years ago) the problem solutions. I mean - people have a problem that they are trying to solve it. That's the way dry, rom, hanami, trailblazer appeared; that's the way other programming languages like Crystal appeared.

How do you see the programming world in 10 and 50 years and is there a place for Rail and Ruby?

The world of programming in 10 years I see as my place of work in 10 years - I mean, I can't see it. But if I fantasize, I'd like to see something like cyberpunk from the novels "Neuromantic" when people directly connected to the computer through a neural interface with full immersion. I would like to see that people will go somewhere in this direction.

What advice would you give to an average programmer in order to stand out the crowd? 

The first advice - do not be afraid to talk about problems. People everywhere face problems, and in IT too. If a person tells about his problem and how he solved it, other people can get benefit from it. The second advice is to solve problems not only at work, but also in the community - to engage in open source, to do conferences, to speak and write good articles.

People in other spheres, for example, in aircraft building, feel great joy and enthusiasm after the end of the big project. What in your job brings such feelings?

This is a funny question for me, not even in terms of the question itself. While studying at the institute, I was practicing at an aircraft plant in the department of indestructible control. I've seen that atmosphere and people are not always happy when they make big planes. They usually have problems like that the spare part for a million rubles came with micro cracks and somehow it needs to be used, so as a result the aircraft does not fall apart.
I really like it when I get a good feedback. When my work was useful for someone. Then I feel the excitement. Speaking more broadly - all my work is aimed at getting a good feedback and solving people's problems.

Do you have nightmares related to work?

I have one nightmare related to my work - I start Rails coding again. Seriously, for almost a year I have not touched the Rails at all. And I grew a big beard and hair on my head, I began to sleep better.

Do you have plans for writing books?

Fortunately, no. I have dyslexia, it is difficult for me to write texts sometimes. The biggest thing that I have is a channel in a telegram where I write large messages by the standards of telegram channels. I had an idea to try to collect this all in a heap and make a huge collection or a reference book, there are many related topics. But in general, I do not see myself as a writer. At school, I had an assessment between 1 and 2 in Russian, so for me it's really difficult.

As far as I know, your report was last at Rails Club for few times already. Why is it so and how do you feel about it?

I was the last in 2015 and 2017. In 2015, I had a lightning talk, it just turned out to be the last of 3. This year I specifically asked to put me in the end. I will not have a technical report and I will be able to motivate someone. The idea is that people will get tired of listening to some complicated technical things and think with their heads for 8 hours in a row, it's like a working day. At the end of the day, people want some kind of show, and just my report will be that show. And, secondly, I would be pleased if people leave the conference with a feeling of excitement.