GSoC/GCI Archive
Google Summer of Code 2013

ESUG (European Smalltalk User Group)

Web Page:

Mailing List:

The European Smalltalk User Group (ESUG) is a non-profit user organization that supports all kinds of Smalltalk related initiatives, with the main focus on free/open-source projects which benefit the whole Smalltalk community and beyond.

ESUG was registered in 1991 with goals to do the following and more:

  • Promote communication between Smalltalk users through meetings, periodic newsletter, software exchange, electronic mail, etc., and by organizing events like the ESUG Conference,
  • Promote books, articles, publications, student internships, etc.
  • Promote open-source Smalltalk projects through ESUG SummerTalk which funds students during the summer,
  • Although the name of ESUG says it is European, the truth is that the scope is worldwide. It links all individual and corporate users of Smalltalk programming environments in the world,
  • Support local users groups and establish new ones,
  • Support Smalltalk projects and initiatives such as the free web hosting, source code servers, etc.
  • Identify Smalltalk users and their needs and represent them towards discussions with vendors.
  • Represent the Smalltalk community in discussions with the major Smalltalk vendors.


  • A new trait implementation Traits are pure units of behavior that can be composed to form classes or other traits. The trait composition mechanism is an alternative to multiple or mixin inheritance in which the composer has full control over the trait composition. The result enables more reuse than single inheritance without introducing the drawbacks of multiple or mixin inheritance. The current implementation of traits in Pharo merges the trait methods into the classes that use the trait. This merging of external methods into classes makes the implementation of the development tools harder. So, the idea would be improve this implementation.
  • Animation Library based on Athens Animation Library based on Athens framework The Athens is a new vector-based graphics framework for Pharo. Implementing the animation framework on top of it, would make possible to use various visual effects in UI for transitions like fading, sliding, zooming/rotation.. or morphing geometrical shapes from one to another. Animation framework could also be used to realize better support for importing SVG format which contains animations.
  • Athens implementation in Amber with HTML5 Canvas Athens is an open-source vector graphics framework that lets Pharo users programmatically generate diagrams, vectorial drawings and animations. I want to port Athens to Amber, a Smalltalk implementation running in the web browser. It will use the HTML5 Canvas for drawing. My motivation is to give Smalltalk/web developers a tool for generating high-quality drawings easily. On top of Athens, we can build a framework for drawing user interfaces in Amber.
  • Better rewriting rule tool The refactoring browser is based on a powerful rewrite engine which transforms AST. However it is quite cumbersome to write rewrite rules. There is a need to build a tool to help programmers defining their own transformation.
  • DBXTalk on NativeBoost This project proposes to use NativeBoost bindings to remove the necessity of the native openDBX library, simplifying the deployment of applications using relational databases
  • Debugger Improvements The Smalltalk IDE contains an advanced debugger that allows the programmer to explore and change the program as it is executing. Over the last years, the Smalltalk community has realized a number of experiments and libraries that, taken together, form a powerful core of a new, even more advance debugger subsystem: a new Debugger Model a first graphical user interface for this model an AST (Abstract Syntax Tree) interpreter research in the direction of Object Centric Debugging The goal of this internship is to take the exiting code and build a new debugger infrastructure. Technical Details To solve this problem, the student will have to: implement a user interface using the Spec framework extend the AST Interpreter to support debugging (e.g., single step execution) extend the debugger model to use the AST interpreter integrate with Object Centric Debugging Benefits to the Student learn about Abstract Syntax Trees, Debuggers and IDEs. learn about advanced concepts of language implementation. learn about design and implementation of debuggers for dynamic languages understand how programming languages and IDEs are implemented; integration into a prolific community, fond of software development and programming languages; potential integration as a master and/or PhD student within research groups of the community around the world (France, Switzerland, Chile, Belgium, Argentina). Benefits to the Community For the Smalltalk community, the current debugger is an indispensable tool for daily development. An improved debugger will have a direct impact on the productivity of every developer and will, last but not least, support the development of Smalltalk IDEs themselves.
  • Graph-ET The necessity of having a chart-drawing tool integrated with Roassal is increasing day by day. Graph-ET is a tool that allows the user to create and draw charts with small and expressive Smalltalk instructions. The user may enter a large variety of entries, and the program with parse it to fit the users need. For example, the user may use a domain of words and visualize the length of those words with just two lines of code. The nice thing about Graph-ET is that it’s very simple to see results also the interface allows the user the play with their charts in a variety of ways. The idea is having a kind of EyeSee but with Roassal as rendering and adding more power of desition to the user. Graph-ET is a software that needs to draw to work, for that it mainly uses Object Profile’s Roassal to make the drawing and the interaction work. The student will learn a lot more of Smalltalk and Pharo environment. Also he will learn some chart visualization and learn to solve all the problems that come with it. Not to mention learning entry parsing. Mainly he will face with serious and critical decisions that will change the fate of his program, but that will mean significant learning process for him. The community will have the pleasure of making fast charts with small and expressive instructions; this will lead to a more simple way of making and drawing charts. The users of Roassal will enjoy a tool that fit their needs and that work well with the software they already own.
  • Improving Roassal Scalability
  • Mars 1.0 Current Pharo UI state of the art building is tightly coupled to the Morphic framework. Morphic, though flexible, has became aged and far from the experience a native interface can offer. Mars is cross-platform native user interface framework, which allows Pharo programmers to build modern user experiences. Mars currently is under heavy changes due to a big refactoring performed to allow multi-platform behavior, and most of its widgets need to be rebuilt, thought not entirely from scratch.
  • SciSmalltalk - Solving Ordinary Differential Equations in Smalltalk Description SciSmalltalk is a new Smalltalk project, similar to existing scientific libraries like NumPy, SciPy for Python or SciRuby for Ruby. SciSmalltalk already provide basic functionalities under MIT licence: complex and quaternions extensions, random number generator, fuzzy algorithms, LAPACK linear algebra package, Didier Besset's numerical methods, ... We want to extend SciSmalltalk to solve ODE (Ordinary Differential Equations). SciSmalltalk is available here:
  • Spec platform/framework Independence The goal is to improve and ensure the platform independence of Spec. Indeed, one of Spec goals is to generate widgets on multiple UI rendering framework (Morphic, Seaside, etc). The student could improve Spec by providing a set of widgets for multiple framework, and ensure the usability of Spec in different Smalltalk dialect.
  • Tools for developing Amber web clients from Pharo Further development of Nemo project towards ability to build Amber applications from Pharo, including tools like Browser, Inspector, Debugger, etc.
  • UIPainter Description The purpose is to offer a way to easily describe and create UI using a point and click interface. This interface should be extendable, as well as the widget proposed. The Painter should also propose a simple way to link widgets together, and to locally redefine behaviours. Technical Details Using Spec, the UIPainter should be able to generate the needed methods (and Layouts). The UI corresponding class could also be generated. Benefits to the Student A deep understanding of UI creation. A good set of knowledges about widgets interactions. The students will also benefits of an understanding of Spec at all the levels. Benefits to the Community The community will benefit of a new tool for generating UIs easily using the new platform independent UI framework. A UIPainter will help developers by improving the widgets reuse and simply the process of UI creation