
Delphi – why won't it die? (2013) - wx196
http://stevepeacocke.blogspot.com/2013/05/delphi-why-wont-it-just-die.html
======
Joeri
My employer has a multi-million line codebase in Delphi which is still under
active development. I mostly do web development, but every once in a while I
go back in to build a feature on the Delphi side of the fence.

The IDE itself is dated and no longer competitive with the best of the modern
IDE's. The language and API however is updated and productive. You just need
to get over Pascal-style syntax instead of C-style, and you are just as
productive in it as if you were using C#.

Why is delphi still hanging on?

1\. It delivers executables that need no dependencies. No VM's, no runtimes,
no add-on dll's. Underneath it only needs x86 and win32 (unless you're
building for mac, android or iOS, which it also supports). I wouldn't be
surprised if our software still ran on windows 2000. Since the code is native,
performance is never a problem even with wildly inefficient code.

2\. It lets you build GUI software _really_ quickly. Productivity in delphi
for someone used to it matches any "modern" GUI development platform. Sure,
the IDE misses a few features that competing IDE's have, but on the plus side
it compiles ridiculously fast (a full build of 2 million lines takes less than
a minute on a single core).

3\. Delphi is the easiest platform by far to have legacy code on, because the
maintenance cost is very low. Delphi's contemporaries (classic VB, MFC) have
all gone through major upheavals. Delphi has managed to modernize the API's
without breaking legacy code too badly (they even managed to elegantly
retrofit unicode into the platform). This is why codebases that are based on
Delphi somehow never get ported away from it.

Delphi's competitive with other desktop and mobile development platforms, even
at what they're charging for it. What they're charging for it is the problem
though. Only people already using delphi buy delphi, and so the perception is
maintained that delphi is effectively dead, even when it isn't.

~~~
coliveira
The great thing about Object Pascal is that, unlike C or C++, it was designed
to compile really fast. Pascal units completely remove the burden of C++
header files. In the end, you are almost as productive as with a dynamic
language and you still have compiled code. I haven't seen another language to
get even close to the balance achieved by Delphi in this respect.

~~~
dom96
Have you heard of Nimrod? ([http://nimrod-lang.org](http://nimrod-lang.org))

Compile-time wise it is very impressive (the compiler which is self-hosting
compiles in under 30 seconds on my computer). It also resembles Delphi and
Pascal in some ways and I am personally very productive with it.

~~~
waps
Even C++ compilers (except gcc) mostly compile themselves in under 30 seconds.
How is that impressive ?

Delphi compiles source code almost as fast as it can read it from disk.
Megabytes of sourcecode per second on a 486.

~~~
ihnorton
Which C++ compiler compiles itself in under 30 seconds on a typical desktop?
Clang takes at least a minute or two even at -j40...

------
networked
If you want to try Delphi Lazarus with Free Pascal
([http://www.lazarus.freepascal.org/](http://www.lazarus.freepascal.org/))
makes for a pretty close FOSS reimplementation of the same Object Pascal
language and the RAD IDE functionality. The IDE is reasonably mature but sadly
not fully compatible with Borland Delphi 7, so you can't quite rely on a
Delphi tutorial. It is cross-platform. The language combines reference
counting and manual memory management, has modules and handling strings in it
is pleasant compared to (vanilla) C or even C++ (which it is meant to compete
with). Unfortunately, last I checked the Unicode support was imperfect.

One thing I've been wondering about lately is if Free Pascal is a good
alternative to C or Go for shipping self-contained static binaries to run on
*nix. I haven't tried it yet but the small(ish) static binaries the Free
Pascal compiler produces and the lack of libc dependencies in theory make it
an attractive option if you want to write something to run on OpenWrt on your
router. Has anyone here used FPC for that? How are the MIPS and ARM backends?

~~~
vram22
Adding my 2c to this discussion:

I saw just recently, via SourceForge's email newsletter, that Free Pascal made
it to SourceForge Project Of The Month (POTM):

[http://sourceforge.net/blog/april-2014-project-of-the-
month-...](http://sourceforge.net/blog/april-2014-project-of-the-month-free-
pascal/)

I've used various Delphi versions, a little, for personal projects [1], off on
on, and liked it. A pity that the free Turbo Delphi Explorer version was
discontinued. (TDE was released and then stopped when Borland was in its
CodeGear incarnation some years ago.) As others have said, hope Embarcadero
comes out with a low-end free or low cost version of Delphi. (They did have a
Delphi XE Starter Edition, not sure if it is still there.) I've also read off
and on that Delphi (and other Borland products) were/are big in Germany and
other European countries.

[1] [http://jugad2.blogspot.in/2010/08/digital-
clock-v10-in-3-lin...](http://jugad2.blogspot.in/2010/08/digital-
clock-v10-in-3-lines-of-delphi.html)

~~~
vram22
Re [1] above: Image of the digital clock gone from the post, sorry. But it was
just a narrow horizontal window with a text box in it, that showed the current
time, updating every second, something like the LED digital clocks you see at
railway stations or airports.

------
markbnj
I wrote DDJ's first review of Delphi back in 1995. Maybe it deserves to die,
or not, but I get a kick out of the fact that it is still around and sparking
discussion. At the time of release its features were quite innovative, and
very accessible to the Turbo Pascal programmers (like me!) who were a big part
of Borland's customer base for tools. If I recall correctly a lot of Delphi's
DNA ended up in C++ builder, and then a lot of the C++ Builder guys ended up
at Microsoft... so Delphi has earned its place in the anthropology of our
business.

~~~
pcunite
Awesome ... appreciate your perspective. Hang around here and keep us kids in
line.

------
mistermann
Software has got to be one of the most interesting industries, where among
genuinely skilled people you can have such shockingly divergent opinions on
really quite simple questions.

From the article:

> Being highly productive has seen single Delphi developers produce software
> that would otherwise require a team of 5 developers. I’ve been in a team of
> 3 developers that out programmed a corporate wide application by having it
> up and running in a few months compared to another team I know of over 30
> Java developers who 18 months later still had not produced their
> application.

I believe this to be completely true. At least for boring internal enterprise
apps within corporations, the new languages/platforms and especially modern
program design paradigms with their multiple tiers & supporting libraries,
multiple levels of indirection resulting in 30 level deep call stacks, etc
results in productivity perhaps 1/4 of what you could achieve with a product
like Delphi.

Now this is just my opinion, and it is shared by many others, but there are
even more who would vehemently disagree. Yet this isn't some "eternal mystery"
class of a disagreement, _for the type of application that Delphi is
appropriate_ (very important), it can be very easily demonstrated if it is or
is not more productive for the task at hand - the differences are so stark
that the conclusion is undeniable. Yet, if you were to propose Delphi as a
development platform, it would in most cases be career suicide.

I would suggest some of the main reasons for this are:

\- as a developer, choosing Delphi is virtually career (skillset) suicide

\- it lacks much of the more modern "cool" language features developers so
love to play with

\- (as a result) choosing Delphi as a platform is risky due to the small and
shrinking developer base

~~~
jarrett
> for the type of application that Delphi is appropriate

What type of application is that, in your opinion? Would you use it for a web-
based app? (Many boring corporate apps are now web-based, and not just because
the developers want that. The business people often want it too.)

> new languages/platforms and especially modern program design paradigms with
> their multiple tiers & supporting libraries, multiple levels of indirection
> resulting in 30 level deep call stacks, etc results in productivity perhaps
> 1/4 of what you could achieve with a product like Delphi.

Modern _languages_ don't particularly encourage or discourage that style of
programming. Let's assume we're comparing Delphi to Ruby and Python as the
modern competitors for the high-productivity, just-get-it-done language. Those
languages have standard libraries with rather minimalist APIs, so I don't see
the bloat there.

Now, it's true that _frameworks_ in those languages, like Django and Rails,
and huge and have deep callstacks and lots of indirection.

But those frameworks are big because their problem domain (dynamic web app
development) is so big and complex. I challenge anyone to find a framework in
any language that 1) is as powerful and flexible as Django or Rails, 2) is
sanely coded, and 3) doesn't have deep call stacks or lots of indirection.

Maybe I'm way off base, and you're not talking about web development at all. I
went that direction because web development is what I think of when people
start talking about boring business apps.

~~~
mistermann
I can't comment on the web capabilities of Delphi specifically, I'm thinking
your standard boring enterprisey CRUD app with various calculations/business
logic/reports, etc....thousands of new apps of these kind are written every
year, nowadays typically with a web front end (regardless if that's really
necessary, all things considered). For most complex applications, a client
based GUI is superior for power users, the portions of the app that need
widespread distribution can be implemented with a web interface.

The big difference to me is the automatic binding of data from the database
through to the UI, you're "done" the requirements so quickly that the
currently standard practices of "improving" things with some design patterns
and what not gets skipped. It's not so much that Delphi's language
capabilities are superior (other than the binding), I think it's that so much
of the currently fashionable bloat is more likely to be skipped.

> Modern languages don't particularly encourage or discourage that style of
> programming

I agree...this is not forced on us by modern languages, it is current
culture/fashion. There are so many cool geegaws out there today, it would be a
shame to not use them such that you can include that experience on your resume
(to hell with the additional costs and complexity, let someone else worry
about that.)

~~~
vram22
Great comment, and I agree. I'd just add that it's probably more like tens of
thousands of "new apps of these kind" that are written every year ...

I'm assuming you meant the last paragraph of your comment in a sarcastic way
:)

------
sehugg
Look what Turbo Pascal/Delphi gave a PC developer in 1995:

* An insanely fast compiler

* Statically linked binaries -- no DLL hell (still important for certain kinds of applications)

* A proper module system, no need for precompiled header nonsense

* A UI framework/designer as easy to use as WinForms, at a time when the alternatives were MFC or Win32

* An easy upgrade path to 32-bit Windows

As long as you were ignorant of the world outside of a PC and Windows, it was
nirvana.

~~~
QuadDamaged
The lead architect of the VCL went-on to work for Microsoft on .Net and most
of the venerable (and still working, if not actively maintained) Winforms API
is really reminiscent of the VCL, albeit corrupted by the win32 API leaking
through.

Maybe it is rose-tinted glasses, but I remember having a significantly more
pleasant experience working wight the VCL (through C++ Builder) than with
Winforms.

