Description
Smalltalk IDEs (integrated development environments) are quite powerful as they feature code browsers, debuggers, object inspectors, immediate feedback... Nevertheless, such IDEs have been lacking great text manipulation features that have been available for decades in good text editors such as Emacs and Vi. Moreover, many developers outside the Smalltalk community have developed great skills in their favorite editors and they are often reluctant to switch to different tools. In this project we propose to port some of the best Smalltalk tools to the Emacs platform so that developers can use very high-level tools while still using their day to day editor.
Technical Details
The student will benefit from the already existing Shampoo project (http://dmitrymatveev.co.uk/shampoo/) which already features a Smalltalk code browser in Emacs. In this project, the student will have to:
- fix the problems that make it hard to start using Shampoo;
- continue the development of the Smalltalk code browser in Emacs and write unit tests;
- using a test-driven approach, implement a debugger interface in Emacs using the already existing Smalltalk debugger infrastructure;
- using a test-driven approach, implement object inspectors and immediate feedback (do-it and print-it).
The project will be realized in the Pharo environment (http://www.pharo-project.org) as Shampoo already supports Pharo and Pharo has a new debugger infrastructure decoupled from its user interface.
Benefits to the Student
- Knowledge of Smalltalk, Emacs Lisp and inter-process communication;
- 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
With such a tool, more developers will be able to join our community as many don't want to stop using their favorite editors. Additionally, even existing Smalltalk developers will benefit from the Emacs platform that has improved steadily for decades.
|