Development tool availability and the rise of GNU/Linux

Development tool availability and the rise of GNU/Linux

The issue of open source languages and the availability of development tools is a thought process I was having the other day. One of the key tools in the GNU space is the GNU C compiler. Up until its availability on Unix (long before the Linux kernel came on the scene), developing on Unix was limited to whatever tools were made available by the Unix vendor.

Often a C compiler was part of the standard kit, along with tools like lex and yacc, partially to encourage development, but also because in the early days you were able to recompile your own kernel for your Unix machine, or at least parts of it, before configurable kernel parameters became the norm.

When Solaris 2 first came out, it didn’t come with a C compiler—quite a shock—and getting hold of a C compiler meant buying one from Sun or getting hold of the free GNU tools of gcc, gas and ld. It was no longer included as standard because one wasn’t technically needed to manage and administer the server.

Without gcc, many people would never have otherwise had the ability to write their own C/C++ applications, and that in turn could have had a significant effect of the availability of different software. The requirement to purchase an application to build software to deploy is essentially yet another barrier to entry that affects not only the ability to develop software, but also how your platform and environment are perceived. If it costs me $2000 to buy a machine and another $2000 to get the software that lets me build my own applications, that represents a significant investment.

So returning to my original thought, I was wondering how much of an effect development tool availability has had on the rise of applications in general. For example, Java is free to use (if not open source) and has been popular, but has it been more, or less popular than C/C++ development with gcc?

Java is getting popular because certain tools and environment are becoming popular. Eclipse, for example, is a great Java development environment, but it’s free availability and FOSS roots making it more popular as a solution compared to the proprietary Java environments?

If gcc had never been available, would we have the same proliferation and wide application availability that we have on Unix/Linux, just based on vendor-only tools?

I doubt it, but I’d be interested in what other people think.



David Sugar's picture

One thing I have long wished to see is a portable gui/rad tool that actually does run everywhere, but unlike, for example, Java (or Mono/Pnet), does not do so executing like a club footed elephant on anything less than a P4 with a gig of ram. The issue is not nessisarly one of portable bytecode, as I am not against native code generation, but rather consistent results on different platforms without rediculous runtime overhead. Nor do all bytecode systems need be large and clunky, as Python demonstrates. Perhaps paired with a good portable form design tool/forms architecture wrapped into a pretty IDE, Python could come closest today.

If we had "vendor only" tools, there would have been no GNU/Linux, no free'd xBSD's as we know them today, etc...Human creativity does not only happen exclusivily in a few thousand magical software farries residing inside castle walls, but can happen anywhere and everywhere. If the tools are not available freely, then the creativity may never get expressed, for the greater loss of all. Some of course wish to control human creativity, to make it very rare and scarce, and thereby profit on the backs of the few who they would permit the privilege of creating. Free software is part of the freedom to think, and a question of basic human dignity.

Terry Hancock's picture

The free availability of development and authoring tools is what makes free content possible. Free software authoring tools are a special kind of free content that amplifies free content. Free software software development tools are free content that amplify free content including themselves.

This self-amplifying capacity is the engine that powers the free software movement.

In order for free engineering, science, and art to see similar success, these amplifying tools need to be made available for all fields of human endeavor. The tools of creation should be the focus of new software development by people who are most interested in furthering free software and free culture.

Engineering tools in particular have the capacity to bring new fundamentally enabling hardware that we are unlikely to get from proprietary culture.

This is why I've argued for the creation of and/or use of existing free-licensed, networked, collaborative, CAD software. And I was really pleased to hear Richard Stallman list CAD specifically in his recent interview regarding the GPLv3 and future priorities for free software development.

Author information

Martin Brown's picture


Martin “MC” Brown is a member of the documentation team at MySQL and freelance writer. He has worked with Microsoft as an Subject Matter Expert (SME), is a featured blogger for ComputerWorld, a founding member of, Technical Director of and, and has written books on topics as diverse as Microsoft Certification, iMacs, and free software programming.