Archives

First off, I would like to start out this post by apologizing for using significantly more than my allotted month of time for this tournament. You might have noticed I subtly dropped the “March” piece from the title, but let’s be honest, intense, compiler-versus-compiler competition is entertaining no matter what time of year it is. I could probably find a way to tie this in with the Stanley Cup playoffs, but there is no way I’m writing up 7 game series for each of the remaining matchups. Nonetheless, we’ve learned a lot about each of our competitors, and I hope that you have found a team you can root for, even if your favorite didn’t make it to round 2.

Our first round 2 matchup features the odds on favorite C# taking on scrappy newcomer Ruby On Rails. This is a classic matchup of a solid all-around language in C# versus the highly specialized language of RoR. C# shows up in countless desktop applications, embedded and mobile devices on Windows CE, websites running ASP.Net or Silverlight, 3D games written in Microsoft XNA, and countless other areas (I’m not touching Windows Phone quite yet though.) In contrast, Rails is strictly a web development tool, which means that it is really great at creating cool sites quickly, but also means that it isn’t going to help you when you’re trying to make anything that lives outside of a browser. I like to look at languages like Rails as little booster shots to the arm of application development, meaning that they introduce new ideas and help enforce good architectures. C# itself was once the new kid on the block, but it is a true testament to its solid foundation to see how prevalent, poignant, and beloved C# has become 11 years later. I would like to thank Rails for adding to the conversation, but unfortunately for RoR, C# is clearly the more complete language.

Matchup 2, between C and python is another example of how diverse different language choices can be. Good-ole’ tried-and-true C is probably one of the most basic ancestors for many of the languages on this list. In most circumstances it will be darn near impossible to beat well written C code for efficiency or speed, especially when talking about the higher level languages left in this competition. That said however, as a developer, I think that most days I would gladly trade code execution speed for code development time, which is where python comes into play. You see, to write really good code that actually takes advantage of C’s efficiency can take significantly longer, especially when you realize that you don’t have object-oriented design, garbage collection, or many of the other tools that modern programmers rely on today. If I had to sum up python in 1 sentence, it would be that it helps you painlessly create readable code. Seeing as python is able to stay diverse enough to avoid becoming pigeon-holed like a Ruby On Rails, I’m making the selfish choice and (because Dan Aukes is my role-model and namesake) python wins in an upset.

I think that is about all the time I can spare today to compare and contrast, but be sure to catch up on old episodes if you’ve missed any and stay tuned for more to come…

Comments

Good choice Danny. Plus, since python comes with the ctypes module, you can have the best of both worlds! Create a c(or c++) dll, and write a little interface to expose its functionality to python, and there you go, you have the speed of compiled c programs, and the flexibility of using them in an object-oriented way. Some of the most popular packages in python (like numpy and scipy) do this to speed up calculations, or to link to popular, public-domain math and optimization libraries.