Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
RAD Studio 11 Alexandria (embarcadero.com)
75 points by todsacerdoti on Sept 11, 2021 | hide | past | favorite | 70 comments


Delphi is nowadays mostly dead and used to maintain legacy software. It's a terrible shame.

To understand why, we need to remember what Delphi was at the time it was made. It directly competed with VB6, an interpreted crap that needed dozens of files in a time when disks were slow. Delphi, on the other hand, compiled large products (we had dozens of modules) in 2 seconds, producing optimized native single file executable. On large forms you could see VB6 controls being painted one by one. Huge Delphi forms were shown instantly.

The development experience was stellar (I guess it still is). I worked for a guy who made DOS software and wanted to move into Windows space (20 years ago). Two of us made a full-blown ERP with over 800 forms and 600 database tables in a year and a half. It was at a time when companies didn't have full-time Internet connections, so we synced the database between customers' branches over ISDN connections using our custom algorithm. This software is still in wide use today and my code is still in there.

My side project was made in Delphi and quickly surpassed my full-time salary, so I formed my own company. The only reason I moved away from Delphi years later was that the database drivers were far less available than in .NET ecosystem (and I make database migration software and need many drivers) Moving to .NET was a pain, but it was obvious that without Anders Hejlsberg Delphi is going to wither down, and .NET is going to thrive and evolve.

Delphi today is a cash cow for enterprise software. Looking at this release, first thing mention is HiDPI support. In 2021.

But I do miss the incredible productivity I had while working in Delphi. A friend once passed by and saw me working. He said "screens are changing so quickly I can't even track what you are doing". We need that development experience again.

Edit: formatting.


>It directly competed with VB6, an interpreted crap that needed dozens of files in a time when disks were slow. Delphi, on the other hand, compiled large products

Setting aside your particular use of Delphi in your product, I don't think VB6 directly competed with Delphi in general.

The cultural aspects and motivations were very different for VB vs Delphi. VB was more "internal corporate apps" and Delphi had more commercial vendor software adoption.

- Visual Basic in the 1990s was more attractive to ex-DOS programmers previously using xBase/FoxPro/Clipper to write internal corporate applications. The 2000s successor to VB with C#/.NET/ASP continued this trajectory. Both VB and later C# never really got adopted by commercial software shops. VB/C# has remained popular for enterprise LOB/CRUD.

- Delphi was more attractive to programmers who didn't want to use low-level C/C++ to mess around with raw Microsoft Win32 APIs for native executables. E.g. using C Language to code raw "CreateWinddow()" function calls was more tedious than using C++ MFC class wrappers but C++ was still more more tedious than Delphi. There are more examples of commercial software like Winrar, Nero CD Burning, Scooter Software BeyondCompare being written in Delphi. VB never got adopted by programmers to sell/deploy software like that.

Yes, there are a few counterexamples to the above but that was the general trend of the different communities.


VB wasn't really for xBase/FoxPro/Clipper etc users, Access and Visual FoxPro were for those - VB didn't even had database support until later versions and that was some grafted on minimal support.

Delphi was actually meant for the corporate apps you mean, even the name was a hint to it ("to talk to Oracle you go to Delphi" or something like that). It also came with much better database functionality than VB ever had.

Now because VB was wildly popular and easy to use and had Microsoft's name behind it (which was a big plus) it was used for internal corporate apps a lot, but that was a byproduct of VB being used a lot in general - during the turn of the century it was one of the most popular programming languages by far.


>VB wasn't really for xBase/FoxPro/Clipper etc users, Access and Visual FoxPro were for those

I understand that perspective especially since that's what Microsoft's "official" positioning of those products were.

But the reality on the ground was 4GL programmers in DOS text gui that transitioned to the "new Windows platform" usually ignored MS Access and Foxpro and instead used Visual Basic. In 1992/1993, all the corporate programmers I knew used VB3. My memory is hazy but I think one of the big drivers for VB instead of Access was the 3rd party VBX controls. I don't think you could use VBX in the crippled "Visual Basic" language in MS Access.

Visual Basic had early database access with DAO (Jet engine?), then RDO.

Delphi with syntax for pointers to memory (like C/C++) is a more "powerful" language than VB but I never saw Delphi adopted for corporate LOB/CRUD like VB. Most internal business apps didn't need a language with pointers. Delphi really attracted the programmers that wanted similar C/C++ power but with a rapid-iteration IDE and GUI toolkit.

