Curious about programming, but having trouble getting started because you’re confused about all those languages? This article will give you an overview of the most common desktop languages you’ll see in free software today.
You might call C the king of Linux programming languages. It’s the primary language used in the Linux kernel, in most of the GNU command-line utilities (programs like ls and grep) and in a lot of larger desktop applications like GIMP.
C++ is a later extension of C: It adds a lot of new features which make the language either easier to use, or more bloated and complicated, depending on whom you ask.
They’re both “compiled” languages, which means you need a “compiler” program (typically gcc) to translate your C or C++ program to machine language before you can run it. They also tend to lack modern features like string handling and memory management, which means they’re not the best choice for most first-time programmers.
If C and C++ aren’t good starting points, what is? It’s a matter of taste, but my first choice would be Python.
Python isn’t as low-level or as lightning-fast as C, but most of the time that’s really not very important. What is important is that Python has a very clean syntax that makes debugging easy.
Python has one oddity compared to most other languages: the spaces you add to indent each line are significant, and you have to be consistent in how many spaces you add. That sounds like it would make it fiddly and difficult, but in practice it ensures that even beginners write code that will be fairly easy to read a year from now. No other language does that.
Python also has a good set of standard libraries, so lots of tools you might need are already there, and the online documentation at python.org is very helpful.
What’s the bad news? Mainly that Python’s syntax is about to change. Right now, most distros offer either Python 2.5 or 2.6, but Python 3.0 has already been introduced and a number of things that used to work are now done differently. Most existing books and Web tutorials are still for Python 2, but it’s worth checking out the differences so you learn good habits.
Perl is another good choice. It’s much older than Python and fairly similar in power and speed. It has some significant advantages over Python. First, there’s an absolutely amazing collection of libraries, called the Comprehensive Perl Archive Network (CPAN). Virtually anything you can think of to write in Perl is probably already mostly written and available in CPAN. Second, there’s a very active Perl community so it’s easy to find a Perl guru if you need help, and there’s a wealth of books and online talks to aid your Perl adventures. Third, lots of software is already written in Perl (lots of examples to help you out).
The disadvantage? Perl syntax is much less clean — “There’s more than one way to do it” is the Perl programmer’s mantra — so reading other people’s Perl can be difficult. Sometimes even reading your own Perl is difficult. Non-Perl programmers refer to it as a “write-only language” and they’re only half joking.
Ruby is sort of an object-oriented Perl. It has a relatively clean syntax and is supported by an enthusiastic community. It’s most popular for Web servers in the “Ruby on Rails” framework, where it’s used instead of Java, but it’s increasingly showing up in Linux desktop applications as well. There’s a lot of good online Ruby documentation as well as books.
JavaScript has one big advantage: It runs in every modern browser. If you write a program in JavaScript, you can stick it on a Web site and share it with your friends around the world right away. Since it runs inside a Web page, you can write cool visual effects like moving images around, something that’s harder to do in a desktop language where you need to choose a graphics toolkit before you can even open a window.
However, running in a browser has disadvantages, too: No two browsers implement JavaScript the same way, and writing JavaScript that runs in all browsers is quite tricky. JavaScript is a great beginner language if you start by writing apps that only run in Firefox 3.
You may notice that I didn’t list Java or PHP. Why not? Because they’re primarily used to write software that runs Web servers. Java (which despite the name has nothing to do with JavaScript) is sometimes used to write desktop applications or cellphone games, but it’s relatively complex and I don’t recommend it as a first langauge. PHP is a little simpler, but it isn’t used much outside Web servers and for most beginning programmers, you’re better off with another language.
Article courtesy of Linux Planet.
Ethics and Artificial Intelligence: Driving Greater Equality
FEATURE | By James Maguire,
December 16, 2020
AI vs. Machine Learning vs. Deep Learning
FEATURE | By Cynthia Harvey,
December 11, 2020
Huawei’s AI Update: Things Are Moving Faster Than We Think
FEATURE | By Rob Enderle,
December 04, 2020
Keeping Machine Learning Algorithms Honest in the ‘Ethics-First’ Era
ARTIFICIAL INTELLIGENCE | By Guest Author,
November 18, 2020
Key Trends in Chatbots and RPA
FEATURE | By Guest Author,
November 10, 2020
FEATURE | By Samuel Greengard,
November 05, 2020
ARTIFICIAL INTELLIGENCE | By Guest Author,
November 02, 2020
How Intel’s Work With Autonomous Cars Could Redefine General Purpose AI
ARTIFICIAL INTELLIGENCE | By Rob Enderle,
October 29, 2020
Dell Technologies World: Weaving Together Human And Machine Interaction For AI And Robotics
ARTIFICIAL INTELLIGENCE | By Rob Enderle,
October 23, 2020
The Super Moderator, or How IBM Project Debater Could Save Social Media
FEATURE | By Rob Enderle,
October 16, 2020
FEATURE | By Cynthia Harvey,
October 07, 2020
ARTIFICIAL INTELLIGENCE | By Guest Author,
October 05, 2020
CIOs Discuss the Promise of AI and Data Science
FEATURE | By Guest Author,
September 25, 2020
Microsoft Is Building An AI Product That Could Predict The Future
FEATURE | By Rob Enderle,
September 25, 2020
Top 10 Machine Learning Companies 2021
FEATURE | By Cynthia Harvey,
September 22, 2020
NVIDIA and ARM: Massively Changing The AI Landscape
ARTIFICIAL INTELLIGENCE | By Rob Enderle,
September 18, 2020
Continuous Intelligence: Expert Discussion [Video and Podcast]
ARTIFICIAL INTELLIGENCE | By James Maguire,
September 14, 2020
Artificial Intelligence: Governance and Ethics [Video]
ARTIFICIAL INTELLIGENCE | By James Maguire,
September 13, 2020
IBM Watson At The US Open: Showcasing The Power Of A Mature Enterprise-Class AI
FEATURE | By Rob Enderle,
September 11, 2020
Artificial Intelligence: Perception vs. Reality
FEATURE | By James Maguire,
September 09, 2020
Datamation is the leading industry resource for B2B data professionals and technology buyers. Datamation's focus is on providing insight into the latest trends and innovation in AI, data security, big data, and more, along with in-depth product recommendations and comparisons. More than 1.7M users gain insight and guidance from Datamation every year.
Advertise with TechnologyAdvice on Datamation and our other data and technology-focused platforms.
Advertise with Us
Property of TechnologyAdvice.
© 2025 TechnologyAdvice. All Rights Reserved
Advertiser Disclosure: Some of the products that appear on this
site are from companies from which TechnologyAdvice receives
compensation. This compensation may impact how and where products
appear on this site including, for example, the order in which
they appear. TechnologyAdvice does not include all companies
or all types of products available in the marketplace.