7

Would you consider Delphi 2010 / XE for a the development of a new windows desktop project or do you consider it dead with the current state of .Net & Microsoft products (WPF)?

If you would / wouldn't use it please explain why.

Edit

I agree the initial question is a little argumentative. However, this is a serious question. I am based in Australia and I haven't seen many developer CVs that contain recent delphi experience so when I say "dead" I am only questioning whether it is a bad choice because there is a shrinking pool of people working with it.

Leigh S
  • 1,837
  • 11
  • 17
  • 2
    subjective and argumentive, this depends on what you want develop and many other things. – Svisstack Nov 18 '10 at 01:40
  • 2
    Australia has a quite active Delphi User Group: http://www.adug.org.au/ that is a good place to search for resources. – Jeroen Wiert Pluimers Nov 18 '10 at 08:47
  • 5
    Why do people continue to think Delphi is dead? It's far from dead. It's basically as dead as desktop applications, especially WIN32 desktop applications. – Wim ten Brink Nov 18 '10 at 11:27
  • Delphi developers are harder to find, but it is relative easy to school them. If someone already know VB, then learning Delphi can be done in just 1-2 weeks – dns Sep 19 '13 at 08:55
  • This question appears to be off-topic because it is about programming in general and is better suited for http://programmers.stackexchange.com/ – Lukas Knuth Sep 19 '13 at 09:22

6 Answers6

14

I would choose the tool your team is used to, if you can choose both however I would choose Delphi for a Win client...

A part the fact there are more .Net developers than Delphi ones worldwide still (as for official numbers there should be 1.5M ++ Delphi ones however - which is quite a high number), there are other facts why Delphi might be preferred on client side (Desktop apps etc...)...

  • Native code / more speed - NO JIT (very slow startup time for complex or very external assemblies dependant programs)...
  • More power with semi-manual memory management (which in MANY cases IS a plus, where on .Net side GC does not allow you enough freedom or flexibility, apart being non-deterministic in lot of situations...)
  • NO (or LESS) external dependencies (single .EXE etc...)
  • Easier DEPLOY (REAL xcopy) - for .Net you really depend on 50/70MB++ RTlibraries and security related issues could bind you easily... - -
  • Delphi binds its RTLibraries (very light ones) directly to WinAPI (which essentially does .Net as well but on one more/additional-managed layer)
  • Faster programs/apps execution with deterministic objects/memory management...
  • On specifically language (not library) side (apart lynx and some minor differencies) all you can do with C# you can do with Delphi with easier to read and better organized code (standard OOP language functionalities + generics, anonymous functions, reach RTTI/Reflection, great IDE, rich libraries, with forecoming support for 64-bit, multiplatform and other sugars)...
  • Delphi is much like C++ on 'proteins' (meaning you can do everything you can with C++, with the same resulting code-speed, but with apps done in less time due to a solid vcl/rtl framework very similar to .Net one (the fact is they have the same father practically with very similar language/object-framework design), ...
  • Long and strong compatibility background...

Said that, and working with C# as well, I like both, on different sides though,... Is should be said also that they are tools made for different reasons and targets.

Delphi was born by programmers and made for programmers (in 1995/6) and .Net/C# was born by MS 'marketing' on one side and Delphi father and great MS team on other side in order to replace VB6, kill Java, replace COM, etc... and at the end give some fresh air to stagnant (at that time) MS developer portfolio at that time (around year 2000++) ...

Result is that Delphi slowly but steadily goes on, and .Net being very 'histerycal' meaning that it got updates very often (and some very cool ones), some portions get obsolete very often, some directions change as well, providing very unstable feeling to lot of people etc...

Today you have .Net/C# which gives you things you were able to do with Delphi more then 10 years ago, but with slower (code) and still worse deployment (dll hell again, right?)...

Cheers, B.

  • Does delpi have multicore support built in? In my experience the two best things about .Net right now is LINQ, PLINQ and Parallel.Net with Reactive Extensions coming strong. I agree though that Delphi has a solid foundation and it's great that it produces binary code directly. Then again, I've yet to have any real problems with the GC or JIT performance (and you can pre-JIT if that's an issue). Also it's pretty hard nowadays to avoid having the .Net runtime installed with Windows so the dependency often isnt an issue – Homde Nov 18 '10 at 11:14
  • 2
    Delphi is multi-thread since first version. For dedicated frameworks, you've for example the very strong OmniThreadLibrary available at http://otl.17slon.com – Arnaud Bouchez Nov 18 '10 at 12:14
  • 2
    About the DotNet runtime, you've the 2.0 mostly installed. But WPF will need the latest available (3.5 or even newer)... which are not so widely deployed, and are an huge download and time to install. – Arnaud Bouchez Nov 18 '10 at 12:15
13

I produce commercial applications with Delphi. It does everything that I need and more.

Kenneth Cochran
  • 11,954
  • 3
  • 52
  • 117
Darian Miller
  • 7,808
  • 3
  • 43
  • 62
  • 1
    Do you have issues recruiting to work on your applications? – Leigh S Nov 18 '10 at 04:07
  • 2
    True, that is one downside. There seems to be less Delphi developers out there, but then again I'd take one experienced Delphi guy over 3 .Net noobs so that brings them a bit closer in this regard. – Darian Miller Nov 18 '10 at 05:46
  • 5
    I have experience with two devs. who came from java. The learning time was very fast and the base of dev is very similar in both languages. They are now working in a complex app. with datasnap and thread pooling (three months later) Don't look for good delphi developers. Look simply for good developers. – Francis Lee Nov 18 '10 at 11:31
  • +1 for Francis: look for good developers. I know good developers with DotNet or Java, bad developers using Delphi... Some Delphi applications around are very badly designed: it's not Delphi's fault, but poor spaghetti/RAD developer result monster. – Arnaud Bouchez Nov 18 '10 at 12:18
7

Delphi's definitely not dead, and in fact it's been making quite a resurgence in the last few years, ever since it got picked up by a company that actually cares about making it a good product. And with WPF's future so uncertain and up in the air lately, I wouldn't try to build anything in it for fear of having it discontinued by Microsoft the way classic VB was.

So I'd say it's worth considering Delphi very seriously for a new project. It's not as popular as C#, but it's a better development system with a mature set of libraries and a strong, supportive community, and if other people aren't using it, that just means that you'll have a competitive advantage.

Mason Wheeler
  • 82,511
  • 50
  • 270
  • 477
  • 2
    WPF's future is far from 'uncertain'. Microsoft is pushing no other alternative (consider that SL is just a WPF derivative) and 'features' in WinForms have been frozen for several years now. Classic VB was "discontinued" in *favor of* the .NET version (which can use WPF...) -- granted there are a number of things the .NET version can't replace VB6 in, esp. with COM+, but I digress... –  Nov 18 '10 at 01:25
  • WPF's future isn't uncertain, if nothing else because of it's tight coupling to Silverlight which now is very important for WP7 developement. I must say though that the amount of professional WPF applications reaching mainstream has been pretty underwhelming – Homde Nov 18 '10 at 03:24
  • 2
    @MattiasK: Yeah, that's actually a big part of the reason why I say it's uncertain. It's sure looking like WP7 is shaping up to be a major flop, and if it dies, Silverlight and WP7 are basically dead along with it. – Mason Wheeler Nov 18 '10 at 03:28
  • If Silverlight, WPF and WP7 dies then you needn't worry because then there wouldn't be much of a Microsoft left to develop for :) Seriously though, Microsoft needs WPF to stay competitive, it's the only development framework that competes with modern os'es like OSX with hardware accelerated graphics and animation. The future is in multicore and rich graphic applications so much is for certain. – Homde Nov 18 '10 at 04:03
  • 1
    Silverlight, WPF and WP7 aren't determining factors for Microsoft, OSes, Office and Server software are still their bread and butter. SL+WPF+WP7 could disappear at the same time, and apart from developers and techies, few would notice, much less even know what actually disappeared. – Eric Grange Nov 18 '10 at 09:30
  • Microsoft is also downplaying silverlight in favour of html5 in some recent publications. – Marco van de Voort Nov 18 '10 at 09:58
4

I would rethink the WPF choice because it is "dead"?
http://www.itwriting.com/blog/3385-lessons-from-evernotes-flight-from-net.html

Silverlight dead too?
http://www.zdnet.com/blog/microsoft/microsoft-our-strategy-with-silverlight-has-shifted/7834 http://blog.marcocantu.com/blog/microsoft_silverlight.html

But true, Delphi developers are harder to find, but it is relative easy to school them (we have a VB+C# developer here "upgraded" to Delphi ;-) )

André
  • 8,920
  • 1
  • 24
  • 24
2

I am a programmer from the Turbo Pascal/C days so I've been a Borland fan since way before RAD came of age. I purchased Delphi 1.0 (16 bit!) as soon as it came out (back when Windows 95 was launched) and I remember making sweet love to it. Delphi kept improving over the years and I kept buying each new version. I loved the language, I loved the environment and I was a staunch supporter and kept milking the Delphi contracts over the years as I flew from job to job all over the U.S. Then Anders Heijlsberg defected to Microsoft and .NET and C# was released; it was clear that the writing was on the wall. I made the switch and as the years went by I remember Delphi fondly as I would an old teddy bear but I would never go back. I can't say I'm surprised by the attitude adopted by Delphi diehards since I can understand loving such an awesome product, but sometimes love can blind you to reality and that is clearly the case here. Of course you can still develop applications in Delphi, but its environment and toolset have long been surpassed (primarily by Microsoft's superior Visual Studio/.NET) and is very much a museum piece in this day and age that is desperately trying to stay relavent by tacking on bandaid after bandaid with each new release. Make the switch guys... realize that what you're experiencing is the "fanboy" phenomenon and that it's preventing you from moving forward. Learn something new, try Visual Studio/.NET/C# and get a short-term job in it. If after 6 months you decide it's the best thing since peanut butter and jelly then you've just improved your coding environment and career marketability and salary potential in one fell swoop. If not then go back to Delphi and good luck to you; no harm done right?

In short, Delphi is indeed a dead language in the same vein that Basic and Modula-2 are dead languages; there are still people developing in them but they are no longer relavent in the grand scheme of things. It just so happens that Delphi is more modern than most other dead languages and therefore still enjoys a bit more support, but that support is eroding with each passing day (and has been for many years) while more modern languages (ie. Java, C#) are growing and evolving.

Anthony
  • 604
  • 6
  • 18
  • 2
    You make .NET sound so sweet, if it only were true! 11 years since it's first launch and I can still spot a Managed application by it's slow start time and it's slow runtime performance. 11 years of hardware and software upgrades are apparently not enough. Microsoft Office is still not a managed application: if they don't switch, why should I? I absolutely **love** the concept of WPF and **XAML** but guess what, the Webs are full of talk about WPF being dead! Visual Studio 2012, on my computer, feels slow. And trust me, it's a fast computer. – Cosmin Prund Jan 23 '13 at 20:35
  • 1
    Just yesterday I was visiting guys from my old job. They are reselling this new shiny very big program written in .NET. This program is so damn slow that opening an invoice on reasonalby fast computer takes 15 seconds...**one** invoice. The company which made this application was a Microsoft's technology partner. To make things funnier this application is installed with InstallAware (written in Delphi). I am in touch with Visual Studio for few years now and I am not impressed at all. The main question is now 2+ years old, how was WPF developed during that time? – Wodzu Jan 24 '13 at 07:00
  • And just a year ago I left a job where I completed migrating a major cludgy slow Delphi trading application to a vastly more flexible and faster C# .Net app, but what does that prove? There are bad programmers in every language; keep this discussion honest by assuming "all things being equal" and not using examples that have no bearing on the toolset used and is instead a case of bad design/implementation by bad programmers. I've seen my fair share of crap code on both sides and I never blame the language. – Anthony Jan 29 '13 at 17:41
  • @CosminPrund : All I'm saying is give it a try. You mention being able to tell a managed app by it's slow start time and runtime performance; you must be very gifted! Even I can't do that! Delphi and .NET have been my bread and butter for many years (17 years!) and I can't tell the difference between a crappy Delphi application or a crappy .NET application by simply running them unless there's obvious Delphi/.NET UI elements that give it away. Remember, crap is crap no matter what language! As for WPF/XAML, who cares? This is just one flavor, use whatever comes next and you still have C#/.NET! – Anthony Jan 29 '13 at 17:52
  • 1
    The "cold start" of a .NET application is a very real issue, I'm not gifted at all. I can see the .net advantage, it's a grate concept. I like the c# language. I *really* like WPF. But the "edge" they have over Delphi is minor, and the speed difference is real. And what's that talk about *"this is just one flavor, use whatever comes next"*? That's CRAZY! Are you asking me to re-write my entire application every few years for the fun of it? As far as I'm concerned the only advantage of the .net platform is the abundance of available developers, but they're mostly trendy, not good programmers. – Cosmin Prund Jan 29 '13 at 18:05
  • @CosminPrund But when the day comes and WPF dies, why on earth would you re-write the app? Delphi died a long time ago and yet people still use it, so why not simply keep using WPF in the same manner? Remember, *business* dictates when to re-write an app, not toolsets. As for speed difference, .NET wins in most categories all things being equal so I don't know why people keep bringing up speed. Cold-start : in *all* of the different apps I've worked on from micro-chip fabrication to paper publishing to trading apps to health monitoring, this has *never* been an issue, but if it were use NGEN. – Anthony Jan 29 '13 at 18:21
  • @CosminPrund Put simply, the one area where Delphi *might* have an advantage over .NET is cold-start times, but even that can be mitigated or eliminated completely. Also, cold-start is measure in milliseconds and for 99% of apps is not an issue. Also, that xxx ms extra start-up time incurred by the .NET runtime buys you many benefits (which you can read up on elsewhere) that Delphi simply can't provide. Also you keep bringing up WPF : WPF is just a UI flavor, it's not C#/.NET. WPF will die as will anything else, when the time comes you use something else but you will *still* be using C#/.NET. – Anthony Jan 29 '13 at 18:30
  • @Anthony, I bring up WPF because it's in the OP's question and it's supposed to be the "current" UI framework for the Desktop. WinForms is supposed to be deprecated in favor of WPF, but I'm pretty sure there are more projects on WinForms then there are on WPF. The scariest thing about WPF is this: googlin for "list of WPF applications", all I can find is some eye candy (where WPF shines) like Skype, news readers and the like. The only serious application that I know of is Visual Studio. – Cosmin Prund Jan 29 '13 at 18:41
  • @CosminPrund Though the OP does in fact use the word WPF, his question is really in regards to which underlying platform he should choose - the latest Delphi vs the latest .NET. Not knowing better he equated WPF with being "the latest" .NET so I would disregard his use of the word WPF. That being said, WPF apps are all the rage and is all I've been doing since it came out but not one of my clients has ever advertised their app as being a WPF app which may explain your search results. Makes sense when I think about it... why would a client care if it's written in C# or VB or uses WPF? :D – Anthony Jan 29 '13 at 19:00
  • 1
    It makes sense for clients not to care; But us geeks we care, and we specifically look for apps that might be using a certain technology. I am not alone in looking for those WPF apps. There are two question right here on SO, google finds some blog posts. We find those things, but we don't find the WPF applications, and that's weird. I wouldn't want to invest into a new VB6, and the only guarantee this is not going that way is the presence of WPF applications on the market. Microsoft might do something that annoys programmers, but will not do something that brakes compatibility for consumers. – Cosmin Prund Jan 29 '13 at 19:09
  • @CosminPrund : Real-world apps hardly ever advertise what language or UI framework they were built on and most aren't ever available for public use so you will definitely never hear of them; that doesn't mean they don't exist. For example, in the past few years I've worked at 2 banks (Wells Fargo and Credit Suisse) and 1 medical solutions provider (Philips) and they have major WPF applications running all over the place but you'll never see them. An infinitely better gauge for what you're looking for is to simply look at demand in the jobs section or articles on market penetration/retention. – Anthony Jan 29 '13 at 21:07
  • 1
    I have been given a bit of work to modify a delphi product I wrote and which has been in production for 10 years. I have not coded in Delphi for about 7 years and have been a hard-core c# coder. This morning I installed the trial version of Delphi XE4, build and ran the application. What a revelation. After waiting minutes to build .net apps, and slow startups, working in Delphi was an absolute dream. I shall be building my own applications for windows, Mac, IOS and hopefull android on this platfrom in my own company. My clients may choose .net and pay me for that, but I'll use Delphi. – Kell May 22 '13 at 10:34
2

Depends on what kind of application you're going to build and other factors such as experience of you and your team in the various technologies. For traditional applications with lots of ordinary dialogs, listboxes etc where customization, presentation and animation isn't that important I still think that Windows Forms has an edge against WPF as its a more mature technology with more experienced programmers and more code examples. WPF doesn't have that many advantages for those kind of applications yet since it's strength IMO is graphic acceleration and presentation.

Delphi is great, i was once a delphi programmer and found it to be way ahead of Visual Studio/Visual Basic at it's time. Nowadays though it feels like it's kinda on it's last legs and .Net has way more developers than than Delphi. Also access to the whole .Net framework with all it's classes and methods is invaluable

Homde
  • 4,246
  • 4
  • 34
  • 50
  • From what I see from .NET using friends, for apps Winforms is actually used, not WPF. – Marco van de Voort Nov 18 '10 at 09:59
  • Yeah, WPF is still pretty uncommon in my experience although I sometimes see developers that managed to convince their boss to build an admin tool in WPF, probably mostly because they wanted to learn something new :) – Homde Nov 18 '10 at 11:11
  • WPF is heavy. Real WPF applications don't scale so well, and burn your CPU and memory. I found out XAML to be verbose for rich applications (no just demo forms). You can get 3D User Interface, fast and using much less PC resources, with Delphi using http://www.ksdev.com/dxscene – Arnaud Bouchez Nov 18 '10 at 12:22