Coming to grips with programming in Ubuntu

Slashdot it! Delicious Share on Facebook Tweet! Digg!


The one thing computers were designed for is coding. Everything else is just icing on the cake.

Computers have become commodities, and many software providers would have you believe that they are also appliances – akin to your fridge, washing machine, or TV set – that can only run what they say can be run. The aim is to have you buy the hardware and the software (now craftily dubbed "apps") that goes with it and to discourage you from doing anything beyond the boundaries of said software.

It hasn't always been that way. During the 1980s and early 1990s, you had very little choice: If you wanted a specific program for your very specific hardware, you wrote it yourself – or you copied it from a magazine. Computer magazines from that era came with page after page of line-numbered code, often Basic, but sometimes even in hexadecimal machine code, that you typed into your Commodore, Spectrum, or MSX on your "dead frog" rubber keyboard. Whether you enjoyed it or not (and chances are that, if you had a microcomputer to start with, you did enjoy it), that stuff – the "coding" – rubbed off and you became adept at programming.

The good news is that, while other platforms have moved away from the concept of "computer as a user-programmable device" toward the idea of "computer as an appliance" (the shift from devices with a physical keyboard to tablets and smartphones is just a sign of that trend), Linux and, by extension, Ubuntu, very much encourage users to do their own thing. Linux distro maintainers go out of their way to provide IDEs, SDKs, compilers, and interpreters so you can get down to the business of adapting, creating, modding and, in general, creating your own software.

Although we have always had some section or another dedicated to programming in every issue [1] [2], we've never had a whole cover section devoted to coding. We could have gone with beginner tutorials, but we've been there and done that (see, e.g., our beginner guides to Python [3] [4]). So, we decided to go one step further.

For starters, we're introducing you to JavaScript. And, no, it's not the old, tacky 1990s JavaScript, but the JavaScript fit for Web 2.0, which blurs the border between online and offline applications. This JavaScript comes with the jQuery library; allows for quick, flexible, and cross-platform development; and is used, in conjunction with HTML and CSS, to create not only websites but widgets for desktop environments and apps for mobile devices.

Next, we'll show how to make full use of the multiple cores on your computer with Bash programs that use the GNU Parallel construct. GNU Parallel lets you easily speed up execution of CPU-intensive processes and distribute tasks over several processors, or even over several individual computers on your local network with minor changes to your existing Bash scripts.

Finally, we take a look at five excellent visual programming Integrated Development Environments (IDEs). These programs not only ease the learning curve for complex programming concepts, such as control structures, procedures, and object-oriented programming, but they are also excellent learning tools that both educators and first-time developers will appreciate. You can get really serious work done on most of them to boot!


  1. "From Shell Script to Compact Tool" by Goran Mladenovic, Ubuntu User 17, page 42.
  2. "Building Apps for the Ubuntu Phone" by Kristian Kissling, Ubuntu User 17, page 65.
  3. "Python Workshop: Part 1" by Mike Mueller, Ubuntu User 15, page 50.
  4. "Python Workshop: Part 2" by Mike Mueller, Ubuntu User 16, page 52.

Buy this article as PDF

Express-Checkout as PDF

Pages: 2

Price $0.99
(incl. VAT)

Buy Ubuntu User

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • 30 Issues of Ubuntu User

    This month we bring to you something special: an encyclopedic DVD with 3,000 pages of practical Ubuntu knowledge.

  • The Linux shell is your friend

    The shell may look like an old-fashioned bit of technology, only useful for the Linux hardcore programmers and system administrators, but knowing a few commands and how to link them together goes long way.

  • Making the most of Ubuntu's personal cloud service

    Ubuntu One is a service from Canonical that lets you access your documents, photos, music, and files everywhere, and it's in every version of Ubuntu. Instead of just "one weird trick" to get the most out of your Ubuntu One account, here's a bunch.

  • Linux software for your inner artist

    Whether you're into audio, video, print, or something else, many projects are available for Linux to help you develop your artistic creativity. In this issue, we cover a few projects that stand out.

  • Exploring the world with Ubuntu

    Just because you're a geek, that doesn't mean you can't enjoy going out into the open. Fortunately, Ubuntu can bring you the best of both the virtual and real worlds.