Mentoring Organization Application

Organization information

ID: clojure_dev

Name: Clojure/dev

Description: Clojure is a dynamic programming language that targets the Java Virtual Machine (JVM), JavaScript, and Microsoft's .Net framework. It is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system. Clojure is predominantly a functional programming language, and features a rich set of immutable, persistent data structures. When mutable state is needed, Clojure offers a software transactional memory system and reactive Agent system that ensure clean, correct, multithreaded designs.

Clojure/dev, as a GSoC mentoring organization, includes projects from all parts of the Clojure ecosystem, from IDE tooling to logic programming libraries.

Questions

If you chose "Veteran" above, please summarize your involvement and the successes and challenges of your participation. Please also list your pass/fail rate for each year.

Last year was our first year as GSoC mentoring organization. We had four students, who all passed. I think the most important success from our participation from last year is the work that was completed by our students which has gone on to be further developed (such as Typed Clojure and the ClojureScript improvements from Clojure/Lua) or used by people to do real work (like Clojure/Android). We believe that our students have helped to grow the Clojure community in addition to their software contributions.

Despite the successes from last year, there is still plenty of room for improvement. We think it is important that people know about our student's work, so we will plan on making it easier for the community to keep up to date about our student's progress. Additionally, we will ensure that students publish short updates about their work for the community. We also ran into some difficulties with one of our student/mentor pairings, so we will try to avoid some of these problems by ensuring every project has a couple of mentors.

Why is your organization applying to participate in Google Summer of Code 2013? What do you hope to gain by participating?

The Clojure community has been growing at a healthy rate since the initial language announcement in 2007. The Clojure mailing list now has over 7500 subscribers, the Freenode IRC channel sees greater than 400 participants, and there were three conferences scheduled last year dedicated to Clojure. At these conferences, the question is no longer ‘Do you get to use Clojure at work?’ but ‘Are you using Clojure in production?’ All of this activity means many open source initiatives in the community need help, from projects for development of web and mobile applications using ClojureScript to advanced creative authoring environments like Overtone. This coupled with evident interest from students and mentors on the mailing list has encouraged us to apply again for GSoC 2013.

By participating we hope to accomplish several things: Of foremost importance, students get an opportunity to contribute to projects that would require far more sophistication in programming languages with more complex semantics than a Lisp—for example constraint logic programming over finite domains or improving the minimalistic ClojureScript compiler to produce optimal JavaScript code. We believe this kind of knowledge is incredibly useful outside the context of the Clojure language or community in particular. Taking on a proposal also gives students the critical opportunity to own a highly visible project and become a community leader. The Clojure community largely consists of practitioners, so many projects of moderate difficultly with significant community benefits do not get addressed simply for lack of time. We are a grassroots organization, not an academic institution, and we don't have the infrastructure in place to encourage community members to set aside two to three focused months to work on useful projects. As such, GSoC provides us with an excellent opportunity to benefit and grow our community.

What is the URL for your Ideas list?

What is the main development mailing list for your organization?

What is the main IRC channel for your organization?

#clojure on Freenode

What criteria did you use to select your mentors for this year's program? Please be as specific as possible.

We select mentors based on their prior participation in the Clojure community. A mentor for a given student project will usually be a lead developer for an existing open source project related to the student's project. This will help ensure the mentor has both an interest in success of the GSoC project as well as the necessary expertise to be an effective mentor.

Our mentors are generally leaders within Clojure community who have been involved in the development of the programming language more than three years. These community leaders have shown a dedication and level of involvement that is simple to verify.

What is your plan for dealing with disappearing students?

The most critical aspect is of course preventing such a scenario entirely. This needs to happen at the selection of the proposal, the selection of the mentor, and the selection of student. A proposal of proper scope, a dedicated mentor, and a student with a visible history of seeing projects to their end is critical to success. Also critical is observing their involvement in the community prior to the student selection process. We prefer students who have already started developing a working relationship with their mentor and interacting with the community. Finally, a proper interview is probably required in order to find out whether the mentor/student pairing is ideal and whether the student will be free of time conflicts during the GSoC time period to see their project to completion.

What is your plan for dealing with disappearing mentors?

Ideally, all projects will have at least one backup mentor. Even so, mentors are selected from the community precisely for their history of involvement in the community and the issues surrounding proposal.

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

We will be clear that community involvement prior to selection will be a strong factor for being considered for a proposal. Our experience last year taught us that those students with the strongest community/mentor involvement before the program performed the best. We believe that open source contribution is not solely a summer time affair. Students should be talking with mentors from the start in order to develop the adequate understanding and material required to tackle the proposal. This may include, but is not limited to, showing familiarity with an API, submitting patches, and reading papers and discussing them with mentors. We believe that a well considered proposal/mentor/student combination reinforces student engagement during the GSoC period.

We will strongly encourage students to provide updates to the community at large about the work they are doing on a weekly or semimonthly basis. To increase the effectiveness of this, we will make it easy for the community to be able to follow our students' progress. Last year, a number of students were interviewed in community electronic publications, and we would like to encourage that once more.

What will you do to encourage that your accepted students stick with the project after Google Summer of Code concludes?

Most of the proposal are significant enough that students should feel a sense of ownership about their accomplishment. At the same time, the proposals are significant enough to the Clojure community that community members can provide support once the intensive GSoC period is done and the student must focus more time on academic responsibilities. We will encourage students to submit talks about their work to community conferences, and we will take the opportunity to use GSoC's travel stipend to get our students to conferences.

Are you a new organization who has a Googler or other organization to vouch for you? If so, please list their name(s) here.

Status

colour

Yellow

title

Optional

Type answer here

Are you an established or larger organization who would like to vouch for a new organization applying this year? If so, please list their name(s) here.