Saturday, January 13, 2018

CodeTyphon!

I had been married to C++ for what seemed like forever, but recently, I admitted to myself that this marriage had grown more and more frustrating (template compilation times! CMake! snail-paced language development!), and so I decided to ring up an old flame of mine - Delphi.

The last time I had seen her was almost 10 years ago, and that had been an almost purely workplace kind of reunion - there hadn't been much time for fun.

So, I looked her up - and found that, alas, she was now beyond my reach - the fee for an appointment - er, I mean a developer license - was beyond my budget.

But I knew Delphi had a younger sister, one that was much more amenable to working-class relationships. So, I once again looked up the open-source project called Lazarus (ok, enough with the dating analogies now).

I was pleasantly surprised to find that not only had the project been well maintained and its community was still active, but there was even a new variant called CodeTyphon, which I would like to sum up as "Lazarus, Fully Loaded": not only does it support cross-compiling for a whole lot of platforms out of the box, it also comes with an absolutely astounding quantity of pre-installed (!) component packages.

I won't lie to you: I've barely even begun to look at this product, and I couldn't usefully answer your questions about it. I have, however, found out the odd little fact about it, which I would like to share here.

Let's get one important thing out of the way first: CodeTyphon does NOT attempt to stay compatible with Lazarus. From a first few exchanges I had on their forums (which are very actively attended to by the development team), it seems that Typhon was created out of some kind of frustration with the original Lazarus project. Now, I'm not sure what the cause of that frustration was, and I certainly cannot pass any kind of judgment on the decision made by PilotLogic (the software company behind the product). At first glance, the splitting of resources may look like a bad thing for the Pascal community; then again, I can see that trying to maintain compatibility at all costs could well seriously impede a very active player such as PilotLogic clearly is.

What this concretely means is that project and package files are now incompatible - not because of the format of their content (yet), but because of the file extensions used. This change appears to be quite new actually - I believe it was only just introduced with their latest release, which is 6.30 at the time of writing this - and appears to be intended as a "clean break" that will allow PilotLogic to introduce new features later on.

 (Note that a user has created a two-way conversion tool called Ct2Laz that, at least for now, can convert most projects from Lazarus to CodeTyphon and back.)

Moving on - I need to stress again how much work PilotLogic must have poured into CodeTyphon over the last 10 years. The full installation (called "Big IDE") comes with a total of 175 packages, all of which are being maintained and continually tested for all supported platforms by PilotLogic. That fact alone gives me a very, very good feeling about the future of this product.

What else? Well, it should be noted that CodeTyphon is actually freeware, and is not entirely open source. However, the only proprietary part (which is still free!) as far as I can tell is CT Center, which appears to be not so much a classic installer, but rather a "script command center" that makes it easier to install and update all of the parts of CodeTyphon (IDE, tools, and packages) - all of which it will build from source.

One thing that initially confused me is that those sources are not currently available on any online code databases such as Github or Bitbucket. However, the sources are nonetheless provided, and are available in subdirectories of the CodeTyphon installation directory. The only thing that gets lost is the detailed commit history, though PilotLogic marks all of their changes with a "ct9999" annotation. (Note: according to one of the programmers, PilotLogic is currently thinking about abandoning this system and introducing a real modification tracking system.)

I wish I could tell you more about this promising product, and hopefully will be able to do so in the near future. I only need a little time to immerse myself into it, and to get re-acquainted with the Object Pascal world more generally.

No comments:

Post a Comment