Anybody who's ever seen Full Metal Jacket will remember the U.S. Marine Corps Rifleman's Creed:
This my rifle. There are many like it but this one is mine. It is my life. I must master it as I must master my life. Without me my rifle is useless. Without my rifle, I am useless. I must fire my rifle true. I must fire straighter than the enemy who is trying to kill me.
But what most people don't know is that programmers live by a similar creed, albeit one that requires less courage:
This is my programming language. There are many like it, but this one is mine. It is my life. I must master it as I must master my life. Without me my language is useless. Without my language, I am useless. I must code my language true. I must code straighter than the enemy who is trying to take my job.
If you're a programmer, you're no stranger to the Language Wars.
And if you've done any time "in country" then you know what there's only one way to treat programmers of other languages: with poisonous rancor, sadistic undercutting, and general disdain.
Right?
Everybody knows that Visual Basic programmers are inferior, because Visual Basic for the longest time didn't support object-oriented programming, or many of the abstractions that first-rate programmers require.
Right?
Everybody knows that C++ programmers are dinosaurs, clinging to an outmoded development paradigm, pointing out the useless performance of their language in an era when hardware has made most performance concerns moot.
Right?
And as for PHP programmers... don't even get me started.
No matter who you are, or what language you program in: your stuff is better than the other guy's stuff. At least, that's the unspoken (or explicitly stated) assumption among many software developers, especially developers of the "guru" variety.
It's also an assumption which is guaranteed to make you a poor programmer.
I've remarked before that technology is really just a way to help people instantiate ideas in a concrete form, through the process of what I like to call "reality engineering". Every programming language ever invented is a means to that end, as is every screwdriver. So what do we achieve by religiously worshipping one particular programming language to the exclusion of all others?
We severely limit our options for the fluent and intuitive expression of our ideas.
In game terms, this would be like sitting down to a game of chess, across from a noted Grandmaster...

