Board index » kylix » I - The Challenge
|
Willibald Krenn
kylix Developer |
I - The Challenge2005-03-14 04:08:25 AM kylix0 Let's face it: Kylix is dead - desipte all the nice words we hear from Borland. The FreeCLX project has not shown a sign of live yet, Delphi 05 has dropped CLX alltogether and due to the NET 2.0 / Compact framework / Windows XY work Danny and the Delphi team at Borland have to do, we won't get an update for Kylix in near future (if ever). Additionally mono support of Delphi is pretty much non- existant and the QT shipped with Kylix will soon be outdated by two majour versions. It's only due to us (most notably Andreas of course) that Kylix still runs on Linux. However, this can not go on forever, as the class libraries (SOAP, WEB) are outdating with each day passed even more and FreeCLX can't replace current commercial CLX due to license and component issues. The FPC guys have their own feature and class library set and are not willing to build a bridge for current Kylix users to use their compiler (with CLX) in future. Besides, even if they did, we still would have the problem of the CLX being unsupported and the fpc compiler lacking some features (AFAIK). In short, developing Delphi compatible applications that run on Linux is quite impossible now and in no case future proof. It's a dying platform. As you probably can imagine, I can not stand this situation: I like to have my pet language (and framework) and I'm willing to invest time to reach this goal. So here is the idea: Jump on the Mono bandwagon and implement a Delphi com- patible compiler plus add the VCL.NET (or CLX.MONO if you like) on top of GTK#. You might think "he's gone crazy now" or something along that line. It's obvious that our small community can not build and maintain a class library (CLX, RTL, WEB...), an IDE with De{*word*81} and a compiler at the same time (even if we would have the source code), but let me explain why I think this idea is worth the effort and why I think we can reach the goal: Let us look at the chosen platform at first: Mono (or .NET). The downside of course is that we don't get native executables if we take this path, but because Novell stands behind this project with some full time employees, we can be pretty sure that the platform will evolve. IIRC there is even a version of python that runs on .NET. Regardeless - this downside is at the same time also a very important strength: We will have to support only one platform (.NET) that itself runs on all machines and operating systems Mono is ported to. Even more important is the key aspect of .NET, namely the "freedom of language": Every line of C# code that is added to the mono libraries is automatically available in Pascal. Basically this means that we only have to care about VCL - everything else is done by other people not part of our project. It also means we have a complete basic library from project start and can concentrate on other things. After the platform, it's probably the managed compiler that will need most efforts. So let's think about it: As I see it (and please correct me if I'm wrong here), we do not need to start from scratch. On the one hand there's the Free Pascal Compiler that we can fork from and on the other hand we can use code from the Mono C# compiler. If we take the Free Pascal approach, we can use Delphi.NET for bootstrapping and I assume that the FPC community will be helpful when we're hitting a wall. Going that route will probably be most beneficial as we will get the ultimate unit test plus - by incorporating the FPC code base - the complete experience of several million lines compiled Pascal code. At the end we'll have our own Delphi compiler that probably won't be as fast or efficient as Borland's product, but it will be future proof and truely ours. (Note that we only have to emit IL-Assembler and let the dirty work do the mono tool..) All the things said above are - obviously - only half the fun, because without any meaningful CLX.NET wrapper we get nowhere from Kylix. Personally I'd really like to see CLX.NET on top of GTK# (which is the true Mono widget set) as this would make an end to the desasterous license issues we have with QT. It might be whishful thinking, but maybe Borland donates the old (complete) CLX under some LGPL license, so we would not have to start from scratch and understands that as new-old "Community Project". Borland would not lose anything by doing that because practically noone is using the CLX today - plus Borland does not update CLX and the CLX itself is completely outdated. Additionally Borland would get a VCL.NET compatible wrapper for GTK# for free while only having to maintain VCL.NET... This would - in turn - also strengthen the position of Delphi on Windows. I think this is a fair deal. Now we have the compiler, the glue framework - but the package still lacks the IDE: Fortunately there's MonoDevelop with included de{*word*81} that will only need a few modifications to support Pascal as new language. Integrating the CLX.NET will be more time consuming, but in the end we will only have to maintain the "Pascal" part of the IDE: The rest already has a team responsible for it. If you made it all the way down here, you're certainly interested and I want to hear from you! What do you think about this? Can you imagine contributing some pieces? Can you imagine taking over some part? Will you join the team? To answer the question for myself: I'm terribly interested in compilers, so I'd be happy to be part of the compiler team. I do have some insight into the mono JIT engine and can help introducing new mono users to the Mono JIT code base. I'm also the "owner" of a sourceforge project (if it's not deleted in the mean time) that would be suitable for the compiler. Now how about you? Thanks, Willi P.S.: I'm also "discussing" the compiler issue on the mono-devel list. |
