GSoC project ideas

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

GSoC project ideas

Frank Shearar-3
I had a calendar reminder that we should start gathering ideas for
GSoC projects, so we don't have last year's scenario of a last-minute
scramble.

So.... over to the audience.

frank

Reply | Threaded
Open this post in threaded view
|

Re: GSoC project ideas

Eliot Miranda-2
A modern Squeak plugin.

Back in the day one could embed computation in web pages by writing web browser plugins.  But the major browsers Balkanized the APIs and Netscape's simple portable scheme died the death.  Nowadays JavaScript is ubiquitous and one can embed begaviour written in arbitrary languages by compiling them to JavaScript.  But this approach is fraught with difficulties in performance and functionality.  Only constructs which map directly to JavaScript are easy to map efficiently and particularly powerful elements of the Smalltalk execution model, such as mixed-mode arithmetic, non-local return, become and thisContext are difficult to map.

One recent approach by Bert Freudenberg is to compile the Squeak /virtual machine/ to JavaScript.  This provides perfect fidelity at the cost of poor performance, since the code is interpreted.

Another approach is to revive the plugin architecture but use JavaScript to mate the standard Squeak VM, the Cog JIT, to various browsers.  

Such a plugin would use JavaScript to collect events, to render and to access the DOM (all of this code can be stolen from Bert's VM). The JavaScript component would connect to the VM via a socket.  The resulting "plugin" would be quite small (the Cog VM is of the order of a megabyte of code, excluding its own plugins).  It would presumably be installed much like the Flash plugin.  Work on small Squeak & Pharo images is also progressing so the entire system, including image might be below 10 meg.

With this architecture there is /no/ difference in the execution semantics, and /no/ performance degradation, and the code is as portable as Bert's VM provided Cog runs on the platform.  This decouples the VM from the browser, allowing both to evolve in parallel.  This frees Squeak & Pharo to implement rich client-side functionality without working around limitations and allows much richer client-server communication based on proven distributed Smalltalk technologies, allowing in-browser development, remote debugging, client-side state (via snapshot), etc etc.  it really does open up a lot of interesting avenues.

Possible mentors:
Florin Mateoc
Bert Freudenberg
Eliot Miranda

Eliot (phone)

On Jan 17, 2015, at 3:44 AM, Frank Shearar <[hidden email]> wrote:

> I had a calendar reminder that we should start gathering ideas for
> GSoC projects, so we don't have last year's scenario of a last-minute
> scramble.
>
> So.... over to the audience.
>
> frank
>