...and deciding, "Eh. I'm not going to use my Bishops. I don't like Bishops, my organization doesn't like Bishops, my fans don't like Bishops. Rooks are much stronger."
There are few technical decisions which are more important than the choice of language. It's not enough to choose Language X because your organization is a political advocate for Language X. It's not enough to choose Language X because that's what the head architect wants to use. Choosing the right language is so helpful, and choosing the wrong language is so expensive, that the decision has to be made on the basis of its technical merits alone. What's more: the choice of language has to be re-evaluated for every new project in your pipeline.
Otherwise you're costing yourself and your organization time and money.
15 comment(s)
I just stumbled upon your site, and really enjoy reading your work. I am fairly new as far as programming as a career (I graduated about a year ago). I completely agree with you about choosing a language to fit the needs of a project and not picking it just because.
Although to me it is somewhat difficult to compare languages. Where do you start? I am sure it is due to my inexperience in the field, but how would you do it? I would be interested to read a blog about how to choose the language that best suits the project at hand.
Thanks again for your blog!
Jacob on Friday, May 09, 2008Jacob -
The best advice I know of for that is simply to learn lots of languages. Ideally, lots of different languages, with different characteristics. (The way I've found useful for doing that is to read enough about the language to get a sense of what it's good for, pick a project that seems like a good fit, and write it with lots of looking at the man page while you do it.)
This also has other advantages, in expanding the ways that you think about how programs are structured. For a simple example, back when I was writing programs in Fortran 77 (which is the version of Fortran that actually deserves the bad reputation; later versions are vastly better), I remember writing a nice simple recursive routine for a key cornerstone of a program. Thing is, Fortran 77 doesn't actually support recursion, so I had to manually create a variable stack and so forth -- but, because I knew what recursion was and how it worked from writing programs in languages that did support it, it was pretty simple to map that into something that worked in Fortran 77. There are many, many other things like that, and the more you learn, the more you can do.
Brooks Moses on Saturday, May 10, 2008I love this post. It's so very true and something I've have already aligned my outlook with when it comes to programming. The more the merrier!
Jacob: I had an experience just yours when trying to come up with a good solution to formalizing the use of assertions in a language that didn't offer them. The point being, the more well-traveled a programmer you are, the more expressive and creative you can be in other environments where someone with less experience might be a bit more stifled.
Joel Spolsky also wrote to this end I think. I wish more people had this point of view, but honestly it really just comes down to how passionate people are when it comes to their craft. If a single programmer just really doesn't care that much about what they're doing, you can't expect them to just jump outside of their relative zone of comfort to find new learning experiences.
But if you find/meet those people, hold onto them in whatever capacity you can!
shawn on Sunday, May 25, 2008I'm not a fan of language wars, but one thing I dislike from those who spite language wars like myself is when they adamantly claim that a good developer with sound engineering principles can transition to any language quickly and write good code.
I don't disagree 100%, but these types tend to reduce similar languages (ex: all object-oriented languages) down to a lowest common denominator and their code ends up ignoring a lot of the rich features of the specific language, like when a C++ programmer ignores the power of coroutines in C#, or when a Java programmer ignores the power and simplicity of static polymorphism in C++ and the whole idea of separating algorithms from data structures, or when a C++ programmer ignores the power of introspection in Java.
That's not to say that sound engineering principles are not important, they are most important, but languages need to be taken individually and one needs to spent a great deal of time mastering that specific language.
I find this type of thinking particularly prominent in the object-oriented realm, especially by those who think that reading about design patterns will make them a good developer in any language that supports object-oriented programming.
Anonymous on Tuesday, October 21, 2008This is Joel Spolksy's post on language wars - interesting that he says choice of language isn't that important, and that if your head architect wants to use a certain language, then you probably should use it. http://www.joelonsoftware.com/items/2006/09/01.html
MarkJ on Tuesday, October 13, 2009Very nice article. Thanks fro this!
Fbf Scam
Jessica Connors on Friday, July 23, 2010PerformingGraham for sale that will create a one-wayswiss watches backlink to your website whichMaurice Lacroix watches is a good point to have. It is Patek Philippe watchesa time-consuming Tag Heuer for saleprocess even though it produces good outcomes U-boat for saleand works. You can also swiss watchespost comments on blogs alongMaurice Lacroix watches together with your link, but make sureGraham watches these blogs are do-follow, which dolce & gabbana handbagsindicates the link that youreplica coach handbags simply post will probably be replica handbagscounted by the search engines jimmy choo replicaas a backlink.There are many thingsversace replica handbags that contribute to online businessjuicy couture replica failure, and the lack of good action thomas wyldeis surely one of the deadliest business-killersdolce gabbana handbags on the net. Take action like by no means chloe handbags replicaprior to, and don’t get struck by analysis paralysisburberry replica. Your achievement lies in your rapid actionchanel replica and how well you apply numerous strategies.
replica watches on Saturday, July 24, 2010nike air jordan 2010 nike air jordan 5 nike air jordan 3 nike air jordan 11 cheap nike air jordan 2 nike air jordan 1 nike air jordan shoes discount nike air jordan shoes nike air jordan 6 wholesale nike air jordan 1 discount nike air jordan 6 nike air jordan 7 nike air jordan 8 top quality nike air jordan shoes 23 nike air jordan 21 nike air jordan 22 nike air jordan 6 rings cheap nike air jordan 22 nike air lebron james shoes nike air lebron james shoes nike air jordan 2010 nike air joredan lebron james nike air jordan 2009 discount nike air jordan 2009 nike lebron james wholesale nike air jordan 2010 cheap nike air jordan 2009 discount nike air jordan 19 cheap nike air jordan 3 discount nike air jordan 18 brand nike air jordan 12 wholesale nike air jordan 2 nike air jordan 13 nike air jordan 14 nike air jordan 6 rings discount jordan shoes7 discount jordan shoes1 jordan shoes2010 jordan shoes 6 rings cheap jordan shoes2 discountjordan shoes3 discount jordan shoes4 jordan shoes uk23 jordan shoes classic bw22 cheap jordan shoes 21 ltd discount jordan shoes20 discountjordan shoes19 jordan shoes 18 uk nike air jordan shoes 17 cheap nike air jordan shoes 16 discount air jordan shoes 15 discount air jordan shoes 14 nike air jordan shoes 3 uk nike air jordan shoes 13 cheap nike air jordan shoes 11 discount air jordan shoes 6 discount jordan shoes 10 nike air jordan shoes 8 nike air jordan shoes 7 cheap louis vuitton bags cheap kobe bryant shoes cheap lebron james shoes .
cheapjordan on Saturday, July 24, 2010I will keep visiting this blog very often. Blu ray ripper /
ipad converter on Sunday, July 25, 2010Louis vuitton Handbags - Instruments for professionals with Swiss chronograph ... Replica Louis vuitton online shop is a great ambassador of the brandname
What are the replica Louis vuitton handbags made from? Our Designer Replica Louis vuitton sale are made with highest quality monogram canvas with real oxidizing ...
A group of gorgeous gals hit up a luis vuitton outlet party hosted by Vanity Fair last night -- but who was the fairest of them all?
louisvuitton4 on Thursday, July 29, 2010Wholesale NFL Jerseys
Cheap NFL Jerseys
NFL Jerseys
NFL Football Jerseys
Women NFL Jerseys
Kid NFL Jerseys
Super Bowl Jerseys
Super Bowl NFL Jerseys
Throwback Jerseys
Throwback NFL Jerseys
Cheap Throwback Jerseys
Wholesale Throwback Jerseys
Cheap Super Bowl Jerseys
Wholesale Super Bowl Jerseys
youth nfl jerseys wholesale
youth nfl jerseys cheap
nfl youth jerseys
Baltimore Ravens Jerseys
Chicago Bears Jerseys
Cincinnati Bengals Jerseys
Denver Broncos Jerseys
Dallas Cowboys Jerseys
Green Bay Packers Jerseys
Indianapolis Colts Jerseys
Minnesota Vikings Jerseys
New England Patriots Jerseys
New Orleans Saints Jerseys
New York Jets Jerseys
Arizona Cardinals Jerseys
Buffalo Bills Jerseys
Atlanta Falcons Jerseys
Carolina Panthers Jerseys
Cleveland Browns Jerseys
Houston Texans Jerseys
Detroit Lions Jerseys
Jacksonville Jaguars Jerseys
Kansas City Chiefs Jerseys
Miami Dolphins Jerseys
New York Giants Jerseys
Philadelphia Eagles Jerseys
San Francisco 49ers Jerseys
Oakland Raiders Jerseys
Seattle Seahawks Jerseys
Pittsburgh Steelers Jerseys
St Louis Rams Jerseys
San Diego Chargers Jerseys
Tampa Bay Buccaneers Jerseys
Tennessee Titans Jerseys
Washington Redskins Jerseys
Ray Lewis Jerseys
Ed Reed Jerseys
Joe Flacco Jerseys
Terrell Suggs Jerseys
Dick Butkus Jerseys
Greg Olsen Jerseys
Matt Forte Jerseys
Devin Hester Jerseys
Walter Payton Jerseys
Brian Urlacher Jerseys
Lance Briggs Jerseys
Jay Cutler Jerseys
Carson Palmer Jerseys
Rey Maualuga Jerseys
Chad Johnson Jerseys
Demarcus Ware Jerseys
Jason Witten Jerseys
Terrell Owens Jerseys
Felix Jones Jerseys
Marion Barber Navy Jerseys
Marion Barber Jerseys
Emmitt Smith Jerseys
Miles Austin Jerseys
Roger Staubach Jerseys
Troy Aikman Jerseys
Tony Romo Jerseys
Eddie Royal Jerseys
Brandon Marshall Jerseys
Aaron Rodgers Jerseys
A.J. Hawk Jerseys
Donald Driver Jerseys
Greg Jennings Jerseys
Peyton Manning Jerseys
Dallas Clark Jerseys
Robert Mathis Jerseys
Marvin Harrison Jerseys
Drew Brees Jerseys
Marques Colston Jerseys
Pierre Thomas Jerseys
Reggie Bush Jerseys
Jeremy Shockey Jerseys
Tarvaris Jackson Jerseys
Adrian Peterson Jerseys
Jared Allen Jerseys
Mark Sanchez Jerseys
Thomas Jones Jerseys
Leon Washington Jerseys
Brett Favre Jerseys
buynflshop on Thursday, July 29, 2010Wholesale NFL Jerseys
Cheap NFL Jerseys
NFL Jerseys
NFL Football Jerseys
Women NFL Jerseys
Kid NFL Jerseys
Super Bowl Jerseys
Super Bowl NFL Jerseys
Throwback Jerseys
Throwback NFL Jerseys
Cheap Throwback Jerseys
Wholesale Throwback Jerseys
Cheap Super Bowl Jerseys
Wholesale Super Bowl Jerseys
youth nfl jerseys wholesale
youth nfl jerseys cheap
nfl youth jerseys
Baltimore Ravens Jerseys
Chicago Bears Jerseys
Cincinnati Bengals Jerseys
Denver Broncos Jerseys
Dallas Cowboys Jerseys
Green Bay Packers Jerseys
Indianapolis Colts Jerseys
Minnesota Vikings Jerseys
New England Patriots Jerseys
New Orleans Saints Jerseys
New York Jets Jerseys
Arizona Cardinals Jerseys
Buffalo Bills Jerseys
Atlanta Falcons Jerseys
Carolina Panthers Jerseys
Cleveland Browns Jerseys
Houston Texans Jerseys
Detroit Lions Jerseys
Jacksonville Jaguars Jerseys
Kansas City Chiefs Jerseys
Miami Dolphins Jerseys
New York Giants Jerseys
Philadelphia Eagles Jerseys
San Francisco 49ers Jerseys
Oakland Raiders Jerseys
Seattle Seahawks Jerseys
Pittsburgh Steelers Jerseys
St Louis Rams Jerseys
San Diego Chargers Jerseys
Tampa Bay Buccaneers Jerseys
Tennessee Titans Jerseys
Washington Redskins Jerseys
Ray Lewis Jerseys
Ed Reed Jerseys
Joe Flacco Jerseys
Terrell Suggs Jerseys
Dick Butkus Jerseys
Greg Olsen Jerseys
Matt Forte Jerseys
Devin Hester Jerseys
Walter Payton Jerseys
Brian Urlacher Jerseys
Lance Briggs Jerseys
Jay Cutler Jerseys
Carson Palmer Jerseys
Rey Maualuga Jerseys
Chad Johnson Jerseys
Demarcus Ware Jerseys
Jason Witten Jerseys
Terrell Owens Jerseys
Felix Jones Jerseys
Marion Barber Navy Jerseys
Marion Barber Jerseys
Emmitt Smith Jerseys
Miles Austin Jerseys
Roger Staubach Jerseys
Troy Aikman Jerseys
Tony Romo Jerseys
Eddie Royal Jerseys
Brandon Marshall Jerseys
Aaron Rodgers Jerseys
A.J. Hawk Jerseys
Donald Driver Jerseys
Greg Jennings Jerseys
Peyton Manning Jerseys
Dallas Clark Jerseys
Robert Mathis Jerseys
Marvin Harrison Jerseys
Drew Brees Jerseys
Marques Colston Jerseys
Pierre Thomas Jerseys
Reggie Bush Jerseys
Jeremy Shockey Jerseys
Tarvaris Jackson Jerseys
Adrian Peterson Jerseys
Jared Allen Jerseys
Mark Sanchez Jerseys
Thomas Jones Jerseys
Leon Washington Jerseys
Brett Favre Jerseys
buynflshop on Thursday, July 29, 2010Reviews and Articles on Top 10 Handbags Lists for Best Louis Vuitton,Louis Vuitton,Best Hermes.
We offer High Quality Louis Vuitton sale and wallets, 100% Genuine Leather, Free Shipping Worldwide, Wholesale price 30%
...
Hey i'm off to new york this year and thinking about getting a Louis Vuitton online store It really depends on
your budget. Since you don't like the speedy ...
louis vuitton on Thursday, July 29, 20102010 chanel handbags hot sale on buybury.com, you can discover all kinds of fashion chanel handbags in free shipping worldwide, and buybury.com provide chanel bags are all 70% discount, that attracted numerous chanel funs, and you can place an order for cheap chanel handbags will have the same discount. If you are looking for chanel handbags now, do not hesitate, chanel hobos on our site is really noble but cheaper. All chanel bags really are wonderful.
chanel handbags on Friday, July 30, 2010Want to get Ed hardy at home? No hesitation, get them at with big discount. We are promise you that all the ed hardy clothing are good in qualities. Meanwhile, buying ed hardy clothing online, that’s never a bad idea. By the way, whenever and wherever you need us, we will be there for you. Ed Hardy T-Shirts are waiting for you now, welcome you!
ed hardy on Friday, July 30, 2010