dagblog.
← Archive

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

Medium version

Related articles

Related CZ Podcast episodes