Why I Keep Choosing Delphi

Turbo PascalEarly on I learned Turbo Pascal, which was a huge step up from the Basic and Batch File programming I cut my teeth on. When Delphi came along I thought it was brilliant and fell in love immediately. I had no interest in learning other programming languages or tools. Delphi did it all, and that was great. I found myself plenty of work and enough to keep my interest.

C++BuilderI was naturally curious about other programming languages, but mostly from an academic point of view. I took a night school class in Assembly. I had a smattering of C & C++. Looked at some Ruby (back before it was hip), Java, JavaScript, etc. Eventually I found myself troubleshoot laser printers, which ran a combination of C/C++/COM all on a Linux platform for a few years.

C#From there I went back to full time Delphi programming, but the new company I was working for bought into the “there aren’t enough Delphi developers” myth and decided to move to C# & WinForms.We immediately were able to hire some more C# developers, but as we got to know them we found out they had a background in Delphi development, but they bought into the “there are no Delphi jobs” myth and rebranded themselves as C# developers. In the end the project took 4 times longer than it should have, despite having more developers. We really should have stuck with Delphi.

Ruby

I moved to a new job doing Delphi development full time, and then that company bought into the C# & Silverlight are the future. Since I had C# experience I started working on the new Silverlight front end. The backend and the desktop app remained in Delphi (with a little C++).

JavaScript

From there I ended up really branching out. I did a lot more work with C#, Xamarin, Java, JavaScript, Objective-C, and Oxygene (known as Delphi Prism at the time). There was still some Delphi mixed in too. I taught a few class and workshops on Android development. I learned to appreciate some of the benefits, strengths and qualities of each. I found things about all of them I liked (less so about Objective-C).

It was at this point I could see that most developer skills work across languages, tools and platform. There is value in knowing and using multiple languages. The basic tenants of each language influences the way you do things in other languages in a positive way helping you to look at problems in a different way. There are some projects, platforms and problems that are best suited to certain programming languages. For example, if you are working with the web, you need to know at least some JavaScript, HTML & CSS (the latter two not being programming languages), even if you are using some sort of abstraction layer.

Delphi HelmetThroughout all of this, I still found myself choosing to Delphi for personal projects. Occasionally I’d try personal projects in other tools and languages as a way to get to know them, but I still found Delphi to be a better solution for most general purpose projects. One of the defining characteristics of Delphi for why I keep coming back to it, is that it makes the common tasks really, really easy, while keeping the rest simple and possible.

So many “rapid prototyping” tools that make the common tasks as easy as Delphi does, makes anything beyond the “ideal” scenario hard or impossible. While other general purpose tools don’t do anything to optimize common scenarios, often times making these simple tasks more complicated than they need to be.

Now with multi-platform development Delphi is more important than ever. The approach Delphi and FireMonkey provides makes it quick and easy to do the most common tasks, while also keeping all the platform APIs and features within reach.

Delphi really invented the 3rd party component market as far as I am concerned. When it shipped all the source code for the VCL and included a robust OpenTools API and component model it made it even easier for others to build, share and reuse code. All the technology partners are a huge part of why I choose Delphi.

Delphi also has a huge commitment to the code we as developers develop. I attend a lot of general software developer groups, and it is common to hear developers complaining about how they just finished porting their code to one release only to have it all break again because a new release of their non-Delphi programming language or framework just came out. Sure, it isn’t perfect, and sometimes there are incompatibilities or breaking changes from version to version, but on comparison Delphi is so much better at this than any other language or platform out there that I have seen.

I started out choose Delphi because it was what I knew. Now I choose Delphi because it gets the job done. The fact it is faster for development is nice, but only part of the equation. I used to have a hat that said “Delphi does it all, especially Windows” and that is more true than ever today.

So why do you Choose Delphi? Share your reasons in the comments or on your blog #WhyIChooseDelphi

This entry was posted in FireMonkey, MVP, News, VCL. Bookmark the permalink.

