ESUG Application to Google Summer of Code 2010

Questions and answers according to GSoC FAQ:

1. Describe your organization.

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.

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 Seaside hosting server together with netstyle.ch.
  • Identify Smalltalk users and their needs and represent them towards discussions with vendors.
  • Represent the Smalltalk community in discussions with the major Smalltalk vendors.

For more information, please visit http://www.esug.org/

2. Why is your organization applying to participate in GSoC 2010? What do you hope to gain by participating?

Supporting open-source projects is one of the most important goals of ESUG. Hence ESUG SummerTalk is very similar to GSoC. But the visibility of GSoC is many orders of magnitude greater than what ESUG has right now.

Smalltalk was well ahead of its time when it introduced object oriented programming, dynamic typing, integrated development environment, graphical user interface, windowing, virtual machine, bytecode and cross platform portability in 1972. Due to an unfortunate combination of circumstances and events, Smalltalk has lost the limelight in favour of other languages like C, C++, Java and C#, who copied a lot of its features.  Smalltalk has however maintained a strong following and has continued innovating and pioneering concepts like: refactoring, reflection and extreme programming.  Smalltalk related innovations also continue with the development of new languages like Self, Strongtalk and Newspeak.

Recent innovative Smalltalk based applications and frameworks like: DabbleDB, Seaside, Aida/Web, EToys, Croquet/Cobalt, Scratch, Plopp, CMSBox and others have triggered a resurgence of people interested to find out more about Smalltalk.  Smalltalk has also been getting renewed attention when new dynamic programming languages like Python, Ruby and JavaScript reproduced some of Smalltalk's features.

In Smalltalk everything seems to be different than most programming languages. We want to give visibility to Smalltalk and show what a powerful language it is and show also all the excellent frameworks that are built on top of it. Most people think that Smalltalk is old, a toy, only for teaching or research. We want to show that this is not true and that how you can create big and complex applications using Smalltalk. 

Furthermore, we have a long list of excellent ideas. Having students being paid for implementing them would definitely help the Smalltalk community and improve our programming environment and tools and also bring fresh blood to the community.

We expect also to bring more people into your community. That's very interesting as the Smalltalk community is trying to be more open minded. We want people from other communities to join ours and we are also interested in what is happening outside and to share experiences or ideas. Fortunately for us, dynamic languages like Python, Ruby, among others, are becoming more popular than static languages. This is an excellent opportunity to join, show and learn from and with other communities.

Finally, participating in the Google Summer of Code 2007 and 2008 (but through the Squeak organization) program has helped us gain some more visibility, so we are hoping to be able to repeat the experience this year and make it even better.

3. Did your organization participate in past GSoCs? If so, please summarize your involvement and the successes and challenges of your participation.

Previous GSoC participation in 2007, 2008 and unsuccessful 2009 through the more narrow Squeak Smalltalk project has already helped Smalltalk gain more visibility, so with the new generic Smalltalk approach we are hoping to be able to have an even greater effect.

After Squeak's failure to be selected for the GSoC in 2009, the Smalltalk communities of Squeak, Pharo, GNU Smalltalk, Smalltalk-X, Dolphin, VA Smalltalk, VisualWorks, Gemstone as well as languages derived from Smalltalk like Self, Strongtalk and Newspeak have decided to join forces and apply togther under the Smalltalk banner through ESUG.

This joined application is already showing that the Smalltalk community is still a strong force in the software industry.

During the previous GSoC participations we had students with different levels of knowledge in Smalltalk. Some were newcomers and others already knew about Squeak. All the students finished their projects and some were integrated into the Squeak trunk or made available publicly to the rest of the community. A 2007 GSoC student even became a mentor in the 2008 GSoC edition.

4. If your organization has not previously participated in GSoC, have you applied in the past? If so, for what year(s)?

This is the first year ESUG is applying on behalf of the entire Smalltalk community as opposed to previous participations by the much more specific Squeak Smalltalk implementation.

5. What license(s) does your project use?

All code contributed by the GSoC projects will be released under the MIT license, even though licenses between different Smalltalk dialects vary from commercial, GPL, to most commonly MIT.

6. What is the URL for your ideas page?

http://gsoc2010.esug.org/ideas.html

7. What is the main development mailing list for your organization?

Being an umbrella organization, there is a number of mailing lists. A fairly complete collection of Smalltalk implementations, frameworks and projects can be found on the Nabble archive: http://n4.nabble.com/Smalltalk-f1294792.html

8. What is the main IRC channel for your organization?

On irc.freenode.net:
  • General Smalltalk: #smalltalk
  • Squeak Smalltalk: #squeak
  • Pharo Smalltalk: #pharo-project
  • GNU Smalltalk: #gnu-smalltalk, #gst
  • Seaside Framework: #seaside
  • AIDAWeb Framework: #aida
On irc.parcplace.net
  • VisualWorks: #smalltalk

9. Does your organization have an application template you would like to see students use? If so, please provide it now.

We are just implementing a registration procedure for students on this website, where they will need to enter a registration form with all information needed according to GSoC best practices.

10. Who will be your backup organization administrator?

Janko Mivšek - janko.mivsek@gmail.com

11. What criteria did you use to select these individuals as mentors? Please be as specific as possible.

The following is a list of the commonly used criteria to select the mentors:

  • Those who are enthusiastic and can show that they are really willing to do the job.
  • Participation in the community. This is if the mentor is active in the mailing lists, IRC channels, etc.
  • Knowledge of the specific project.
  • Experience: with which projects has the mentor previously been involved, the results, the impact in the community.
  • Communication skills: How will the mentor be able to help the student, answer emails, warn about deadlines, refer to links or papers, etc.  The mentor's communication skills are regarded just as high - if not higher - than the technical knowlegde.
  • Couples: fortunately in some projects we have not only mentors, but also co-mentors. In some cases it is a good criteria to put together mentors that complement each other. For example, suppose you have to do a website that manages a Version Control System. In such case you can have one mentor who knows about the web aspects and another who knows about the Version Control System.
  • Only one project per mentor: It is known that being mentor is not an easy task and it deserves time and dedication. We think it is better that a mentor only takes one project. We think that mentors should concentrate in one project and give as much as possible for it in order to succeed together with the student. Very experienced mentors may be considered to act as co-mentor on a second project if required.

12. What is your plan for dealing with disappearing students?

Since ESUG is acting on behalf of all Smalltalk implementation there is a large pool of willing and able candidates.  Smalltalk is commonly used academically at universities for teaching Object Oriented Programming which means there are a lot of available students. However, we will try to do as much as possible to prevent student disappearing.

  • The students will be involved in defining the details of their project. We do not close any doors leading from the specification. Maybe the student will suggest a better project than the proposed one. Clearly, if the student is not motivated by the current project, it will not work. On the other hand, some students want to have everything detailed and simply implement what has been specified. The key here is to have both kinds of project flexibility.
  • We will encourage and support the student until the end. We will monitor and let them know all the deadlines, and will remind them as necessary. All students will have access to not only their mentor, but also the ESUG and all experts from various Smalltalk mailing lists.
  • We are planning to have a stand-by, substitute for each student. Our main idea is not only that the student learns a lot, but also for the project to complete. We have seen a lot of projects in the GSoC history that never end or never get to a stable (released) status.
  • We will ask the students to demonstrate progress to their mentors frequently. We would rather they talk once a week or once every few days than once in 2 months. In the later case there is a big risk that the student might fail, lose time on non-productive roadblock, go in the wrong direction or have some other problem. We want to iterate frequently and continuously.  Regular online meetings in addition to the email support will be encouraged.
  • One of the most common reasons why a student gives up GSoC is because the project had too large a scope or was too difficult. In order to avoid that, we have projects with different levels of difficulty, with different technologies and with different "priorities" of the use cases. For example, we have have a list of "must do" but also a "wish list" that can be done as a bonus. In summary, we try to scope and scale our projects. This lets us attract the widest variety of students and each student can apply for the project that is most appropriate to his/her level of skills and needs.
  • Similarly to the previous item, sometimes the students feel they do not know enough about certain technologies or concepts. To solve this, for each project we will establish the prerequisites, technologies or skills that the student needs to or should have.
  • We have instructed our mentors to pay special attention to the start of the project. They must not let students enter in the famous "where can I start?" or "I have no idea!!!". Mentors should provide all links and all the necessary information to the students so that they can start correctly.
  • Despite all precautions sometimes it occurs that there are personal conflicts between a mentor and a student. This is an important reason why we propose co-mentors or backup students. Of course, before having to change a mentor or a student, we will encourage them to talk and discuss about the problems. What is really important is that if there is a problem, that should be discussed and talked. Otherwise, it may be too late to fix it.

13. What is your plan for dealing with disappearing mentors?

The possibility of a mentor disappearing is much smaller because mentors tend to be very valuable members of the Smalltalk community who have their reputation at stake. We'll also have a couple of backup mentors (which in certain situations can be what we have described as second mentors) ready to step up in case a mentor does have to drop out (for instance through ill-health or work commitments).

It is common for people to underestimate the amount of time that GSoC takes. This may lead into disappearing mentors. In order to avoid such problems, and the ones already said, a person can be only mentor of one project.

In addition, before the project starts, we will collect all the mentors' contact info (mail, IM, Skype, etc) so that the students will have enough direction to reach the mentors.

14. What steps will you take to encourage students to interact with your project's community before, during and after the program?

As we said, we want the students to learn, code and have fun, but we also want real, released, stable or finished projects. We want the projects to be useful for the community.

  • We will promote the Smalltalk GSoC among students in universities and elsewhere,
  • We will show the students that their projects will be very useful for the community. All the students will be using the very active mailing lists to ask advice and get feedback.
  • We'll try to have periodic (weekly or bi-weekly) IM/IRC meetings with them. We'll encourage them to blog about progress of their projects and to hang around on the IRC channels.
  • Participating students will be invited to present about their GSoC project at the next ESUG conference.
  • The projects will also be advertised in the community and we'll ask the community for feedback to show to the students that their work is valued.
  • There are different kind of students. Some are shy to write in a mailing list or IRC channel. We encourage our mentors that when they have to discuss with the students, to do it in the mailing list instead of privately. Even if they are the only ones in the conversation.  This way, the student can slowly be incorporated in the social part of the community, which, from our point of view, is very important.

15. What will you do to ensure that your accepted students stick with the project after GSoC concludes?

First of all, we trust that the accepted students won't be "in it only for the money", so they will be interested in sticking with the project even after the conclusion of GSoC. Also, the proposed project ideas are all challenging and fun enough to keep the students' interest high.

As additional encouragement, the students work will most likely be included in one or more Smalltalk implementations.

16. Is there anything else you would like to tell the Google Summer of Code program administration team?

We would like to take this opportunity to thank to Google and specially to all the GSoC administrative team for an excellent work you are doing. The truth is that GSoC is an excellent opportunity and very much appreciated in the open-source software community as a whole. It is an
invaluable effort that not many other companies are willing to do.

It is really amazing how a Google manages to join developers all over the world, working on different projects, with totally different technologies, pay them, and more important, let them learn and have fun.

We really hope that a Smalltalk community will get an opportunity this year because we would love to join the game. Be sure, we will not disappoint you.

Being selected or not, thanks again for this wonderful and incredible contribution to the open-source communities.




Updated: 12.3.2010