GNU/Linux terminal as Integrated Development Environment.

There are tons of IDEs to choose nowadays, but I never found in all the years I have been programing one that fits me more than the GNU/Linux command line.

Only in Gentoo GNU/Linux there are 19.107 packages available, a good amount of them are programs useful while writting code, like vim, rg, docker, screen, firefox, qemu, git, perl, rust, cargo, etc.

I found IDEs easy to missconfigure and easy to get lost in them while if you mess a config file is obvious to know where to find it again, a GNU/Linux IDE is easy to fix, faster and does not waste all the resources of my machine, this made of it the definitive (For now) integrated development environment for me.

Commons complains to this approach to software development setup are:

  • You won’t be able to track where a function is declared on a large project
    • I am able to do it using rg which supports regular expresions to find where something comes from, many people which use IDEs end using grep or rg anyway when they need something more powerful.
  • Debugging is harder since your setup will lack the debugging capabilities of for example eclipse.
    • Most programming languages come with a good way to debug using the command line, sometimes this kind of debugging can be more powerful than the GUI since it allows you to send a debug session to others so they can help you identify the error without they having to look the session while you do it, allowing a more asyncronous debugging collaboration. (If we finally go to Mars this may get very useful to someone.)
  • An IDE would analyze your syntax on real time to help you avoiding errors.
    • While lacking of that functionality you can write the code with the potential errors and then ask the compiler to check or compile your code and hunt the errors one peer one.

I am not saying you should stop developing on Eclipse or whatever IDE you use, I think everyone should use the tools that fit them the most, and for me GNU/Linux is the winner as development environment.

I think in this post is a mandatory reference to in this article I do not share from that article that command-line is not suitable for easy programming in Java since I have done it with no problem once learned how, but this introduced myself to the idea that I was in fact using a proper IDE while using the GNU/Linux command-line.