On the issue of contributing to Free, Libre, Open Source Software (FLOSS) projects, I have been reading recently Nadia Eghbal and her analysis that confirm that most FLOSS projects are done by individuals and small teams, which is contrary to the bazaar narrative. This comic shows the point:
and you can find more details here: https://medium.com/@nayafia/what-success-really-looks-like-in-open-source-2dd1facaf91c#.e360z53sf
In that sense Pharo and what we’re doing here on small communities, teams and individuals, is not the exception, is the rule. We’re fortunate that we have a friendly and dynamic community around a powerful environment, so even being part of the rule, we can be very creative and productive.
On the issue of step 0, learning materials and approaches, and Pharo for beginners, my findings are that Pharo is pretty well suited for non-programmers (journalist, scientist, teachers, philosophers) compared to IPython for example. I have tried both, IPython notebooks and Pharo/Grafoscopio, and the uniformity and self containment of the environment is very empowering, without too much overhead and extra complications. So I think that we also need to look towards the non-usual programmer and computer scientist profiles for the “newbies” and interested in belonging to the community.
Our approach in our Data Week workshop is different:
– We start with some panoramic view of computing comparing Unix fathers versus dynabook children. This gives a point to see the technology and the differences and why Pharo is more like OS + IDE + Apps in a minimalist fashion, instead of the Unix legacy approach to the same problem.
– We go to the professor Stef tutorial, which is the first part of a Grafoscopio notebook. Then we use some one liners taking from Sven’s Elegant Pharo code, then we use Hernán’s Internet Movie Data Base example to introduce JSON, queries and REST API, then we use blocks to abstract the example (see below) and create our first “Cinemania” package.
– Then we learn how to extend the Dataviz package (made in Roassal), with our Twitter exported data and we deal with an open problem: Twitter Data Selfies.
So, there are several routes to learning for different populations and contexts. Putting the new contextualized stuff we’re doing in dialogue with the material the community is creating (MOOC, UPBE, Deep Into Pharo) and other communities like Open Knowledge (see our recent for the upcomming Data Week 7 at [a]) is the key to let learners traverse different paths according to their needs and interests.