What It Takes to Achieve Mainstream

I've been following Questioning the Norm lately, after a colleague pointed me to it right before the holidays. The author, David Goemans, posts a nice blend of insightful articles and whimsical cartoons to keep things entertaining. (His recent depiction of how a certain distribution picks their color scheme was funny and dead-on... I forwarded it to that distro's community manager and he liked it, too.)

The most recent installment, though, hits really close to home: "Linux Development, is it ready for mainstream?" But rather than try to write a screed detailing how wrong Goemans is in his assertions, I have to admit that in several areas, he has strong points. Unfortunately.

Goemans' arguments are focused primarily on the tools Linux developers use. In this opinion, there are many deficiencies in the Linux development toolset, particularly when compared to other operating systems. His lead punch: packaging.

"Historically, Linux package management has been a nightmare, possibly even the main reason why it has not been desktop ready until 4 or 5 years ago. End users don't like to compile from source, and even intelligent users get baffled by build dependency issues."

Goemans is fair... he points out that this is an area where Linux is improving:

"Over the last few years, this has slowly changed, with amazing software systems(?) like zypper, yum and apt, and some really great abstraction layers like packagekit which may allow every Linux OS to share a single package manager ( if the user so wishes ). New services like Launchpad and SUSE Build Service allow developers to get their projects onto those platforms, in the available repositories, and while these tools are necessities, the step before getting your applications onto these services is still a fierce battle."

But Goemans does more than go after specific tools. His contention is not that individual tools are lacking, but that there seems to be a lack of a strong Linux development toolchain. In this, for now, I believe he has a good argument. There is no predominant IDE for Linux, because many Linux developers are still tied to using text editors to churn out their code. What IDEs that do exist are not very useful, he maintains, and not as robust as their commercial counterparts.

The fastest argument against this point is, naturally, that not all good code has to come from an IDE. And that is most certainly true. But Goemans is arguing that a lack of a good integrated toolchain that an IDE would provide is holding back new Linux developers from coming into the fold:

"I feel that more needs to be done to make development more accessible, so that more applications can be produced by new developers and so that companies who want to build cross platform software don't fear the Linux tool chains."

Is this the only hurdle to cross? No--we here at the Foundation also maintain that getting distros standardized will also lower the entry bar for incoming developers to create Linux apps. But I don't see our approaches as being at cross-purposes. Standardizing Linux would make it easier to build a strong IDE--and a strong IDE would go a long way towards developing apps for all of Linux.

Something we should examine in the days ahead.

0