On Delphi for Linux…

It has been difficult to avoid the fuss being made about the “new” Linux support in Delphi. It’s almost as if they didn’t have a Linux offering more than 15 years ago. I refer of course to Kylix, which failed in no small part due to the quality and the cost of the tool, for a platform where “free” was the more usual expectation and open source means being able to fix your own tools instead of waiting for the vendor to deign to offer a maintenance release. So what better chance does a Delphi with Linux support stand this time around ?

Let’s see…

Kylix could be used to create both server and desktop applications. This new support is limited to server applications. For now at least. But that’s round one to Kylix at this stage.

Kylix was available in 3 editions: Open, Desktop and Server at price points of $0/$99 (for printed documentation), $999 and $1999.

Delphi is available in Starter, Pro, Enterprise and Architect at price points of $99, $1400, $3500 (!!) and $5,600 (!!!!). Those are NZ prices in USD.

Assuming that the Linux support is included in Starter then you can at least get started for $99 but this is unlikely. Starter Edition doesn’t even support Win64, being limited to just Win32. Pro Edition users might be lucky, but again they might also be subjected to the same bait and switch perpetrated on them with the Android and iOS support, which was initially provided and then withdrawn and made subject to a separate $500 “add-on”.

Of course, this is very early days for the new Linux support so you will be needing an annual subscription to ensure you get the new releases that will no doubt be necessary. So on price I think the best you can hope for is a draw in terms of comparison between Desktop Edition Kylix and Pro Edition Delphi, which cost more or less the same in real terms.

Unfortunately, it’s not as if the free alternatives have disappeared in the mean-time. Even for Pascal developers, FreePascal has come on leaps and bounds in the intervening years. For example.

So it really is difficult to see why Embarcadero are quite so excited.

I can only begin to imagine the excitement that would be on display if they came up with a .NET offering.

28 thoughts on “On Delphi for Linux…”

For my point of view, with existing code base, the main issue with the Delphi Linux compiler implementation is that it forces ARC as memory model. My current server code base runs with no problem under Linux using CrossKylix or FPC since years… why would I use the Delphi for Linux compiler, and spend weeks in changing/IFDEFing/tuning my proven code to fit the ARC model?
Any leak (e.g. a reference not marked as “weak”) in ARC on a server is a big issue….

I can’t imagine the Delphi team is ever going to try writing their own compiler from scratch again (the expertise is no longer there). This will mean that any new compilers/platforms will be LLVM-based and no doubt using ARC. As is, I imagine the Linux targeting is being based on the existing LLVM compiler for Android.

>why would I use the Delphi for Linux compiler, and spend weeks in
>changing/IFDEFing/tuning my proven code to fit the ARC model

Because in Embarcadero’s world, CrossKylix, FPC, etc. don’t exist, nor do any non-Pascal languages (except C++, but in that case Visual Studio doesn’t exist). Nothing on their website, in their promotional material, etc. ever compare their products to anything else.

Fact check: I rarely post about Delphi these days and this post does not criticize Delphi itself, only the business model, beyond drawing attention to the cost/capability issues of this new feature, in which I am very far from being alone.

Although originally a Delphi blog, I long since shifted to blogging about Pascal in general (Oxygene more specifically these days since that is now my favoured Pascal implementation). But Delphi still remains the best known commercial implementation of Pascal and so commentary on that is to be expected on a Pascal blog. And if Embarcadero are going to insist on bombarding me with unsolicited information about their product then forgive me for forming an opinion about what it is they are trying to force down my throat.

I looked into what they were offering and this post simply shares what I found. If you don’t like what I found, take it up with Embarcadero. They are the only ones who can do anything about it.

And I honestly cannot understand why DelphiFeeds keep the blog from this guy over there as he clearly has nothing good to add to the Delphi community.. must be a very frustrated man trying to undermine Delphi in favor of his new favorite language…

My observations on what Embarcadero are doing are just that… observations. If those can be said to “undermine Delphi” then unless there is an inaccuracy in the observations (feel free to point these out, if they exist) then really is it not Embarcadero that are undermining Delphi ?

But of course, to even suggest that is heresy. Burn him! Burn him!

Fact check: Nothing in my post even tries to “undermine Delphi”. It just presents and observes on facts. Heck, in this case I even went out of my way to give Embarcadero the benefit of the doubt where the facts were not clear, allowing that Pro users might have access to the Linux capabilities (which turns out not to be the case – I guess that’s my fault too ?).

Keeping the “Borland Bubble” in place, where desperate users try to convince themselves that all is well by silencing any dissent, is the opposite of service to community. Pointing out problems *is* adding something good to the community. Ignoring them or silencing those who point them out hinders product improvement.

One post from Jolyon pointing out the harsh reality (that Delphi is wildly, wildly overpriced) is worth a dozen blog posts from users who claim that there are 3 million Delphi users or that Pascal is “coming back” or that web apps are on their way out or that C# users should “shut up” because “C# is basically Delphi” (as one Delphi blog wrote a few months ago).

