E4/Web-based IDE
Work on this progresses under Orion
Web-Based IDE
We've seen a lot traditional desktop applications converted to web applications (word processors and spreadsheets to name the most popular). We've also seen initial forays into web based IDEs. For e4 to address the web, we should be able to use it to build web based IDEs.
What should an Eclipse web-based IDE look like? What could it look like?
Web based applications and desktop applications tend to have subtly (and not subtly) different design criteria. Web based applications, having as origin a publishing background, tend to have lower information density, use more whitespace, and have more sophisticated layouts. The workflows tend to be simpler, often because they are geared towards users who only make occasional use of the web based application. Desktop applications tend to favor maximal information availability but sometimes at the cost of overwhelming the user.
The important design point here is that these each serve different communities with each having pre-conceptions of what is good, what is appropriate, and how to approach a task. Therefore its generally true that simply dropping a desktop application into a web browser will yield a result with significant usability issues, design clashes, and is unlikely to be well received due to this inappropriateness.
Differences between Desktop and Web-Based IDEs
Therefore, to understand how to build a high quality web based IDE, we need to think like web developers. The more we can do so, the more we will drive appropriate e4 web technology. Some differences to consider:
- Navigation:
- Web browsers are naturally focused on a link based navigational metaphor.
- Furthermore the browser has a built-in notion of history, which the application can either make use of or must fight.
- Layout:
- Web applications tend to be sparser in information density, using whitespace, font changes, and other layout techniques to guide the user in certain focused directions.
- Where more information needs to be shown, a web application tends to spread it over several pages rather than increasing the density of a single page.
- Tasks:
- Web applications tend to encode a smaller number of highly focused tasks.
- For example with web commerce, the task is around finding the item you want, checking secondary information adding it to a cart, then completing the purchase.
- Visual sophistication:
- Web users tend to expect a higher degree of visual sophistication from their applications. Animation, transparency, even sound cues are fairly common.
On the desktop side, we should consider taking some of the design cues from the web and seeing how they may be applied.
Questions
- Are some languages more appropriate targets for a web based IDE, and if so which?
- Javascript seems an obvious choice on the client side, whereas its harder to imagine Java.
- The server side doesn't have web presentation technologies, and can easily be in Java or other enterprise languages
- What are the basic workflows we need to support? Are they the same as the desktop? Stripped down?
- Who is the user? Is it the same as the desktop? Or more novice programmer? Programmer needing to make tweaks to a running, server installed program?