MS and Oracle's big dev tools - who needs 'em?
Viva Emacs and Vim
Fight the power
So, in a way, the command line helps as a check against too much corporate or political control over our computing infrastructure. You can keep up on the latest tools to maximize your efficiency or the maintainability of your code after you've left the project.
But given the fact that today's IDEs pack a fair amount of power, the right question becomes not one of asking whether to use an IDE but how to one most efficiently.
You have to pick and choose when to bring out the big hammer. Here are some tips. Make sure your build processes use command line tools so the IDE is an optional part of your software process. Avoid IDE wizards that generate lots of boilerplate code you or your customers will later have to maintain by hand. Focus on the processes and tools that minimize the time between a code change and test results. Make sure the commands to checkout a project, make a simple change, rebuild and redeploy are accessible without an IDE.
If you're not under corporate orders and can choose your IDE, the question then becomes should it be Visual Studio, Eclipse, NetBeans or IntelliJ?
Visual Studio may struggle to keep up with the fastest-growing platforms supported by competitors Apple and Google, but if you are writing Windows C++ code I can't imagine choosing anything else. For the rest, Eclipse seems like the front-runner - open, free and supported by lots of big companies, making it the safe choice.
Separate but equal?
Oracle vociferously maintains it will support the former Sun Microsystems NetBeans as a viable option going forward, but there's a ton of overlap with JDeveloper that will be difficult for a top-down company like Oracle to manage gracefully. For Java, I use IntelliJ primarily because it has the best Vim plug-in and for what I use is still better than Eclipse by most measures.
Eventually, the best features in modern IDEs will be available in ever more modular, standards-based, decoupled environments, ensuring we as individuals can continue working with the tools we like and keep from being shoehorned into a single suite.
It's just that big software has never been enthusiastic about making its products lightweight, more decoupled and simpler, so this innovation is unlikely to come from one of them. ®
Former Adobe Systems' principal scientist and lead architect Jeff Vroom has designed three declarative software platforms during his 20-plus years in the industry: Adobe's LiveCycle Data Services, ATG/Dynamo, and AVS. He now spends his time coding, consulting and blogging.