Research Booth Logo ResearchBooth.com

Helping you make informed decisions on important topics.

Content Navigation

  • Home
  • Browse Articles
  • Search All Articles

Site Information

  • About Us
  • Links
  • Feedback
  • License Agreement
  • Privacy Policy

Submit an Article

We are always looking for original content.

If you are a high quality writer then we may have work for you.

Submission Guidelines

Programming on Linux - What Open Source is For!

"Linux is just for programmers." used to be an accurate assumption, but that was back in the early 1990's. While Linux is no longer just for programmers, it is still the best choice for those wishing to learn software development. In fact, while the merits of Linux compared to other systems may still be open to debate in other areas, when it comes to having easy access to learning to code, Linux doesn't just outshine other systems - it completely makes other systems disappear! It has been said that learning to program on a proprietary system is like learning to dance while wearing a body cast - it's possible, but clumsy and difficult. Linux, being open source by nature, considers software development tools to be an essential part of the system, rather than something you have to buy separate for hundreds of dollars. Herein, a partial overview of the tools freely available on Linux systems:

gcc, g++ - the C and C++ language compilers. C and C++ are the most powerful compiled languages, and C is the mother tongue of Unix itself. While many do not recommend C for the beginner, I consider it so integral to programming itself that I will recommend beginners learn C, even if they never use it. I'll draw the line there at C++, which is just extended C.

Python - Interpreted language. Python has had huge success, and is included just about everywhere. Definitely recommended for the beginner, it is fast and easy to learn, but is capable of nearly anything you could ask for. python code is also extremely easy to read and re-use.

Perl - Python's less glamorous cousin. Perl has a wide following, but is much older and much grubbier than Python. It's philosophy is "there's more than one way to do it!" and that usually means about twenty ways to do everything. Perl looks like binary line noise.

Java - while GNU systems do have their own Java virtual machine, the support for cross-system code isn't what it could be. Java, itself not an open language, is there on GNU systems in case you just have to use it.

PHP - It runs the web! PHP is used mainly for a server-side scripting language, and indeed the majority of interactive tools for web designers are written in PHP. However, it also has a scripting engine on most Linux installs, so you can test-run code on your system before patching it into your server.

Ruby - Wildly popular with a small group, Ruby can best be described as an advanced Python. In fact, Python on steroids. Powerful, easy to learn, well suited to web scripting, and with a syntax from Mars.

Lisp - Nearly dead, but still common as the embedded language in the Emacs editor and command-line tools like CLisp. Touted by many as the only beautiful language, and powerful as anything, but extremely difficult to learn and with a syntax beyond Mars, approaching Neptune.

Tcl/tk - Ancient. One of the few government-developed languages, Tcl has an upside in that it is very easy to script a small windowed application, but scales up very poorly for anything beyond that.

Shell scripting - the Bash shell is number one. Bash and other shell languages are scriptable and in fact can be used as powerful languages in their own right, since they can automate interacting with any other program. Classified with shell scripting are some handy utilities, such as sed, awk, and yacc, which function as mini-languages on their own.

Libraries - you name it, Linux has it, although you may have to download what doesn't come with an install. Common libraries are the GTK+ GUI development set, the ncurses library for text-mode display, and the SDL library for graphics and gaming usage.

This list could never approach completeness in the scope of an article, but hopefully has given you some pointers. Documentation on everything is very easy to find. Good luck on your quest to master technology, and with any luck, maybe you'll be an open-source developer someday yourself!

Linking to this page is permitted. Copying the content is not.

Home | Feedback | License Agreement | Privacy Policy

Copyright © 2006, ResearchBooth.com | Part of the BlueSparks Network