Student proposal by Matthias Springer
Amber  is a Smalltalk implementation running in a web browser. It supports rendering HTML code in a Seaside-like way. But in contrast to Seaside, Amber has the advantage that the whole Smalltalk VM runs inside the browser.
My proposal is to reimplement parts of the Morphic framework in Amber.
This would have several advantages:
- Existing Squeak/Pharo/... applications that use Morphic can be ported to Amber easily.
- We can provide advanced programming tools like multiple class browser windows and OmniBrowser.
- Morphs need to be rendered as HTML DOM elements, e.g. by the (already existing) Amber classes "HTMLCanvas" and "Widget".
- Not all HTML tags can be reused. For instance, the HTML textbox/textarea does not support text with different formats (color, emphasis, ...).
Benefits to the Student
- Get to know the Smalltalk community.
- Learn about and understand the Morphic framework. Not just how it's used but also how it works internally.
- Discover new ways of building web application GUIs.
- Build tools that are used by developers and end-users.
Benefits to the Community
My vision is to provide a fully-featured Smalltalk programming environment running in the browser that provides all IDE features that are offered by Squeak/Pharo. I think not all of this can be done in the scope of a GSoC project but providing a Morphic implementation would be the first step.
Currently, Amber lacks some IDE features. What's missing most from my point of view is a way to put multiple class browsers next to each other (instead of tabs) and refactoring features. Having such features would make software development in Amber (even more) enjoyable. With Morphic around, it is easier to port existing tools from Squeak/Pharo to Amber.