RailsClub'Moscow 2014: Interview with Bozhidar Batsov

    The countdown to the RailsClub conference is already running. We are getting closer to meeting, discussing technology news and just having a great time. It's not too late to drop into the penultimate car of our train :)

    Today we are publishing a conversation with the author of the “same” Ruby coding style guide and Ruby on Rails style guide , a guest of the upcoming conference Bozhidar Batsov .

    image

    What are you working on now?

    At work, I am engaged in a rather complicated social trading application. In my free time I mainly work on RuboCop and CIDER(Clojure IDE for Emacs). And I also have a bunch of other projects, if anyone is interested, you can look at github.com/bbatsov . Recently, I’m still working on a cool presentation for RailsClub.ru :-)

    On my day job I'm working on a reasonably complex social trading application. In my spare time I'm mostly working on RuboCop and CIDER (a Clojure IDE for Emacs). But I have a lot of side projects as well, that anyone interested can peruse at github.com/bbatsov
    These days I'm also working on a cool presentation for RailsClub.ru :-)

    What is the best and worst part of your work?

    The best parts:
    * I'm CTO :-)
    * I work with a bunch of cool technologies (RoR 4.1, node.js, redis, puppet, react, iOS, etc.).
    * I have amazing colleagues.
    * I'm working on a financial application, and I have always been interested in finance.

    Worst parts:
    * One has to deal with antediluvian services written by someone else.
    * Do Rails updates.
    * Face and deal with bugs in the source code of Node.js.


    Bests parts:
    * I'm the CTO :-)
    * I get to work with a lot of cool technologies (RoR 4.1, node.js, redis, puppet, react, iOS, etc)
    * I have awesome colleagues
    * I work on a financial app and I've always been interested in finance

    Worst parts:
    * Dealing with archaic 3rd party services
    * Doing Rails updates
    * Dealing with upstream node.js bugs

    What do you consider to be your main achievement in life / career at the moment?

    A few years ago, graduating from the Technical University of Sofia seemed to me a huge achievement :-)
    Seriously, I am really proud of everything I have done in Tradeo and in many open source projects in recent years. It seems to me that in our work the main achievement is always the last at this moment. As for open source, so far my main achievements are RuboCop and CIDER.

    Graduating from the Technical university of Sofia felt like an epic achievement few years back. :-)
    On a more serious note - I'm really proud of all the work I've done in Tradeo and on many open source projects in recent years.
    It seems to me that in our line of work your greatest achievement is always your last achievement.
    I guess on the open-source front I consider RuboCop and CIDER my most important work so far.

    In your opinion, in what direction will Ruby and Ruby on Rails develop in the coming years?

    I think that Ruby should free itself from the Rails fetters and explore new territories: mobile applications ( RubyMotion is pretty cool), desktop applications, system administration, etc. Although Ruby is now used for various interesting topics, for most people, Ruby is still synonymous with Rails, which is not very good. Diversity drives progress and innovation.
    As for Rails, I think the era of full-stack web frameworks is coming to an end thanks to the rise of mobile and client-side applications. It seems to me that Rails should at some stage abandon the presentation level and go towards the "rails-api" projects.

    I'm thinking that Ruby should break the Rails chains and explore new venues - mobile apps (RubyMotion is pretty cool), desktop apps, system administration, etc. While Ruby is used for all sorts of cool things today, for the majority of people Ruby is still synonymous with Rails, which is never a good thing. Diversity drives progress and innovation.
    As for Rails - I think that the era of the full-stack web frameworks is near its end (due to the rise of mobile and client-side apps). Seems to me that Rails should forgo the view layer at some point and go in a direction similar to that of the `rails-api` project.

    What, in your opinion, is the most important problem facing the community of developers of Ruby and Ruby on Rails now?

    Ruby has to be cool again. When Ruby became popular about a decade ago, it offered many advantages over the most relevant languages ​​then. However, lately it seems that the language is stagnating a bit, and all the cool guys are doing Clojure, Elixir, Haskell, Scala and so on. I am expecting Ruby 3.0 to try to answer this with a lot of new features (for example, working well with concurrency).

    Rails faces a similar problem: in a world that is rapidly moving toward client-side and mobile applications, the value of traditional web frameworks is declining. People increasingly prefer to use microservice architecture in their new applications, and Rails is not particularly suitable for this. The biggest problem that Rails needs to solve now is keep it up to date.

    Ruby has to rediscover its “cool” factor. When Ruby became popular about a decade ago it offered plenty of advantages over the most popular languages ​​back then. In recent years, however, it seems that the language has stagnated a bit and all the cool kids are now doing Clojure, Elixir, Haskell, Scala, etc. I'm expecting that Ruby 3.0 will try address this with plenty of new features (like proper concurrency).

    Rails faces a similar problem - in a world that's quickly moving to client-side web apps and mobile apps the value of traditional web frameworks decreases. People increasingly opt to base their new apps on microservice architectures and Rails is not particularly well suited for them. The biggest problem Rails has to solve right now is that it's still relevant.

    Is there a gem that you could point your finger at and say, “That's how you need to write code”?

    RuboCop :-) Other great code gems that come to my mind are transpec, rspec, parser, and sequel.

    RuboCop :-) Other gems with great code that come to mind are transpec, rspec, parser and sequel.

    Is a good coding style something constant or does it change over time? If changing, what factors influence these changes?

    The language and good programming practices evolve together. Although good practices are almost timeless (it is very doubtful that creating huge complex methods will ever be considered a good style), the introduction of new specific features can lead to a change in ideas about what is considered a good style (for example, the new Ruby hash literal syntax 1.9, the introduction of named arguments in version 2.0, etc.).

    A language and the good coding practices for it evolve together. While good practices are generally timeless (it's pretty doubtful that writing huge complex methods will ever be considered good style) the introduction of certain features might also introduce a shift in what's considered a good practice (eg the new hash literal syntax in Ruby 1.9, the introduction of keyword args in 2.0, etc).

    Do you read any Ruby / RoR blog?

    I do not follow any particular blog. I usually read those Ruby / Rails posts that fall into Ruby Weekly. I also listen to two great Ruby podcasts - Ruby 5 and Ruby Rogues.

    I don't follow any particular blog. The Ruby / Rails blog posts that I read are generally the ones that make it to Ruby Weekly. I also listen to two excellent Ruby podcasts - Ruby 5 and Ruby Rogues.

    What do you like to do when you don't write code?

    I always liked to drink beer with friends and watch football, watch movies, watch TV shows and read books. I'm also an avid gamer, and I play the guitar a bit. I guess I also have some healthy hobby, but right now I don’t remember anything like that :-)

    I've always loved drinking beers with my friends, watching football, watching movies / TV shows and reading novels. I'm also an avid gamer and I play some guitar. Guess I might have some healthy hobby as well, but I cannot think of it right now. :-)

    Thanks for the interview and see you in Moscow!

    You can communicate with Bozidar personally - on September 27, in the Digital October center. The entire program is on the RailsClub 2014 conference site .

    Registration and payment of participation - here.

    Our sponsors:

    General sponsor
    image
    Toptal is a distributed global exchange, which has already been joined by the most talented developers from around the world. Toptal was created by engineers.

    Gold sponsors: Boookmate and FunBox
    Silver sponsors: AT-Consulting and Lookatme
    HR partner: DigitalHR
    Organizers: Evrone and Undev

    Stay up to date with our newsletter by signing up for the newsletter on railsclub.ru and stay tuned:
    RailsClub.ru
    twitter.com/railsclub_en
    facebook.com/railsclub

    Also popular now: