Saturday, May 25, 2013

Is Delphi Software Development Dead?

[Additional discussion update: see my October-2014 blog about Delphi programming popularity, which references this article.]

I was a long-time user of the Embarcadero Delphi (formerly Borland, Inprise, and Codegear branded Delphi) RAD (Rapid Application Development) IDE, programming language (which is object-pascal) and VCL (Visual Component Library) -- having used it since the Delphi 2 days in the mid 1990's.  I have written about Delphi on this blog before, including my thoughts about Delphi XE2.   Since then, Delphi XE3 has been released, as has the newest Delphi XE4 variant (which, seems to me as XE3 with additions almost solely focused on iPhone/iPad/iOS targets.

With recent releases of Delphi (like XE4), one could assume that Delphi was still going strong and holding market share.  But, think again!  If you happen to read the TIOBE Programming Community Index (as of May 2013) site (FYI, the TIOBE Programming Community index is an indicator of the popularity of programming languages), you will encounter this (quoted material):
May Headline: Delphi is on its way out
Delphi/Object Pascal was once far ahead of its time. The Delphi development environment supported software engineers to create cool applications in a fast way. Moreover, since the underlying language of Delphi was Object Pascal, the "generated" applications were scalable and relatively easy to maintain. This in contrast to its competitor of that time, the rapid application environment Visual Basic of Microsoft. 
Delphi's major market is development of applications for the Windows platform (although they tried to get some Linux market share as well, remember Kylix). As a result they have to fight against the fierce competition of Microsoft's Visual Studio. A battle that inevitably has been lost.
Well, that certainly does not sound good for anyone that wants to make a career of developing Delphi applications!  Delphi has just dropped to 17th position (popularity) in this index after previously being at 14, and it is teetering on dropping out of the "A" category of Status/Relevance as a programming language. [Feb-2017 update, and a shocker at that: currently Delphi stands at a respectable 9th position, just behind VB.Net at 8th, and JavaScript at 7th position! Though, I am still not seeing any matching uptick in job advertisements for Delphi gigs, so I have no idea what is driving this ranking unless it is people like me posting my old Delphi code on blogs like this as OSS software, or if it is the cross-platform apps-development market now.]   Even these latest updates to Delphi (XE2, XE3, XE4) are unable to stop Delphi's slide into obscurity.  Instead, the TIOBE index puts Delphi at .7% usage-popularity as compared to C# at 6%, C++ at 9%, Java at nearly 17%, and C at nearly 19%.   Needless to say, when I search for jobs requiring Delphi expertise, I see these numbers play out in real economic sense -- i.e., there are "no jobs" (essentially) for Delphi developers as compared to C, C++, C# or even Python for that matter.

Time will tell if Embarcadero can dream up some way to increase market share, but I personally have my doubts given the trends I am observing (jobs, etc) and the trends that places like TIOBE are reporting.  In addition, Delphi can be a rather costly development tool/environment compared to all the open-source options out there for working with the leading popular languages.  That is not helping things... especially when Embarcadero thinks that I will be forking out $1000-$3000 year after year (per license) to keep getting "upgrades".  Sorry, I am past the point where I can justify purchasing new versions of the product year after year with little chance of having paying software development gigs that demand Delphi expertise.

I cannot help thinking Embarcadero has simply priced their way out of the market and into further obscurity.  With all the free and open-source software out there (including things like Microsoft's "Express" version of Visual Studio 2012 and so forth), coupled with the fact that I need to also pay extra for all sorts of Delphi 3rd party components (for functionality I can find for free in other languages/platforms), the management at Embarcadero really seems to not understand the macro-movements in the software development market.

IF they did understand, perhaps they'd release a very capable Delphi version that can compare to the Visual Studio "Express" line... but, I can nearly guarantee they will not, and it probably does not matter at this point as all the numbers are pointing to Delphi having secured its own fat: obscurity and an inevitable death.  I'd be nice if I was wrong and Delphi experienced a resurgence, as I really would like to put my nearly 20yrs of Delphi experience to use for paying gigs!).

28 comments:

Anonymous said...

Delphi is dead, move on.

Anonymous said...

