People that assisted to Pharo Days 2019 (or that follow my twitter account) already know this, but it needs to be formally announced:
We are working on Spec 2.0, and it will provide not just the classic Morphic bindings but also a new option for developers: Gtk3 bindings!
Why we want a Spec 2.0 with different backends?
There are reasons that converged to decide us to make it:
- First, to provide a validated abstract Spec 2.0 that can be used with different backends, preparing Pharo to be able to switch backends without needing to recreate the full IDE from scratch each time (a problem we have partially now in our way to deprecate Morphic).
- Second, because we receive from different sources the requirement of having the possibility of developing real native-looking desktop applications. Yes, in moment where people talk about the cloud, SaaS and web-applications as the “next big thing” (something that is been declared since years, by the way), we believe is important to provide this, for two big reasons:
- Because there is still an important place for desktop applications market and most medium-size to big business still require them.
- Because Pharo itself is a desktop application! (And we need to provide the best experience possible on it).
For us, this is a fundamental step to continue improving Pharo itself, and it matches also the work we are doing on going real-headless: Pharo users will be able to start the Morphic world, a Gtk application or the next backend to come.
There are some other important players in the “native widgets scene”, so why we choose Gtk3?
Again, several reasons were taken into account:
- Gtk3 is cross platform. Yes, technically is just “native” in linux, but it works on Windows and macOS too.
- It is very mature and popular.
- It is made in plain C.
Next step: tool migration
The only way to know if you have covered what is needed is actually taking real-life use cases and implementing them. We have a list of tools that needs to be migrated and we are starting from them:
- Old GT tools will be replaced by new Spec tools (while preserving its power).
- Calypso UI needs to be rewritten in Spec 2.0 (it is in plain Morphic now).
- Pharo launcher as a standalone application is a good example of what you can do with the Gtk3 bindings.
And that’s it. Pharo 8.0 will come with Spec 2.0 and users will be able to benefit of it immediately 🙂
Pharo 80 will not need Gtk3. We will provide packages for Gtk3 for the people that need it. We will also release Spec20 soon so that people can try Spec 20 – independently of Gtk3
Pharo Consortium mainly Esteban, Pablo and Guille