The new Handcraft is here!

The modern IDE sucks

Here’s a screenshot of a modern IDE, the Eric Python IDE:

This screenshot is a great example of what’s wrong with IDEs today (here’s one of Eclipse or one of Visual Studio for comparison). Although it’s an extreme example, all the windows, buttons, icons, selections, lines of differently coloured text and other distractions hardly craft a focused workspace. In fact, what are integrated development environments even designed to do?

“IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces”

– Wikipedia’s article on IDEs

Yet, according to Wikipedia, “because an IDE is by its very nature a complicated piece of software, this high productivity only occurs after a lengthy learning process.” For the purpose of creating web-based prototypes, we think things can be different – simpler, more intuitive, and more integrated.

The same Wikipedia article mentions that an IDE “provides many features for authoring, modifying, [and] deploying software” and “increases developer productivity”. That sounds a lot like what a tool used to develop interactive prototypes should do.

The modern IDE sucks. We think designing in the browser allows you to get away from overly complicated IDEs with huge learning curves and arrive in a friendlier environment where productivity and ease of use are paramount. We’re working on a user interface for Quplo based around these ideas. Stay tuned.

In our follow-up post, How we redesigned our editor, we talk about exactly what kind of changes we want to bring to the IDE.


Ping RSS

  • Modern IDEs – or at least the examples you provide – are extremely malleable and extensible; their UI are as complex or simple as you make them.

    This is both a strength and a weakness. The assumption is that you’re going to spend a lot of time in an IDE, so it’s okay to have a learning curve. In return you can set it up to match your carefully crafted workflow and I think most experienced developers value this complexity over learnability. An IDE is a pro tool.

    On the other hand, in my experience current IDEs tend to steer you toward a cluttered workspace. I always end up spending time cleaning up my workspace. Closing open files and collapsing folders are very common tasks that don’t amount to meaningful work. That’s an interesting UX problem.

    One approach to solving UI complexity is to optimize for a smaller domain of problems and it sounds like that’s your goal. For that matter, the clause “for the purposes of creating web-based prototypes” deserves more emphasis.

    But I don’t think extensibility and an uncluttered UI are mutually exclusive. It’s just a difficult problem. It would be cool to see some fork of eclipse that optimizes for this aspect of productivity.

    by Ben Lenarts • Apr 22nd 2010 • 18:04

  • I agree. Of course our challenge is very different to writing an IDE that handles multiple programming languages. We’re doing exactly what you describe, which is building an IDE for a specific, limited scenario: creating interactive prototypes.

    However, modern IDEs still base themselves around certain concepts. Files, for instance. Working in files is cumbersome and forces you to worry about irrelevant stuff like your filesystem, which doesn’t have anything to do with your code. Or like you said, the ability to bring in different overlays, panels, windows and views that clutter your workspace. We think we’ve found a different approach (which we’ll definitely delineate in a forthcoming blog post) that works well as an alternative approach to how an IDE should treat those examples as well as others.

    I too think a fork of Eclipse or something like Visual Studio that prefers simplicity and minimalism over feature breadth or power would be interesting. But it wouldn’t meaningfully change the paradigm around which those IDEs are built. I think our editor can actually do that, simply because it’s not lifting all the weight of expectation that comes with a programmer’s tool box.

    Thanks for posting!

    by Rahul • Apr 23rd 2010 • 00:04

  • Hi Rahul,

    It am not sure I agree that IDEs focus around files or that files are a bad thing (files/folders is a very easy to get organization principle IMHO). I will be the last to say that files/folders the best for everything, but the concept is simple and powerful and deserves a place.

    If you click Ctrl+N in Eclipse you get a whole range of different types of things you can create. For example, you create classes, interfaces etc A lot of things however, tend to live in files, but you can also create different kinds of projects or other things that consist of multiple files (a GWT module for instance if you are using GWT).

    Eclipse can have different views on your project. For example. in the package explorer it shows packages rather than files. Resources can easily be found using Shift+Ctrl+N (see:

    That a lot of things live in files, which the IDE allows you to access must not be confused with that the IDE focuses on files. In the end, it is good practice to put JavaScript code for different widgets in different files. Again, it is not necessary to click through the file system to find them as there is a very powerfull search function (ctrl+H) in Eclipse that, among other things, has JavaScript search, allowing you to search for types, methods, constructors etc. If you are clicking your way through folders, then you are maybe doing something wrong.

    Also, if you clutter your workspace with views you are the one doing something wrong and not the IDE. It is very easy to close views (Eclipse remembers that you closed them) or minimize them to the sidebar.

    Firefox and Chrome and other browsers all have the concept of extensibility. The same plug-in architecture found in IDEs. Are these browsers broken as well, because some people like to clutter their Firefox with endless rows of buttons?

    Finally, Eclipse is not only an IDE, but also a tool for creating IDEs and other applications. Eclipse e4 is even more interesting for creating other applications, as it will be possible to style apps with CSS and cross-compile desktop apps to web apps.

    by Edwin Commandeur • Apr 28th 2010 • 23:04

  • Hi Edwin,

    All good points, and valid arguments in defense of the desktop IDE. But the desktop IDE still follows a certain model. That model involves centralising around an editor that is supported by various additional windows and components that take up extra space. And it has a steep learning curve. You’re right that it’s up to the user to minimize these views when necessary, but the fact remains that if you want to use their functionality, you’re required to open them up at the cost of your editor.

    We want to approach things slightly differently, which is why we’re saying designing in the browser is a different way of doing things. Read our more recent post about how we redesigned our editor ( to get an idea of what we mean.

    Thanks for posting!

    by Rahul • Apr 29th 2010 • 15:04

  • Hi Rahul,

    Thanks for your reply and for making me think about my IDE. At least it inspired me to install the InstaSearch plugin that I can make visible all the time, so I don’t even have to use shortcuts for popping up a search panel (and InstaSearch is damn quick because it uses Lucene’s indexing).

    Editing in the browser is superb! It is always nice to see where webapps are going. Good luck and keep up the creativity.

    by Edwin Commandeur • May 1st 2010 • 23:05

  • Leave a reply

    You must be logged in to post a comment.