8 Raspberry Pi Tools That Fire Up Your Programming Skills
The Raspberry Pi has changed the world of embedded servers. Now, it's time to change the way you write software for the tiny powerhouse. Bonus: All the tools featured here are available for free.
![](https://eu-images.contentstack.com/v3/assets/blt69509c9116440be8/blt36a61aacf399dbb6/64cb499678a2bf5cb28af012/Working_RasPi.png?width=700&auto=webp&quality=80&disable=upscale)
What did we do before the Raspberry Pi? Remember those primitive, long-ago days when a Linux server required a computer larger than a deck of playing cards? Recall the pain of growing up in an era that didn't allow a student to save up for a Web server by hoarding milk money for a couple of weeks? How fortunate we are to live in a more enlightened, technologically gifted time.
Even with a Raspberry Pi in hand, though, you've got to write some software if you're going to do anything more than use it as your tiny anonymous file server. You can, if you wish, purchase an expensive commercial IDE to use in your RasPi programming, but that approach kind of goes against the spirit of the whole exercise. How much better, I think, to support an open source or free software project and keep your costs down at the same time?
Not all of these are IDEs, of course, and not all are open source. A couple of the tools I found even come from surprising places (Helloooo, Redmond!), but all will allow you to be more productive than most of us can be using vi and the rest of the basic Linux tool set. Yes, you can go in and prove your "mad skillz" by doing everything old-school, but as someone who has done his share of vi wrestling I'm not ashamed to say that I appreciate the productivity boost of modern tools.
[Want to know more about the Internet of Things? Read 10 Raspberry Pi Projects for Learning IoT.]
I'm curious, though: Who is actually working with Raspberry Pi systems? And why? Are you using them for one-off enterprise projects, product prototyping, or IoT education? Are you using them at work or at home? Or are you ignoring them altogether in favor of a different system? I'd like to know for a number of reasons, including that I'm going to keep looking at dev tools and I want to make sure I'm looking at tools that matter to our readers.
Take a look, let me know, and let's get the conversation started in the comments section below. In the meantime, I've got a Raspberry Pi Model B that's sitting on the bench looking at me in the most accusing manner ...
Eclipse starts, for most people, with an IDE optimized for Java programming, though there are similar IDEs available for C/C++ and PHP. If you're on a platform that doesn't encourage or allow installing a custom IDE, there are Web-based IDEs that let you build software and store elements in the cloud. With all of the IDE power, though, you're really only getting started in the world of Eclipse.
If you think of Eclipse as a virtual, online maker space, you're moving in the right direction. There are discussion groups, projects based on and around the Eclipse platform, and a marketplace for add-ins for the IDEs. You get the idea. If the community aspect of Raspberry Pi development is one of the qualities that keeps you coming back to the platform, you'll probably love Eclipse. If you prefer working in solitude, you might want to keep looking.
When you're working in C or C++, one of the challenging aspects is keeping track of dependencies -- those bits of code both inside and outside the main program that do so many of the useful things that need to be done. Paradoxically, the more modern and efficient your programming discipline, the more critical dependencies become.
Biicode manages those dependencies for you and does it in a way that can keep you walking on the good side of sane during complex projects. Biicode isn't a full IDE. It will happily coexist with other environments. It simply handles dependencies and the "make" stage of turning source code into a functional piece of software.
There are both free and paid versions of Biicode. If you want to use it to learn or work on personal projects, you can almost certainly make do with the free version. Commercial teams will want to pay for upgraded functionality. If you've never written a program that has to be compiled, you have no idea why this is important. If you have written such programs, you know precisely why a tool like this can help maintain your cool, happy demeanor through the project.
Adafruit is a big deal in the maker world of Raspberry Pi, Arduino, BeagleBone, and other embedded controllers. At a certain level it makes sense that they would develop an IDE, and the folks in Brooklyn have done it. The Adafruit Web IDE is designed to let you work directly on the Raspberry Pi -- writing and editing code in a Web interface, and then downloading the resulting code straight to your RasPi.
The Web design of the Adafruit system means that with a Raspberry Pi, a small display, a keyboard, and an Internet connection you can be writing code on a very small, very inexpensive system. The downside is that the Web IDE is still in beta, though the bug count seems to be going down by the day. For thousands of users this will be the only IDE they ever need to use. Even if it's not up to the rigors of full enterprise development, it can get you started in the right direction and become your perfect solution for tiny programming tasks.
What happens when you turn a few folks from Google loose on Raspberry Pi? You get Coder, a system that creates a Web-based programming environment on the Raspberry Pi -- an environment designed to make programming in HTML and Javascript fast and easy.
Coder is, at its heart, a learning system. Code is set up and stored in "projects." A number of projects that reside in a library are ready to be modified and completed by budding developers.
If you have employees who need to learn how to program Web applications for the Raspberry Pi (or, let's be honest, if you have kids who want to learn how to code), the Coder projects are a great way to start. Coder won't be the IDE for all your complex RasPi projects, but it might be the perfect first programming environment for your budding developers.
Because Raspberry Pis are so inexpensive, it can be easy to forget that there are times in the life of a project when you should explore the effects of software on something that is not itself a Raspberry Pi. Emulators are common in the realm of "big iron" and traditional embedded systems. It's possible that an emulator could be part of your Raspberry Pi development efforts, too.
VirtualBox is a virtualization system that allows OS virtualization, like any number of other virtualization systems. The difference is that Virtualbox is open source software, so people have done what they so often do with similar projects -- they've added functions like virtualizing a Raspberry Pi.
VirtualBox started life as an Oracle project, but it's now fully open source under GPL version 2.0. It's possible to create your own Raspberry Pi emulation -- or you could download one that has already been created by DBA Kevlar. I'd do that as my first emulation. After that, the sky's the limit.
Where VirtualBox emulates a Raspberry Pi at the software level, virtualizing the hardware of a Raspberry Pi falls to a different system -- QEMU. With QEMU you can emulate many different processors, from ARM up to S390. Why would you do something like that? Mainly because there are issues of timing and fine-grained function that simply can't be known from an operating system level -- you have to know how the hardware is going to respond to the code.
QEMU is an open source project that is freely available and seeking new contributors. Emulators are not the norm in Raspberry Pi development, but it's quite possible that they should be more prevalent than they are now. QEMU is a good place to start.
When you're developing code for any platform, there comes a time when you have to move that code around. FTP (and its relatives are the protocols. There are a number of different free and commercial options for clients to make the move happen. If you're working on a Windows platform for your development, then WinSCP is a free contender for the job.
WinSCP offers multiple interface options, multiple human language options, and the ability to work with a variety of transfer targets, from standard FTP clients to webdav repositories. You can donate money to the effort if you'd like, but no one even tries to make you feel particularly guilty if you want to only use the software. All together, it's a very solid package for a critical job.
-
About the Author(s)
You May Also Like