>Microsoft's name behind it (which was a big plus) it was used for internal corporate apps a lot, but that was a byproduct of VB being used a lot in general - during the turn of the century it was one of the most popular programming languages by far.

But even with all of Microsoft's marketing weight, Visual Basic never got adopted with commercial software developers like this list for Delphi: https://jonlennartaasenden.wordpress.com/2014/11/06/famous-s...

VB didn't compile to native exes. Delphi did -- and that attracts the C/C++ type of programmers who want to release commercial software.

From the very beginning, VB vs Delphi attracted very different profiles of developers -- regardless of the marketing that tried to position Delphi for internal corporate LOB/CRUD apps.


Yes i was referring to the official positioning (hence the reference to Delphi's name too). In practice their uses got sort of swapped, though i think in VB's case wasn't that people didn't use it for what Microsoft intended it for but that because it was so popular it was also used for enterprise stuff.

But during the 90s and early 2000s a TON of commercial applications, especially from smaller software vendors were written in VB.


> My side project was made in Delphi and quickly surpassed my full-time salary, so I formed my own company. The only reason I moved away from Delphi years later was that the database drivers were far less available than in .NET ecosystem (and I make database migration software and need many drivers) Moving to .NET was a pain, but it was obvious that without Anders Hejlsberg Delphi is going to wither down, and .NET is going to thrive and evolve.

Woah, this is exactly what happened with me too! Back in 2001 I wrote a security app with Delphi and launched it as a side product. Borland got sold and Delphi became expensive, dotnet became a thing, and the rest was history. Several years later, I'm on the 3rd generation of that security product, cross platform with dotnet core, and I've finally quit my day job to work on it full time!

I enjoy working with dotnet and Rider, but I have fond memories of working with Delphi. Compile times were insane, the RAD tools were great, and the IDE just flew - might be rose-tinted glasses, but I don't recall it ever crashing or being slow in any way.


Perhaps we have the same glasses :)

Delphi did use to crash, but not that much. It had its quirks and we knew which ones they were and it didn't impede us.

We now use .NET5 and in some products. WPF for GUI, but new stuff is all made in Blazor.

Being on the bleeding edge means that lot of things in .NET was constantly crashing and not working exactly right, that tooling was broken.

You would think Microsoft would have more resources for something like Blazor. I have learned since that new tech is made by very small teams and accepted that as a fact of life.

Borland really could have saved Delphi, but I guess corporate types started treating their own company as a product, selling it around a few times, and vision was lost.


What cross-platform GUI do you use for dotnet core?


None, the product grew from being controlled by a single-user desktop app to a multi-user web-based GUI (built with ASP.NET Core).


Agreed on all points, Delphi is still by far (for it's time) the best development experience I've had.

Intellij gets close in some areas (and for more languages - which is why I pay for it every month) but Delphi felt integrated (which of course it was).


I was a Borland C++ Builder user back in version 3 through 5 (which correspond kind of closely to Delphi) and it was as lightweight and fast as a C++ IDE could be. I've used what it has become in version 10 and it's a disaster in comparison. It's massive, bloated, and nothing like the earlier IDEs that I remember. I've read that they have laid off/fired most of their in house staff and outsourced most of the work.


Did you try any of the low-code tools?


Low-code is all the rage these days, and such tools are nice, for a while.

But let's look at my use cases:

1) There is no way you can build a very large and complex ERP in low-code tools. First, you would hit a performance wall quickly, or need something these tools absolutely can't support as not many companies need it. Delphi is alive for 20+ years. How many products do you know that are successful and keeping up with the times for 20 years, and are built with low-code tools? And finally, betting your company's fate on a specific tool made by some other company is asking for trouble down the road.

2) I make database migration tools so I need the best performance and a ton of native database drivers. This means going low-level, querying database metadata, working with primitives of the specific drivers. Which tools can even begin to support these requirements exactly?


My main problem with delphi: it is "too proprietary". It was a very productive ide in the 90's or early 2000's but lost their path and never recovered.

Some new versions broke compatibility with previous version's components. There was the case where you paid a good amount of money on some proprietary components and they simply wouldn't work in the next version: you were imprisoned in an obsolete ide. By not being multi-platform (I hear it improved it lately) you could only use it with/for win32 so it lost servers, embedded and mobile. By not being open-source nobody could improve it.

Then it had to compete with "native tools". Whoever develops for windows wouldn't quit ms' tools to use it, whoever develops for mac wouldn't quit apple's tools to use it, whoever develops for android wouldn't quit google's tools to use it, whoever develops for linux was mostly ignored after kylix.

Note that I didn't even mentioned price and license.

They improved it later, I heard. But seems more like the old case of too little too late. Most successful programming languages today are open source and multi-platform. Delphi was dependent on win32 for too long and it still is "too proprietary". You do the world a favor by porting your project to lazarus.


Delphi was my first programming tool so this triggered a nice burst of nostalgia.

Unfortunately I checked the pricing:

For the cost of the professional version you can buy the all products pack from Jetbrains, with the full version of all their IDEs, including their database tool, and have a thousand Euros left over. Assuming that you aren't buying their personal pack, which is quite a lot cheaper.

The professional version of Delphi does not support database connections, for that you need the Enterprise version at twice the price.

Basically purchasing Delphi or using Delphi makes no sense today, unless you are already locked into the ecosystem.


I didn't see anyone in the comments mention Lazarus yet, so i thought that i'd go ahead and do that: https://www.lazarus-ide.org/

It's a free IDE for FreePascal and a set of useful packages that work out of the box and give you a "batteries included" development experience, for CLI apps, desktop software and even some simple web development (though admittedly most other languages do web development better). Here's more information about the component libraries: https://en.wikipedia.org/wiki/Free_Component_Library and https://en.wikipedia.org/wiki/Lazarus_Component_Library

Where it shines in my experience is creating GUIs: making a framework that works atop of the system native functionality and abstracts it away was a really good idea - you get a consistent development experience across the platforms (as long as you don't try doing anything too sophisticated) without having to use a common runtime, like Electron makes you. This results in native looking, snappy and not too resource intensive programs. There's even a gallery of what others have made with it here: https://wiki.freepascal.org/Projects_using_Free_Pascal

There are few other platforms that i'd reach for if i'd want reasonably performant desktop software development in a small runtime and with an easy development experience: maybe the old Java Swing or OpenJFX since those are cross platform. Avalonia for .NET doesn't seem quite as stable yet and using Qt Designer would be a tad complex since i'm not intimately familiar with C++ and enjoy languages with simple memory management.


Having worked professionally with Pascal/Delphi for 10 years, it is quite apparent that no one in the industry expects new young companies to build a whole new product from the ground up in Delphi.

This view is reflected in Embarcadero's pricing models. They are not interested in new users, they are just interested in milking those remaining in the Delphi ecosystem for money until those businesses all liquidate or move on.

I used to be far more optimistic about Delphi and its future, but over those 10 years, I grew far more pessimistic. Delphi was really ahead of its time in the 1990s, but has now been overtaken by everyone, and still stuck in a software development world that no longer exists. It's sad, really.


Not sure if it’s necessarily an accurate comparison, but Embarcadero's strategy of purchasing a well loved product then commercializing it to the point where the only people who would ever buy it are large organizations with a legacy of the tool almost feels reminiscent of Oracle.


Or it might be that Delphi (aka desktop application development) just was at a dead-end and this is an accurate reflection of the costs of end-of-life maintenance/development. Compare to other software projects that just get cancelled or thrown to the open source graveyard when profitability takes a hit, there are worse ways to go.

OTOH it's not so expensive for a professional tool. I paid the same for a game engine. Not having a free tier is a hard choice (I got into programming largely because of an early version of Delphi having a free tier), but it's one that they actively made presumably for some kind of reason.


It is. Because they are now a part if Idera, whose entire raison d'etre is to buy declining technologies and milk them for their licenses.

Among other notable acquisitions under Idera's belt: Sencha (ExtJS), Travis CI, Whole Tomato


That's Broadcom's strategy as well. They buy mature products, cut out the small customers, and try to cross-sell their large customers onto other parts of their portfolio. Seems to have worked for them, up 60% from pre-pandemic highs when they bought Symantec Enterprise.


MicroFocus is also in that kind of business


FWIW Delphi being ridiculously expensive for non-enterprise users was something they started back in early 2000s, long before Borland/Inprise/CodeGear was bought by Embarcadero. IIRC the last Delphi you could buy for cheap was Delphi 5 Standard for $99. In Delphi 6 (when they started going hard into enterprise stuff) the $99 tier was for Delphi 6 Personal which was only for non-commercial applications and by Delphi 2005 (2-3 versions later) the cheapest price was ~$500 (the free stuff was dropped, there was a free "Turbo Delphi" later but it was very limited and was based on one of the worst versions of the IDE and was discontinued - this "give some version for free only to take it away and not support it in the future" was also something that kept people away from Delphi even when CodeGear/Embarcadero/etc tried to give free stuff).


That is precisely my thought as well. Embarcadero/Inprise/Borland have priced themselves out of the market.

Also, in this time and age not including database connectivity to "enterprise" databases such as MySQL, PostgreSQL out of the box is bizarre.

Stuff such as Interbase connectivity is something hardly anyone needs anymore but that is packaged as standard while much more needed features such as connectivity to other databases, extended REST controls etc is available only in more expensive versions of the IDE.

I wish they sold a single version of the IDE (under $200) with additional options available as add-ons which can be purchased commercially. Example: FMX GUI.


Depends how much one values having something that matches .NET productivity and actually compiles to optimized native code ahead of time, with 25 years experience in production, instead of the jokes that NGEN and .NET Native have been.

Maybe .NET 7 (still one year away) might finally catch up with Delphi.

Or that after 25 years, there is still no C++ tooling that matches C++ Builder, Qt kind of comes close, but still misses the whole experience.

Microsoft for a couple of years seemed to finally understood it when they released C++/CX, but politics killed the project.


Delphi/Builder have had their own problems as well. One of my competitors was suffering for a long time because they couldn't create 64-bit executables.


Sure, Visual Studio team seems to have lots of expertise dealing with 64 bit support issues. :)


