We're All Writing the Same Code

Posted by Aaron West at 8:00 AM in Programming, Personal

The presenter was on stage and had gotten past the requisite introductions and background information. It seemed like he was nearing the part of his presentation described in the conference schedule and I was looking forward to what he had to say. Before getting to that, he took time to explain why he prefers programming in his language of choice. His first point was his language was incredibly dynamic. He didn't mean his language had a dynamic personality or anything like that. He meant he could do a ton of stuff in his language and it was pretty easy to do so. Continuing, he discussed how his language is best suited for rapid application development. Using his IDE (Integrated Development Environment) he could whip out code fast, code that created serious value and integrated with many other services. He talked about the tooling and the community, how everyone chipped in to increase the value of the language and what the language provided developers. He went on for a few more minutes speaking with great conviction about his love for his programming language of choice.

What language was this gentlemen referring to? Was it PHP? ColdFusion? Ruby? He wasn't talking about ColdFusion, but I'm not sure the actual language matters.

The event was called Enterprise LAMP and was held in Nashville, TN last weekend. It was an awesome event with speakers from all over the place including (but not limited to):

  • CIO of Red Hat Linux (Lee Congdon)
  • CEO of Zend Technologies (Andi Gutmans)
  • VP of Technology at (Bob Miller)
  • Lead Architect at (John Reuning)
  • CEO of PostgreSQL, Inc (Josh Berkus)
  • Senior Product Marketing Manager at MySQL (Jimmy Guerrero)

For me, the focus of the event was centered around relational and non-relational database systems. I thoroughly enjoyed the talks by Josh Berkus (PostgreSQL), Jimmy Guerrero (MySQL), and Barron Schwartz (MySQL XtraDB engine). While these talks were the highlight of my weekend I really walked away with a renewed understanding of Web/software developers and different languages.

We're all writing pretty much the same code that do the same things just in different languages.

We each feel our language of choice is best and perhaps it is best for the individual. But the world is much bigger than this. I didn't know many of the things Ruby and Ruby/Rails could do simply because I never looked into it. Likewise, I had a conversation with a Rails developer who was genuinely surprised I had been developing in ColdFusion for nine years. He acted as though it was quite odd to come across someone like me and perhaps in his inner circle that is true. After telling him about all the great things ColdFusion had to offer he sounded interested and maybe even impressed. We compared framework notes between ColdFusion and Ruby/Rails, we talked about ORM and IoC and at each juncture we each had a tool we were comfortable with that got the job done. It was almost as if each of us were creating a checklist of what the other persons language had and neither of us were leaving items unchecked.

What I knew all along and just never really bothered to think about, was this developer was no different from me. And in some ways this is quite sad. We are both very passionate about what language we choose to use and our decision was based on the same principles.

Think about it this way. Pretend you live in a neighborhood with houses lining both sides of the street. Between you and your neighbors is a chain link fence. You're often outside mowing the yard, playing with your kids or your dog (or both in my case), or washing your car. Your neighbor does the same things. You might wave here and there even if it's only when the mower is running so loud the other person won't dare start a conversation. This goes on for years and neither you nor your neighbor take the time to walk over to the fence and say: "Hey, I'm so and so. I see we do some of the same things, it's nice to meet you." Maybe that one exchange is the beginning of a lifelong friendship. Or in the least someone that'll let you borrow their mower when yours fails to start that morning you *must* get the lawn mowed.

My point in the this blog post is not that any particular programming language rocks or sucks. It's that we as people suck. We fail to connect to others. We fail all too often to step outside of our comfort zone and see what's out there. Sure programmers are introverts and it's hard to "man up" and go meet someone else but those who choose to do this anyway are better for it. They understand the choice of others better which in turn helps them understand their choice on a deeper level. As I spend more time navigating the world of business my viewpoints change. Some have changed dramatically since I began leading technical people versus just being someone technical. To me, the problems we solve as programmers, the decisions we make that impact business, and the people we meet along the way are infinitely more important than the technology itself.

If you're still reading this then perhaps some of what I'm writing resonates with you. I encourage you to interact with people you think are incredibly different than yourself. Ask them questions not so you can quickly submit a rebuttal, but so you can understand. I think you'll find your own inner circle isn't so special. You're not so different. You're writing the same code using the same tools. They just have different names.

Aaron West's Gravatar
About this post:

This entry was posted by Aaron West on November 16, 2009 at 8:00 AM. It was filed in the following categories: Programming, Personal. It has been viewed 5242 times and has 6 comments.

6 Responses to We're All Writing the Same Code

  1. But if we don't assume their technology or way of doing things is inferior, then what could we be prejudice about? Good post Aaron. What if all humanity were to take such an approach? You may say I'm a dreamer...

  2. Aaron, Bill Shelton (MXUnit creator) and I have been talking about this a fair amount lately. It's unfortunate that folks get so wrapped up in defending their technology from its detractors. I understand its necessity, but its frequency is disturbing. It starts to feel almost religious.

    One thing I personally have had trouble finding in my area -- the South-Central Pennsylvania / Baltimore area -- are technology groups that are either language-agnostic or otherwise polyglot. We used to have an Adobe UG, but that shuttered; There was a Flex UG for one meeting, and now that's gone. I'd really like to find groups where I can go and learn more about different technologies, not just the ones I use every day. Even if it were just a general "web dev" group.

    Recently, "Innovate Baltimore" has popped up, and I'll be checking that out.

    But I wonder... how do you go about finding groups of like-minded people, with "like minded" defined as people who are willing to step out of their islands and get interested in other technologies?

  3. Good post @Aaron. I'm trying to get back to being more of a generalist myself. I still code in CF everyday for a living but I use multiple database systems and try to read non CF tech articles as well. I've made friends with plenty of java and .net developers and I truly believe that we've got more in common than not, especially when it comes to overall goals.

  4. Thank you for your comments gentlemen. This was a fun post to write and something I feel every developer should at least think about.

  5. +1. I'm pretty lucky being in NYCin terms of activity.

    I co-manage the local groovy/grails usergroup, attend events, various agile usergroups, Domain Driven Design events and a Java usergroup on a semi-regular basis. I learn something from each one.

    I also love conferences like SPA in London, No Fluff Just Stuff, ooPSLA and Code Generation as they all bring people from very different languages together to discuss the issues we're all working on.

  6. Great post. It helps to have someone like you in Nashville who fosters community among developers (and even non-developers as this post implies). It's pretty easy for me to become a techno-hermit.