Linux rules the world today. In an era in which even Microsoft is adding Linux support to Visual Studio, you simply can’t omit it. It might not gain any users, but it makes the product look even older and out of date if it’s omitted.

Linux support will be made available in the Enterprise version only – afik.

I’d not bet too much on this feature for the moment except from compiling server side code. I could imagine the very first application of Linux support is aiming at making RAD-Server more popular on Linux too.

I think Linux support is a challenge still. It will not be so simple to provide the superb developer experience offered by RAD-Studio on this platform too.

As Arnaud mentioned just ARC limits the scope of the Linux support. No idea about the C++ Builder …

On a long term RAD Studio could turn into a RAD-Server Programming Add-On. If things evolve the way they do at the moment in the overall IT landscape …

I can remember some old IT people who said, ‘Sanity will return in to IT pretty soon, you will see little bunn’. That happend 3 decades ago. Today I can just say, ‘They werde dead wrong …’. So the most insane solution form nowadays perspective is very likely the well know path beyond no future, which imo describes best the steady evolution of things in IT.

Has there “new” Linux support been released yet? I have happily been using Lazarus and free Pascal since 2012 and have really solid TCP/IP servers built with FPC so this is actually pretty underwhelming news for me.

Access to every Delphi product owner ? Are you sure ? I’m a Delphi owner (every version 1 thru 7 and XE2 thru XE4) but I don’t remember getting an invite to any beta ? I presume you meant “every customer with an active Update Subscription”. Not quite the same thing.

And I did have to be invited right ? The difference with the Elements betas is that there is no separate beta/invite process. As an active subscriber you automatically have access to download each beta drop direct from your customer portal.

Does the Delphi beta invite extent to those whose license is for Starter or Pro ?

It would seem strange to offer those users access to a beta of a feature that won’t actually be available to them once it is released. At least not without being absolutely clear and up front about that from the start. Then again, this is exactly what they did with the “Mobile Add-On”, so maybe you’re right (except they didn’t call that one a beta).

I’ll never understand the way Embarcadero treats us becoming beta testers for their products as a privilege to be granted to loyal customers. This is certainly not the norm in the software world.

I’ll one-up the RemObjects experience. With JetBrains, you don’t even have to be a current customer to download and test their “early access program” products! Think about it – they want to sell products. Why wouldn’t you want the feedback of potential customers as you work on new products?

“We at JetBrains believe that making tools for developers should
greatly involve listening to developers. The EAP lets the community try pre-release versions … and influence development planning, from early stages onwards.” In short, they’re made available at the alpha level, often running different versions of interface elements, etc., past EAP users to see which is preferred, decide which are the most important features to include in an upcoming release, etc. On the Embarcadero side, as David I. once put it to me, “People leave Delphi for C#, people leave C# for Delphi, so we just keep doing what we’re doing.” 😮

I’ve even seen an exchange in which a user commented on one of JetBrains’ blog posts announcing the 1.0 release of a new product, mentioning what he liked about it from his experience as an EAP tester. He got a reply from an employee who said he’d checked and noted the significant quantity of useful feedback he’d given during the EAP period, so as a thank you they were going to give him a one-year product license for free!

Meanwhile, on the Embarcadero side, it’s actually been mentioned on the forum that they maintain that giving away a license key incurs a monetary cost to them! While no one can figure out how that’s possible, Dr. Rudy insists that someone there (he doesn’t remember who) in some position (he doesn’t remember which) explained it to him (although he doesn’t remember the explanation, only that it made sense), so that should be good enough to just take their word on this. Sigh….

>Does the Delphi beta invite extend to those whose license is for
>Starter or Pro ?

Not in my experience. However, downloading the starter edition when it was free (just to read the license) got me a personal sales phone call!

Others have speculated that the new wrinkle will only be available to those licenses for either Architect or Enterprise. While that may turn out to be turn, they do not speak for Embarcadero or Idera. Not that it will make any difference to me, I’ll wait for the official offer/product announcement, thank you very much.

