Software, the unsung hero

This column is from The MagPi issue 48. You can download a PDF of the full issue for free or subscribe to receive the print edition in your mailbox or the digital edition on your tablet. All proceeds from the print and digital editions help the Raspberry Pi Foundation achieve its charitable goals. The MagPi 48

As Raspberry Pi enthusiasts, we tend to focus a lot on hardware. When a new or updated board is released, it garners a lot of attention and excitement. On one hand, that’s sensible because Raspberry Pi is a leader in pushing the boundaries of affordable hardware. On the other hand, it tends to overshadow the fact that strong software support makes an enormous contribution to Raspberry Pi’s success in education, hobby, and industrial markets.

Because of that, I want to take the opportunity this month to highlight how important software is for Raspberry Pi. Whether you’re using our computer as a desktop replacement, a project platform, or a learning tool, you depend on an enormous amount of software built on top of the hardware. From the foundation of the Linux kernel, all the way up to the graphical user interface of the application you’re using, you rely on the work of many people who have spent countless hours designing, developing, and testing software.

clean_desktop

The look and feel of the desktop environment in Raspbian serves as a good signal of the progress being made to the software made specifically for Raspberry Pi. I encourage you to compare the early versions of Raspbian’s desktop environment to what you get when you download Raspbian today. Many little tweaks are made with each release, and they’ve really built up to make a huge difference in the user experience.

Skin deep

And keep in mind that’s only considering the desktop interface of Raspbian. The improvements to the operating system under the hood go well beyond what you might notice on screen. For Raspberry Pi, there’s been updates for firmware, more functionality, and improved hardware drivers. All of this is in addition to the ongoing improvements to the Linux kernel for all supported platforms.

For those of us who are hobbyists, we have access to so many code libraries contributed by developers, so that we can create things easily with Raspberry Pi in a ton of different programming languages. As you probably know, the power of Raspberry Pi lies in its GPIO pins which make it perfect for physical computing projects, much like the ones you find in the pages of The MagPi. New Python libraries like GPIO Zero make it even easier than ever to explore physical computing. What used to take four lines of code is boiled down to just LED.blink(), for example.

etcher-500pxwide

Not all software that helps us was made to run on Raspberry Pi directly. Take, for instance, Etcher, a wonderful program from the team at Resin.io. Etcher is the easiest SD card flasher I have ever used, and takes a lot of guesswork out of flashing SD cards with Raspbian or any other operating system. Those of us who write tutorials are especially happy about this; since Etcher is cross-platform, you don’t need to have a separate set of instructions for people running Windows, Mac, and Linux. In addition, its well-designed graphical interface is a sight for sore eyes, especially for those of us who have been using command line tools for SD card flashing.

The list of amazing software that supports Raspberry Pi could go on for pages, but I only have limited space here. So I’ll leave you with my favourite point about Raspberry Pi’s strong software support. When you get a Raspberry Pi today and download Raspbian, you can rest assured that, because of the rapidly improving software support, it will only get better with age. You certainly can’t say that about everything you buy.