The Top Ten Concepts for Linux Beginners – Number 8, Programming Language Support

Damn Small Linux can be an ideal platform for supporting a wide range of programming languages. You can even program directly from the command line via a programming shell such as Bash. Major programming languages used in this environment include C, C++, and Java. If you are developing for the Internet you may want to use PHP, a web programming language and MySQL, a language for database system development. All these programming languages are also available in the Windows environment. So the question arises, why would you want to program under Linux rather than under Windows?

Many web developers and Internet service providers feel that Linux provides a more stable web site environment than does Windows. The most widely used web server, Apache, is available under both these operating systems but its new features, security enhancements, and bug fixes always are made available first on the Open Source (LAMP) version. And then they filter down to the Windows version. At the time of this writing the Windows version of Apache has problems with its cryptographic functions.

While programming languages are essentially the same across these two operating systems, their libraries are quite different. Basically, when you write complicated programs you want to make use of as much prewritten software as possible to reduce your programming and debugging effort. One example is handling the graphical user interface. As programmers often say, why reinvent the wheel? Linux provides a wider choice of libraries and graphical user interface toolkits.

When you program in Linux it is often fairly easy to port your programs to the Windows environment. Unfortunately, the inverse is rarely true. Of course as Linux systems become more popular, you will find more and more Windows-based programming systems that enable you to convert your programs to run under Linux. To do so makes clear economic sense.

Program conversion tools may be fairly difficult to develop. For example, executing programs must access the actual computer hardware. As you may imagine Linux and Windows programs access hardware quite differently. The modules that manage hardware access are called drivers. Linux drivers tend to be of higher quality than Windows drivers.

These two operating systems differ substantially in the way they manage programs during their execution. In other articles we discussed Linux’s increased security compared to Windows. We conclude this article by repeating a point that we have often made; you can run Damn Small Linux and its associated applications on very reduced hardware. You can do Linux, PHP, and MySQL development on old computers, ones that may have seemed ready for the garbage heap. In contrast many Windows competitors such as SQL Server Developer Edition require substantially more powerful computers, the kind of computers that people purchase for one or a few thousand dollars. When your programs will be used by dozens of people simultaneously, you will need powerful hardware. Don’t forget the operating system; can you guess which one we recommend? Our next subject is the graphical user interface.