The Pharo programming language celebrates its 10th anniversary after going around the world...
In 10 years, the Pharo programming language - created at Inria by the researchers Stéphane Ducasse and Marcus Denker - has established itself in a number of fields: Web applications, servers, telecommunications, banking, etc. This success is based on an active community of over 100 contributors and a wide distribution, both academic and industrial.
“A simple, pure and interactive language! ” That is how Stéphane Ducasse, research director at the Inria Lille - Nord Europe centre, describes the Pharo language, which he created with Marcus Denker, another researcher with the RMoD team*, and which will be celebrating its 10th anniversary this year. The adventure dates back to 2007: at the time, Stéphane Ducasse and Marcus Denker were maintainers of Squeak - an implementation of Smalltalk, a very widespread “object-oriented” programming language - at the University of Bern. “Squeak's infrastructure was deemed too heavy and obsolete. So Stéphane, who had just created the RMoD team at Inria, suggested I join him so that together we could go back over all of the bases of Squeak in order to create our own language ”, Marcus Denker recalls. “The idea was not to create a research prototype, as Squeak had become, but an effective language enabling users to rapidly develop their applications and generate business easily ”, Stéphane Ducasse sums up.
Simplicity and interactivity
From 2008, the two researchers published the first version of Pharo in open source, which immediately united the community of contributors (or ‘committers’) coming from Squeak. The distinctive feature of this new language is first of all its simplicity, as the instructions fit onto a postcard – “when other languages sometimes don't even fit onto 50 pages ”, Stéphane Ducasse explains - and on the other hand its interactive aspect. “With Pharo, users have immediate feedback on the object developed, to such an extent that they can modify their program directly in the compiler, whose role is usually to debug the finished program. This characteristic makes it possible to experiment much more quickly - a bit like a digital camera compared to a film camera - and brings an immersive side that is much appreciated by the developers ”, Stéphane Ducasse explains.
Today, the Pharo community has almost 100 committers, who regularly make software building blocks available. “For example, a Belgian company specialising in the monitoring of lorry fleets shared its entire http server - an enormous building block representing a year's work - to see if the community could, in return, capitalise on it and improve it ”, says Stéphane Ducasse. For its part the RMoD team, with around 30 researchers, engineers and PhD students, handles the structuring of the community: “Inria gives us the opportunity to free up some time and resources in order to develop the platform, which allows us to maintain a link between academic research and industrial applications ”, Marcus Denker remarks. And so, in 2013 the Pharo consortium was created, bringing together over 50 companies. “The idea is to pool resources in order to provide users with technical support and ensure the sustainability of the language, by verifying - for example - that it is compatible with all of the future versions of Windows or Mac ”, Stéphane Ducasse explains.
The idea was not to create a research prototype, as Squeak had become, but an effective language enabling users to rapidly develop their applications and generate business easily.
Today, Pharo is used in a wide variety of fields: drones, telecommunications, banking, etc. The company Lifeware has, for example, applications of over 30 million lines of code in Pharo in order to produce blank turnkey contracts for insurance companies. For its part, the Thalès group uses Pharo to develop graphic interface prototypes for the French armed forces. “What is surprising, is that the language generates applications I would never have originally imagined ”, Stéphane Ducasse says excitedly. For example, Pharo enabled the development and management of ATMs in Russia from 2008 to 2015, as well as a number of sales/rental websites such as the online rental of machine tools in Japan.
The language is also recognised for its educational value with regard to object-oriented programming, which is why it is taught in around 40 universities across the world. To satisfy this interest, the RMoD team even created an online course (MOOC) which has had 8,000 participants - university students or graduates - to date! “One of the best MOOCs I have done... [...] As a senior developer, I would like to be reincarnated as a Pharo developer in my next life ”, declares one user on the MOOC website. The RMoD team also attracts young talent: “having only previously programmed in Python and Java I was immediately drawn to Pharo, in particular due to its syntax which, despite being very minimal, enables the implementation of a complex behaviour in a relatively simple manner ”, says Julien Delplanque, software engineer who this year joined the team as a PhD student.
As far as the future is concerned, Stéphane Ducasse, Marcus Denker and their team are nurturing a number of projects. For example, they are working on new layers of the software aimed at the Internet of Things - e.g. to embed Pharo within connected devices - or applications relating to the blockchain...an indication of the language's very modern character!
*RMoD is a joint Inria project team with the CRIStAL laboratory (Centrale Lille, CNRS, University of Lille).