Which Programming Language?

In the August 2000 issue of Linux Journal, L. Paul Bedard wrote a letter to the Editor looking for advice on selecting a programming language. Having programmed in Fortran and BASIC years ago, Paul wanted to program once more but in a newer language. The question was: which one should he use?
Annotated Bibliography

The C Programming Language, 3rd Edition, by Brian Kernighan and Dennis Ritchie (Prentice Hall)--originally written in 1978, this is the classic introduction to C by the language authors.

Learn C++ on the Macintosh, by Dave Mark (Addison-Wesley)--don't let the word "Macintosh" on the cover deter you. This is one of the best introductory descriptions of C++ I've come across. It assumes some prior knowledge of C. All of the programming examples will run on Linux. The same author has also written Learn Java on the Macintosh which I also highly recommended.

The C++ Programming Language (3rd edition), by Bjarne Stroustrup (Addison-Wesley)--the classic C++ text by the language author. You can't call yourself a C++ programmer unless you own this book. Also of interest, and by the same author, is The Design and Evolution of C++ (Addison-Wesley).

Java in a Nutshell, 3rd Edition, by David Flanagan (O'Reilly)--if you already know C and/or C++, then this book will get you up to speed with Java quickly. It also serves as a very handy quick reference to the language.

Learning Python, by Mark Lutz and David Ascher (O'Reilly)--a gentle introduction to all things Python. The ins and outs of OO are also covered in sufficient detail to provide a taste of this programming technology to newcomers.

Essential Python Reference, by David Beazley (New Riders)--a good review of the language features, and an excellent desktop reference.

Perl: A Programmer's Companion, by Nigel Chapman (Wiley)--when moving to Perl from another programming language, there is no better text (in my opinion) than this one. This is my favorite Perl book.

Programming Perl, 3rd Edition, by Larry Wall, Tom Christiansen and Jon Orwant (O'Reilly)--affectionately known as "The Camel", this classic reference to Perl (which has been recently revised) is a must-have for all serious Perl programmers.

Web Resources

http://www.gnu.org - the home of the GNU Project (and gcc).http://www.research.att.com/~bs/C++.html - Bjarne Stroustrup's homepage, the creator of C++.http://www.kdevelop.org - the official homepage for the KDE KDevelop IDEhttp://www.redhat.com/products/support/gnupro/ - the list of "professional" RedHat developer tools, including information on Source Navigatorhttp://glade.pn.org - the GTK+/Gnome Interface Builderhttp://java.sun.com - the official home of Java Technology, at Sun Microsystemshttp://www.python.org - the official website for the Python programming communityhttp://www.jpython.org - the JPython websitehttp://sourceforge.net/projects/jython - information on the Jython project, the successor to JPythonhttp://www.perl.com - Perl's home on the Internethttp://www.cpan.org - Perl's Comprehensive Perl Archive Network (CPAN)

Paul Barry (paul.barry@itcarlow.ie) lectures in Computer Networking at The Institute of Technology, Carlow in Ireland (http://www.itcarlow.ie). Since 1986 (and under various guises), he has been paid to program in COBOL, Fortran, Pascal, C and C++. Despite studying Java and Python in detail, his favorite programming language remains Perl.

______________________

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Nice

Gaurav's picture

this was all very good. came to know a lot from it ......but i wanted to know what about Lisp......where does it stand?...thank you.

Stick with one language

naxim's picture

Stick with one language until you learn it fully. Be it C# (C Sharp) because its community is growing faster compared to Visual Basic. It’s modern, and very much fun. You can do games, databases, applications with it. Go to http://www.microsoft.com/express/Downloads/#2008-Visual-CS and download free Download Visual C# 2008 Express Edition. Then go to http://www.homeandlearn.co.uk/csharp/csharp.html and start learning. The tutorial is very easy for fresh beginners. Stick with the tutorial until you finish whole. Learn topic by topic and never skip a single sentence. Never ever give up until you learn the language. After learning one language you will not ask this question. And after that learn C++ and/or python (it’s free) if you prefer to be a professional.

Hi Paul, I am looking to

William's picture

Hi Paul,

I am looking to write a Browser game and have been googling this question for a couple of days now. Although your article is not about games programming it is the clearest comparison of languages I have read so far. Thank you very much for your help. Will

Perfect

Riddlerman's picture

Just what I wanted to know.
I'm no developer, more into security and want to understand software developmend more.
This article made everything clear.

Gr8 article

Raj's picture

Gr8 article

which language?

S Barringer's picture

To the point article. Good article that answered the questions I had googled for exactly.

Excellent Articles

Bharat Modha's picture

I am a Software Developer on Windows Plantform, but now looking for details to develop software of Unix and Linux. This article has provide me good details.

Excellent Articles...

Thanks for your time and efforts...

Keep it up...

Bharat Modha

Which language should I learn for Linux programming.

Brijesh Kumar's picture

I am a Linux Administrator (a RHCE), want to move towards Linux programming.

I don't have programming background.

Could you please tell me which programming language I should start to learn to become a Linux programmer?

I want to know which language is mostly used in Linux programming.

Thanks in advance.

Brijesh Kumar

love it

eXius's picture

been looking around for such a descriptive and extensive round-about of different programming languages. so far i have a clearer view of the uses of C/C++. wish me luck =]

Thanks for your time and effort!

Take a look at REALbasic

Geoff Perlman's picture

REALbasic is a modern, object-oriented version of BASIC that compiles to native machine code for several platforms. You can write an application quickly (because it's also visual interface builder) and create fully native, compiled applications for Windows 98-XP, Linux, Mac OS X and Classic Mac OS.

REALbasic is very approachable for beginners (or those that haven't been programming for a while) and at the same time has the power experienced programmers need. You can get the job done quickly and compile for all the relevant platforms.

http://www.realbasic.com

Re: Which Programming Language?

Anonymous's picture

Perl and Python are also (like Java) compiled into an intermediate language (bytecode), which is then interpreted; they're not purely interpreted, like the original BASIC language was. Anyway, this is not a big secret, and it's disturbing that you would be writing an article comparing these languages and yet stunble on such a basic point.

YOURE A IDIOT

Anonymous's picture

Why must you attack the narrator on his points regarding the choice of programming language that includes details about python and perl?

Who gives a rat on whether python and perl pureley are interpreted like the original baisic program! The whole point the narrator was trying to establish is the general differences between all the available programming languages out there. I can say that the earth spins around, yet I can have a team of physicists prove me wrong in a multitude of ways. Bottom line, let us get the messege and not the syntax. He is obviously not getting paid to teach the differences!!!

Re: Which Programming Language?

barryp's picture

Nowadays, the distinction between compiled, interpreted and byte-coded is getting very blurry. But, you are right, I should have been clearer in my description. Thanks for pointing this out. -- Paul.

Re: Which Programming Language?

Mengucino's picture

Congratulations

thats a very nice article.

Thank you very much.

Re: Which Programming Language?

RGosling's picture

Just one language? Are you kidding? I haven't been able to write in JUST (name your favorite language here) since the 80's. Most of this depends on what you want to accomplish. If you're into eCommerce (like me) the list of languages used every day might include:

  • ASP
  • JavaScript
  • VB
  • Oracle PL/SQL
  • MS/Sybase Transact-SQL
  • Java
  • XML/XSL/XSLT

If you're doing more on the OpenSource area, just replace the VB with Python or Perl (or both) and go for JSP. The rest is about right.

Unless you're a hobbyist (or a professional student) most of what we choose is driven by economics: who or what will pay the rent? The list is also geared around the platform. In the late 80's and early 90's my list under UNIX was:

  • Progress (4thGL Database)
  • ANSI C
  • XBase (Fox, dBASE)
  • awk
  • sed
  • c-shell/Bourne shell scripts
  • perl

If you want to write device drivers, hack the kernel or do embeded code, C is a really good start.

Re: Which Programming Language?

jackdennon's picture

Here are a few data points for Paul and others who have ask what programming language to learn. In a recent Dr. Dobbs, Bjarne Stroustrup commented that most of the so-called C++ being written these days is really C.

Another data point: Richard M. Stallman and Linus Torvalds write C. Dabble with whatever language interests you, Paul, but learn C. And then learn how to tell the compiler to show you the machine code.

jdennon@seasurf.com

Webinar
One Click, Universal Protection: Implementing Centralized Security Policies on Linux Systems

As Linux continues to play an ever increasing role in corporate data centers and institutions, ensuring the integrity and protection of these systems must be a priority. With 60% of the world's websites and an increasing share of organization's mission-critical workloads running on Linux, failing to stop malware and other advanced threats on Linux can increasingly impact an organization's reputation and bottom line.

Learn More

Sponsored by Bit9

Webinar
Linux Backup and Recovery Webinar

Most companies incorporate backup procedures for critical data, which can be restored quickly if a loss occurs. However, fewer companies are prepared for catastrophic system failures, in which they lose all data, the entire operating system, applications, settings, patches and more, reducing their system(s) to “bare metal.” After all, before data can be restored to a system, there must be a system to restore it to.

In this one hour webinar, learn how to enhance your existing backup strategies for better disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible bare-metal recovery solution for UNIX and Linux systems.

Learn More

Sponsored by Storix