Dev tech battle No. 8: Hudson vs. Jenkins
The idea of continuous integration was a hack to automatically test and deploy all the new code committed to a repository. When it started to work well, people began to fight over its legacy.
On one side of the battle is Hudson, the branch that is officially part of the Eclipse Foundation and run by many of the people at Oracle who inherited the code from Sun. They bring top-notch, corporate attitude to building a stable, serious tool for enterprises. On the other side is Jenkins, the home of many of the original hackers who love to experiment. The Jenkins tree seems to evolve much faster with new versions appearing as often as every week.
The battle between Hudson and Jenkins is emblematic of a greater battle throughout the developer world, between a steadfast devotion to careful testing and stable code versus more rapidly evolving features, faster fixes for bugs, and greater input from the developer community at large.
Dev tech battle No. 9: MySQL vs. MariaDB
Speaking of battle lines drawn around Oracle-supported projects, let's not forget the MariaDB schism with MySQL.
When Oracle bought MySQL, open source fans were afraid of what might come from a company built on a powerful, proprietary tool. Their fears have largely been unfounded. But that hasn't stopped Monty Widenius, one of the founders of MySQL, from striking off on his own with a fork. MariaDB offers much of the same syntax and features as MySQL, but now it comes with a few new features and storage engines that run a bit faster, at least in the eyes of the MariaDB lovers.
Will the market choose the scrappy, new fork, or will it stick with the big, dominant code base that's served us so well over the years? Will the world choose a small, ragtag gang of innovators or a big, solid corporation devoted to stability?
Dev tech battle No. 10: Compiled vs. scripting
The distinction between compiled and scripted code isn't as distinct as it was before Just-In-Time compilers and optimizers, but it still matters to programmers. Do they want their code to be prodded, massaged, optimized, and translated into simple machine code? Or do they want a more casual approach where the computer interprets the code at runtime, sometimes allowing the code to modify itself?
Sign up for Computerworld eNewsletters.