Proposal by Rustem Khubbatov for Tools for developing Amber web clients from Pharo

Proposed by Rustem Khubbatov (profile, biography)

How will I do that project


I want to use the project Nemo as the basis for the GSoC project. This is described below in the "Suggested timeline and milestones" section. I plan to add an important opportunities to Amber, to make its use more convenient and simple. I'll pay a lot of attention to the quality of source code, testing and documenting it to make useful and usable for other smalltalkers. I understand I'll have to apply to very serious problems (like communications, UI, web-programming) and I'll try my best to solve them.


What methodologies will I use


I must admit I have little experience with modern software development methodologies. So, I relay on mentor's suggestions here. 

Our approach is to use iterative programming with particular agile practices. Iterations are presented in the plan below. On each iteration start we will have a short planning session with a top-level (architecture) design. I'll try to avoid detailed up-front design in favor of "design in code" approach and concretely TDD when able to. 


Suggested timeline and milestones


1. Explore options for the project. At this stage, will be discussed options directions of development of the project. 5 days.

2. The study of internal structure of Amber. 5 days

3. Integration Amber objects in Pharo. Here there is a certain dilemma. If we use the tools available in Nemo,  we will not be able to adapt them to your needs. But if we will make new system, you may find that it is too expensive - we just do not have time to develop it. On the other hand, having gone through the first, we can help the community that will improve the tools available. Going the other way, we can invent something new, interesting and more convenient to use. 15 - 20 days

4. Remoting objects. The implementation mechanism of the remote objects operating in a heterogeneous environment (different Smalltalk-implementation). This problem is very complex - it even within the same language in few places which were doing. As a reference, we will focus on OpenTalk. 15 days.

5. Developing browser distant objects. 15 days

6. The development of simple tools. At this stage it is planned to make workspace and inspector. We will focus in user's convenience of using these instruments. 10 - 15 days

7. Optional (If we have the time) debugger. 20-25 days


Where I see the risk


The most difficult thing for me is to study the internal structure of Amber and preparation of the Nemo project, which is the starting point for this project. It is also worth a lot of time given to the design of how the tool should work.

How the results will look like


As a result I can see the user interface created in Pharo, which displays the current status of Amber. Through this interface will be available functions such as creating packages (categories), classes, methods. The programmer can use this instrument to remote creation and debug Amber apps with using the convenience of Pharo.

Updated: 2.5.2013