In the debate about programming languages, libraries, and platforms we focus too much on the technical details. What matters more, is the human community of people who create, maintain, and use the technologies. Every programming language we’d consider is Turing complete, and there is no shortage of tooling or frameworks for any important language. You can build pretty much any web app in any language and it would work. Culture matters. The difference between technologies and languages are their cultures. It defines the way the community structures itself, what it values, the origin myths, the way it collaborates, shares, and creates. With this talk I tried to tell the story of Ruby’s Culture. I also tried to inspire programmers to be active participants, to be creators – not consumers of their tools. Watch the Keynote Last October I had the priviledge of co-organizing the first Ruby Conf in Uruguay . My personal goal was to bridge worlds. There’s a great small hacker community in the region, but the larger community of programmers wasn’t paying attention. We could watch videos of other people’s conferences, but we were missing the hallway conversations. We wanted to have a great programmers conference where we could show off what we’d been doing, be inspired by others, and change the way software development is thought about in Rio de la Plata (Uruguay and Argentina). We hoped to have 75 people come, we had over 250 show up! As the date approached, we needed a keynote. We thought, Blaine Cook , he does a good talk, but he wanted to talk about federated social networks and web standards, it wasn’t quite right. Then Tim Bray said he could join us, he gives a great talk, too, but he’s working on Android these days. The other speakers who have the right energy all wanted to talk about deeply technical topics. Santiago Pastorino just joined Rails Core, and would be great but he wanted to do a very technical talk on meta programming. Eventually we decided that perhaps I should do the talk I wanted to hear. It was my first time giving a full length keynote talk. Focusing on technical subjects is an easier more constrained problem. Inspiring and telling a story is harder. The technology we create is not isolated and mechanical. It’s a reflection of the values, constraints, and aspirations of it’s creators. Free and Open Source technology is even more a community endeavor. We need to understand the history and culture of our creations. For once i’d like to acknowledge that the culture of technology is as important as it’s implementation. Broken implementations are easier to fix than broken cultures. In the last year, we’ve seen the node.js community move from a small technological core, to a full and robust environment. They build libraries, technology, but they managed the process through community organizing and collective values. It’s about rough consensus, running code, and a shared aesthetic. When you choose a technology, these values, the community and it’s culture are as important as performance and type system. The robustness of libraries are a reflection of the community’s work. Pick a healthy vibrant community where you feel comfortable.