
Delphi - tosh
https://en.wikipedia.org/wiki/Delphi_(software)
======
Svip
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.

~~~
mika9090
Examples?

~~~
Svip
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.

~~~
mika9090
Thanks. I should have been more specific :-)

I wanted examples of things that other IDEs have that the Delphi IDE doesn't.

------
ainar-g
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.

~~~
jchw
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.)

~~~
tluyben2
> 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++.

~~~
Svip
> 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.

~~~
tluyben2
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...

------
sedatk
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](https://twitter.com/esesci/status/1222311006635872256)

~~~
tluyben2
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.

------
alex_duf
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

------
mika9090
Delphi is still the best thing for Windows app programming. It is so
unfortunate what happen to it business wise.

~~~
int_19h
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.

~~~
codr7
Does it come with a form designer as polished as Delphi's? And have you used
both?

Microsoft always seem to mess up GUI development from my experience but I'd
love to be wrong here.

~~~
int_19h
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.

------
rcarmo
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.

