There’s No Such Thing as a “Pure” Programmer
David Heinemeier Hansson is a Danish programmer and the creator of the Ruby on Rails open source web development framework. He is also a partner with Jason Fried at the web-based software development firm 37signals. In 2005 he was given with the Hacker of the Year by Google and O'Reilly award for his creation of Ruby on Rails. He and Fried have also co-authored the New York Times bestseller "Rework," which reveals their secrets for boosting business productivity in the Internet age.
Question: Ruby on Rails lowers the technical expertise necessary to create a web application; is expertise becoming less critical?
David Heinemeier Hansson: I think Ruby on Rails absolutely lowers the bar in terms of what it takes to get a web application going. Some people see that as a negative thing. Like, “Oh, the barbarians are at the gate” or “We've got all of these unwashed masses flowing into our beautiful, pristine programming communities.” I've heard things a lot of times before. Visual Basic before that was chastised for bringing in sort of "unpure" programmers. I think it's bullshit. There is no such thing as the "pure" programmer, and I think that what's magic about the Ruby in Rails community is exactly that it attracts people from all different camps, that it attracts people who are not primarily programmers. I find that often the best ideas come from people who are not programmers, people who bring just an entirely different perspective on things.
In fact, being a newbie is such an important stage because that's where you question everything. When I first came to Ruby, I questioned everything. I was like, “Why doesn't this thing exist? Why is this hard? That's stupid. We should change that.” You have this sort of initial naïve approach to things that makes it impossible for you just to see what should be impossible. You just do.
If I had known in the beginning how much work it would have been to actually create Rails, I probably would never have started. I started because I just found one little thing that to my naive newbie sense seemed easy to do. I think it's really important that we keep this flow of new people, new blood, fresh blood coming into the community, and I also think it's wonderful that we're creating a larger group of people who can create applications. Trying to have protectionism is never a good idea. Trying to sort of set up, like there should only be these carefully trained programmers who are able to make programs... Bah. That's not how it should be. We should absolutely have programmers of all kinds. Some of these programmers will be new, and they won't know everything, and they'll create shitty programs. But you know what? Most of the time, a shitty program solves the problem. You don't need perfect programs all the time. There are so many problems in the world that the tiny group of pristine, white knight programmers just can't solve. They can't solve all of them; there's just not enough of them. So we need programmers of all levels to solve the programming problems of the world.
Question: How simple can things get in terms of programming?
David Heinemeier Hansson: So, for me it's really there's two angles to this. There is we can absolutely make things simpler. I think I made a lot of web development a lot simpler with Rails. But there is a natural physical limit where at the end programming is just choices. How should the program work? What should happen when you click this button? Those choices are ultimately what's the key to programming, and you can't get out of that, which is also why I think that sometimes it's a little bit of a pipe dream to think that there's going to be these magical new environments where somebody who knows nothing about programming will just be able to drag and drop a few things into a box, and then, voila!, you will have the most amazing program in the world. No. It's really not gonna happen like that because to have the most amazing program in the world, you need to care about a thousand decisions, and recording those thousand decisions takes a programming language.
So, there is a lower limit to how simple it can get, and that lower limit is, “Do you care about these decisions?” Once you... All the decisions you care about have to be codified somehow, and I don't know of any more effective way of doing that than with a great program language. So I'm not a big believer that at some point we're all going to create these wonderful applications. There will be a class of applications where you design a niche and say: okay, if I have to just slightly tailor some accounting software—yeah, there can be something simple for that. But if you want the freedom of expression to create any type of web applications today, you need a tool that's expressive enough to enable that, and that is a programming language. It doesn't get any simpler than that.
Recorded on July 22, 2010
Interviewed by Peter Hopkins
With applications like Ruby on Rails lowering the bar for creating web applications, some programmers may complain about "the unwashed masses" overrunning their "beautiful, pristine programming communities." Hansson thinks that attitude is "bullshit."
The surprising results come from a new GLAAD survey.
- The survey found that 18- to 34-year-old non-LGBTQ Americans reported feeling less comfortable around LGBTQ people in a variety of hypothetical situations.
- The attitudes of older non-LGBTQ Americans have remained basically constant over the past few years.
- Overall, about 80 percent of Americans support equal rights for LGBTQ people.
Controversial map names CEOs of 100 companies producing 71 percent of the world's greenhouse gas emissions.
- Just 100 companies produce 71 percent of the world's greenhouse gases.
- This map lists their names and locations, and their CEOs.
- The climate crisis may be too complex for these 100 people to solve, but naming and shaming them is a good start.
The more we learn about the microbiome, the more the pieces are fitting together.
- A new study from the University of Central Florida makes the case for the emerging connection of autism and the human microbiome.
- High levels of Propionic Acid (PPA), used in processed foods to extend shelf life, reduces neuronal development in fetal brains.
- While more research is needed, this is another step in fully understanding the consequences of poor nutrition.
SMARTER FASTER trademarks owned by The Big Think, Inc. All rights reserved.