PharoJS Highlights @ ESUG 2022

ESUG 2022 PharoJS Highlights

After a two years pause due to COVID, ESUG conference is back. This year’s edition took place 22-26 August in Нови Сад (Novi Sad), Србија (Serbia). As usual, it was a delight to meet the Smalltalk community. It was also an opportunity to present latest updates on PharoJS, give demos and even implement new stuff as summarized in the following.


Talk: PharoJS for Real World Applications

I was the first speaker at ESUG 2022. Almost all conference attendees were in main amphitheater. And from the numerous questions and comments I got, I can tell that they seem to have enjoyed my presentation. You can find below a very short summary, followed by the video and the slides.


PharoJS dates back to 2015. True to Pharo’s philosophy, it was started to build real world software. Actually, the initial motivation behind PharoJS was building mobile applications based Web technologies using Cordova (formaly PhoneGap). This means that for production, Pharo code is transpiled to Javascript to benefit from JS’s portability and speed.

But, for development, we wanted to benefit from Pharo’s unique set of features and IDE. To do so, PharoJS provides a framework and a toolset that supports integrating Pharo code with third-party JS libraries. It also enables testing and debugging applications running on a JS interpreter. We’ll discuss these features, and how they were successfully used to produce real world software.



Demo of PLC3000 a PharoJS-based Software for Teaching Factory Automation

PLC3000 is a SaaS solution for teaching factory automation and Programmable Logic Controllers (PLC).  It  provides a collection of exercises, development tools and programmable simulated benches. Being 100% online, it requires only a web browser, and can be used to teach remotely, in person or hybrid classes. It works even for large groups of students.

PLC3000 has been of course developed using PharoJS. I gave different demos as part of the ESUG Innovation Technology Awards. The videos below gives a glimpse of the solution. Some technical details about PLC3000 are also given in the above slides of my talk.

Live Experiment of 3D Graphics with PharoJS

Eric & Pierre are two Smalltalkers expert in UI for prototyping complex dashboards. They were interested in PharoJS and asked me how to connect with ThreeJS, an open source 3D graphics JavaScript library. Instead of a theoretical explanation, I fired a Pharo image and showed them how to actually implement it. 

Based on a simple example from ThreeJS documentation, I showed how to convert the JS code sample to PharoJS. It’s rather straight forward, almost a 1 to 1 direct mapping. On the way back home I’ve cleaned up the code and published on GitHub. It’s now part of the PharoJS examples package. The example is an interactive cube with PharoJS icon. It can be rotated in all directions using the arrow keys of the keyboard. You can try it on the demo page of the PharoJS web site.


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.