Software developers use a lot of different tools and methods for their hacking. And by hacking, I mean real, good and legitimate hacking. Real coding for real purposes.
I thought I’d show you just some of the more popular tools and software applications that Linux software developers and hackers use.
When I first started dabbling with code and software development, I used nothing more than a text editor for all my work. But the more I got involved, I quickly began to understand why it is necessary to use a more advanced, focused and generally more suited tool for the job.
Emacs is every developers essential piece of software. And something that we just can’t live without. At first glance, Emacs can look like nothing more than just another text editor. But all its goodness and advanced usage are all hidden away in the menus. Emacs can literally be used for anything and all things development and code. It is whatever you want it to be. Heck, it even comes with a built in command-line shell, calculator and a few time-wasting games for when you need a break from all that coding.
There is a reason that Emacs has been around since the mid-1970’s and another reason it has reached version 23.4. It might be for the more advanced users out there, but if you’re still learning software development it might be worth checking out what Emacs is all about and what serious Linux developers use.
A popular alternative is the command-line driven vi, which has also been around since the mid-1970’s. But as I don’t use and know not much about vi, I’ll let you do your own research on it. A Google search will bring up plenty of information about vi.
If Emacs is not your personal preference, then you might feel a little more comfortable using an IDE like Geany. Geany is a simple and clean interface with provides a nice environment that makes you feel right at home and in control but without overwhelming the developer with features and functions.
Neat and handy features that you might find useful are the built in command-line shell environment and a scratch pad for all those little ideas you might have floating around in your brain.
Code::Blocks is of those software applications that remains popular among its loyal user-base, but for some odd reason not a lot of mainstream Linux distributions ship it in their repositories. It can be downloaded from the official home website but only Debian packages are provided. But a quick Google search for Code::Blocks and your distribution name might bring up some positive results.
Once installed, Code::Blocks’ interface might intimidate first-time users a little as the layout is a little more ‘messy’ in comparison to Geany and other applications. But its functions are great. A few notable features are the built-in scripting console, debugger and inside application compiler support. There a lot of stuff in Code::Blocks and it can all be configured to suit any sort of developers preferences.
Anjuta is a popular package and is usually found in most Linux distribution repositories. Anjuta is a little more on the simple side when it comes to IDE’s. Its interface is clean and lean. Anjuta acts sort of like a Project Manager for your development. Development language support may be a little more limited in comparison to the aforementioned packages, but what Anjuta does, it does well. I remember Anjuta was the first IDE that I started using many years ago.
The simpleness of Anjuta may not be for everyone, but simple is how some developers like it. So you may find it works for you. If not, there’s plenty of other options.
My final example is not what you might consider a package built for software development. In truth, it is not. It is built and designed for web development. But the reason I am adding it in to this article is because of its feature set that can be used in addition to other packages. ie. Emacs.
Personally, I use Emacs+Seamonkey together. I use split window Emacs and have Seamonkey open at the same time. Seamonkey handles your web browsing (built around Firefox and Gecko), includes an email client and also has a web development composer. Whilst coding and working on a project, I also like to keep a HTML development tree of my notes and progress, which is what I use in Seamonkey’s web development composer for. Once you get a work flow happening between all the different windows, it all comes together and you’ll find that you get things done in a much more efficient manner.
It does take time. And what works for one developer may not necessarily work for another. We all have different ideas of what is considered efficient work flow.
Of course, there’s a lot more tools readily available online. And there’s even some tools available that run directly through your browser and require no download and installation of any packages. They may be limited in their functionality and all, but it’s very interesting to see them in action.
Let us know what projects you’re currently working on and what tool(s) you use.