More on “Linux is an IDE”

In a previous post, I was ranting about the windows-based development environment at my day job, and by the end I said “Linux is an IDE”.

I didn’t actually come up with that: I took it from a comment on stackoverflow by dsm, on an answer to the question of IDEs on Linux

There are things in VS that are not obviously present in vim or emacs or whatever, like renaming across the entire project. That’s true; but that’s not the important thing in an IDE. It’s not always possible to implement anyway; I’ve only seen it for Java and C#, it’s not practical to implement for C++ or python. C++ is too hard to parse, while python is dynamic and attributes can be added/modified at run time, so no static analysis tool can provide a solid renaming functionality.

And Linux does have VS-like IDEs: NetBeans, Eclipse, KDevelop and QtCreator. They have a whole bunch of features that should make VS users feel less intimidated.

But that’s not the point, really.

A few days back I built firefox from source on an ubuntu virtual machine to try and isolate a bug we were experiencing.

It was a simple, 3-step process:

1- install the build dependencies 2- download the source 3- build

On windows, Step #1 would probably take hours of googling. Step 2 and 3 won’t be that hard, because in step 1 you would’ve had to download a whole bunch of linux tools :)

On ubuntu, step 1 is simply apt-get build-deb firefox This command installs all the build dependencies for firefox.

Step 2 is a simple Mercurial command to clone the repository, and step 3 is just “make” basically.

I went to the extra trouble of installing a virtual machine and installing ubuntu on it, just so that I wouldn’t have to deal with step #1 on a windows machine, because I’ve been there before, and I know it sucks.

My point is, linux is full of tools with a lot of features that are specifically developed to make programmers’ life easier.

There is a steep learning curve, but once you get it, your productivity will jump 10 folds.

Think of developing on windows as trying to type up a big document without knowing your way around the keyboard: you look for 2 seconds before finding each button!

While developing on linux is like typing the same document when you can touch-type.

Yes, it takes time to learn to type without looking at the keyboard, but it makes your life ridiculously easier.

Again, I didn’t exactly come up with this metaphore myself: it’s from the “OMG why do these crazy people use vim” article, (under micsonception #3).

Notes

  1. hasenj-dev posted this