Pharo


Pharo is a dynamic programming language, clean and licensed MIT, created in 2009.

Introduction

Pharo is a programming language largely inspired by Smalltalk . It is based on a virtual machine , written in large part in Pharo itself, which allows it to be multiplatform (Mac OS X, Windows, Linux, iOS, Android).

Pharo’s policy forces its contributors to agree to publish their MIT license code . Pharo has the main characteristics of Smalltalk:

Everything is object , in the sense of object-oriented programming,

The system is reflexive : a program can change its structure and behavior at runtime,

Typing is a dynamic typing : unlike some static typing languages, which force the developer to specify the type of each variable (integer, string …), the variables can take any value,

The inheritance is simple ,

Memory management is automatic : Pharo uses a garbage collector ( garbage collector ) 1 , like other languages like Lisp or Java.

The syntax of Smalltalk is minimalist : it holds on a postcard 1 .

One of the main interests of Pharo is that it is not necessary to recompile all the code in the case of modification of a method. It is possible, for example, to modify or create a method within the debugger and to resume the execution stream just before the modification. Some call it the edit and continue method instead of the traditional edit compile and run method .

Community

600 people subscribe to the Pharo mailing list.

Every two months, members of the community meet during a day to improve Pharo during a sprint .

Every year a Pharo conference takes place. Pharo users gather at this conference to share their research and professional projects. In 2010, it took place in Annecy (France). In 2011 and 2012, it took place in Lille in France. Finally, in 2013, the Pharo conference took place in Berne, Switzerland.

Regularly, programming videos with Pharo are posted on PharoCast 2 or on Pharo’s youtube channel.

More than twenty companies today use Pharo for their software development. The main applications developed are on the one hand related to the development of web application (using for example the Seaside framework ) and on the other hand to the analysis and visualization of software system (using the Moose framework ).

The Pharo community is organized around a consortium 3 bringing together industrialists, academic partners using the platform. Pharo also has a 4 non-profit association .

History

Pharo is a fork of Squeak , an open source Smalltalk developed by members of the original Smalltalk-80 team (Dan Ingals and Alan Kay).

Distinguishing themselves from the more playful aspect of Squeak, Pharo designers (researchers at INRIA) wish to develop a modern Smalltalk geared towards the needs of companies and research in software engineering. Pharo has become the reference implementation of Seaside , a web framework for developing web applications in Smalltalk 5 . Today, Pharo is supported by a consortium of industrial users and an association for individuals.

Fork in 2008.

Version 1.0 of Pharo is released on April 15, 2010.

Version 1.1 of Pharo is released on July 26, 2010 6 .

Version 1.2 of Pharo is released on March 29, 2011 7 .

Version 1.3 of Pharo is released in August 2011.

Version 1.4 of Pharo is released in April 2012.

Version 2.0 of Pharo is released on March 18, 2013 8 .

Version 3.0 was released on April 30, 2014 9 .

Version 4.0 is released on April 15, 2015 10 .

The latest version 5.0 is released May 12, 2016 11 .

The current schedule provides for a new version per year. In addition, stabilization versions (Pharo 2.1, 2.2) are planned every four months.

Teaching and Research

Teaching

With its active community, its MIT license, stable kernel and multiplatform operation, Pharo is an ideal environment for learning Smalltalk language.

A book in French, Pharo by example , is available online 12 . It is free and allows you to learn the basics of Pharo. A second volume is in preparation 13 .

Pharo is increasingly being used in teaching. Smalltalk is taught in the form of Pharo in particular to:

  • The University of Bueno Aires (Argentina)
  • University of Bern (Switzerland) 14
  • University of Brussels (Belgium) 15
  • The mining school of Douai (France) 16
  • University of Lille 1 (France) 17
  • University of Savoy (France) 18
  • The University of Lviv (Ukraine)
  • Northern Michigan University (United States) 19
  • The Catholic University of Argentina (Argentina) 20
  • The University of Santiago (Chile) 21
  • The Polytechnic University of Catalunya (Spain) 22

Search [ edit] | Change the code ]

Research teams work with Pharo, including teams:

  • Lafhis (University of Buenos Aires, Argentina)
  • Software Composition Group (University of Bern, Switzerland) 14
  • CAR (Mines of Douai, France) 23
  • RMOD (Inria, France) 24
  • Ummisco (IRD, France) 25
  • Reveal (University of Lugano, Switzerland)
  • Lysic (University of Western Brittany, France) 26
  • Pleiad (University of Santiago, Chile)
  • CEA-List

The Pharo association was recently created and includes all independent wishing to support the project 27 .

Performance and virtual machine

Pharo is based on a virtual machine written largely in Smalltalk itself. Since 2008, a new virtual machine with a level of performance comparable to the fastest Smalltalk dialects is available 28 . This powerful virtual machine runs on Mac OS X, Windows and Linux. A simplified version and a little less fast running on iOS and Android.

Notes and references

  1. a and b http://www.unixgarden.com/index.php/programmation/smalltalk-the-power-and-implicity-of-all-object  [ archive ]
  2. ↑ http://www.pharocasts.com  [ archive ]
  3. ↑ http://consortium.pharo.org/  [ archive ]
  4. ↑ http://association.pharo.org/  [ archive ]
  5. ↑ http://code.google.com/p/pharo/  [ archive ]
  6. ↑ http://linuxfr.org/2010/07/28/27175.html  [ archive ]
  7. ↑ http://code.google.com/p/pharo/wiki/Pharo12FrenchAnnouncement  [ archive ]
  8. ↑ http://www.pharo-project.org/pharo-download/release-2-0  [ archive ]
  9. ↑ Pharo3.0 Announcement http://pharo.org/news/pharo-3.0-released  [ archive ]
  10. ↑ Pharo4.0 Announcement http://pharo.org/news/pharo-4.0-released  [ archive ]
  11. ↑ Pharo5.0 Announcement http://pharo.org/news/pharo-5.0-released  [ archive ]
  12. ↑ ( en ) Pharo by Example [ archive ] , Andrew Black, Stéphane Ducasse, Oscar Nierstrasz and Damien Pollet, translated by Martial Boniou René Mages and Serge Stinckwich. Creative Commons License, version 3.0
  13. ↑ It is already possible to access certain chapters of the English version on the site http://rmod.lille.inria.fr/pbe2/  [ archive ]
  14. a and b http://scg.unibe.ch  [ archive ]
  15. ↑ http://soft.vub.ac.be/soft/  [ archive ]
  16. ↑ http://www.ensm-douai.fr  [ archive ]
  17. ↑ http://www.univ-lille1.fr  [ archive ]
  18. ↑ http://www.imus.univ-savoie.fr  [ archive ]
  19. ↑ http://www.nmu.edu  [ archive ]
  20. ↑ http://www.uca.edu.ar  [ archive ]
  21. ↑ http://www.uchile.cl  [ archive ]
  22. ↑ http://www.upc.edu  [ archive ]
  23. ↑ http://car.mines-douai.fr  [ archive ]
  24. ↑ http://rmod.lille.inria.fr/web/  [ archive ]
  25. ↑ http://www.ummisco.ird.fr/index.php  [ archive ]
  26. ↑ http://www.lisyc.univ-brest.fr/  [ archive ]
  27. ↑ http://association.pharo.org  [ archive ]
  28. ↑ http://www.mirandabanda.org/cogblog/  [ archive ]