Hampton Catlin is the creator of Sass, Haml, Wikipedia Mobile, Tritium, and Moovweb. He's also the author of the Pragmatic Guide to Sass and is the founder of the libsass project.
He's known for a relaxed, joking, self-deprecating style—mixed with very strong opinions, a dirty mouth, and a penchant for building technologies that break convention (successfully).
I got to chat with Hampton ahead of the upcoming All Things Open conference where he'll be speaking. Read more in this interview.
Tell us a bit about your background.
I'm probably best known as the inventor of Sass, a language for creating powerful CSS. I'm also the creator of the Haml markup language, and spent several years building and expanding m.wikipedia.org (Wikipedia mobile). Today, I'm the CTO at Moovweb, expanding our responsive delivery platform and helping to grow the company from seven to over 100. You can also follow me on Twitter.
From your work on Wikipedia mobile, should we suspect the coming end of the Desktop age?
You know, I get this question a lot. Personally, I don't think that there is anything antagonistic about the relationship between desktops, laptops, tablets, and mobile devices. They are all just pushing towards making us more connected, and there is a lot more shared innovation than not.
As far as the 'desktop age' being the only platform, that ended the moment Steve Jobs stepped on stage and introduced the iPhone. But, desktop machines are by no means passé. My work at Moovweb, and generally championing responsive delivery, is all about unifying web assets in a pragmatic and effective way. And definitely the past five years of my career has been responding to the new challenges that mobile brings, and bringing those lessons to the desktop too!
Is this Wikipedia Mobile opening the doors for an even greater community of Wikipedians to gather data and enrich it ?
For example, the Wikipedia Loves Monuments event will be a breeze now that we can add images by directly taking them with cell phone cameras and uploading them using the Wikipedia Mobile interface.
You know, I really hate that I never got to work on projects like that while I was at the Wikimedia Foundation. Brion Vibber was the CTO at the time I started there, and he really saw the mobile wave coming and tasked me with helping to create an awesome mobile application for Wikipedia.
I, however, first wanted to launch a mobile web version. I felt I could hit more devices, in more languages, faster, if I started with the web and then moved to the native applications. In the three years I was there I spent so much time trying to scale, both servers and languages, by simply focusing on reading that I never got time to really make the product interactive. Luckily, Tomasz Finc is the Director of Mobile now at the Foundation, and he's really bringing in these great interactive and additive mobile features. They are doing some really impressive work.
Share your experience working with Wikipedians.
Wikipedians are some of the hardest working, most idealistic, honest, friendly, and passionate people you could possibly work with. Anything I needed, a volunteer would happily help!
The only negative is that working at the Foundation means that you are under a bit of a microscope. I had to learn to be very careful about what I said, to ensure there was no ambiguity or possible misinterpretation. I learned that the hard way a couple of times! But, the sheer power and passion of Wikipedians made that small trade well worth it. Its great knowing thousands of people have your back when working on a project like that.
Sass enables us to create cleaner files than CSS does. Is it fair to say that Sass is to CSS what C++ is to C?
Ha! I'd rather think of it as Ruby or Python to C, but any such metaphor makes me blush. Sass started as one of those passion projects off of Haml. I was working with an incredibly talented designer and CSS developer—Anthony Watts—and I watched how hard he struggled to do the right thing with CSS. That is, to follow best practices and make great semantic markup; he really had to do a lot of tedious work. I then convinced Nathan Weizenbaum to build the interpreter for it at the RailsConf in 2007, and he's spent the last six years on the project. It's grown into something way crazier than I had ever expected. I thought it would be an obscure tool that me and my team would use and wouldn't ever get traction. I was very, very wrong.
What is responsive delivery?
Lots of companies are trying to do pure responsive web design websites with just media queries, and I've seen many of them struggling. A technique that works great for a new, small project is not the same thing that works for large existing web properties. It's extremely tough to delivery exactly the same HTML and design compelling experiences on all devices, with only CSS at your disposal.
Responsive delivery is a methodology of combining responsive web design techniques with server side components that enable front end engineers to radically change, design, customize, and expand the experiences independently of the backend team. At Moovweb, I've built a framework and platform that makes this very easy for large teams to build great web experiences for all different types of devices and upgrade existing web stacks to use the newest front end technologies without necessarily having to completely rewrite all the business logic.
For developers excited about getting into mobile, would you advise them to follow the web path?
Absolutely. I think today the web is more important than ever. It's the glue that holds everything together. Sure, native applications are great, they have always been interesting. But, the web has really matured over the course of my career. The fact you could build most applications in the browser now is something that would be totally unthinkable in the past.
Share some lessons you've learned from building Moovweb as a business around open source?
How can we help more open source developers to think in entrepreneurial terms?
Yeah, Moovweb is built with 100% open source applications and we sponsor a lot of open source projects. It's just part of how we run our business.
The idea for the platform came from my work at Wikimedia. I had thousands of lines of code to build the mobile site and so much code replication. I knew that if an organization like the Wikimedia Foundation with their excellent engineering culture had difficulty supporting many devices, I challenged myself on how to build a platform that would directly address those issues that I assumed other businesses were having. And, it turns out I was very, very correct.
Your work on Haml advocates the importance of beauty and elegance in coding. Is there such a thing as objective elegance in programming?
As I learned with Haml, beauty is in the eye of the beholder. People interpret Haml so many different ways, and typically those interpretations hinge on what people think my intention was when building it.
It's very interesting.
People vary wildly on what they think Haml is designed to maximize. As far as objective elegance, it's impossible. My ethos is always to strongly challenge the existing assumptions that seem universal and to build something that you can be proud of. Everything I have ever built has pissed someone off, and I'm very proud of that. Even Moovweb, though it has large institutional customers, takes a very contrarian view on many aspects. And, in my opinion, the only way to be very right is to be willing to be very wrong.
Are there too many web frameworks?
(We can barely keep track).
Ha! Oh man, too many frameworks? How about languages!
So, I couldn't help myself but make a new language. Someone should stop me! But yeah, there are a lot of web frameworks because there are a lot of opinionated people. The only way technology progresses is people making a lot of stuff, and some of it ends up being excellent. That's how we continue. So, I say, if you have a contrarian idea, do it!
Without giving too much away, tell us what we can expect from your All Things Open conference talk.
I'm going to be talking about how to build the right thing. I'm going to talk about some of my thoughts on product design, software, and how to know if you are on the right track with an idea or project. It's a really fun talk, I'm excited about it.