8 Responses to Why I Keep Choosing Delphi

  1. As someone who is a “late to the party” Delphi developer, I must say that if you step away from all the BS speak in developers, you realize that Delphi provides any developer the greatest leverage across the largest number of platforms, without having to give away security or performance. Those of us who have been doing IT for a long time will appreciate that. I suspect the newcomers to our fold who know only about computers in a post Internet age, will not understand this. When I look at just how long and difficult it can be to develop a web app, with the myriad of different tools, standards, design vs. function, methodologies, etc. that one has to embrace, a RAD environment that brings most of that to the table and allows any developer to leverage their learning & knowledge like this is, to me, a brainless decision.

    I’ve watched the latest so called “guru” developers doing web based development in Javascript & PHP and its not very wise. Every year there are YouTube videos of “Latest Web Development Tools & Methods” and it just seems to be a bunch of kids chasing after something that will never exist, and in the process making things way too complex for the ROI required. Why not just stop for a minute, realize that if you can deliver quicker with a better solution for customers using something tried and proven, and you are doing a service to your customers. But I guess its naivety in youth. Sure, our industry is about young, hotshot programmers (at least it was when I was that age), but you have to have something to deliver that makes your approach better than those before you. I honestly don’t see it, and it just seems like following the “it just works!” paradigm of Delphi is the wisest move that anyone in the IT space can make.

    Sure, it might not give you access to the largest number of jobs on monster.com. But if you only really want a job to get paid, then you are probably selling your hopes and dreams down the river and you will be miserable in a cubicle lifestyle. Personally I prefer to create great new things with vision and Delphi is the best tool for someone like me. And I’m not someone who has developed in it since the Turbo Pascal days. I’m just making a simple observation as a developer and business person.

    My $0.02 worth (adjust for inflation).

    Myles

  2. Nuno Picado says:

    I actually started kind of like you! Learned BASIC at school, which caught my attention to programming, but didn’t had that ‘spark’. Then I was taught Turbo Pascal (good old TP5.5) and it opened a world of possibilities for my (even then) acute logic-based brain (kind of like Mr. Spock, while still loving chocolate).
    I invested in learning it beyond school teaching and pretty soon I was creating a set of personal projects which went into ‘production’ among several friends. I came to knew Delphi 5 through a colleague, and immediately loved it. Delphi 7 was next. Also learned C during my time in college, and I was pretty good at it if I may say so myself, but for personal projects, I only used ‘my’ Delphi.

    Life then took me out of it. For about 8 years I didn’t write a single line of code. I guess I forgot all about it.
    But back in 2010 I was working in IT, selling among other things POS systems. The software I was selling was great after installed – robust, reliable and just worked – but it was a nightmare to configure. It would take me a week to set it up for a typical client. Just bad!
    That’s when I remembered I could automatize those boring configurations if I just could Delphi back to the main thread of my life. I created a configuration tool that dropped that POS software configuration time from one week to a minute or two. Oh, it was hard getting back on the horse. I couldn’t remember almost anything. But the spark was still there.
    But by then, Delphi was a ‘dying language’, or so I read. “No one is using it”, “it’s full of bugs”, “Java is the way to go now” and things like that was all I was reading.

    So I tried to learn java. Several times…
    Every time I tried, I got frustrated, not because I could not do it, but because it took me forever to do whatever in comparison to what it took me in Delphi to do the same thing.
    “I’m not a professional developer, so, why bother” I thought… I kept it on ice.

    Then in 2012, Portugal created a bill saying all invoices must be communicated, for fiscal evasion detection purposes. My mom owns a small store, and she had two ways she could do it: insert every single invoice in the website the government created for that, or buy a POS system which could communicate the invoices automatically. But I sold those… I know how expensive they can be, with all the updates that are bound to come.
    That’s when I though: “I could do this… I could develop a POS software from scratch, so she doesn’t need to buy one!”
    And I did… In Delphi, of course. I started programming in Dec 29th 2012, and by Jan 1st 2013 invoices were being printed out of my system – no other language would allow that, but Delphi did.
    Of course, it was still a long way to go to be a full featured POS system.

    I was developing as I went, and every time something came up I couldn’t figure out how to do, Google was a friend. But sometimes, finding a solution would not mean understanding that solution.
    Some questions on Stack Overflow were met with that “how do you not know that” attitude that sometimes crawls in those waters, others were simply way beyond what my understanding could match. “Interfaces… what the hell is that”, when someone suggested me to use them if I wanted to create a plugin system.

    I was tired of not knowing… Tired of not being able to talk to them on the same terms, I was faced with a new decision:
    Really learn programming: I had to chose over learning from scratch other language (Java, C#, whatever) or go deep in Delphi.

    Of course, the decision was not that difficult. I had an head start with Delphi, so that had to be the way to go.

    So here I am… Choosing Delphi because it gets the job done, faster and simpler than any other I know.

  3. Phillip says:

    Same here. I got into Turbo Pascal because someone showed it to me and it ran much faster than Apple Pascal (remember this?). From then on it was Object Pascal for me. And then I got my hands into Delphi 2, then 3, etc.

    I briefly worked for a company that initially developed its flagship product using Delphi but moved it to C# simply because the local Borland office did not a competitive price when it tried to upgrade its Delphi licences so they moved to C# and Microsoft.

    I tried my hand with C# Winforms, XAML, etc. but like you I kept going back to Delphi for developing Windows applications. I supposed I got spoilt because Delphi made everything so easy and using another development platform just seemed so hard.

    Delphi all the way for me.

  4. iAnonGuy says:

    1. Way too expensive – especially if you want to get into C/S or Mobile Development. Those little “Packs” to add on that functionality are laughably expensive. You can literally just buy a Mac and use Visual Studio/C# for everything, for less money. The Starter Edition is a blatant rip-off – Java/C#/VB is the way for learners, as they have Pro-level Tooling available for free (even for commercial use). At those prices, they product is generally unworthy of consideration, unless you have tons of experience with Delphi and don’t want to switch to another development language/product.

    2. Delphi is harder to learn that Visual Basic, for Desktop Software Development, and Visual Basic is now on pretty much equal footing with it. This is different than 1995, when VB was really a prototyping tool for simple applications and Delphi was competing with C++ (where they could legitimately use the East of Use/RAD argument to great effect).

    3. VCL is starting to show its age, when compared to Qt, Cocoa, or WPF. It feels more like Windows Forms than any of those. Also, there are component companies like Syncfusion which have Community Licenses equivalent to Microsoft’s… Worth some consideration to some.

    4. Native Executables do not matter on Windows, which bundles the Framework with the OS, and automatically upgrades it as well. You only need to give them the executable and it will run. Worse scenario is the system offering to enable 3.5 if your app uses an older framework (no download is required). This argument is a relic from 15+ years ago.

  5. T Slappy says:

    I am using Delphi for 15 years and it is incredible tool (for Windows apps)! I started with Delphi 7 (amazing version, I used it for years) then little decay (XE…) and now it again rocks!

    What I like on Delphi: OpenTools API + possibility to extend/modify the IDE to match your needs (I created several experts, http://www.rad-installer.com is probably the most famous :).
    It is amazing how IDE can be extended, also there are tons of components, 3rd party packages and other stuff ready to use which boost your productivity.

    The most hated on Delphi: price + subscription model. The price is high for hobby developer and even for small companies.
    What makes me angry are the patches which are not available for users without subscription – this is big showstopper (especially when big issue appears like the Creators update bug).

    The future of Delphi is bright to me, now I want to start with Linux (Raspberry Pi) – which is another great new feature.

  6. Bruce McGee says:

    T Slappy: True, Delphi is not inexpensive. Especially if you’re using the Enterprise SKU, which I consider to be the minimum level for professional development. ymmv.

    However, for the hobby developer, Embarcadero (finally) offers their Starter edition for free.

    http://glooscapsoftware.blogspot.ca/2017/04/getting-started-with-delphi.html

  7. yogiyang007 says:

    Hello,

    For me Delphi is neither a donkey nor a horse. In trying to be all-in-one it has become a mule!

    I develop in a variety of tools. Delphi is best for building computational intensive apps. Like for example we have developed a very extensive image processing solution for photographers.

    But when it comes to building highly interactive UI based application it falls flat on its face. The amount of coding required on developers part is very big!

    For data oriented multi user business applications I prefer to use WinDev with MySQL or PostgreSQL.

    For mobile development I use to use WinDev Mobile but have recently switched to a very low price but powerful tool called B4A. It is just superb and mind blowlingly easy to learn and use. Trying to use Delphi here is a sure shot failure the moment you want to do something which is not supported out of the box like for example trying to access ARToolkit (https://artoolkit.org/) you will understand as to what I am trying to say.

    When it comes to web PHP is still the best and will remain the best development option in far and near future.

    So Delphi is not a tool that can do all things under the sun. One has to be practical and adopt tools that are best for the task on hand.

  8. After reading yogiyang007’s reply, I’m a bit confused. The writer’s statements are more to do with needing a lot of tools to get the job done, and cites a different toolset for Windows development, Mobile development and Web development. That’s three different technologies that you would have to be the master of to get work done.

    While I understand that no one tool is the perfect solution for everyone, it sounds to me that the writer isn’t years into development and maintenance of many solutions for customers, in which there is a need to amend and expand on systems that may have been written many years before, or works in a team with a lot of other developers that needs to leverage off the work of other team members.

    I completely understand and am interested in the technologies that he/she has posted, but it just seems like the benefits with being able to leverage off knowledge and mastery of one core technology (Delphi) are lost when you go chasing rainbows of the “perfect” technology solution for all different platforms. Maybe the use case for each customer need dictates that, and if so I understand and agree. But for many developers that are dealing with a lot of customers and a long history of customer application solutions, Delphi, IMHO, offers the best answer to being able to leverage one’s knowledge here.

    Technologies come and go. They are “fashionable” one day and out the next. You develop something that is obsolete as soon as it ships. In this world, you have to pick one thing and stick with it in order to become a master of it. I just see the chasing of rainbows of different tools here to be self-defeating at some point. Sure, its nice to learn new things. But your customers expect you to be around years in the future to support what has been developed, and I can’t see how you could continue to learn all these new languages, IDEs, etc. and still be able to support past creations without putting the customer at risk. Also I’m not sure how you could work with others in a team if they are all expected to learn many languages & IDEs because one team member wants to follow the fashion of a new technology.

    I guess each to their own, but I’m curious how the poster is dealing with these points? Do tell…

Leave a Reply