I am looking for professional advice including blogs and papers on how to design scalable Integrated Developement Environments (IDEs) and different approaches to it. By scalable I mean that the IDE should be able to serve users in developing projects from medium-sized to large-scale projects (e.g. eclipse realizes this via a plugin-system). Example-IDEs would be Eclipse, Visual Studio, Leksah or ScalaIDE.

Myself, I have used a lot of IDEs but I would be interested in design principles, guidelines and thoughts designers and developers have/had and it's quite hard to find professional knowledge out there.

  • One big thing for me is performance and response time. I use Eclipse and it isn't exactly stellar on either account. Nov 19 '11 at 8:15
  • Is this a UX question or a more general software engineering question ?
    – Max
    May 9 '16 at 17:54
  • Are you focusing on one particular Language? Leksah and ScalaIDE imply some kind of functional programming bias.
    – icc97
    May 9 '16 at 20:05
  • See here for some enlightenment :)
    – user83018
    May 9 '16 at 21:39

There are no hard, universal rules for designing any particular class of software. The design of your application will vary radically depending on the most likely use-cases for it, and the kind of tasks you imagine it being used for.

If, for example, you imagine your user creating lots of small scripts from scratch (perhaps to manage automated tests, for example), they're going to have different priorities to someone maintaining a large functional application. If your user is going to be expected to write against a coding style guide, the IDE will have different priorities to one designed for a sole developer playing with bleeding edge code. And the nature of those tasks could themselves depend on the paradigms of the languages your IDE caters for.

This probably seems like a vague response. But actually, if you figure out the answer to those questions and keep them in mind, you'll probably be guided far better than an arbitrarily list of '10 things your IDE must do'.

  • I formulated my answer quite vaguely, I edited it to be a bit more precise. The problem I am facing is that I can not find any made research on the specific topic.
    – forste
    Nov 18 '11 at 15:13
  • You talk about scalability - are you asking how to design the frontend, or are you asking out the actual application architecture itself? The latter isn't really a UX issue, and would be better answered on somewhere like Stack Overflow. Nov 18 '11 at 16:51
  • Thanks for pointing that out. I am talking about the frontend not about how you can design a scalable architecture for an IDE. Edited my question again to clarify that.
    – forste
    Nov 18 '11 at 20:04

The IDE market is highly competitive. Before you start - what are you going to offer users that others don't?

  • 3
    This is more of a comment than an answer.
    – Mayo
    May 9 '16 at 17:17
  • 2
    I agree that this is a comment, more than an answer. You need to expand your answer or you risk getting your answer being converted to a comment and lose the reputation gained. I also agree to your marketing notion, but please expand it, and your answer will be great! May 9 '16 at 18:25

As previous have mentioned: 1. What are you going to offer that is different?

  1. Search for already developed Open Source IDE and look at the inner functions, see what you would do different that could benefit everyone, not just your self!

  2. With your extensive usage of IDE's what have you found to be common flaws? What would you do differently and is this going to benefit the mass?


The answer to most of the questions raised on "what is the best from end design for xxx" is strightforward to define, but very complex to do.

  1. Identify the different types of users.
  2. For each of them, identify what they need to do.
  3. Also identify what their goals and aims in using the application.
  4. Then identify what their motivations and drivers are
  5. For each task, considering their motivations and aims, identify a process to let them do this.
  • 8. Build the system. 9. Test with the actual users. 10. Readjust the design bearing in mind what the users have said. This is a huge process for a large project. So, although this is the process you need, you will have to shorten it, take some short cuts, and potentially spend more time in later phases. Nov 19 '11 at 17:37
  • Sorry - in my editing, I lost a couple of steps - 6. As each process is developed, see how it fits in with others. 7. Once complete, assess the whole lot of tasks agaisnt the users goals and motivations, and make sure they can all achieve what they want. Nov 19 '11 at 17:39
  • I agree, as long as the method of "identifying" is observing users in their native habitat, watching what they do and talking to them about why they're doing those things. (Too often "identifying" means sitting at your desk and making tons of assumptions. Get away from your desk!) May 9 '16 at 18:01

I am currently interested in researching this as well.

I've just found a (free) research paper about designing an IDE as a service, that includes references to prior research as well and might get you started: http://www.cloudsw.org/under-review/31a7a63b-856a-488f-9ce1-1ed5e6cfe63e/designing-ide-as-a-service/view.

  • Could you quote the relevant parts into your answer?
    – Mayo
    May 9 '16 at 17:17
  • It's more of a technical/architecture paper rather than a UX paper.
    – icc97
    May 9 '16 at 19:47

Not the answer you're looking for? Browse other questions tagged or ask your own question.