Admittedly, this process has taken me longer than the average gestation period for a hamster, a kangaroo, and an otter all put together, but the recent popular movement for tournaments has given this blog fresh life and also helped confirm my strengths as a local and national trendsetter.
Now that we have reached the semi-finals, a lot has already been said about our remaining contenders, C#, Python, Java, and C++. All of these languages are strong, object-oriented platforms, capable of creating a wide-array of applications. That being said, in true DMC / Medieval Times fashion, I still insist on a battle to the death.
I am going to name our first matchup the battle of the Dan’s. On one side, we have Dan Freve’s first true love, C# .Net, and on the other side, we have DMC alumnus Dan Aukes’ flavor of the week, Python. Both of these languages have a lot going for them, but one key area that we can differentiate is in the developer experience. Whether you love Microsoft or hate them, you can’t really argue that Visual Studio 2010 makes for quick, efficient programming in C#. Honestly, I get startled when writing code if I ever have to type more than 3 letters of each variable, property, or method that I want. This level of Intellisense, combined with strong typing and live error checking really help developers get into “the zone” when coding.
On the flip side, Python suffers from the fragmentation and division that so often plagues open platforms. On the Python wiki, there are well over a dozen different IDE’s listed, and, although I am sure I could research or employ trial and error to find the best one, this is something I wish was done for me. Now I am sure that several of the Python IDE’s are great, and I am encouraged to see features like code completion, but the ones I’ve worked with (admittedly a small sample) have forced me to manually look up method names, only check errors at compile time, and generally force you to write code like you are in a simple text editor. I’m sure a lot of this has to do with Python as a scripting language, but for application development, I’ll take our first finalist, C#, any day of the week.
Switching over to the National League championship, we run into 2 bastions of application development, C++ and Java. Both of these languages have been major drivers in programming during my lifetime. C++ has been the language of choice on anything from Windows, Office, and even Google Chrome to the majority of video games across most platforms, and has even been used in many beefier microcontrollers.
What C++ has done for applications, Java, by many regards, has done for the web. Having been explicitly targeted at the internet from birth, Java has been the backbone of countless internet games, applications, and services/tools. When you throw in Android’s reliance on Java as well, it becomes pretty obvious that it is a force to be reckoned with. As Java has become more “open-source“, it is being used frequently on lightweight, embedded, Linux-based smart devices around our homes and workplaces. In fact, many Java tools, like Spring, Hibernate, and Tomcat, have become wildly popular solutions aiding rapid development, by solving common developer problems and have set the standard for cross-platform architectures. Given Java's wide usage and numerous applications, Java wins as expected and moves to the final against C#.
View the Previous Round
On to the Finals!