I think I have a reasonable understanding of how things got to where they are regarding software on local systems vs web applications. Same for the way FLOSS projects are run, what related online services do and don’t do and how GUIs are designed. But if you forget history and inertia for a moment and just look at what is there, what has been shown to be perfectly possible in principle, you might start to wonder how a better process, better infrastructure, a better software stack, could look like.
Design process online service
Imagine an online service for software projects. Where you can create a project, using one of a number of templates for various needs. The service might guide you through an iterative process, perhaps with briefing, research, requirements gathering, conception, implementation and evaluation stages. You start with a mission statement to capture the essence of the project. The service offers explanation on how to best go about this, just like it does for every piece of writing inside the template structure. You can also quickly compare with the mission statements of other projects right there.
You can create, edit and manage mind-maps, a hierarchy of goals, personas, use cases or the simpler user stories, requirements, flow-charts, and mockups.
As project owner, you can invite others and grant read and write permissions. There’s real-time collaborative editing similar to Etherpad. No blocking or edit conflicts, although you can branch and merge parts of your documentation if you want to.
Is there a FLOSS framework that would make it straightforward to implement such Etherpad-like functionality?
Flowcharts can be linked with mockups to deal with structure on 2 levels without break. Mockups can be made somewhat interactive, with working tabs and menus.
You do not have to rebuild the same layout in another tool or via code, because the step from mockup to actual layout is taken by simply switching away from the wireframe theme.
Thinking a bit more about this mockup/GUI-creator, it should be a bit like the Flash authoring tool. Rich support for vector and bitmap graphics. Ability to define interactive areas as such. Animation. Scripting.
But different from Flash as I got to know it, there should be a layer between logic and rendering to realise theming. A separation between the What and How of drawing. All widgets should be reusable components created in the same way, to be rendered on a shared canvas. A canvas that might fill your screen, controlled by local software, or one in a browser window. A single toolkit for the desktop and the web, where a canvas is not a special widget, but the base.
- Separation of GUI and Application Status (theme-independent screenshots)
- Event to Action mapping (system-wide handling of shortcuts and other gestures)