None the less I could support 64 bit and my competitor couldn't. For this application it was critical, my competitor lost a lot of business because of it.


Bad for him, good for you, I guess.

Additionally, I think it only reveals the lack of ability to do a mixed architecture product, given that 64 bit Windows does support 32 bit binaries as well. Just like Visual Studio has been doing since VS 2015.

Apparently your competitor wasn't in the position of doing a polyglot project as workaround.

Although maybe that wasn't something that the customer would be open to.


This was a component that ran under the print spooler so there was no ability to run the 32 bit version in 64 bit Windows. It really was bad for him and good for me.

Of course he could have re-written it in C++ and maybe that was what he did in the end, I never checked.


I don't think anything except Visual C# comes close in terms of being able to build GUIs As for cross platform mobile apps, is there even any RAD tool other than this?

The reason for Delphis lack of popularity now is because the era of the desktop application died around 2012 or so.

Everything is a webpage now, including many mobile apps. The cost we have paid by using HTML and JS as the way to build apps is not well recognized - everyone only does it because there is no real alternative. The Stockholm syndrome is fully matured.

React/Angular etc are the equivalent of what the VCL was to the crude Win32 API and MFC base. React is as close to RAD as you can get without a visual designer.

If I was going to develop mobile apps that were much more than a CRUD like UI, I'd probably opt for Delphi


The desktop application is nearly dead on the consumer side (but not quite: Photoshop, Office, etc. are still extremely popular).

But in medicine, finance, manufacturing, industrial design, aerospace, hospitality, and so on, almost everything is native desktop apps. Mostly Windows, maybe a little Linux, very little macOS. Look at what your doctor is using the next time you visit. It's going to be a traditional desktop app on Windows.

Many of these apps are undoubtedly made with Delphi or C++Builder.


They are, but people are now king of expecting to be able to access their software from anywhere, including their phone or tablet. Hard to do, if you have millions of lines of MFC code. Which opens up opportunities for newcomers.


Epic over Citrix…

I think it’s a stretch to call Citrix a traditional desktop app in this context.


Desktop applications are quite alive in specialised domains like life sciences laboratory domains, multimedia, gaming, among others.

Office 365 and Google docs will never be more than Works was capable of, and 3D APIs are so good experience, stuck in 10 years old hardware design, that everyone just tried once more to push streaming instead.


Yup. Tell these cheapskates who downvote me when I tell them they are aware of the cost of everything and the value of nothing.