I have to agree: using Delphi today is like (please, pardon my metaphor) reading a book to a brain-dead child on life support. You know it is dead, but you love it so much, that you just cannot accept the fact.

Uomo Ragno said...

Delphi IS dead.

I was a long time Pascal programmer since Turbo Pascal 3.0 (the fastest compiler at its times) for DOS.

The problem is that the language is written in 1960-70 and now we have C# and GOlang that are much simpler to program.

Mike Eberhart said...

Uomo,
Pascal may have originally been written in the 70's, but so were many other languages that provided the foundation for modern incarnations. Delphi (object-pascal) is rather modern by comparison, having come about in the mid-1990's. And, C# was designed by one of the main designers of Delphi language (not surprisingly, C# looks a lot like Delphi).

My argument about Delphi being dead has little to do with the language itself. Unlike you, I find Delphi vastly simpler to write applications in than C#, even as Delphi and C# language constructs are nearly identical in many regards. The big difference in productivity (for me) is the Delphi VCL (Visual Component Library), which was way ahead of MS's DotNet for quite some time. Where Delphi went completely wrong is in their marketing and pricing strategy (among other things). I am hugely annoyed by the Delphi cash-sucking-machine of recent where the alternative (Visual Studio Express) allows free access to quite a bit of powerful Windows development. Either way, the bigger argument may be that Windows development is dead, regardless of the language. Seems like HTML5/etc and total cross-platform open-standards are the way to go.

Thanks for rendering an opinion and reading my blog. m

Anonymous said...

I couldn't agree more with you.

Although Delphi is one of the most awesome IDE, based on one of the fastest and most independent compilers ever, the yearly licence payment is ridiculously high compared to today's marketing world.

I hope someday they make up their minds.

Carlos Cuesta said...

Yes, Delphi is dead. I used it since version 1, I loved It, but is time for move away, in my case I decided move to Java. Bye bye Delphi.

Jupiter Punungwe said...

Delphi is not dead! I am still using it.

Delphi is a very good IDE based on a solid language Pascal. The downfall was unsure marketing. The product kept changing names. Confusing for newcomers especially students.

Visual Basic, does not look like the original BASIC, or even the intermediate Quick Basic, but because they stuck to a well known name, they kept attracting the newbies.

With Delphi unless you come from the old school (Turbo Pascal) you probably have no idea what Delphi has got to do with Pascal. Some of the newbies I came across didn't even know they were being taught Pascal.

All Embarcadero need to do is make sure the name of Delphi has Pascal somewhere prominent. That will probably get it back in classrooms.

I always find it interesting that C# has 'done in' Delphi when Microsoft were aiming it at Java.

Anonymous said...

Delphi is alive and well and kicking assess,thank you! Best programming tool ever. Don't have money to buy it? Don't use it! Use Visual Studio,ha,ha,ha....

kodlayici said...

In Tiobe Programming Language Popularity Index for October 2014, the Delphi rose more than six-row and its is now 11. This is absolutely success of Embarcadero's mobile prediction. Hooray Delphi, Hooray Delphi Programmers :)

Anonymous said...

It cant be denied there is something about ObjectPascal that makes you very productive. Aside from that, I dont like Needle-Bill - his stuff is to sharp for me. ;-o

OpenSource Lazarus is a great alternative for those who can't afford Delphi. Fast and reliable, works on all platforms. You can sit and program ObjectPascal on a RaspBerry Pi. Really cool stuff.

bocek adam said...

I am using delphi now, just I love Delphi. Problems of delphi:

-> Price high
-> Coming one step back
-> Developers are using for evrything for C# (web app, desktop app, mobil app, database app etc.)
-> Developers can find information very easy from MSDN with C#
-> Tutorioals not enough for Delphi

Jim Rodimon said...

I have a choice of languages where I work, java, c#, Delphi 1 - xe7.

When I want to write something that compiles to an exe that will just run without any runtime libraries I pick Delphi.

I use c# if the children cry about Delphi.

Anonymous said...

Delphi is dead! I learnt to program with Turbo Pascal and I love Pascal. I loved Delphi but is too expensive and undocumented. A couple of years I moved to Lazarus but it probably will die too... It's time to move to Java (aaaaggghhhh!) or say 'good bye' to programming...

Navid M said...

Delphi is very much alive and RAD Studio is a viable option for Delphi and C++. Firemonkey is maturing nicely and the IDE is a pleasure to use. The higher cost is offset by productivity and getting your program ready faster. Delphi is obviously the flagship platform and is especially productive. Native compiled code is fast an does not carry the garbage collection burden. Reference-counted interfaces are probably underused by developers. Users should adopt well established patterns (MVVM, etc.) to avoid the trap of the typical RAD spaghetti code approach.

Lars Olson said...

Delphi costs a lot, but so does MS visual studio.

The microsoft Visual Studio Express editions are pretty limited because you can't even edit resources properly, you need to buy the full version for the resource editor! The express edition is only good for trivial non visual tasks.

Although, microsoft is supposed to have released an express edition that has almost all of the capabilities of the full version, so I will try it out. But if you download visual studio 2010 express edition, you cannot work with this tool at all for anything serious. No resource editor? what are you going to build a plain win32 API app with no visual tool? pathetic.. almost useless tool.

Hopefully MS has released a better express tool for 2013 or 2015

I am still using Delphi 5 for many projects, and Lazarus sometimes, and Delphi 5 standard edition cost me less than $50 used in the back of a book but most delphi editions cost way more than $50

Lars Olson said...

Delphi costs a lot, but so does MS visual studio.

The microsoft Visual Studio Express editions are pretty limited because you can't even edit resources properly, you need to buy the full version for the resource editor! The express edition is only good for trivial non visual tasks.

Although, microsoft is supposed to have released an express edition that has almost all of the capabilities of the full version, so I will try it out. But if you download visual studio 2010 express edition, you cannot work with this tool at all for anything serious. No resource editor? what are you going to build a plain win32 API app with no visual tool? pathetic.. almost useless tool.

Hopefully MS has released a better express tool for 2013 or 2015

I am still using Delphi 5 for many projects, and Lazarus sometimes, and Delphi 5 standard edition cost me less than $50 used in the back of a book but most delphi editions cost way more than $50

alcalde said...

@Lars
Visual Studio does *not* cost a lot. The community edition is now free for up to five developers and under one million dollars of income. Delphi's last niche was the small shop of solo developer, and MS' move (itself due to pressure from open source) killed it.

A new license of Delphi Pro including software assurance and the client/server add-on costs about $2147 USD! Even then you don't get full profiling tools, testing, documentation generator, HTML parsing, etc. and have to purchase many other tools and components to put together a minimal development suite. Software assurance is now necessary to get *any* updates/bug fixes at all! It's like they did exactly the opposite of MS' move, guaranteeing failure.

I recently put together a new computer for about half what a new Delphi license would cost me. 100% of the software on it is free or open source (99.x% open source)! IDEs, compilers, interpreters, version control, documentation generation, profiling, small business accounting, database, reporting, mathematical tools, etc. I was able to outfit a nice programming/data analysis/data mining/machine learning system for about half the cost of a Delphi license.

Open source has virtually conquered development tools; even Microsoft feels the need to give their tools away now to stay relevant. EMBT and Delphi still think it's 1995 and don't appear to ever want to change with the times. They'll just keep milking the True Believers until no one is left. :-(

alcalde said...

@Navid

>Delphi is very much alive

By what measurement? It ceased being used for AP Computer Science in 1998 or 1999. You now have an entire generation that has never seen a line of Pascal. A twindling number of users in their 40s and 50s doesn't make it very much alive. It's dying out.

>Firemonkey is maturing nicely

But Qt is already mature and stable and also available as LGPL licensed.

> and the IDE is a pleasure to use.

The IDE lacks modern amenities. What other IDE in existence doesn't let you redefine every keyboard shortcut?

>The higher cost is offset by
>productivity

Delphi is 1) a very verbose language by modern standards and 2) has a tiny ecosystem today. There are no more commercial books for 10 years now, and barely any new libraries. Other languages introduce 30, 50, 60+ new free, open source libraries per day to their package management sites! My last count had 8 free or open source components in two weeks at Torry.net. Python had 685 new additions during the same time period!

Productivity today belongs to the dynamic languages such as Ruby and Python. Delphi was never designed to be RAD and simply offers no modern RAD features. It doesn't even have type inference!

You can't be more productive when the language is verbose, the product is buggy, support is minimal, books can't be found, free online courses don't exist, most countries don't have any live conferences, and libraries are few.

>Delphi is obviously the flagship
>platform and is especially
>productive.

Please name ONE feature of Delphi that would make you more productive than, say, Python or C#.

> Native compiled code is fast

JIT code is also fast. In some of my benchmarks JITed Python beat Free Pascal and modern, optimized C++ compilers produce code that's twice as fast as Delphi. Delphi also loses out to C# and Java on SciMark, as found by other Delphi users.

> an does not carry the garbage
>collection burden.

Garbage collection is a feature, not a "burden". The only people who call it a burden are Delphi users, who can't use it. Even the creator of Pascal introduced it into his last language, Oberon!

If you want the fastest productivity, you can use Ruby or Python - for free. If you want the fastest code you can use C++ - for free. Why should you pay $2000 for Delphi and be locked into a dying ecosystem and stuck using Windows? (IDEs from JetBrains are written in Java and run on any OS).

alcalde said...

@Jupiter:

>Delphi is not dead! I am still using
>it.

Wnen we say "dead", we mean "relevant". COBOL is still being used today - to maintain legacy code. But no start-up in the world is going to consider using COBOL for their new product, are they?

The problem here is that a great deal of former Delphi users are gone now and those who remain are in their 40s or 50s. Even if they remain with Delphi, they're going to retire some day. Where will the new Delphi developers come from?


>Delphi is a very good IDE

As compared to what? It lacks many modern features. It just added "partial" support for Git! Even MS, which makes its own VCS, added full Git support first! I have open source IDEs that offer subversion, Git and Mercurial support. The code insight or whatever you call it has been broken for years in the IDE, it needs to install old .NET and Visual J# runtimes, etc. They just bought a 3rd party set of utilities and integrated into XE8 but it has left the IDE so unstable it crashes if you try to pull up certain menus and everyone on the forums wants to know how to disable it. No, the IDE is nothing to be proud of anymore.


>The downfall was unsure marketing.
>The product kept changing names.
>Confusing for newcomers especially
>students.

No, no, no. The real downfall was deciding to chase .NET and imagining they could out-do MS. They wasted years and lots of money and the quality of the product suffered tremendously. That destroyed its reputation and it never recovered. The other downfall was never firing the people who made all the mistakes in the first place. You've had 3 owners, but the same set of people guiding the product.

Pascal was on its way out as a teaching language by the time Delphi appeared. The last time it was used for AP Computer Science was '98 or '99. They first switched to C++ and then very soon to Java. A new survey of top colleges showed that Python has edged out Java as the most popular for college CS101 courses. In many ways, Python is the new Pascal - cheap(free), easy to learn, readable, and still quite powerful. Python, unlike EMBT, has actively worked with teachers and deliberately sought to win this market.


>Visual Basic, does not look like the
>original BASIC, or even the
>intermediate Quick Basic, but because
>they stuck to a well known name, they
>kept attracting the newbies.

You're missing the big lesson here! BASIC, like Pascal, was an old language that fell out of favor. BASIC, however, MODERNIZED. It dropped the line numbers and added lots of modern CS constructs and revived its fortunes as a result. Delphi/Object Pascal refuses to modernize many aspects of the language and as such it's not going to gain traction again.

>With Delphi unless you come from the
>old school (Turbo Pascal) you
>probably have no idea what Delphi has
>got to do with Pascal.

That's a good thing. Pascal = old to younger people, just like COBOL meant old to me when I was in school.

>All Embarcadero need to do is make
>sure the name of Delphi has Pascal
>somewhere prominent. That will
>probably get it back in classrooms.

This is not the case. Educators in the late 90s decided Pascal was not the language to teach the new programming paradigms. On top of that, Delphi is closed source, proprietary, single vendor and expensive; none of these traits are useful for teaching. There is no focus on teaching by EMBT either.

Anonymous said...

Delphi is'nt dead, because dinosaurs like us who started with Turbo Pascal, and Delphi, still keep many applications running. Also we know that the Delphi has one of the best development environments and has libraries for almost everything. For us, why to change to the new "fashion" languages?

Fritz said...

I'm not so sure here. I used to program in Pascal and Modula in the 80s but then got sucked into the C / C++ world by promises of more powerful language, OOP makes things easy etc. After 20 years of OOP in C++ I must say that my aversion to that kind of language has grown more and more to the point where I want to vomit when I have to turn on VS.
I was looking into Ada as a replacement but the toolchain and the confusion about the various version is terrible. In general, the GCC debugger can not keep up with what Visual Studio is providing. So I have finally turned to Delphi to evaluate it. I always looked at it as some form of degenerate toy Pascal but I must say, the more I read about it, the more I begin to like it. I checked the XE8 IDE and I must say I can see myself using it.

C++ and the related languages like Java etc are abominations. They are like Playdoh, they suck you in with the promise of power and easy results in the beginning but then they turn into plyable monsters that can not be controlled anymore. I yet have to see a huge C++ project that has not turned into a maintainance nightmare.

So my idea is to see if it's possible to return to the classical way of programming, especially without OOP. the advantages of OOP are vastly overstated and other than the usual standard sample of "geometrical objects" and "vehicles" I haven't seen a problem that couldn't be solved with imperative programming.

Anonymous said...

Delphi is great for native applications. Python, C# and Java need a virtual machine. To beat Delphi you need to go for C or C++. And Object-pascal is much better than C or C++ the generate bugfree software.

I've read in several places that there are delphi developers that work in companies that are developing also with .net or java. They report that they beat in productivity the others.

Why developing in delphi could be in many cases more productive than using more modern languages?. Well, I don't know but I had a similar experience. I have some theories, my 2 cents.

- Compiling with delphi is fast, perhaps not the best code, but that means that developing cycles are shorter and agiler.
- There is too much overengineering all around. And I think this is the main point. People fight with patterns using complex framework and libraries, when simpler solutions could work very well. It looks that developers of other languages are more likely to fall in the pitfall of overengineering.
- Delphi developers master the language, others don't. Because of age, and because it's easier to master object-pascal than other language.

Having said that. Delphi is dying

- Delphi shines in windows desktop applications. And that market is shrinking.
- There are many libraries out there in C and C++ and delphi can't keep the pace.
- The new trend is running interpreted languages. (I can't understand why. Sure computers are faster, but native code would fly).
- Last versions are over-over-overpriced and buggy.

Lars said...

Fritz, you said "So my idea is to see if it's possible to return to the classical way of programming, especially without OOP."... Well it's pretty hard to use Delphi without using some OOP if you reuse existing delphi components on the market or from the IDE. If you aren't doing OOP you might want to try Go Language but it's not for GUI programming for win32 as much. You can indeed program without OOP in delphi and fpc but that requires using none of the GUI components that delphi provides you with, and rolling your own from scratch. I've done several web programs using zero OOP, but that's not win32 gui.

Lars said...

Anonymous said "Object-pascal is much better than C or C++ the generate bugfree software."

Extraordinary claims require extraordinary evidence. I know of plenty of delphi libraries, units, programs, that are full of blown exception bugs because try except or try finally weren't put in the right place or all the errors were not handled properly.

Object pascal does not magically take away bugs from software, in fact exceptions often hide bugs upstream where you don't know they are blowing exceptions because it's upstream instead of you taking care of the error. Java is the same, big promises of error free code, but in fact 99 percent of java apps have exceptions blowing off in many places.

A very common embarrassing and pathetic example is File Not found, so an exception blows off.... Not finding a file is NOT an exception, it is an expected common error.... but java/delphi apps think it's some bizarre exception and give you an obnoxious blown up on line such and such message. Bug free code my butt.

Also delphi is full of memory leak problems due to not having objects that have local scope RAII and are not freed automatically for you. I can count hundreds if not thousands of delphi apps that have problems because of memory management of objects. Another issue is uninitialized local scope variables, like a record that wasn't zeroed out... whereas languages like Go Language zero out the object automatically to prevent bugs like that. Delphi is an unsafe language. Oberon and component pascal also tries to solve that issue and the memory leak of object issues.

Any time you don't call a win32 api function perfectly, you have buggy software too...which is easy to fsck up with. Bug free my butt.

Anonymous said...

Delphi is still around, but if you want a job, you had better learn Java (for Enterprise Development) or C# (in the smaller shops).
Python has some followers, but it is being used more for utility type code. It is powerful however.

I still use Delphi like Lazarus for small utilities, but I would NEVER write a major application with it.

Borland ruined Delphi years ago. Embarcadero killed it.

Anonymous said...

Check out the latest Tiobe Figures. Delphi up to 12th from 15th a year ago, now at 1.682% share.

Whats going on here?

Anonymous said...

Borland underestimate the mobility of the general market. A few things happened:

1. The desktop Database market crashed in the move from MS-DOS to Windows... Except, there was as survivor. Microsoft Access. Access ate into Delphi's target market because it was used as a RAD [App] Database Development Tool, and in many ways was more productive than Delphi (and certainly more economical). A lot of users that Delphi likely could have roped in and upgraded to "actual programmers," never made it because they stuck with Access. It also hurt sales of technology like Interbase since people were just using this Access Workgroup/Small Network solutions instead - as the cost was significantly cheaper.

When Access moved further towards being used as a front-end to C/S Databases, it hurt Delphi even more Access, laughably, has actually matured more gracefully than Delphi over the years - even though it isn't developed nearly as much these days by Microsoft.

2. They marketed Delphi as a Visual Basic Killer, but they failed to realize that Visual Basic's success was also party attributed to the way Microsoft bundles various products into suites. The same way they failed to compete with Excel (with Quattro Pro), Access (with Paradox) due to them being in the Microsoft Office Bundle, they also failed to compete with Visual Basic (Delphi), Visual C++ (C++Builder), and Visual FoxPro (Visual dBase) due to the Visual Studio "Bundle." Bundled should have build a universal IDE earlier and bundled their development products like Microsoft, at a competitive price (Delphi, C++Builder, JBuilder, Visual dBase).

They were always terrible at Web Development tools. They were beaten from the start there by Microsoft with InterDev (and ASP.NET was the killing blow there). That's why they then ran to PHP and other technologies (I think they even did some Ruby tools when it was FAD?). That IntraWeb mess they had (which I *think* was actually licensed from a 3rd party?) wasn't cute at all.

It is hard to sell even superior technology when the costs are non-trivial and what is already there works fine.

Borland's marketing did a disservice to the product. They marketed it way too aggressively as a Business (C/S, Database-oriented) developer tool and not enough as a general developer tool that could do all things for all people (which it could). It put Delphi out of sight and mind to general app developers, unless they were enterprising enough to look for it. Most just went with Visual Studio.

Additionally, they botched the interoperability between Delphi and C++Builder. Delphi > C++Builder = Fine. C++Builder < Delphi = Lol. That pretty much marginalized that product. But they should have kept a traditional C/C++ IDE in development, as well as ObjectWindows Library to compete with MFC (it was superior to MFC, but "catching up" is harder than staying ahead when you let a product stagnate - as they did with both their Compiler Toolchain as well as their C++ Application Framework).

Right now, Delphi is priced out of Borland's traditionally strong markets (Education, Independent Developers and Cash-Strapped Start-Ups, Contractors that aren't getting a fair amount of work related to it).

I don't think the language will die. I don't think Programming languages ever die unless the form factors on which they run go defunct). However, it's "practically dead" from the standpoint that it is not really worth the investment and doesn't really offer any advantages over other development tools - which are often superior to it.

Anonymous said...

Additionally, Visual Basic - by far - is easier to learn and even master than Object Pascal. And, even though it's just as (if not more) verbose as Delphi, the verbosity doesn't seem as wasteful. Visual Basic is certainly easier to read.

And I'm speaking of the post .NET Visual Basic, not the Win32 one from decades ago.