Coding
The one thing computers were designed for is coding. Everything else is just icing on the cake.
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!
Infos