I agree about the insane pricing.

If you want to use the Prof. version and still have DB-access then there exist some open source components like https://sourceforge.net/projects/zeoslib/

OTOH my 20-year project is still trucking along using D2010 and Dbisam as the DB-layer...


> The professional version of Delphi does not support database connections

You can use open source components or buy components: https://www.devart.com/dac.html


Or you can use a propiertary DB like NexusDB that brings its own connection components - but then you are stuck with a DB without replication support...


I agree, I did purchase Delphi Berlin and a lot of associated closed source components, I created some nice programs for myself to use at home and at work, but decided it was not affordable to renew it.

You can get the community edition now of course, but you can not write a utility you use at work.

Also the professional license is more restrictive than the software is (you can connect to MySQL but you are not licensed to do that), finally the tech support at the company are complete shits about allowing you to re-install software that you paid a thousand pounds for, if you don't stay subscribed. I do subscribe to Jetbrains. I get to use C++, Go, C#, Java, Kotlin Python and MySQL. For nothing.


My father has been working on his accounting software (he's an accountant mainly) since Delphi 1. He might be the only single user paying for the enterprise version. Or maybe there are dozens of them.

Whenever I speak to him, he raves about whatever the new version of Delphi is.


I briefly worked at a Delphi place (zero guesses why I didn't stay), and it was similar there, people being enthusiastic about in my view quite minor releases. One guy had a personal website complete with hand written HTML2 and a collection of Delphi freeware utilities. It was not a bad trip down memory lane, but everythig about the place screamed 'dead end' at me.


That is the large majority of shops whose main business is not to sell software, rather something else.

People rave about what they know, aren't aware HN exists, leave at 5pm, enjoy weekends with family and friends instead of uploading stuff into GitHub, and are happy.


I see what you did here


I sometimes wonder what would have happened if Delphi stayed at Borland, and they developed it further without hiking the prices and going all enterprisey, maybe adding RAD tooling with a web slant, ala Macromedia Dreamweaver.


Microsoft bought most of the dev team from borland in the the 90's including ander heijlsberg. That emptied delphi development: https://www.cnet.com/tech/services-and-software/borland-sues...


The measure of the worth of a tool is how quickly it can help you to get a quality working product in the hands of end users.

Do programmers today actually value their time?

Do they know how to negotiate good prices for products and services they provide customers and clients?

The quality is Delphi is rooted in the third-party components that help to ship good quality products quickly.

There is a free version that beats anything you can get out of Jetbrains. So why don't folks just download the free version and try it out instead of listening to naysayers and cheap skates on HN?

I mean Uber drivers pay more for their working tools than software developers and they don't whinge about it, when software developers are supposed to be capable of earning more than uber drivers. What's this beggar they neighbour attitude among software developers?


I don't disagree with you, if it was really good however there are better (more productive) languages that Jetbrains have excellent IDEs for.

If we want to talk about productivity and power, Delphi is now so expensive that it is in the same neighborhood as a LispWorks licence.

If Delphi was much more powerful it might be a reasonable investment, as it is, it is powerful than most of the languages Jetbrains ship IDEs for and widely more expensive.


You ignore that Delphi is not just the IDE, it is the whole ecosystem of components that are developed to work with it, and these components usually come with source code and are supported by developers who are incentivised to make them work.

It is the tool used by developers whose customers want custom stuff done yesterday, customers whose time is 100s worth more than the trifling sums that open source developers are unable to get even their commercial users to pay for or contribute to.


This is precisely the type of attitude that keeps Inprise/Idera or whoever it is that owns Delphi from coming up with a reasonable price for the product which the market can afford. Refusing to listen to the end users has been Borland's bane since the late 1990s and continues through Inprise/Idera etc


The product is free until you make your first $5000 or so. If you can't make $5000 from your work then you are in the wrong business.


It is $5000 for a product which doesn't even connect to "enterprise" databases. Good luck trying to make a living using that.


At that pricing it seems they actually don't want to sell it, which is a shame because Delphi is a wonderful development system that doesn't trade code efficiency with ease of use: development is damn fast and generated code is as well. If they priced it an order of magnitude cheaper they would likely sell 100x, but they probably can't or don't want to allocate the then necessary resources to support an army of new developers using the product.

In the meantime, Lazarus is a fully Open Source multiplatform port of Delphi which is well worth of consideration.

https://www.lazarus-ide.org/


How's the experience of using a new component (integrating it in the IDE component palette) on Lazarus vs Delphi?


The biggest issue is that because Free Pascal didn't support the functionality needed for dynamic packages until the latest version (or trunk, not sure as i haven't checked exactly) you need to recompile the IDE whenever you install/uninstall a component since they are linked statically. In practice this isn't a big concern since a full recompile of the IDE takes less than a minute and subsequent compiles are done in a few seconds.

However one thing that is impossible now and i hope that will become possible in the future is project-specific components (ie. having some components that are exported and installed by a project instead of being available for everything) as it'd allow even more visual design. Right now you can sort-of do this using frames but that is only for compound visual components and frames cannot expose custom properties, which is half of the reason to use the visual designer (and the entire reason for non-visual components). Dynamic packages could make that possible.

(note that this is just a feature i wanted in Lazarus, i have no idea if that even exists in Delphi as the only Delphi i used for a length of time is Delphi 2 and the most "recent" i used was Delphi 7 Personal that i got from a magazine cover disk back in early 2000s - i have also checked the demo/free versions of later delphis but never in detail)


Yeah, about that recompile. About 2 years ago I started to learn Raspberry Pi. All good and nice, Lazarus runs directly on Pi, until I needed some network functionality. Found some components and tried to recompile the IDE, to install those. Errors over errors, wasted 2 days and couldn't make it work. I had to use a previous version of those components that were already compiled/packaged - no idea how to name this - where I took them from some repository and then magically appeared inside Lazarus' component palette - no recompile was needed. I gave up on Free Pascal/Lazarus and went back to Delphi - nowadays, with FMXLinux, you can target Debian without a hiccup.

I liked Lazarus idea of gazillion targets, until I actually wanted to compile for those targets - started reading forums, manuals, wasted a week. You wanna know why I prefer Delphi? Because all I have to do is select the target in a selector and that's it. So until Lazarus will not require recompile and switching targets will be just as easy as in Delphi, it will remain a toy.


I'm not sure what you downloaded but components need to become part of the IDE to work, you can't just copy something - unless that something also includes a precompiled version of Lazarus. In any case it sounds like an issue with the components you downloaded, not Lazarus itself - it is very possible the components you found were not compatible with the version of Lazarus you got or with Raspberry Pi / ARM. Also FPC contains already several packages that provide networking functionality so you may not even needed those components.

But using Raspberry Pi to judge Lazarus isn't IMO a good idea, desktop development on Raspberry Pi is a bit of a niche case and the device is underpowered, so you'll end up with issues.

Not that it is impossible, i just installed FPC 3.2.2 and compiled Lazarus 2.0.8 (i prefer to compile Lazarus from sources instead of using any binaries as it avoids the broken packages that distros often provide) on my RPi2, though it took half an hour for the build to finish (i did use "make bigide" though, which builds a few extra components and the sdcard is some painfully slow C4). But after that it worked fine.


If I remember correctly I used some integrated repository in Lazarus to use a previous version of those network components, then Lazarus did do something, but it took only like 2 minutes and then those components appeared on palette.

And I disagree with you, I think RPi is perfect for Lazarus. In my case I used an RPi zero (WH) which currently runs a server I made in Lazarus, a Frankenstein's monster of a server if you want. It controls an electromagnetic lock on my main door, to allow kids to open the door using their phones (Android, I made the app in there in Delphi's FireMonkey). It will also water our plants when we go to vacation, by controlling a pump (Same Android app has another section that will allow to start the pump). Also I connected a webcam and view its output through the same server, to see the plants in question. Probably in the future I'll create my own smart lights and connect those to same server. And same RPi zero has Pi-Hole installed. All in all Lazarus, after initial hurdle, proved quite good on Raspberry Pi. But it's too much hassle compared with Delphi.