~~~
vram22
That lead architect was:

[http://en.wikipedia.org/wiki/Anders_Hejlsberg](http://en.wikipedia.org/wiki/Anders_Hejlsberg)

I read that he got $1 million (or more?) for leaving Borland for Microsoft.

He's also worked on:

[http://en.wikipedia.org/wiki/TypeScript](http://en.wikipedia.org/wiki/TypeScript)

, Microsoft's enhanced version of JavaScript, which has been in the news
somewhat lately.

~~~
Kroem3r
This is the one thing that I will not forgive MS for. They bought the lead guy
from Borland rather than compete against the product. I guess it's all fair in
business, but it was a gutless defense of VB - an admission, actually - that
VB wasn't up to the competition.

The summary for me is that Delphi was more productive and way better designed
than VB with the performance of C. I never understood why it didn't have a
broader following. My guess is that developers enjoyed the challenge of C/C++,
call it an aesthetic judgement.

~~~
igravious
Myself as well. I really really liked Borland products. I had an emotional
attachment to them. I got Borland C/C++ (3?) as a Christmas present shrink-
wrapped one year and I thought it was the best Christmas present ever. Lots of
people learned C using K&R's book - I learned C/C++ from reading Borland's
manuals.

Long story short, when MS turned the full weight of their organization on
Borland and sunk them it opened my eyes to MS's corporate behaviour. That's
how I learned that MS always played dirty. It set me out on the road to
looking for alternatives to Windows. It's ultimately why I'm writing this in
Firefox on Ubuntu.

In ref to the blog post (or whatever it is) I thought Delphi was no more. Just
goes to show, here is a link:
[http://www.embarcadero.com/products/delphi](http://www.embarcadero.com/products/delphi)

~~~
pp19dd
WOW. I had no idea.

From 1997: "Borland International and Microsoft have settled a Borland-
launched lawsuit that started on May 7, 1997, in Santa Clara County, CA. In
the suit Borland alleged that Microsoft had hired 34 Borland employees over
the past 30 months in order to steal Borland trade secrets."

Just WOW. 34 employees.

------
DodgyEggplant
Delphi was designed by the same architect that later designed .NEt. Microsoft
snatched him from Borland. Borland tools were always great, but this was the
era of mighty MS.
[http://en.wikipedia.org/wiki/Anders_Hejlsberg](http://en.wikipedia.org/wiki/Anders_Hejlsberg)

~~~
QuadDamaged
C++ Builder made C++ on Windows so much more accessible than MS Visual Studio
4 + MFC at the time. Truly a revolutionary platform.

~~~
pjmlp
It was the real "Visual C++" in terms of RAD productivity. Microsoft's
compiler had nothing visual about it.

C++/CX + XAML is maybe the closest it gets nowadays.

------
rossjudson
The compiler was lightning fast, and produced fast code. The IDE was fast. It
did a beautiful code/visual synchronization that _still_ hasn't been done
better. It had good libraries, and did effective programming the large.

Not cross-platform, didn't have automatic memory management, though, and was
never going to be able to compete with the advance of free IDEs.

About a million years ago I wrote the Delphi Container and Algorithm Library
(DeCAL). Good times :)

~~~
pjmlp
This is one reason why I see Go compilation speed as PR.

Anyone of us that had the luck to work with tooling in the Amiga/Atari/PC
world back in the day C mostly still only relevant on UNIX, knows there were a
few languages with very fast compilers available.

~~~
dsymonds
Go's compilation speed is more than PR. It's reality when compared against
what it is designed to replace. Believe me, there are several people on the Go
team who fondly remember the "old" days of Turbo Pascal, for instance. But
those tools just aren't around any more for practical purposes.

~~~
pjmlp
> It's reality when compared against what it is designed to replace.

If you mean C and C++ then yes. Not so when compared with most languages with
module systems.

This is why I call it PR, because most Go presentations tend to ignore the
world outside C and C++.

------
tiquorsj
Delphi was one of the greatest development environment ever created when you
just "needed to get shit done".

~~~
dpcan
No question.

I used Delphi 5 for a long time. The IDE was as easy as it gets, the sample
code on the net was rampant, and it produced single little EXE files I could
send to people and they had a full-on Windows application.

The closest thing I've found since then that allows me to do something similar
minus the IDE is BlitzMax, but the IDE was what made the process so silky
smooth in Delphi, and I miss it.

------
huherto
I think Delphi got right the "Visual Programming" paradigm. I am surprised
that we don't have something similar on newer environments. Perhaps is that
multi-user RDBMS with SQL and/or the Web broke the model. I don't know, but it
is an interesting question.

~~~
vram22
Also, Delphi didn't have a completely "Visual Programming" paradigm, if you
mean it in the sense of some of those experimental tools that claim that all
programming can be done visually/graphically, simply by drawing diagrams,
dragging and dropping components onto a window, connecting them visually, etc.
The visual part of programming with Delphi and similar tools like Visual
Basic, was restricted mainly to designing/creating the UI, iteratively and
visually, by dragging and dropping widgets like text boxes, labels, drop-down
lists, gauges, graph controls, etc., onto a form (a window), setting those
widgets' properties such as font, text foreground and background color,
enabled/disabled, tab order, etc. etc. Also, data-aware widgets were useful;
they would show the back-end database data represented by each widget, live,
at UI design time (not just at run time). E.g. a grid widget could show the
rows and fields of a table, live. But the rest of the code (widget event
handling, business logic, etc.) still had to written in a text editor by the
developer.

~~~
gshubert17
Not completely "visual programming" as you say, but I found it a fast and easy
tool for making and tweaking the UI. The IDE's integration of UI widgets and
event-handling procedures was pretty slick too.

~~~
vram22
>I found it a fast and easy tool for making and tweaking the UI. The IDE's
integration of UI widgets and event-handling procedures was pretty slick too.

Yes, you're right. I found it so too. I forgot to mention in my parent comment
that Delphi also generated the stubs/skeletons for the event-handling
procedures. Not only was that a convenience, it helped with learning the tool
and Windows GUI programming too.

------
Jugurtha
I first touched Delphi as a teenager (I was 14 or 15 at the time), and it was
Delphi 6. I had already tried different languages by that time.

I had already programmed in BASIC as a child and it was great, for a kid like
me who didn't have Internet access and named text files to .COM and .EXE in
the hope they would do something, this was awesome. But I still wanted .EXE
files and I then tried Pascal, which gave that to me. I also tried few
examples of C, but the code I had access to was in Pascal, and I didn't have
the doc or internet, so I kept tweaking.

And then I discovered Visual Basic (in its DOS and Windows) and I was able to
do buttons and forms and tigers..

Yet, with Visual Basic, there was always this bloated feeling.. I mean, you
had to make an installer for your programs with files like VBRUNXXX.DLL and
error messages yelling at you, and depending 16bits or 32bits, VB4 or VB6, so
... it's even fuzzy in my head.

And then I found Delphi 6. The first time I tried it, I thought "Hmm, this is
Pascal !". I compiled my first thing, and I automatically looked of parasitic
files VB style.. Nope. It was that .EXE..

So I took that .EXE file to another computer and ran it, and it _ran_. It
didn't need any other files. I didn't have to make an installer for it with
WISE or something. It just worked. I was happy.

When my brother who was in CS and was doing image processing (tumors, edge
detection, etc), he did his project in Delphi and I'd hang around, and he'd
ask me how to do this or that, since I started programming in it before he
did, and it was so easy for him to implement stuff and build the application.

So maybe that's why it lasted so long. Easy enough for a kid to do stuff with
it. It needed not a lot of knowledge to make buttons and forms, etc. I just
make the layout, then program what each button does, etc.. And it was simple.

I may be a biggot, since I tried Embarcadero but it smelled nasty since it
was, at least for me, an utter mess. I prefer Delphi 6. It may be nostalgia,
but I don't htink it's _only_ nostalgia.

------
re1ser
Delphi is a great RAD tool, but it's also slowly dying and has lower and lower
market share, 100% of my income come from Delphi contracting at the moment,
and I love Delphi, but its not a great choice if you're just starting your
programming career and have to choose the language to go with. I've been
sticking to Delphi for whole my programming career (3 years professionaly, 10+
years hobby programming, i'm 24 now), but its more and more occuring to me
that I have to learn some new tech ASAP if I want to progress further. Delphi
has no proper crossplatform support and it's a big minus. Also it has
ridiculous price.

~~~
swinnipeg
Was once in a similar situation myself. One path is to identify a future
customer pain point that will occur if they continue to use Delphi. You can
direct the solution to a language/platform you wish to learn, and work like a
dog to develop the new skills and build a great piece of software in this new
language.

~~~
re1ser
Thats exactly my plan, to learn some basics then further improve skills on
minor contracting jobs I get and I feel comfortable to do them in new
language. It would probably be C++.

~~~
blub
If you're looking at C++ already then I'd recommend Qt. I think it's pretty
close to the RAD feeling I remember from C++ Builder and by extension I assume
Delphi.

Compared to them it's not strong on data components that allow you to connect
a DB to a UI, you will have to write SQL and code for that. But it is a joy to
use, cross-platform and at least on the desktop it is free to use if you don't
mind LGPL and shipping DLLs/so with your app.

~~~
Touche
Don't learn Qt if you want to find clients.

~~~
kyberias
Care to elaborate? Assuming C++ and UI development of course.

~~~
Touche
Enterprises are not using Qt.

~~~
pjmlp
They are in factory control tools and in-car automation systems, for example.

Although the latter are starting to use J2ME systems as well.

At least that is my feeling from job posts here in Germany.

~~~
Touche
The grandparent is a consultant, how many of this niche is hiring consultants?
What are his chances of having steady (consulting) work using Qt? Let's be
reasonable, he has a better chance learning MFC (not that that's a good idea
either).

~~~
pjmlp
Given how Germany is following USA footsteps of outsourcing and offshoring
everything in Fortune 1000, maybe there are some opportunities.

In Germany's case mind you, not sure about other countries.

------
redstripe
In terms of job availability it's been dead a long time. I see a single job
posted on craigslist every 6 months in city with 50 daily job postings.

Part of the problem is the kind of corporate windows CRUD apps that Delphi
excelled at are better implemented as web apps. Which leaves it relegated to
hobby developers and 1 man software vendors.

Even weirder is that in 2002 the Delphi community developed a python 2.7/3
type schism over UI changes and .NET inclusion and a large portion of the
community refused to adopt new releases. It's pretty telling when a vendor
isn't even able to get many of it's own supporters (many of which are these
"Delphi will never die" types) to buy new version of their software in over a
decade.

~~~
tluyben2
The insanely high prices aren't helping either though. Yes yes, they are not
'high' if you are a fortune 1000, however, they are high compared to what
everyone is used to now. They didn't step on the train of making for instance
a version free if you are an open source dev. Or doing low monthly payments.
Or do anything 'cool', like turn up and give a demo on how to implement
reactive manifesto complaint software client/server with a few clicks / lines
of code. That kind of thing would be relevant and interesting to devs _now_ ;
if you can do a dashboard in Mac OS X, Windows, iOS, Android with all the
backend & frontend stuff smoothly working together, smoothly tested and
smoothly deployed, showing off those 6000 datapoints per second coming into
the server and the client and still have a responsive interface companies
would listen. But they don't; they just don't 'do' anything people want now
besides turning up to the mobile parties way too late.

I kind of wonder how many devs still are working on Delphi and if they are not
only just bugfixing...

~~~
_red
I think Embarcadero is seriously hurting themselves with their bunker
mentality.

Their whole "there are only X paying customers left, therefore we need to
charge $3000" stinks of someone who is preparing for failure, instead of
growth.

It really looks like low self-esteem play of some group that secretly believes
the market doesn't want what they have, so they desperately milk their few
remaining customers to make next months payroll.

I keep hoping some startup sees the huge arbitrage opportunity that is sitting
there. Someone just needs to come along and build a quality GUI around the
toolchain - very much like what Xamarin did for Mono - and similarly they need
to charge a sane subscription model (free for OS/hobbyist, $99 personal dev,
$399 corporate lite, etc).

------
Udo
I spent the first years of my non-school life developing things in Delphi,
including CGI binaries in the end. I can't say how much I loved the language
and the IDE. In fact, XCode is still somehow trying but falling far short of
providing the same amenities for developers (maybe on purpose).

Since I rediscovered dynamic languages in the early 2000s and haven't (except
for some experiments in C) looked back.

It's funny how you can selectively remember the good aspects of a language and
forget how much better life has become since you dumped it. Out of nostalgia I
checked out Lazarus and I'm glad it has a somewhat thriving community.
However, for me it was clear immediately that the time of Delphi/Pascal has
passed for good.

~~~
vitd
Can you describe what things Xcode lacks that you miss from Delphi? I'd be
interested in learning more about such features.

~~~
mihaela
Smart commenting/uncommenting (depends on indentation in Xcode) Expanding case
statement for enums (not implemented) Renaming does not work for commented .h
and .m file name No shortcuts are shown in hints (debugger step over/into...)

------
superflit
Having supported Delphi applications I had to say:

1) It just works;

2) It works in old machines fairly good enough

3) There is a lot of new components/integrations (SQL,DB2,Oracle,WEB,etc)

4) Good reports system

It isn't sexy but do the job very well for most corporate applications.

~~~
malkia
I remember when it was sexy - in the days of Windows 95-98 - that was the best
RAD tool out there.

------
StillBored
I used delphi extensively in the mid 90's, from the 1.0 release until about
2001. Those were probably some of the most enjoyable and productive times of
my life.

IMHO, nothing comes close to the syntactic clarity of object Pascal. This has
a ton of knock on effects for long term maintainability.

Plus, the early versions of the Delphi component model were insanely clear and
well documented. My first delphi program was a reimplementation of a 6 month
long (4 programmer) access database/vb application. I completely reimplemented
a 2 man year project in about 24 hours with it using little more than the help
docs. After a quick demo at work on Monday, everyone pretty much agreed to
kick MS Access/vb to the curb and pick up my code base.

The data aware components were a life saver, and to this day programming in a
wide range of languages I am constantly reminded how painful doing things that
were simple 20 years ago is. It drives a fundamental distaste into my mouth
every time I'm hacking an AJAX app to do basic sorting/filtering of a simple
result set. Usually doable with delphi in a matter of a few mouse clicks.

Plus, by the late '90s there were a ton of 3rd party component libraries that
nailed just about every GUI interaction an average program might need. The
integration of reporting components made generating nice paper printouts a
snap too.

So, this is probably why its still being used. Reimplementing a delphi
application of a hundred thousand lines is probably a thousand man year
project with a "modern" web stack. And so, much like the mainframes running in
the data centers of banks/insurance/etc companies, delphi is probably still
driving a fair number of business logic applications. I know that some of the
applications I wrote in the 90's are still in use at government agencies.

BTW: I used BC builder too, and hated it even though I tend to like C++. The
C++ syntax was simply to unwieldy vs pascal.

I have periodically tried out more recent version of delphi or lazurus
[http://www.lazarus.freepascal.org/](http://www.lazarus.freepascal.org/) and
they don't seem to be nearly as elegant as the early versions. Seems all the
effort to make it cross platform (kylix) or match up with the .net component
models cluttered up the early clarity of implementation.

------
mtkd
I look at tools for DOM manipulation right now - and I look at what people
dream of doing with the DOM, especially with apps.

Then I think back to what Delphi was doing in early 90s - then I wonder if
just some of that magic was available for building apps on the DOM we'd be in
a better place.

~~~
pjmlp
This is why kids these days jump into web development, they aren't aware how
good tooling we already had back then.

------
Lerc
To add my two cents, here's a piece I wrote on why I use Delphi/Object Pascal
a few years back

[http://screamingduck.com/Article.php?ArticleID=43&Show=ABCE](http://screamingduck.com/Article.php?ArticleID=43&Show=ABCE)

Now that time has moved on, I no longer use Delphi at all, and rarely use
FreePascal. My currently active projects are C, Node.js, and Browser
Javascript. For game projects I prefer Haxe. For future large scale projects.
I'm eyeing Rust. When the time comes I'll probably be weighing up the relative
maturity of Haxe and Rust. They are developing from different directions, Rust
being more idealistic and Haxe being more pragmatic, but I think they'll grow
aspects of the other over time.

------
DanHulton
I remember the same feeling with VB6/VC6. Sure, with VC6, you could do More
Stuff, and theoretically, it would be Better Stuff. But in an afternoon with
VB6, I could bang out a good first prototype for SO many projects that in many
cases, ended up being "good enough" that we never needed to go back and re-do
it "properly" in VC6.

PowerBuilder, though... Man, that can't die fast enough.

~~~
tluyben2
That's how I sold Delphi; I applied for VC projects and then talked them into
a 'fast prototype' in Delphi. They never rewrote and I had happy clients for
many years. It worked especially well in companies who where forced into VC by
higher management and already did a few (long, painful usually) projects in
it; they could now show off something much faster and with more features.

------
ivanhoe
Delphi had one of the best and most useful help documentations I've ever used.
In my eyes it was a huge winner for Delphi over Visual Studio products,
although I never really liked the pascal syntax...

~~~
spitfire
Delphi/Pascal and Wolfram mathematica are the two things I point people to
when we talk about documentation.

Every single function had a working snippet example. Mathematica had details
and applications for each function, while Delphi/BP had a well written
explanation of what the function would do and how to use it.

They are the standards that have not been surpassed yet. Or even approached
imho.

These days you get an auto generated docstring explaining that xval is "the x
value passed to the function".

------
pjmlp
One of the great things about Delphi and its predecessor Object Pascal were,
besides what other HNers have mentioned, was AOT compilation, being memory
safe and allowing systems programming at the same time.

No need for VMs.

Luckly Go, Rust, D and now .NET Native might make younger generations aware of
it.

~~~
nolok
Object Pascal is not the predecessor to Delphi

Delphi is the IDE and compiler, Object Pascal is the language (Free Pascal
Compiler and GNU Pascal are two other compilers, both exhibit the same quick
and safe compilation).

~~~
pjmlp
> Object Pascal is not the predecessor to Delphi

Object Pascal was designed at Apple as their extensions to Pascal while using
it as system programming language to develop the first versions of Mac OS.

Afterwards, Borland extended Turbo Pascal with Apple's agreement and then
Turbo Pascal 5.5 was born.

After the initial versions of Delphi, the Borland marketing team decided it
was a bit confusing to have Delphi and Object Pascal as names, and decided to
start referring to the language as Delphi as well.

I was a Turbo Pascal user since version 3.0 all the way up to the first
versions of Delphi.

~~~
nolok
Yes I'm quite aware of the history but the fact that borland/embarcadero
choses to call both delphi doesn't really change what I said though, every
where besides the marketing of this IDE clearly considers object pascal [1] as
the language (with several implementations/compilers), and delphi [2] as the
IDE.

Delphi's own documentation, once you're past the marketing naming on the box,
makes it clear that the language is object pascal.

[1]
[http://en.wikipedia.org/wiki/Object_Pascal](http://en.wikipedia.org/wiki/Object_Pascal)
[2]
[http://en.wikipedia.org/wiki/Embarcadero_Delphi](http://en.wikipedia.org/wiki/Embarcadero_Delphi)

~~~
pjmlp
So it seems I need to post some links to official documentation.

<quote>The Delphi Language Guide describes the _Delphi language_ as it is used
in RAD Studio development tools. </quote>

[http://docwiki.embarcadero.com/RADStudio/XE6/en/Delphi_Langu...](http://docwiki.embarcadero.com/RADStudio/XE6/en/Delphi_Language_Guide_Index)

<quote>Delphi is a high-level, compiled, strongly typed language that supports
structured and object-oriented design. _Based on Object Pascal_ , </quote>

[http://docwiki.embarcadero.com/RADStudio/XE6/en/Language_Ove...](http://docwiki.embarcadero.com/RADStudio/XE6/en/Language_Overview)

The current language is based on Object Pascal, which is quite different from
being Object Pascal, which was quite different back in the Turbo Pascal and
early Delphi days.

I don't know Delphi and Turbo Pascal history from Wikipedia, I lived through
it, from Turbo Pascal 3.0 up to Delphi version 3.

------
noonespecial
I always gravitated to it because it was a fantastic painless (mostly) wrapper
for the beastly win32 API. As a unix programmer, it was great when I "just
needed a quick windows GUI" for something.

Delphi has been my secret weapon for more than a decade now.

~~~
waps
I loved it for that too. It's amazing how much easier most things are in
Delphi. Yet everything remains possible. I wrote a windows application
firewall in Delphi, and that worked. Man that was a great experience.

------
josephpmay
I always wondered why a devshop I've worked at used Delphi. Now I know. The
main code base is handled by one developer.

------
malkia
Does anyone... Turbo Vision!!! Oh, the memories! and "Uses BGI"

------
mihaela
I have been Delphi developer for more that 15 yrs. I had 2 shareware apps, one
of which is still selling (very well). But now I work in Objective C. Xcode is
much better IDE (Delphi is 32 bit, and crashes often with big projects). I
will probably continue to do Delphi, on the side, but iOS and OSX are my main
domains of interest. Delphi devs are old, no new fresh blood, no jobs
available, no new books are being published. Online material is mainly
marketing, no useful blog posts, new frameworks, package managers.. Delphi is
great for people that have been using it for ages, but with the current
pricing, and no 'community' edition, it will not attract new developers.

~~~
justwannareply
I agree with most of your sentiments, but no new books and no new frameworks
isn't completely true. For example, I just started reading Coding in Delphi
([https://leanpub.com/codingindelphi](https://leanpub.com/codingindelphi))
which describes a few current efforts. Still I'm hesitant to make use of
those, because they would further lock me in with Embarcadero; sticking to
what's in Delphi 2010 itself at least allows for a relatively smooth
transition to Lazarus at some point. I haven't given up on the principles of
Delphi yet, but I have on Embarcadero.

------
nobleach
I completely identify with this poster. I inherited an app written in CA
Clipper (a language from 1987) It became FoxPro. I had to learn those ancient
technologies. Surprisingly, I really enjoyed it. I loved those old
terminal/DOS apps. Around 1999, we made the decision to migrate the entire app
to Object Pascal/Delphi/Kylix/InterBase/FireBirdSql. It was an incredible
effort. I loathed, yet loved it. What I learned during that year STILL comes
back from time to time in my current development projects. Kinda makes me feel
old! When I started doing C#, I felt quite at home. Apparently, the guy who
did Delphi, got hired at Microsoft.

------
ketralnis
And why should it? It may not be trendy but it's a really quality environment
for its use case.

I only wrote it as a hobby as a teenager but compared to trying to write
Visual Basic or C or Java on Windows it was a real dream. As a hobbyist the
absolute most important thing was seeing my effort actually materialise in
front of me and to that end it was amazing. And Pascal is a dream compared to
C for slightly-higher-than-C level stuff.

I loved it and I hope it sticks around. I just took another look and it
compiles applications for Windows, OS X, Android, and iOS. Maybe I should give
it another go some time.

------
conradfr
Delphi 3 introduced me to programming in my teen years. Somehow that's why I
never dived in C I guess. I remember how you only had to dealt with pointers
when you used Windows API.

It took years to Microsoft to get the web right (as everyone who used Visual
Studio and .NET before MVC could tell you), it's no wonder it was difficult
for a company like Borland to transition.

As a PHP developer I wonder why I never tried that "Delphi for PHP".

Coincidentally I interned at Borland France during my marketing years ten
years ago and developers were really passionate about Delphi.

------
pjmorris
"With very few exceptions, technologies don’t die. In this way they differ
from biological species, which in the long-term inevitably do go extinct.
Technologies are idea-based, and culture is their memory. They can be
resurrected if forgotten, and can be recorded (by increasingly better means)
so that they won’t be overlooked. Technologies are forever." \- Kevin Kelly
[1]

[1] [http://kk.org/thetechnium/2006/02/immortal-
techno/](http://kk.org/thetechnium/2006/02/immortal-techno/)

------
tokenrove
I did a contract that involved some Delphi not long ago. I was really
surprised to see it still in use. The worst thing, though, was registering to
get a trial from Embarcadero who then had an elaborate follow-up process
including phone calls from them. And after all that, the code in question
wouldn't compile with the new editions of Delphi and I had to track down a
copy of Delphi 6.

I was really surprised to discover they still have a C++ compiler product.
Does anyone use it?

~~~
pdw
I used C++Builder at a previous job. All their software was C++/VCL, they were
completely locked in. Embarcadero tried to keep up with the evolving C++
standard and on paper they were moderately successful, but if you actually
tried to program in a modern style, it all fell down. E.g. you'd find an
object's destructor was ignored, or even worse, run twice. I think I reported
about two dozen compiler or C/C++ library bugs.

------
bdamm
I loved Delphi back in 1997. Then I moved on to Java, and never looked back.
It was wonderful though, and GUIs were so easy. It wasn't my first language,
but it was the first language I become truly comfortable and productive in.

My move to Java was partly because I was straddling the Windows and Linux
worlds, and Delphi couldn't cross that chasm with me at the time.

------
mrsaint
Why? Because it cannot just die yet! One of my most frequently used Windows
app is in Delphi. Total Commander. ;)

------
hoodoof
I feel like Delphi has made a recent exciting comeback to relevance. AppMethod
allows development of native compiled apps for OSX, Windows, Android and iOS,
all from the same Delphi code base. That's a compelling proposition.

~~~
gshubert17
Isn't Delphi currently hosted only on Windows? I would love to use a tool like
Delphi on OSX to make apps for OSX.

------
jimmcslim
I have recently joined a small successful ISV selling and developing a couple
of Delphi apps in an industry vertical in which I have significant experience;
my prior experience has been C#/.Net for quite a while, and before that Java.
I recall buying the Delphi IDE way back in the day; possibly when I was still
at university, definitely when Borland was still around!

So some informed observations:

1\. The quality of the IDE is incredibly dire compared to Visual
Studio+Resharper or Jetbrains IntelliJ. Perhaps it will be improved if a buy a
license for Castalia. That said, I've been using XE3, maybe the more recent
versions are better but it seems that Embarcadero have been focusing on
getting into the cross-platform mobile game (one which I think
Xamarin/Phonegap/Titanium, etc are playing better) rather than increasing the
quality of the tools or enhancing the language. XE6 may have some improvements
under Embarcadero's "QPS" (Quality/Performance/Stability) project. We haven't
upgraded our licenses since the versions since XE3 didn't bring anything for
us, but if we want to see Delphi survive then perhaps we should be chucking
some money Embarcadero's way!

2\. The language is quite verbose, and I find the need to declare the
'interface' for a class separate to the implementation of the methods quite
cute. There's so much ceremony around anonymous methods that it hardly seems
worth it some times. Lack of built-in multicast delegates for event handlers.

3\. I recently attended a local symposium put on by the user group. There
didn't appear to be much diversity amongst the attendees. I would charge that
lack of diversity is not a sign of a healthy software development community.
Speaking with one of the organiser's, they mentioned that Embarcadero doesn't
introduce new Delphi customers to the user group any more since it is just
"grumpy old men".

4\. At this symposium one of the talks was on dependency injection. I was
bemused that this was a new idea to the Delphi world. One of the advertisers
in the symposium papers was a consultancy whose pitch basically was "so you've
been making money from selling a product, but you're getting old and want to
retire. Pass the source code and rights over to use and we'll work out an
arrangement to continue development whilst maintaining a royalty stream for
you".

5\. Packaging of open-source for easy reuse is challenging in Delphi. Unlike
managed environments such as .Net or Java, reusing well-known open source
components is as simple as adding an assembly or a JAR to your project (yes, I
acknowledge that in the past this has had its own challenges, but I think in
the .Net world at least Nuget has largely conquered this). The native binaries
nature of Delphi has meant there is no such equivalent (that I'm aware of),
although I'm considering leveraging Nuget's packaging format and tools for
BPLs.

~~~
edwinyzh
Re #1, Castalia is very slow fews years ago I tried, it's the ModelMaker Code
Explorer that adds a lot of productivity to the IDE, including refactoring,
and so on. Plus GExperts and GNPack.

~~~
jimmcslim
Thanks for those recommendations, I'll check them out.

~~~
edwinyzh
GNPack should be CnPack

------
eitland
Everybody else seems to love it, even compared to Java.

I can't help but think of using three days to collect and compile all
dependencies for a legacy project.

At that point at least I'd take Java and maven any day.

------
issam01
dealing with Delphi as a product more than programming language hurts the
Delphi community. I mean Embarcadero should give away some (freebies) to the
community. like a free/express Delphi version. I think this will refresh its
community and the Delphi empire would rise again.

~~~
pjmlp
They did, but they were not consequent with them so the developers lost trust.

------
antocv
Does anyone know more about PeopleCode and their PeopleSoft tools and IDE and
how it compares?

~~~
r00fus
PeopleSoft was hostilely acquired by Oracle in 2005, after which, despite
Oracle trying to kill it for years (and merge the Peoplesoft product into
Fusion), it still exists.

PeopleCode/Tools is more equivalent to ABAP offered by SAP, it's heavily tied
to the Peoplesoft environment, and has no real comparison to Delphi.

Amazing that you can still find it around these days, but most PeopleSoft
customers have moved to Oracle, SAP or Workday by now.

------
smegel
Reminds me of ColdFusion. It should be dead, but it's not.

------
ape4
The COBOL of the future?

~~~
Eyght
Scott Adams could make the same joke again
[http://dilbert.com/strips/comic/1997-11-04/?CmtOrder=DateEnt...](http://dilbert.com/strips/comic/1997-11-04/?CmtOrder=DateEntered&CmtDir=ASC)

~~~
aurelianito
I dont think so. Java is the new Cobol.
[http://c2.com/cgi/wiki?JavaIsTheNewCobol](http://c2.com/cgi/wiki?JavaIsTheNewCobol)

~~~
nobleach
I'd say Java 1.2 is the new COBOL. Just like COBOL devs were in serious demand
during the "millennium crisis", Java 1.2 devs will be in demand the next time
we have some sort of fundamental upheaval. This is due to so many
banks/utilities/etc betting the farm on older Java. Judging just by current
job postings, Rails 3ish might be entrenched for a short while too.

