[Navigation Bar]  
 
 

    

[OpenSUSE powered]
[BUSH powered]
[vi powered]
[XML] [RSS]
The Lone Coder
Reflections for the Unsung Linux Saviours
by Ken O. Burtch
 
 
[Lone Coder]

 The Ada Open Source Family Feud

The very nature of the open source process should rule Linux out of defense applications. The open source process violates every principle of security.

--Dan O'Dowd, Green Hills Software, 2004

This month was supposed to be the battle of the titans. Microsoft with its XBox 360 versus the new Sony Playstation 3 (PS3). This was low-quality HD-DVD versus high-quality Blu-Ray DVD. This was a dual core PowerPC chip against a true 9-way multiprocessor configuration. But most importantly, this was to be a battle between a Windows-based console game and one based on Linux.

The Playstation 2 used Linux as a development platform and Sony released a customized PS2 Linux kit (Wikipedia) (although it didn't give access to the development tools used by game companies.) While PS3 games are also developed using open source tools (Wikipedia), Sony quietly stopped mentioning Linux in their announcements. Yellow Dog Linux will be available separately for the PS3, allowing users to build PS3 clusters or run OpenOffice. Still, this was quite a blow to Linux supporters who were looking forward to the chance to demonstrate that Linux and open source no longer needed to be exiled to the back office.

This fight between the console giants reminded me of another battle--one between open source and the Ada language community.

To appreciate this issue, you have to understand the tangled history of GCC and GCC Ada.

Ada was a computer language designed to solve a problem. The U. S. military was spending billions trying to make systems written in different computer languages work together. Ada was an attempt to create a single, true "do anything" computer language with military-grade safety and reliability features. The original Ada, now called Ada 83, was a difficult and bureaucratic language, primarily because it lacked object oriented programming so programs tended to be monolithic and slow. The plan to use Ada as a standard platform was abandoned (History of the Ada Programming Language).

Ada was saved from the language graveyard by the Free Software Foundation. S. Tucker Taft oversaw the release of a new Ada 95 standard. Ada 95 fixed the flaws in the original design, including the lack of objects. In order to test the new language, they needed a compiler. So while the specs were being drawn up, students at New York University (NYU) began writing an open source compiler based on GCC to implement and test the prototype language. The modified version of GCC was called GNAT (the GNU NYU Ada Translator). GNAT was folded back into GCC 3 and is now a standard GCC language available on most versions of Linux (including Red Hat, SuSE and Debian). When the Ada 2005 standard was rolled out, GCC Ada showcased new features that rivaled the best Linux tools.

Although no longer mandated by the military, Ada is still used in scientific, real-time, high-reliability or million-plus line applications where other languages aren't up to the job. It's used by NASA, Boeing and financial institutions, amongst others (Wikipedia, ACM). With big money behind it, it is arguably the most complete development environment available for Linux, able to develop software in half the time of C (Big Online Book of Linux Ada Programming), while it remains completely integrated with GCC with access to most standard GCC features and libraries.

Open source played a key role in the rebirth of Ada.

Then things became strange.

Back around 1999, PegaSoft decided to try out GCC Ada for a project. I contacted Ada Core Technologies (ACT, who provide commercial support for GCC Ada) to get permission to photocopy the manuals. They recommended that we purchase commercial support. Although we didn't need it, we wanted to show appreciation and support. However, when ACT found out we were volunteers working on open source software, we were told that Linux had no future and our patronage was not appreciated.

The support license cost was not my concern, even though it was 16 times the rate of a comparable open source project, MySQL. What bothered me was the bad attitude. At first, I chalked up the rudeness towards good neighbours to the reputation of New York citizens. However, in 2004, as Linux and open source were seriously being considered by the U.S. government, Dan O'Dowd of Green Hills Software, another Ada company, released an official press release indicating that open source was a violation of U. S. national security. (A complete analysis can be found at Groklaw.) He also implied that Linux was more susceptible to worms and viruses than other products, although around that time there were less than 100 Linux viruses compared to more than 70,000 for closed-source Windows (Desktop Linux). This was far more than a blow at small-time companies or Green Hills' rival, ACT. This was a attack of fear, uncertainty and doubt (FUD) on open source and Linux.

Did I mention that at the time Green Hills had a Linux version of their compiler for sale?

Things between Ada and Linux became more muddled in 2006 over licensing issues. Originally, ACT released GNAT under their "GNAT Modified GPL" license: the modification was to extend GPL freedoms to generics (i.e. templates, a feature which C lacks so it wasn't covered in the original GPL license). This was done to guarantee that software developed under GCC Ada would be unaffected by the compiler's license, which is the intention behind GCC (as ACT CEO Robert Dewar pointed out in comp.lang.ada back in 1998). From what I've picked up off comp.lang.ada, ACT then abandoned their modified GPL for unknown reasons for GPL version 1 (not even the LGPL / Version 2 GCC uses). Some of their related libraries still had the old license, leading their customers to worry about license contamination: if they used GCC Ada, could they be sued by the Free Software Foundation? This has lead people to use terms like "GNAT GPL" and "GCC GNAT" depending on what the user's version of GCC Ada had for the license, confusing even professional Ada developers. The high-reliability software companies relying on Ada don't like this kind of legal uncertainty. [See Linux Cafe for Comments/Clarifications on this]

If you followed that, try the problem of recursive licenses. GCC Ada is written in Ada and must be built (bootstrapped) using another copy of GCC Ada. Depending on which version you use to build the second compiler, you run the risk of licensing tainting. That is, you use a compiler version that legally can only create software with a GPL license to produce a compiler that can create software under any license. So now which license is applicable?

Not to be left out, FreeBSD joined in the fray, announcing that they could no longer include GCC Ada with FreeBSD because GPL 1 was too restrictive for the FreeBSD license.

ACT could always say, "Serious projects should use our $10,000 supported compiler that avoids all that fear, uncertainty and doubt around GCC...that our policies created in the first place."

Get me an aspirin.

These small Ada companies and GCC are siblings playing in the same sandbox, but you'd never know it. While Ada companies have been spreading confusion and FUD, open source software and Linux have become a multi-billion dollar industry. Perhaps these companies want to look tough to their government clients, or have misguided ideas of academic elitism. But even the U. S. military has begun taking Linux seriously (Register, Defense Industry Daily, et al). Perhaps it's time for these vendors to wise up. They don't have to put money into open source, but they can at least leave their FUD at the door. There are many volunteers that made these companies possible who have never gotten a "thank you" from them. After all, it was open source that aided the refit and resurrection that turned modern Ada into a viable product.

While Ada companies play "Fedora" with open source developers (Lone Coder), alienating their fans and supporters, MySQL has become a major database company and commands a market-share that is 30% larger than old reliable Oracle (MySQL). And, as a result, both MySQL and the open source community benefit. The Ada companies, in comparison, have damaged their support network, their revenue and their reputation, and we are all diminished because of it.

Like GCC Ada, the Playstation 3 is also an example of superior technology. But Sony didn't stop there. The PS3 plays nice with Playstation 2 games. The PS3 plays nice with open source developers. The PS3 plays nice with game companies and retailers. Superior technology alone won't win the console war. But superior attitude might.

At the same time, many Linux developers don't know of Ada or the options it provides. And Ada companies seem to want to keep it that way. Can open source developers treat Ada for Linux as a serious option for development when commercial support is only available from companies who don't want their business?

The last laugh may belong to GCC. It has become the world's most-recognized and best-respected C compiler. And it did it by playing nice with everyone. If open source developers do latch on to GCC Ada, and begin maintaining the compiler separate from ACT, GCC Ada will likewise outstrip commercial GNAT into a superior product through many hands, friendly teamwork and a desire to create a better future. After all, that's what developing superior technology is all about.

Ada companies had better learn to play nice in the world's sandbox, or they may find that there is nobody left in their cold cathedral but themselves (Raymond).

November 15, 2006 

[Cafe] Talk back on the Linux Cafe

[RSS] Subscribe with RSS

Digg! Gotta Digg The Lone Coder

^ Back to the Top

Read More:  10 Common PHP Problems --> 

  • December - SparForte 1.3 Preview
  • November - Potato Chip Technology
  • August - Unit Tests : An Pound of Prevention?
  • July - What's that Bug? Common Niagara Critters
  • May - Spectacular Failures: Firefox 4 and LibreOffice
  • April - BYOD: The End of Silly IT Contracts?

Read More:  The Lone Coder Home Page --> 

Lone Coder RSS Feed [XML] [RSS]
Mark this page with a Firefox Live Bookmark or use Thurnderbird to see new articles as they are published!

 
     

« Truth Humility Communication Nobility Freedom Purity Excellence Right Support Courage Compassion Quality Honesty Trust Cooperation Challenge Education »
PegaSoft Canada - A Linux Association Since 1994