You most like used the online package manager then, what this does is download the sources and recompile the IDE so you did recompile the IDE. The 2 minute recompilation makes sense considering it is RPi.

Note that i did not write that Lazarus is bad for Raspberry Pi (on the contrary it is among the few actual IDEs you'll be able to use with the RPi considering how weak it is and how overbloated pretty much every other IDE with a similar overall featureset is), i wrote that judging Lazarus based on how it works with Raspberry Pi is not a good idea because it is a niche case, so you will find roadblocks that wont exist in other more mainstream configurations. It is simple reality that not as many Lazarus developers pay attention to ARM-based Linux desktop environments and Raspberry Pi as they do for x86-based Linux desktop environments and x86-based Windows. For most things it works because FPC and Lazarus are good at being cross platform and the libraries are largely the same between x86 and ARM Linux, but things aren't equal.

(of course you can use it to judge how Lazarus works with Raspberry Pi specifically, but this experience isn't something that can be extended to everything Lazarus supports)


And in 2021 we still don't have anything as fast to build a full-featured GUI app as Delphi had in 2000...


Lazarus comes close


Visual C# is that and more since 2005.


Visual C#'s Windows Forms do not even approach Delphi 1 in terms of functionality and designer ease of use, let alone Delphi 7 (which was released around 2000).

WinForms feel more like an abandoned beta version to remake Delphi in C#.

Note that i refer to Windows Forms specifically, not the entirety of the .NET Framework.


Visual C# is the reason Delphi was abandoned, and the reason is precisely that most people found it to be better.


Delphi was not abandoned because it was technically inferior. It was abandoned because Borland/Inprise started pushing Application Life Cycle products (don't get me started on that) and also pricing Delphi very high and the number of new companies/developers coming into the Delphi ecosystem dropped precipitously because of this.

As Delphi lost steam, the development of Delphi too last steam and now we have the situation where Embarcadero marks HiDPI support as a feature in 2021.

Embarcadero really, really needs to look at its pricing structure. Giving out a "community" version which does not even have proper database connectivity isn't going to change anything.


The .NET Framework is better than what was available in Delphi at the time (at least out of the box) but the visual designer in Visual C# and WinForms in general was and still is (since it has been largely abandoned) way behind Delphi or Lazarus.


C# in its many forms has many challenges, when it comes to desktop software. Mostly that if you want your software to work on any other OS apart from Windows, there still aren't that many good options.

For example, there is Mono with Gtk#, but it's not really widely used, supported and overall seems to be dying, much like MonoDevelop is: https://www.mono-project.com/docs/faq/gtk/

After that, there was Xamarin Forms, but they're facing similar problems because in the new .NET there will be a new officially supported framework for GUI apps (they got bought out essentially and there has been little development on their project since): https://docs.microsoft.com/en-us/xamarin/xamarin-forms/

The new .NET cross platform UI still hasn't been released either (well, you can check it out if you have the preview builds) and it might be a while until we can actually judge how well the "official" approach works in its stable form: https://docs.microsoft.com/en-us/dotnet/maui/get-started/ins...

There are third party attempts to fill that vacuum of strong options, like Avalonia, but that's also just work in progress, like every other mentioned approach: http://avaloniaui.net/

Of course, there are also others like Eto: https://github.com/picoe/Eto

The point i'm making is that due to the history of .NET, cross platform wasn't a priority and therefore there is a really large amount of fragmentation, as well as the developer efforts are spread thin.

Contrast to Java, where you basically had AWT, then eventually Swing, and now there's JavaFX/OpenJFX, all of which are cross platform. Similarly, in Lazarus (a FreePascal IDE) there's the Lazarus Component Library which is where most if not all of the development effort is focused.

It's probably also easier to just have to learn one framework and set of tooling around it and be able to work on most projects out there that use that language, as opposed to there being so many different ones.


I don't think the subset of people who used Delphi and later moved to Visual C# would be the ones to care about cross-platform much.


Hmm, i wouldn't be so sure, since one of the slogans of Pascal (and i guess Delphi too) was "write once, compile anywhere" - i still think that FreePascal/Lazarus is a great choice for multi platform code, though personally i haven't exactly used Delphi in such a capacity to also make that claim.

I do think that you make a good point, however, since not everyone cares about cross platform much and in regards to "native" .NET options on Windows, i'd say that everything from WinForms to stuff like WPF is indeed pleasant. That said, many developers out there also can't afford to (or just shouldn't) ignore cross platform development, so options in that regard are also definitely worth talking about!


I’ve learned programming with Borland Delphi 6. I have warm feelings towards TurboPascal/Delphi.

Lazarus Opensource Project seems promising.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: