Proposal by Gisela Decuzzi for Programming tools for Pharo based on Type Inference

Proposed by Gisela Decuzzi (profile, biography)

How will I do that project

I will spend 4 hours every day (and maybe more on weekends), at least 20 hours per week.
I will do shorts iterations about one or two weeks and sending shorts summaries to my mentors with the activities done, in progress and planned to do, we can maintain sync and discuss about the furthers steps (this steps will be shorts, easy to read and easy to write).
I will publish the big improvements in the community (surely using the mailing list), providing information about the new features, how to use and (if needed) showing some screen cast from the tool. I will sent a complete description with each important checkpoint.
For the implementation I will start taking a look into the currents type inference mechanisms, using them to understand the information retraived.
Then I will select an implementation or a merge of implementations to work on it.
I will also take a look in building interfaces with Spec as I'm not familiar with it and thinking possibles visuals representations, I also want to evaluate the use of SmallUML for generate diagrams.

What methodologies will I use

I will organize the work in small iterations (1 week), in sync with my mentors trying to plan in the begging of the week the work for the next one and having all the week to see if it's ok or it would be better to change the objective.
For every week I want to define a concrete advance from the project (eg. a screen cast filmed, a set of features implemented, a post entry written ...).
For every checkpoint I will perform a demo showing the advance.

Suggested timeline and milestones

I will divide the project in three parts:
1) Review current implementations (aprox. 2 weeks)

  • Reading
  • Looking existing tools
  • Features and limitations
  • Choose an implementation or a merge

2) Build tools in top of the choosen (aprox. 7 weeks)

  • define and implement api
  • visual tools

3) Bugfixing, testing, cleaning up, examples (aprox 2 week)

During the development I will ask to the community for feedback, and adding all interesting suggestions received.

Where I see the risks

At least

  • incomplete implementations
  • more time needed to define objectif

I will start working in both items since the begining and asking to my mentors for advice.

How the results will look like

An easy to install set of tools ubilt in the top of an existing implementation integraed with a UI easy to access.

Updated: 30.4.2013