The International Pascal Congress has finished and I’m packing home.
This was intensive and very positive experience.
- I had a workshop about Castle Game Engine (4 days, 1 hour per day) and a talk about graphics and game engines in Pascal. I got a lot of positive feedback about both the talk and the workshop and the engine 🙂 I’m coming back confident we have a great thing on our hands. (And we have to finally release engine version 7.0 and spread the word about it as wide as possible!)
The slides from my presentation on Castle Game Engine at IPC 2023 are linked from here. The talk wasn’t easy to prepare (I wanted to cover a lot of things) but it seems it went really good. I went from a general description of modern GPUs and their APIs, through overview of various Pascal libraries and game engines for graphics, and ended with overview of things I consider important when making/choosing game engine.
In a broader context, about Pascal, and Delphi and FPC, this was invigorating as well. I met really great people, using both FPC and Delphi (really a mixed bunch, some people preferred Delphi some FPC/Lazarus, many were using both, like me).
Including Marco Cantu, Delphi project manager. A heard a few presentations of language features (some specific to Delphi), and overall I am impressed by the direction Delphi is taking. Modern language (e.g. I was surprised by the power of inline variables and certain type inference involved, and I have to say I’m a fan now). Tools to build modern applications (RAD server). Looking at the landscape of other languages and integrating (FMX for Python devs).
- We also had a presentation about the upcoming Fresnel from Lazarus, and what it really means (CSS, Skia in FPC too), by Mattias Gaertner and Detlef Overbeek. This nicely connected with other talks about how important is the web target for everyone now — it was a prominent topic, along with pas2js, in the Bruno Fierens from TMS Software presentation. This is an exciting time — finally we think about a new approach to design visual applications, not only extending a dated VCL design. (Don’t get me wrong, LCL is nice, we’ve come a long way since VCL. But LCL inheritance from VCL is visible and causing issues — like the “absolute” layout by default, integer coordinates etc. Unlike web applications using CSS that can support both desktop and mobile with drastically different aspect ratios and physical sizes.)
Overall, I come back even more confident about some CGE decisions I was thinking about:
- Web target is super important. I already wrote about our plans for web target here.
I absolutely want perfect support for both FPC and Delphi. I want to support both, and I want to support both equally well. They both go in good directions now. Some changes will be compatible, some incompatible between Delphi and FPC, but I don’t mind — let’s show the world that Pascal is a modern language, let users choose compiler they like, and as long as the core language stays compatible — I don’t mind a little incompatible libraries around. We’re in for interesting times.
Maybe it also means switching to using CGE UI in CGE editor sooner than I originally planned. Because this opens the door to compile CGE editor with both FPC and Delphi, and to deploy CGE editor as a web application too.
I was thinking about exposing CGE to Python developers at some point in the future. I was happy to learn this matches some Embarcadero ideas too. See DelphiFMX4Python: Python GUI module powered by Delphi’s FireMonkey framework. Supporting Windows, MacOS, Linux, and Android GUI development. And see python4delphi: Free components that wrap up Python into Delphi and Lazarus (FPC). And during talks, Marco (I believe correctly) pointed out that Python is enticingly close to Pascal in terms of thinking about “clean and readable programming language syntax”. Except they miss strong typing! My idea about attracting Python developers to CGE is therefore consistent.
It is also nice to see Embarcadero active on GitHub.
I also got some nice hint about using Delphi from Linux 🙂 I want to try it out and post about it later 🙂
Overall, I have a ton of notes, and a ton of new enthusiasm for both our engine, and Pascal in general.
In related notes, I just added a page “why Pascal” to our documentation — this is understandably a question we often get, and I want that page to be a good answer.
Have fun everyone! Back to packing now 🙂