Alcides Fonseca

40.197958, -8.408312

Towards headless IDEs

During my programming life I have used a lot of different editors and IDEs just like everyone else. I’ve started with Notepad. 4 years programming in black and white, but it was the only editor I had in every computer I used1. Then I was introduced to Visual Studio (VB6 at the time) and it was a really different world! Not as fancy as today’s VS, but pretty cool at the time, and the Winforms editor made me fall in love with Visual Studio.

My main work was web programming (yeah… PHP, sorry guys) and not desktop apps, so I start using Notepad++ that I still advocate as a wonderful editor for Windows. You can even make your own plugins in C++, just like João did.

After a while, I went back to using Visual Studio with the .NET platform, and it still rocked. I also gave a try to Eclipse for Java development, but Visual Studio was faster and more suitable for my taste. Still, the startup time and memory footprint could have been much better. And these IDEs only worked with staticly typed languages, with aren’t my favourite, so I sticked to notepad++ and other IDEs. Among those, I tried intype, a textmate clone for windows still in dev, editra which is my current editor for Python in windows, with project manager and svn/git support and obviously Textmate since I bought my mac. Oh, and yesterday I found out about Smultron.

So where I go next? Full-featured IDEs like Eclipse, Netbeans and Visual Studio have started to support dynamic languages like Python, Ruby, Javascript, etc… andplugins for editors are growing too.

So, there’s a new fashion today: headless IDEs as plugins for editors. Orestis Markou writes about this new trend and gives you some examples working right now.

As for me, I guess I’ll try emacs in a near future, just for the sake of having some experience with an hardcore editor. But I keep always in mind, that not everyone in the software industry should use one of those. IDEs exist for a reason. In a big software project, there are those who do the interface, others who only work with Databases, others who do the Network stuff, others who are Code Monkeys (sorry), and those who glue all of this together into a product. And they need to share information/code between then, and while one will see the UML view of the code, other would be viewing the GUI view instead. All of them using the same IDE.

1 I couldn’t install stuff in those computers, and we hadn’t the concept of portable apps, only msdos executables in floppy disks.