No, others have reported that EMBT have confirmed this in their presentations and also in blogs (less than clearly imho, but if you read point #5 the point is eventually made).

It also isn’t “speculation” that the positioning was justified on the basis that Linux is a server technology and so is not appropriate in a desktop development IDE (Pro), only server ones (Enterprise+).

And all of this confirms what was in EMBT’s own latest amnesty email in which it is quite apparent that Enterprise and Architect is what you need for Linux development.

If you are to continue to insist at this point that there is any doubt on this point then I have to wonder if you are just wilfuly optimistic, an Embarcadero employee spreading misinformation, or perhaps revealing some in-fighting within the EMBT ranks over the decision and represent a faction holding out for the prospect of over-turning the decision before it is actually released. 🙂

GNAT has Linux and .NET support for years. Ada is much like Pascal. Imagine the excitement that is on display for years.

Wrt ARC, for me as strong ARC proponent, vice versa the delay to put ARC into Win32 compiler is the reason to consider it not usable. Ada is also not friendly to RC, but with some extra coding, similar to class/interface mirroring in Delphi, it is achievable at least.

Another one is RAII. Don’t know why it’s so hard to implement Initialize/Adjust/Finalize like in Ada or constructor/operator=/destructor like in C++. Bothering with Variant is a shame.

But I admit that ARC was imposed in a non-compatible way. The compatible way would be to assign reference count 1 to all legacy classes and treat all class links as weak non-tracked references, and only enable in new sources. And side by side with them there could be new strong and weak links.

Another option is like C++/CX. They have legacy classes and ref classes separated.

@octagram I like your proposal to provide a base class TLegacyObject which would not enforce the use of ARC for all existing classes (easy to change in existing code the base class from which inherit all classes), and the new TARCObject paradigm, they could live easily side-by-side.
Are you applying to become the new designer of this NEXTGEN/ARC compiler for Linux 🙂

I am designing crossOS and crossCPU platform for native programming languages based on IBM SOM ideas and Wine. To not repeat IBM’s mistakes I should not only provide emitters for other programming languages, but also design a first class programming language matching platform properties (DirectToSOM C++ appeared very late), and it is about to be like Ada (and transitively like Pascal). The current name is “Somatic Pascal”.

Also, I am planning quasi-Objective-C compiler for porting Objective-C code to new semantics with some fixes (missing selector is a warning in Objective-C compiler, but an error in mine). Maybe it makes sense to provide similar porting tool for Delphi sources.

I applied for CSC scholarship and if they grant it to me, I’ll have one (Chinese) language year and 3 years of master program where I’ll be work on prototype. Don’t know how much I would be able to invest, but plans are like this.

I’ve raised the following point before about the forthcoming Linux support… When Kylix came about Linux wasn’t very popular and desktop Linux was virtually unusable. 100% of Borland’s customer base were Windows users. What they wanted was a way to push a button and generate a Linux server version of their core code.

Instead, what they were offered was a new IDE that needed to be run on desktop Linux. It had a new widget set that required rewriting your code to use. Its proprietary “binary blob” library requirement made it a non-starter for Linux developers, who at that time were more interested in writing high quality open source code for Linux rather than Windows software and who already had great development tools at their disposal, such as the gcc compiler.

Fastforward to today. In an era in which cross-platform dominates, Linux rules the business world, Valve releases their games for Linux, MS is open-sourcing C# and porting SQL Server to Linux and Stack Overflow’s developer survey says that 20% of developers develop on Linux boxes, what are Embarcadero offering us? A Windows-only IDE that doesn’t offer a cross-platform Windows/Linux widget set and will only cross-compile to Linux server code! 🙂 🙁

No matter how many hands Delphi passes through, you can count on the fact that whoever manages the product will be completely out of touch with present realities and zig when they should zag and vice versa. 🙁

As for being excited about Linux, the whole thing is silly. It’s like when they finally discovered REST and then YAML (which was created in 2001). Every language in the world already runs on Linux. Even MICROSOFT is beating them to the punch with Linux support! MICROSOFT. Come to think of it, Visual Studio also added Git support before Delphi (which is still only partial support), even though MS offers its own commercial VCS solution. Hmmm… it also took EMBT two years to respond to Visual Studio Community Edition. The first communication from them I saw after VSCE was announced was an email advising to upgrade now before prices went UP after the new year! It’s like it’s perpetually 1999 there and no other tools exist, open source hasn’t conquered the development world, “drag and drop programming” is still cool, and fanboy language wars are still all the rage.

>I can only begin to imagine the excitement that
>would be on display if they came up with a .NET
>offering.
>
>Again.

I don’t know if they’d bother with a .NET offering. Marco Cantu has been strongly arguing with myself and others that the Delphi ecosystem does not lag behind the .NET ecosystem! Meanwhile, he was calling Windows Phone supporters delusional and living in another world because the only thing that counts is ecosystem and Windows Phone is far behind Android. The cognitive dissonance is off the charts.

Speaking of charts, One can go to modulecounts.com and see that .NET’s nuget offers over 71,000 open source libraries. Meanwhile, Delphi’s GetIt (which can’t even be accessed via web page) offered 98 packages for Windows when I checked a few months ago, with about 56 of those being Embarcadero-supplied drivers for Internet Of Things devices, say if you wanted to flush your toilet with Delphi. Torry.net lists 10,000 packages, but most of those are either for Delphi 5-7 or just demos for commercial software. It was under 11K when I looked in November 2012 and is still under 11K today, while nuget added about 6000 packages since the last time I checked a few months ago. Torry shows a total of six new open source libraries added in the past two months.

Meanwhile, they’ve also added the “over three million users” nonsense claim (it is accepted that C has 2M, C++ 4M) to the main web page. Current C++ product manager David Millington used to rely on this figure to claim that there were as many Delphi users as Python users and Marco Cantu told me that he believes that Delphi has had more impact on the business world than Python ever has.

Given that mindset, I’m sure they believe that .NET is on the way out any day now and RemObjects will come crawling back to them to make a deal. 🙂