Best Programming Languages for Linux Devs

Ask any knowledgeable developer to name the first programming language they would associate with Linux, and he or she would likely answer C, given the closely aligned history of Unix and C.

But in the 24 years since it first appeared, Linux has probably been home to every programming language known to humankind: Not just obvious languages such as C, C++, Python and Java but also C# (Mono), Fortran, Pascal, COBOL and Lisp and many more.

Check out the latest Linux jobs.

In a December 2014 survey, readers of Linux Journal placed Python at the top of their list of best programming languages (30.2 percent), followed by C++ (17.8 percent), C (16.7 percent), Perl (7.1 percent), and Java (6.9 percent). Those rankings have remained largely unchanged over the past few years—unsurprising, considering the Linux world is a rather conservative place. (One language rapidly moving up Linux Journal’s list is Google Go: It jumped from 1.8 percent in 2013 to 2.4 percent last year.)

Unlike Windows with its built-in GUI, Linux leverages whichever GUI toolkit you use (e.g., Ot, GTK+, wxWidgets) unless you limit yourself to terminal programming. Of course, not all Linux development requires a GUI: Think of servers or daemons, which are Linux’s equivalent of Windows services. So let’s look closer at each of Linux Journal’s top five languages in order to assess the strengths and weaknesses of each for Linux development.

Python and C++

Python just seems to get more and more popular, and is arguably the best general-purpose language currently around. It’s easy to learn, helped by having an interpreter (pypy) and compilers such as cpython, Jython (generates Java code) and others that take Python and produce il code (on .NET), or C, C++ or JavaScript.

Developing AAA games and High Performance Computing (HPC) is where Python hasn’t done so well. C++ currently dominates those spaces, with Python having notably little impact on mobile development other than in open-source. I’m not sure we’ll ever see AAA games development switch to Python but it’s certainly making inroads into the HPC arena. (I like C++ but attaining expert programming knowledge in it seems to require being a full-time developer; compare that to Python, which can be picked up by young children.)


C is as close to the metal programming as you’ll ever get unless you code in assembler; Linus Torvalds lists this closeness as a reason why he likes it. It’s simple to learn, and once you master pointers, you can do pretty much anything. However, you have to write a lot of code to do things that come standard in other languages; string handling in particular is tedious and error-prone. For low-level coding, C is hard to beat and there’s lots of software written in it (probably much more so on Linux, which is largely written in C).


For many years Perl—described by many developers as the “Swiss Army chainsaw” of scripting languages—was the language for sophisticated text processing scripts, and came installed on Linux/Unix like systems by default. It’s been around since 1987, with a massive install base to match: According to the ever-reliable Wikipedia, the Comprehensive Perl Archive Network (CPAN) carries over 140,776 modules, by more than 11,804 authors, and is mirrored worldwide at more than 250 locations.

Despite (or perhaps because of) Perl’s age, languages such as Python, PHP and Ruby have gradually come to replace it. But don’t expect it to go away anytime soon.


Linux has always seemed like the natural home for Java, at least with regard to server-side technology. The pattern of client-side Windows applications talking to Linux Java servers is a common one and very popular in enterprises. The Java JSP Web server technology hasn’t come close to PHP or ASP.NET in terms of adoption rates, but you can find (often expensive and resource-intensive) JSP Web hosting. Java powers many Internet game servers, most notably Minecraft.

Two other languages that work well on Linux are JavaScript and Go. After ten years of being lambasted for poor performance, JavaScript became seriously cool when popular websites such as Google Maps began to leverage it. JavaScript continued to improve; thanks to better engines, it’s now able to run graphically intense browser games.

If that wasn’t enough, JavaScript has emerged as a serious server-side language, with Node.js being one of the best-known frameworks.

Google Go

At less than five years old, Google Go has gained its share of admirers; Google, Dropbox and other companies use it for their respective internal systems. With an easy-to-learn C-like syntax, it compiles and executes programs very rapidly and makes writing concurrent code a lot easier than a multithreaded approach. It comes with an extensive standard library that’s complemented by many third-party libraries. Although it’s a general-purpose programming language, it’s strong as a systems language, and useful for implementing Web servers.


All programming languages are just tools to help solve programming problems, and the choice of which to use is often determined not by the languages’ strengths but completely unrelated factors such as available hardware, internal politics, previous experiences and the like. Linux hardware varies from simple, low-cost systems to million-dollar “Big Iron” mainframes… But irrespective of the cost, it will run any of these languages.

Upload Your ResumeEmployers want candidates like you. Upload your resume. Show them you’re awesome.

Image: Mclek/

12 Responses to “Best Programming Languages for Linux Devs”

  1. Suleiman A.N

    pls, i want you people to help me over there to List any five programming languages that are compatible with LINUX and UNIX.looking forward for your quick respond.thank you

  2. Rogers Byamukama

    I have been using Linux and it is really a good Platform to use, I would like you to help me with the knowledge of how I can apply the programming languages in Linux that enable me to create a software using text editor to have an app that can receive payments and make payments

  3. Y. Salmaklı

    BaCon is another option.
    A simple GUI code example:
    INCLUDE “hug.bac”
    window = WINDOW(“Merhaba dünya!”, 200, 200)

    It compiles your code with C compilers.

  4. I would suggest four more languages for programming in Linux :
    1) Lazarus + FreePascal : FreePascal is a Pascal compiler which is compatible with Borland Pascal. For the IDE you can use Lazarus which has been designed specifically for FreePascal. It is an object-oriented programming language. You can also created GUI programs. The IDE provides drag and drop design of windows. Lazarus and FreePascal are available for Windows and Linux.
    2) FreeBasic : It is a BASIC language compiler. It has come object-oriented features. There is no official IDE, but there are many free third-party IDEs available. FreeBasic is available for Windows and Linux.
    3) Gambas : It is also a BASIC compiler which is very similar to Visual Basic 6.0 which was the predecesor to VB.NET. It has an IDE which is also similar to VB 6.0. You can design GUI Forms by clicking and dragging components. Gambas is available for Linux but not for Windows.
    4) C# : The Mono Project has recreated the .NET framework for Linux. It has a C# compiler. The software compiled on Windows would run on Linux also in many cases except in respect of progams which called native (Windows) OS’s APIs. Winforms 2.0 has also been implemented which enables this. There is an IDE named MonoDevelop which can be used to created and compile code. However, MonoDevelop has GUI designer only for GTK# and not for WinForms. Hence, WinForms has to done by coding it manually.