For some time, (mostly pirated copies of) Delphi were extremely popular
in Russia. The fact that it's (Object) Pascal allowed lots of
graduates, whose courses were probably mostly taught in Pascal, to get
to work fairly quickly. With that said, Delphi also had a reputation of
a language with lots of bad code written in it, for the very same
reason. People fresh from college or high school rarely write good code
without mentors to point them in the right direction.
I personally think that Object Pascal is deeply underappreciated. It's
a simple but powerful language.
I was pretty surprised, looking at Object Pascal, from the perspective of C++ development. Modern Delphi even offers generics and powerful macros, alongside the VCL. If Delphi had a better focus on cross-platform development I’d wager it’d probably be a lot more relevant today.
FreePascal and Lazarus are also worth checking out, as they offer a similar UI library (LCL in Lazarus) and pretty good Object Pascal support (with minimal tweaks a lot of Delphi code works - I took a medium size program written for XE8 and had it working just fine with a little rejiggering.)
The main reason for Object Pascal's downfall is the mismanagement by Borland and subsequently Embarcadero. It did not give a lot of people confidence when Borland sold it to a relatively unknown entity in 2008. And Embarcadero's immediately handling of Delphi did not help concerns either.
But at that point, interest in Delphi was already declining, and neither Borland nor Embarcadero has figured out to bring back excitement. Delphi news occasionally appear on Hacker News, and people talk enthusiastically about it, but no one actually starts a new major product in Delphi following that.
It's incredibly expensive for something you cannot really seriously try out. I would want to try the full Architect edition at least for 3 months before deciding to buy it for that 'enterprise' price point and build anything in it that we would/could rely on.
I think the price is the biggest burden though. They seem to not care about more people using it, so it's fine. It might make them enough as it is, but they should have a 'community version' (which should be at least the 'Enterprise' version) and then some saner pricing; I think it would get bums on seats. Not as many as it would've brought 15 years ago if they would've done that, but significantly more than now.
Frankly, and I know this is going to sound cynical, but I feel like their pricing model suggests that they have given up on getting new Delphi users, and only wish to milk the remaining Delphi customers for as long as they can.
> If Delphi had a better focus on cross-platform development I’d wager it’d probably be a lot more relevant today.
I thought they did do this? I never tried but I got a lot of emails about iOS & Android next to Desktop from them up until a few years ago when unsubscribed to their mailing list.
Quick check; FireMonkey is apparently for writing cross platform apps on Android, iOS, Mac OS X, Linux & Windows.
Or you mean; actual IDE on Mac & Linux? Indeed without that I wouldn't touch it either.
I'd wager that if they did not do the 'interesting' pricing model, it'd be a lot more relevant. They should have free versions for open source / private use and 'sane' pricing for companies. They have none of that. E1700,- for the first year for 1 dev and if you want to build desktop apps for Linux it's more than double? Not a big deal for big corps, however, for anyone wanting to play around and write some small applications for their startup it makes no sense.
> FreePascal and Lazarus are also worth checking out
At least on Mac it is not very stable for me, I try it every year before christmas (when I have some time to test new things) and after 1-2 days I usually pass it on. From it actually not even starting (crashing on startup), to not compiling, to it just messing up the windows completely at random times... I hope they get it stable or that it is just me, because it would be great to have something like that for someone like me who made his first years of money creating products in Delphi (starting with 1 on 3.11) where Delphi was a secret weapon against people using C++.
> I thought they did do this? I never tried but I got a lot of emails about iOS & Android next to Desktop from them up until a few years ago when unsubscribed to their mailing list.
Indeed they do, but that's assuming those cross-platform features are any good. No one I've heard of uses Delphi for Android and iOS development. As a Delphi house, when we actually needed to develop an Android app, we went with Java and Google's Android Studio, because Delphi's offering simply wasn't mature enough. Nor was it useful to use any advance third-party libraries in your app.
Similarly, their MacOS and Linux offerings (not the IDE, because that's Windows only) aren't particularly good either. It's only really the Windows verion that gets official improvements, and FreePascal basically handles the Linux compiler. Which is fine, I guess.
But it's rather a hassle to maintain a codebase for cross-platform clients, since you actually need to fiddle with your code between Delphi and FreePascal.
Ah yeah, that sounds bad. Shame, it could've been nice, theoretically. I tried Kylix back in the day and hoped that would be the way forward (I actually bought shares in Borland/Inprise based on the Kylix announcement; it made me a lot of money, but I was young and naive, I now understand that it was a lottery and I got in and out in time by cheer chance). They really messed it all up...
Now that every supported Windows box ships with .NET, I would argue that C# + WinForms is the most convenient option to quickly put something together. And C# of the WinForms era was still recognizably a Delphi-like language with Java-like syntax.
Yes, and yes. I did Delphi and VB6 in late 90s before moving onto C#, and I remember being amused at how it was Delphi and not VB skills that transferred the most. A bunch of stuff in the .NET object model - notably, first-class properties and events - was clearly motivated by the desire to have native support for abstractions that were idiomatic in Delphi (but were done "by convention" in e.g. Java). And then WinForms itself is so much like VCL, you feel right at home.
And yeah, it is very specifically designed around rich designer support, which is also very similar to the Delphi designer in practice. Same drag-and-drop experience with controls, a property grid to edit properties and wire up events, anchor-based layout etc. Components can be designer-aware as well, plugging into the designer UX.
I loved Delphi and created countless of apps with it in the 90's and early 2000's. I heard that Embarcadero, the new owner of Delphi, released a free "Community Edition", so I decided to download it to see if it could compile my old apps, and my experience after that has been nothing but terrible. That ended my yearning for Delphi completely. The details: https://twitter.com/esesci/status/1222311006635872256
Oh I never saw that; I could not find that on the site. Well, then at least they tried and they are just not very good at what they do when I read all of this. Borland was a few decades ago. Feels like it all went down when they had to sell their campus after the bubble went.
As someone who has spent 10 years working with Delphi (from 2008 - 2019), it lacks far behind compared to other modern IDEs. In 1995, Delphi was definitely ahead of its time, but has been unable to pick up. Each new release of the suite contains some new unusual bugs, while avoiding fixing some long standing issues.
That might be harsh, since each new release does contain improvements of some kind, but they feel incremental, and not at a pace where Delphi would ever catch up with other modern systems. It also stems from change in focus over the last ten years over making Delphi relevant again.
They wasted several years in the early 2010s by making Delphi a platform for mobile app development. The selling argument being that you could use Pascal to develop both for iOS and Android. Unfortunately, it never really matured enough to be useable. And so after several years of that misadventure, they finally went back to improving the core product.
Frankly, the only reason people still use Delphi today is if they have a large legacy codebase written in Object Pascal. Embarcadero took too long to realise this. They can charge a huge licence fee for the product, because their customers are basically stuck with it.
There are many things I like about Delphi and Object Pascal, mind you, but there are also many things I find too frustrating about it. Particularly because I know other IDEs and languages have already solved those problems. That, and the small community means its ecosystem is tiny and not frequently updated.
I am not sure of which specific thing you wish me to give examples of, so I'll start with the positive aspects:
I like properties on objects. They are an elegant way of handling the get/set mess you see in Java. (Which subsequently is also why I dislike how interfaces in Object Pascal are designed, because they don't handle properties well.)
I kind of like the verboseness of the language. Which frankly makes none of the subsequent features, like generics, seem out of place. In a more terse language, like say Go, generics would look out of place in that syntax. But that's style.
As for bugs of Delphi, XE7 is a notorious example. It included a new syntax highlighter that would crash if you typed in a | anywhere in the IDE. And it would crash hard enough to crash the entire IDE.
Where I worked, we primarily used 32-bit programs, but every time you wanted to modify configuration for your project, it always defaulted to 64-bit, forcing you every time to manually switch it back to 32-bit to configure. The user interface has plenty of annoyances like that.
I could go on, as I am just grasping what's at the top of my head. But I don't need to make this entry too long.
EDIT: Can't post any more right now, so I'll add some specific IDE examples of missing features:
Basically, Delphi lacks a lot of 'quality of life' improvements, that other IDEs have seen over the past 20 years. It's mostly small quirks, some of them definitely bugs.
One that's rather unique to Pascal, since it's a one pass language, where you have an interface and an implementation division, is that when you write a method on a class definition, you can tell the IDE to create the implementation for those methods instantly. But if you write a public unit method (that's outside any class), it won't do the same thing.
Sometimes, it will stop suggestion completion, e.g. showing you a list of all methods and properties on a class where you are typing. I think when it cannot compile your project, it stops functioning. Which is often the case, when you are modifying your code.
But the biggest one - for me at least - is how slow it feels compared to other IDEs. It doesn't feel very optimised. Telling it to search for where a function is called (referenced) can take a bit.
I spent 13 years working full time in Delphi from 1998. It seems to me like Embarcadero inherited the curse of chasing Unicorns and neglecting strengths from Borland/Inprise.
It was even more ahead of it's time back then, but when I left the scene there still wasn't even a HashTable in the standard library and you still had to dive down to WinSock for anything beyond networking toys.
For designing GUI business apps, I still haven't come across anything comparable, and not for a lack of trying. But the whole visual data modelling idea really deserves to die.
This brings back memories. I learned programming both on my CASIO calculator and with pirated copy of Delphi.
I'm French but the in-app manual was in English, so I would search in the English to French dictionary to decipher the meaning of the documentation. Mind you this was before internet was popular. I remember vividly looking up the word "behaviour" and failing to understand how it related to the List object .
I later found a book about Delphi at a bookshop near my bus stop. I'd go after school (I was 14 at the time) and read the book and take notes while waiting for the bus. I couldn't afford the book so that's how I got away with it. (I'm sure if I had asked my parents they would have bought it though).
The book explained object oriented programming using the metaphor of a car with a few methods such as switchGears() and properties like the number of wheels.
Later when I got access to the Internet I kept playing around with Delphi and found bindings for both DirectX and OpenGL. I wasn't a popular kid at school but when I brought back a 4 player vertical shooter I got my moment of glory.
I miss using Delphi, maybe I should find a copy somewhere
I wish there was something cross-platform that was as easy to use as Delphi but with a modern programming language (yes, we tried Lazarus, thanks). I’d love to have a decent alternative to Electron.
Belay that, I’d love to have an alternative, period.
24 comments
[ 0.27 ms ] story [ 64.8 ms ] threadI personally think that Object Pascal is deeply underappreciated. It's a simple but powerful language.
FreePascal and Lazarus are also worth checking out, as they offer a similar UI library (LCL in Lazarus) and pretty good Object Pascal support (with minimal tweaks a lot of Delphi code works - I took a medium size program written for XE8 and had it working just fine with a little rejiggering.)
But at that point, interest in Delphi was already declining, and neither Borland nor Embarcadero has figured out to bring back excitement. Delphi news occasionally appear on Hacker News, and people talk enthusiastically about it, but no one actually starts a new major product in Delphi following that.
I think the price is the biggest burden though. They seem to not care about more people using it, so it's fine. It might make them enough as it is, but they should have a 'community version' (which should be at least the 'Enterprise' version) and then some saner pricing; I think it would get bums on seats. Not as many as it would've brought 15 years ago if they would've done that, but significantly more than now.
I thought they did do this? I never tried but I got a lot of emails about iOS & Android next to Desktop from them up until a few years ago when unsubscribed to their mailing list.
Quick check; FireMonkey is apparently for writing cross platform apps on Android, iOS, Mac OS X, Linux & Windows.
Or you mean; actual IDE on Mac & Linux? Indeed without that I wouldn't touch it either.
I'd wager that if they did not do the 'interesting' pricing model, it'd be a lot more relevant. They should have free versions for open source / private use and 'sane' pricing for companies. They have none of that. E1700,- for the first year for 1 dev and if you want to build desktop apps for Linux it's more than double? Not a big deal for big corps, however, for anyone wanting to play around and write some small applications for their startup it makes no sense.
> FreePascal and Lazarus are also worth checking out
At least on Mac it is not very stable for me, I try it every year before christmas (when I have some time to test new things) and after 1-2 days I usually pass it on. From it actually not even starting (crashing on startup), to not compiling, to it just messing up the windows completely at random times... I hope they get it stable or that it is just me, because it would be great to have something like that for someone like me who made his first years of money creating products in Delphi (starting with 1 on 3.11) where Delphi was a secret weapon against people using C++.
Indeed they do, but that's assuming those cross-platform features are any good. No one I've heard of uses Delphi for Android and iOS development. As a Delphi house, when we actually needed to develop an Android app, we went with Java and Google's Android Studio, because Delphi's offering simply wasn't mature enough. Nor was it useful to use any advance third-party libraries in your app.
Similarly, their MacOS and Linux offerings (not the IDE, because that's Windows only) aren't particularly good either. It's only really the Windows verion that gets official improvements, and FreePascal basically handles the Linux compiler. Which is fine, I guess.
But it's rather a hassle to maintain a codebase for cross-platform clients, since you actually need to fiddle with your code between Delphi and FreePascal.
Microsoft always seem to mess up GUI development from my experience but I'd love to be wrong here.
And yeah, it is very specifically designed around rich designer support, which is also very similar to the Delphi designer in practice. Same drag-and-drop experience with controls, a property grid to edit properties and wire up events, anchor-based layout etc. Components can be designer-aware as well, plugging into the designer UX.
That might be harsh, since each new release does contain improvements of some kind, but they feel incremental, and not at a pace where Delphi would ever catch up with other modern systems. It also stems from change in focus over the last ten years over making Delphi relevant again.
They wasted several years in the early 2010s by making Delphi a platform for mobile app development. The selling argument being that you could use Pascal to develop both for iOS and Android. Unfortunately, it never really matured enough to be useable. And so after several years of that misadventure, they finally went back to improving the core product.
Frankly, the only reason people still use Delphi today is if they have a large legacy codebase written in Object Pascal. Embarcadero took too long to realise this. They can charge a huge licence fee for the product, because their customers are basically stuck with it.
There are many things I like about Delphi and Object Pascal, mind you, but there are also many things I find too frustrating about it. Particularly because I know other IDEs and languages have already solved those problems. That, and the small community means its ecosystem is tiny and not frequently updated.
I like properties on objects. They are an elegant way of handling the get/set mess you see in Java. (Which subsequently is also why I dislike how interfaces in Object Pascal are designed, because they don't handle properties well.)
I kind of like the verboseness of the language. Which frankly makes none of the subsequent features, like generics, seem out of place. In a more terse language, like say Go, generics would look out of place in that syntax. But that's style.
As for bugs of Delphi, XE7 is a notorious example. It included a new syntax highlighter that would crash if you typed in a | anywhere in the IDE. And it would crash hard enough to crash the entire IDE.
Where I worked, we primarily used 32-bit programs, but every time you wanted to modify configuration for your project, it always defaulted to 64-bit, forcing you every time to manually switch it back to 32-bit to configure. The user interface has plenty of annoyances like that.
I could go on, as I am just grasping what's at the top of my head. But I don't need to make this entry too long.
EDIT: Can't post any more right now, so I'll add some specific IDE examples of missing features:
Basically, Delphi lacks a lot of 'quality of life' improvements, that other IDEs have seen over the past 20 years. It's mostly small quirks, some of them definitely bugs.
One that's rather unique to Pascal, since it's a one pass language, where you have an interface and an implementation division, is that when you write a method on a class definition, you can tell the IDE to create the implementation for those methods instantly. But if you write a public unit method (that's outside any class), it won't do the same thing.
Sometimes, it will stop suggestion completion, e.g. showing you a list of all methods and properties on a class where you are typing. I think when it cannot compile your project, it stops functioning. Which is often the case, when you are modifying your code.
But the biggest one - for me at least - is how slow it feels compared to other IDEs. It doesn't feel very optimised. Telling it to search for where a function is called (referenced) can take a bit.
I wanted examples of things that other IDEs have that the Delphi IDE doesn't.
It was even more ahead of it's time back then, but when I left the scene there still wasn't even a HashTable in the standard library and you still had to dive down to WinSock for anything beyond networking toys.
For designing GUI business apps, I still haven't come across anything comparable, and not for a lack of trying. But the whole visual data modelling idea really deserves to die.
Later when I got access to the Internet I kept playing around with Delphi and found bindings for both DirectX and OpenGL. I wasn't a popular kid at school but when I brought back a 4 player vertical shooter I got my moment of glory.
I miss using Delphi, maybe I should find a copy somewhere
Belay that, I’d love to have an alternative, period.