We need powerful tools
Today I read in a discussion group I won’t name that visual designers don’t belong in IDEs because less experienced developers often misuse them. I think that view comes from a more general claim. Tools that hide a technology’s complexity are bad because they lead people to use the technology poorly. I disagree. To me it’s one of the great myths left over from the days of bad HTML editors. I’ll try to explain why.
Hiding the complexity of development is precisely why we use integrated development environments. If development were simple, we’d still be using a text editor and a command-line compiler. Today, development is shaped by constraints such as reuse and standardization. All of them aim to make development better and faster at the lowest possible cost.
That’s why today’s programs are woven through with abstractions and technologies that raise their complexity by orders of magnitude, making development more complex too. IDEs should help us keep that complexity manageable given what we know about the context. Experienced and inexperienced developers ask different things of an IDE. The IDE should let both work just as efficiently. A less experienced developer might benefit from wizards for specific jobs, such as adding a page, moving between pages or mapping an entity, or from visual editors. An experienced developer can get by with more general tools, such as a code editor.
An IDE should give neither approach priority over the other, especially out of fear that someone will misuse a technology. You can misuse it whether you work in a visual designer or write it by hand. Today’s IDEs have learned from the visual HTML editors of the turn of the millennium. They aim for efficiency and also give developers some guidance on using the technology properly.
Of course, things aren’t perfect. Java IDEs have noticeably different philosophies. NetBeans suits less experienced developers, while Eclipse and IntelliJ IDEA suit more experienced users. If we could combine all three, we’d have a powerful tool that could hide as much complexity as a developer’s experience called for.
Responses
Related articles
Related CZ Podcast episodes
- #261 · Leadership
On leading people and teams. · Czech audio
- #3 · Java 6 SE, Vývoj webových aplikací
Dagi and Filemon discuss Java 6 and web application frameworks. · Czech audio
- #1 · Vývojová prostředí v Javě
The first CZ Podcast episode looks at Java development environments. · Czech audio