I’m in a very interested age group when it comes to coding environments. When I was in school, all I needed was my trusty text editor (emacs at the time) and a compiler (javac or gcc). We did everything with this, and we were fast, efficient, and we knew the libraries inside and out. There were IDE’s out there, but we didn’t use them! Hell, we even made fun of the lower class men who seemed to think using Eclipse was a good idea! Children we used to call them. Similar to the generations old story of our parents having to walk uphill both ways in the winter to get to school. Us, we used to know everything and just do it without any help.
There comes a time though, when you start wondering “Hey, what am I missing out on?” Auto-completion, refactoring tools, interactive debugger, unit test execution and code coverage reports, etc. Hell, we all wrote scripts to make all of this happen, or installed (and spent many many hours configuring) plugins to our text editors (TextMate/Sublime Text – eek we’re going GUI!). But to have it all in one app where we don’t have to swap back and forth between? I had to see it to believe it. Sure Microsoft did something really great with their IDE’s, but I wasn’t doing Windows App development. Apple released Xcode (I do miss Project Builder and Interface Builder), but it was just too specialized to one particular platform. You can kind of use it in a more platform agnostic project, but you really feel like you’re missing out on those special features which really make those IDE’s shine.
Then I started working in large Java projects, and it was pretty much silly not to use an IDE. You’ve got files everywhere, with an insane number of packages. I’m not saying you can’t get your work done with a simple text editor and maven, but it’s really really slow! So we fired up Eclipse and went to work. Hey, it’s free! And has a lot of plugins I was interested in playing with. But it was really slow, and you start wondering how much time you’re really saving. There were other players on the market, but they were very specialized. Like Komodo! I was really interested in playing around with a Python specific IDE, even their open source text editor (Komodo Edit) was pretty decent, but I quickly abandoned that was was terrified to see how the IDE really performed with custom build systems. So I asked around, and damn near everyone told me to try IntelliJ. There’s a free Community Edition (Thank You!) we played around with, and we quickly fell in love! These guys knew what they were doing! IntelliJ was just an amazing platform, giving us everything Eclipse does, but more. And most importantly, they did it faster! So we got the company to expense some of the paid version and we went back to town! And we loved it!
Fast forward to today, I still use IntelliJ, and even their Community Edition of PyCharm (IntelliJ for Python, free of charge). This thing rocks! I haven’t used any of the super advanced stuff, mainly sticking to the text editor, project layout, refactoring tools, and unit test execution. When I started working on my own projects, I started checking out the features the paid version gives us. It pretty much sold me, so I was thinking, hey: let’s buy it! Scary though considering I’ve never really bought one before! Text editors sure (even that was weird at first), but I’m glad I did. No matter what you’re doing, IDE’s have come a long way, and are no longer reserved for the noobs, they’re practically mandatory on anything more than a scripting language.