RailsClub 2016: Interview with Zach Briggs

    Yuhuu! The week before the RailsClub 2016 conference . All our guests (including Matza, yes) will fly to Moscow very soon. And we are preparing 600 packages of handouts, 600 lunch boxes with dinners, an uncountable amount of tea and coffee, muffins and pies, we are rehearsing reports with speakers in full.

    You can still catch the last car and take part in the main Ruby event of the year in Russia.

    You can buy a ticket and reserve a place in the hall on Railsclub.ru

    image Today we want to show you an interview with Zach Briggs, speaker of the upcoming conference.

    He is from Chicago, works at TableXI, gave presentations and workshops at RailsConf, CodeMash, Barcelona Ruby Conf, KalamazooX and many other conferences.

    Here are the theses of the upcoming report:

    JavaScript for Rails Devs

    JavaScript at the front end today is a swamp of bizvozdorov, bad abstractions and unreasonably complex tools. Fortunately for us, there are simple techniques that we can use in order not to disappear in this abyss and build a dynamic and modern interface that helps people solve problems.

    In the talk, Zach will show a technique with which you can embed JavaScript components inside pages that are rendered on the server to create islands of interactivity. It can be used on an existing system, adding only 20KB of archived JavaScript and a little common sense.

    We think it's worth knowing! Under the cut, Zach answers our questions about technology and life. As usual, we publish the answers in the original and our free translation.

    How did you get started on Ruby?

    I graduated from college in 2002, immediately after the collapse of the dotcoms, and could not find a job in the technology field. Because of this, in my career there has been a ten-year hook related to disassembling mail. First by hand; then using machines that sort mail; then the preparation of data that is printed in the mail; later creating prediction models for address selection. The first models I created were in Excel, then I started using static sql scripts when my models became so popular that I could no longer use Excel (120 GB of address data in only one of my tables). I chose Ruby and Rails because I needed to create reports on zip codes, in sql there are no loops like for i = 1; i <10 ... When I started learning Ruby, I was hooked, I quit my job in order to become a Ruby developer in 3 months.

    I graduated from college in 2002, right after the .com crash and I could not get a job in tech. This threw my career path on a 10 year long detour into sorting mail; first by hand then maintaining machines that sorted mail, then preparing the data that was printed on the mail, then producing predictive models to select addresses. The predictive models I made were produced first in Excel and then using static sql scripts once my models became so popular that I couldn't use Excel anymore. (120 gigabytes of address data in just a single one of my tables.) I picked up Ruby and Rails because I needed to produce reports by postal code and sql doesn't provide loops. Once I started learning Ruby, I got hooked and left my job to become a Ruby developer within 3 months.

    What are you working on now?

    My team at Table XI just launched thespicehouse.com . I am very proud of how we combined the traditional Rails application with small islands of interactivity. Now I am preparing a series of tutorials and posts to help people create beautiful, dynamic UIs using JavaScript no more than is necessary.

    My team at Table XI just launched www.thespicehouse.com . I'm very proud of how we blended a mostly traditional Rails app with little islands of interactivity. I'm now preparing a series of tutorials and blog posts to help people build beautiful, dynamic UIs without needed more JavaScript than what's strictly necessary.

    What is missing in Rails, in your opinion?

    All of 2014 I wrote in Clojure (Script), all of 2015 - in JavaScript, which used the JSON API from Golang services. In 2016, I returned to Rails after a two-year span, and I was happier than ever! Other stacks have Sinatra clones, but they rarely give developers such a good working experience like Rails. Let me say that I'm tired of doing database migration, XSS protection, link helpers, and asset manifest again and again. During these two years, outside the Rails ecosystem, I had the feeling that I was living without a toilet and hot water. But with all this, Rails needs support for tools that are already in use in the NPM ecosystem. Asset pipeline is difficult to use partially, and even harder to get rid of. The problem is that without Npm-based tools, a rail can’t just take and use CSS compilers, modules for ES6 and hot swap modules. If I worked for a grocery company, I would take the time to throw out Sprokets and replace them with Npm, but I do a dozen projects. Replacing the sprockets in each will require too much work.

    I spent 2014 writing Clojure (Script) and 2015 writing JavaScript that consumed a JSON API from Golang services. 2016 has been my year of returning to Rails after being away for two years, and I couldn't be happier. Other programming cultures have Sinatra clones but they rarely have a good Rails-like developer experience. Let me tell you, I am just about tired of re-solving database migrations, XSS protection, link helpers, and the asset manifest over and over again. I felt like I was living without toilets and hot water for those two years outside of the Rails ecosystem, so keep that in mind. That being said, Rails needs a means of leveraging the tooling that's made available to NPM. The asset pipeline is hard to use half way, and even harder to get rid of. The problem is, without Npm based tooling I as a frontend focused Rubyist am locked out of code eliminating CSS compilers, ES6 modules that walk the AST, and hot module reloading. If I worked at a product company, I would take the time to pull out Sprokets in favor of an Npm based workflow, but I'm the JavaScript practice lead of a consultancy with dozens of projects. Replacing Sprockets for each project would just be too labor intensive.

    Favorite programming language after Ruby, why it?

    In fact, lately I have been writing more in JavaScript than in Ruby, although at heart I consider myself a hacker. I would write Standard ML all day if it would please users.

    I actually write more JavaScript than Ruby these days, though I consider myself a Rubyist at heart. I would write Standard ML all day long if doing so would delight users.

    What technology, in your opinion, will be the most promising in the near future?

    Views, which can be rendered both on the server and on the client. For example, it is Meteor JS or React. I don’t think that one of these technologies will “win”, it’s hard to use them effectively on projects with limited budgets. But I'm sure that we are waiting for an omnipresent rendering.

    Views that can be rendered on the server or client. Think Meteor JS or React. I don't think either of those technologies will “win,” they're hard to use effectively on budget constrained projects, but ubiquitous rendering is coming, mark my words.

    What is Open Source for you?

    OSS is the only way to solve complex problems. Secrecy kills software innovation. OSS is the only way to solve hard problems. Secrecy kills software innovation.

    What was the last thing you learned from the world of web development?

    I try not to follow technology news. You will never see me on Reddit or Hacker News, because it takes too much time and takes up the energy that can be spent on in-depth study. I recently read about the history of Unix and the C language because I want to figure out how we got to where we are now. This book was published in 2003. It is not new, but I liked it!

    I try not to pay attention to developer news. You'll never find me on Reddit or Hacker News because it takes too much of my time and energy away from learning topics deeply. I've been reading about the history of Unix and the C programming language lately because I want to deeply understand how we got to where we are today. Here's the book, published in 2003.www.catb.org/esr/writings/taoup/html/index.html Not exactly news but I'm enjoying it!

    Favorite resources (blogs / sites / twitter) on the topics of web development and programming?

    I sometimes listen to the Shop Talk Show, in principle, that's all.

    I listen to the Shop Talk Show every once in a while, but that's about it.

    Last Read Programming / Technology Book?

    I just finished “21st Century C” and now I’ve taken up the “Art of Unix Programming”. I want to understand the story of how we came to what is now. I think it's time to learn C, which controls the languages ​​that I use.

    I just finished 21st Century C and am now working on The Art of Unix Programming. I want to understand the history of how we got here and it's just about time that I learned C, the language that runs the languages ​​I use.

    What advice would you give developers who want to succeed?

    Make sites. Plan 25% more time than usual for your work, and spend this time figuring out how to make it even better. Be suspicious of every line of code you write. Try to justify the use of every feature, every gem, every abstraction. At least a year to be a real TDD fanatic, and then half a year not to write tests at all. The most important thing is to fight for your users. You are the only one who will do this.

    Build websites. Take 25% longer to do your work than what you're comfortable with so long as you can invest that time in learning how to do it better. Be suspicious of every line of code you write. Try to justify pulling out every feature, every gem, and every darling abstraction. Spend at least one year as a TDD zealot, then spend 6 months writing no tests at all. Most importantly, fight for your users. You're the only one who will.

    Not tired of programming?

    We all get tired of the code. You must have hobbies that are not related to programming, and friends who do not know how to write code. Do not work too much. And when you understand how to do this - let me know? :)

    Getting tired of coding happens to all of us. Have hobbies that don't involve writing code and friends who don't know how to code. Don't work too much and when you figure out how to do that, let me know how it's done.

    What would you do if you had a couple of months of free paid time?

    I would create a series of high-quality screencasts or write a book about how I created Rails applications that are “enriched” with JavaScript.

    I would produce a series of high quality screencasts or write a book on how I build JavaScript enriched Rails apps.

    What do you generally expect from the conference?

    I have never been to Russia, so I want to see as many attractions as possible and meet as many wonderful people as possible. I also want to take the opportunity to personally thank Matz, because if Ruby weren’t so cool, I might not have been a developer today.

    I've never been to Russia before, so I'm looking forward to seeing as many sights as I can and meeting as many delightful humans as I may. I also want to take the opportunity to personally thank Matz because if Ruby wasn't this fun then I probably wouldn't be a programmer today.

    If you want to talk with Zach in person, there’s nowhere to put off a ticket purchase, the last places are left! Registration here , ticket price - 9000 rubles.

    Thanks to the companies that support the conference:

    General partner: Toptal
    Gold partners: Rambler & Co , AT-Consulting and Progress
    Silver partner: JetBrains
    Bronze partners: Gitlab , VoltMobi , Restrim , InSales and Seendex.
    Traditional Beer Affiliate Beer Partner - CloudCastle

    See you at RailsClub !

    Also popular now: