This is an edited transcript of a Dev Days of Summer 2024 webinar by Embarcadero MVP Dion Mai titled “Why You Should Leave Delphi 7 Once And For All”. The original webinar is available on the Embarcadero YouTube Channel.
Hello everyone, welcome to Delphi Dev Days of Summer, and in this session we will see why you should leave Delphi 7 once and for all. A little bit about myself. I’m Dion Mai, Director of Technology at AquaSoft, and I’m also an Embarcadero MVP and a Control and Automation Engineer. In this session we’ll see a speed comparison with version 5 and the features that maybe generate these differences.
About productivity, let me show this video that is available on YouTube. And in this short video, we see a comparison between two pitstops. So in this one we see a pit stop here that it’s already at two times the speed. Uh, they took this amount of time in the 1950s to do a pit stop. And at the end of this video, you will see the new version of the pit stop, from 2022, where it took only 1 or 1.9 seconds to be done.
Okay, so almost 72 years before, in the 1950s, the whole pit stop took 88 seconds, and in 2022, 1.9 seconds. I think that it’s almost 20 times faster, and of course in the 2022 pit stop the new world record was set, and it’s even faster than 1.9 seconds.
But the thing that I want to show you here is that it’s the same process, okay? The task that they did during the pit stop was basically the same. They change the tires, they refill the gas, and the same task took 50 times faster in the new version, right? So, if you are doing a pit stop like they did in the 50s, you probably will never win a race today. You agree, right? So if you want to win a race today, you must make your pit stop near to this mark.
Why do I make this comparison? Where does Delphi come in? Well, let’s think about it first. How many years do we have between the most recent Delphi versions? How many years your version, your current version of Delphi is, compared to the new ones? How more productive are the new versions compared to the old ones, or the old one that you may use? So let’s first draw a timeline, okay?
If we are talking about Delphi 7 and it’s not a shame to use Delphi 7, we know many companies that are still using Delphi 7, but many of those we help even to leave Delphi 7, but Delphi 7 is from 2002. So 22 years ago. Delphi 5, 1999. 25 years ago. Delphi 3, 27 years ago. And Delph Xe, this sometimes surprises many people. Delphi Xe is from 30 years ago. And even the Xe8 or Seattle, they are from 9 years ago. Okay, in your daily work, maybe that difference isn’t that large in our head, but think about it when we are talking about technology and think about nine years’ difference between two technologies.
What do you think about it? What can happen? And you see in that pit stop that in 72 years we have a process 50 times faster. And so, if you apply that to software development, what do you think, today the versions help you develop faster or slower? Yes, now you get the point.
But even so, let’s see. Some amazing technologies from nine years ago, just nine years ago we had Windows 7. We all love Windows 7 of course, but I think that if, after that time, you are still using Windows 7… and I loved Windows 7 when it was in its time. But now they seem so obsolete, Windows 7 does not support 64 bits, and the limit of RAM was 4 gigabytes, do you remember that?
Yes, and usually nine years ago people used hard drives. Hard drives. And it was the year of the Intel Core E3, okay? And also we had the iPhone 6. The new iPhone 6. Nine years ago. And that came with one gigabyte of RAM memory. But today, the iPhone comes with at least eight gigabytes of RAM memory.
Make this comparison with nine years ago. You will be able to use some of these technologies in your daily life. I think Windows 7 maybe, but many things will not work, like Chrome and other software that we may use. 4GB of RAM is so sad. We can’t even imagine using that today. The iPhone 6, I will not comment, also because it’s a very old version that does not receive updates.
But there are many companies that use Delphi from nine years ago. And again, it’s not a problem to use an old version like that. But again, consider that you are comparing, uh, nine years ago, a nine-year-old technology. A lot of things change. You must think about these changes, and you must understand what it costs.
About not using the most current version. Even though this is a session from Embarcadero, I’m from Microsoft, I’m not from Embarcadero, I’m not trying to sell you any new license, because what we see in many of our customers is that they have the most recent version, they already bought it, they just simply don’t use it.
Maybe your company is in that spot as well. So maybe you already bought the new version. You just simply don’t migrate, don’t choose to use the new one. Don’t take the time it takes to use the new version. And because of that I’m doing this session, because I see here in Brazil and other countries that we have many customers.
We see that many customers struggle to migrate to the new versions, and do not compare that they change other things related to technology, but they do not change the Delphi version. So they may complain that the Delphi version is not very good. Or that the development is not fast enough or does not have support for this or that new feature, but using a version from nine years ago or even the Delphi 7 from 22 years ago.
And 22 years ago, what we had back then I will not go there. 22 years ago I would not go there, but think about it. If you are using Delphi 7 analogous technology, it will be Windows 2000. Windows 2000 and 2024, I don’t know how to compare.
Delphi 7 is very good software, we can see because it’s still in use today by many companies, but think about it. It’s a 22 year old tool, and we don’t use anything from that technology. Even Notepad from Windows is not the same from 22 years ago. And we must choose carefully, we must consider that carefully.
Not only because of the time that has lapsed, the fewer features Delphi 7 has, but mostly because of the productivity. So let’s compare the productivity. I have here two recorded videos that I made. Let me put this on play. And I will put this on play as well. And I will shortly explain to you.
For this comparison, here’s what I did. I specify a simple form, a simple crude form. And I generate the same form in Delphi 7 and Delphi 11. The mission was to build the same form in these two technologies. So I record all the processes you can see here, and I have a YouTube link at the end of the session that you can watch there.
So the main objective was the two screens must look all the same at the end of the process, and I took the time. In this first recording Delphi 7 took me five minutes, and Delphi 11 took me four minutes to complete. As a first impression, maybe this sounds very little as a difference, right?
I will not go all the way, just go a little advanced here for you to see, and I will generate the form at the same rates. Of course, in the new version of Delphi I use Quick Edit, I use all the visual things that help us to elaborate and do faster things for the interface. And at the end of the new version, the result was this, and at the end of Delphi 7 version, the result was this one here.
So it’s almost the same screen. Of course, Delphi 11 has all the rounded interfaces and all the new components that Delphi 7 does not have, but at the end, the screens are very similar.
As a simple result, the new version of Delphi was only 25 percent faster than the Delphi 7. This data shocked me because this hides the real differences. And I did this session only because of this small difference here, because many of my customers that are still not leaving Delphi 7 argue with me that they don’t see any concrete advantage in doing this migration.
So they put it on an Excel sheet and say “if I consider the time to do the migration the project will not pay for itself. And mostly because they only see this 25 percent here. If you really build an interface in Delphi 7 and Delphi 11 or 12, you’ll see that even with the many new tools in the IDE of Delphi, in that particular case Delphi will be only 25 percent faster.
But what many people do not consider is “is that all?” And of course it is not. Why not? Because Delphi 7, like in this sample here, does not support JPG, does not support PNG. So, for every image that I use in Delphi 7, I must convert it from the base of images that I have already in PNG, I have to convert it to BMP.
So all the images that I use in the application must be previously converted to BMP. That process alone took me 1 minute and 28 seconds. And other things that Delphi 7 took me was that to put the images inside the component, I have to record other videos. Because it was too slow to put during the creation process of the screen.
So the first time I did not put the images for Delphi 7. And after finishing the screen, I go there and select all the images to put on the screen. Just the process of selecting and adding all the images in Delphi 7 took me another two minutes. So, if you add the first minute that the Delphi 7 took for the screen, and other these three minutes only for images, we have double the time spent on Delphi 7.
And this kind of thing happens a lot. Many projects do not consider all the extra time that the old versions, or even Delphi 7, took to elaborate something. They only consider the time that they are productive. And of course, sometimes writing a class will be much faster in the new version than the old one.
Because you are not comparing all the way. If you compare that for Delphi 7, consumer json, you must search online for an external component, install your Delphi, and then use that. If you take that time, every time that you must do something different, you will see that Delphi 7 is costing you a lot of money, a lot of money. Think about it.
If we set up, the extra time is the double that did the five 11 and again for an IT project. And we work with many projects and many other technologies as well. We know that the most expensive thing in an IT project is usually the developer. So thinking that, when you choose not to leave Delphi 7 you are always expanding at least two times the cost of your projects compared to using the new versions of Delphi. Have you put that on your Excel sheet? Consider that maybe your developers will take even less than half the time that they took to build that project in Delphi 7 if they are using the new versions of Delphi. Very seriously.
And again, you can see that all the steps that I go through here are recorded. You can do the steps test as well, but consider that when you are choosing not to leave the old versions. And remember, it’s not only for images; all the things that Delphi 7 does not have natively will impact you very strongly.
And it will cost you a lot of time, and a lot of time for many of your developers, because all of them must do their steps, and all of them must always repeat these steps again and again because Delphi 7 does not have the right support for the new features. Why is this important?
We’re all still talking only about the interface of the form, alright? My comparison, the double time for Delphi 7 is only in the visual aspect of the form. And it’s common to overlook the large amount of time that Delphi 7 costs. We must consider that because our projects can be even cheaper if we are using the new version of Delphi. Another way to look at it is, it’s more expensive to use the old Delphi than the new version of Delphi. It’s more expensive to use the old version. Think about it. When you choose to use the old version, you are choosing to pay more in developer time. And that’s a very strong decision to make.
What else to consider? This is not a scientific paper, right? I only did the test inside my environment. Of course, some forms are even impossible to build in Delphi 7, so you will not be able to do all these steps because many components, visual components, Delphi 7 does not have, and you will have to look outside of Delphi to get those components, right?
Uh, we don’t run this test in multiple developer core forms, so I only did myself this test. But you get the idea, right? You can also do your own test if you want to make sure about this difference. But you can watch all the videos, you will see that this is a very simple thing to do, a very simple way to test.
But again, the most important thing we want to bring to you is to consider all the time, the extra time that Delphi 7 costs you, that the old versions cost you, because they do not have support for a lot of new things. And I will go through some of these new features that we have. When you choose to use the old version, you are automatically giving up all the new features the new version has.
And of course, we did not use any inherited table or form or visual framework that maybe would change the time that I took to build this simple CRUD. Of course, it will change if I inherit a table or form. But also, even if I have a visual framework that allows me to create the CRUDs even faster, I still will need a component to access an API, a component to parse JSON, a component to represent a generic class. Many of these features Delphi 7 simply does not have.
Let’s go for it. What tools are we using from Delphi? In this case I used 11, it can be 12, can be all the new versions, of course they all have even newer features that are not listed here, but let’s go for Delphi 11.
We use the Search Component palette, a simple search command that is very productive, helps a lot to find the component that you want to put on the screen faster.
We search (Ctrl + “.”) that searches the entirety of the IDE. In the new versions of Delphi it is very fast and very simple to use. We use Quick Edit a lot. Quick Edit is a new feature from Delphi and I use it a lot every day. Quick DataSource to simplify linking the components to the data source. We use Bind Visually to use some components that are not from DB sources.
We also use the Add Component and Add Control shortcuts in the right button click from the IDE. And we also use the Search and Filter from Object Inspector, another feature that the old version of Delphi does not have, and improve productivity a lot. Again, remember that for create a new form, many of the shortcuts that we use from Delphi 7 was the same as Delphi 11, but when the formula already exists and you must do other kind of interaction with the form, these tools will be even more productive than the old versions of Delphi or Delphi 7.
How about the codes? It also has changed, and some of the features that we use and use a lot to improve our productivity are Sync Edit. Right? So, SyncEdit, we can edit a block of source code and change all the occurrences of that variable at once. And you can use Refactoring to rename methods, variables, as we choose to do.
We can use Code Completion, which is very improved in the new versions of Delphi. Thank you. Try to use fill by name, you know, Delphi 7, I still use it. I know that in many cases, fill by name does not complete. Hints are very helpful. So you know, what the parameters from the function call are or, the methods call that you want to to pass and you do not remember. And they work very well in the new versions of Delphi.
Navigators are very improved, and even Delphi 7 does not have all the directions from navigators, like the Ctrl Up and Ctrl Down to go through the class and the class methods. Structural highlighting is an amazing feature from the new versions, and Code Folding, when you have a large method or a very large class, you can fold it to be easier to go all the way up and down from the source code.
A lot of language features, these language features you will not be able to do at any cost in Delphi 7 because it will require you to change the compiler. Of course, many of the shortcuts you can use external tools to emulate, but even so they are very slow in Delphi 7 and usually do not follow the Embarcadero standard for all the shortcuts, and so on.
But these features here, you can only use in the new versions of Delphi. You cannot use generics in the old versions and generics is amazing new feature, it saves a lot of time, a lot of coding time. Anonymous methods we use every day. What is life without anonymous methods nowadays? I think there is no life without it.
We have new compiler directives. We have inline variables. Inline variables are another amazing tool. Once you start to use it, you simply cannot stop. Class optimizers. We have new features for Records that do not exist in previous versions. We have class resources like var, methods, properties, a lot of things for class. Again, once you start using this, you cannot see the world in the same colors without it.
We also have classes for the base types. So you can use int to string from integer variable and to string method. You do not need to call the int to string method by itself. Nope, it’s not the end yet. We have native JSON serialization, newer RTTI, we have Attributes, we have Namespaces. Namespaces made me cry when I learned about it because it was so much simpler to organize our source code in large programs, in large projects.
We can now put namespaces and classify every source code according to its own business rule or format or anything that we prefer to classify it. We have new native classes. I will talk more about this later, and we have full Unicode inside of Delphi, so we do not have to be concerned about using other kinds of languages, or other kinds of characters that do not have support.
And wait, there is even more! We have new shortcuts, IDs, faster and more stable commands for Internet Explorer and version controls. We have configurations for many project options that we had to hardcode into our project file before. Now we have a configuration inside of the project file.
We have the colors from the IDE, we have the zoom inside of the IDE to choose our font size. And we also have simplified IDE extensions generated. So it is simpler for us to implement our own extensions for the IDE.
A lot of native classes that we don’t need. New source code from GitHub, or even a third party component. Even paid sometimes that you have to use in old versions. And the new version, these all are all native, so Zip, Hash, Encode, JSON, HTTPS, Communication, Cloud, Communication, Files, Dates, Threads, Tasks, all these are native classes, native wrappers from Delphi that we use to save a lot of time, and even a lot of money if you consider that maybe you are paying for some of these features, for some of these classes that now are included in Delphi versions.
I think you get the point, right? It is already dead, and seriously, in so many aspects the new Delphi is so ahead of the old versions that it’s almost unfair to compare them. Of course, if you do not use these resources that I told you here, maybe today you’ll not miss them. But once you start to use them, you will see that it’s amazing. There are new amazing features, and you will not be able to go back and use the old versions of the file.
And if you are like me, and love old versions of Delphi. I started working in Delphi 7. Delphi 7 has a special place in my heart, but be sure they must exist only in the place where they belong, in the past, in our memory, in our thoughts, not you know, not in our working machine, in our environment, not in our working projects. So, consider that. Consider leaving these old versions in the past, and use the new versions. And, don’t go for… that Delphi is dying. The old versions, of course, are dying, but the new versions have so many features, and are so up to date, in the matter of technology, that it’s simply amazing to use.
Okay, but why now? Why in 2024, do you spend time talking about Delphi 7? You have nothing better to say? Well, what got me started to do this session is of course seeing many companies still using Delphi 7, and in many cases not knowing why they should leave it behind. And we have to prove to them that they must leave the old version.
To quote Bob Dylan, the times they are changing. So the times are changing for us now. And the most impactful thing that made me do this session is this. I wrote a prompt with exactly the same. the same instructions that generate that screen that I made in Delphi 11. In ChatGPT, it took only 43 seconds to elaborate the same screen, almost the same screen.
Of course, the time for generating the prompt is not here, but once the prompt is finished, it is simply a matter of elaborating more. But I want to think with you. LLMs will keep impacting development even more, so there is no going back. There is no other way to say that, I’m sorry.
It’s like Google. I do not know how to code without Google today. If I have a problem, I search on Google and LLMs will be the same. In the future, maybe we will not know how to code without an LLM. They are here to stay and every day impacts us even more. ChatGPT took only one fourth of the time to generate this similar form, but think about it, it’s four times faster than the form that I generate in the IDE.
Of course, the IDE is an amazing tool, it cannot be replaced by ChatGPT at all. Try to change only one color in the prompt, you will see. It will make you cry. In the IDE is a two second operation. So, I don’t think that ChatGPT will replace the IDE. It’s not the case. But for productivity, of course, that will impact us.
Most LLMs do not even generate source code compatible with Delphi 7, because although they know Delphi 7 exists, what I see in many projects is that when we ask how to do something in Delphi, they usually answer with the most recent version of Delphi because it’s the simplest for the LLMs search on the web.
My point is that even for LLMs, Delphi 7 is outdated. Even though you are taking at least two times longer to develop a feature in Delphi 7 that you can develop in Delphi 11, consider a future with the LLMs even more present in our development day. Have you considered that?
So, LLMs are, of course, a very new thing we are talking about. Just two or three years ago they simply did not count as a development tool, but today it’s different, it’s a common thing. And consider that if you are staying in Delphi 7, that number that I showed you, two times faster in Delphi 11, will be even higher.
Maybe in the near future using Delphi 7 can be three, four, five times slower or more expensive than using the new version of Delphi. Maybe now is the time for the change, because in the future maybe it will simply not make sense for you to compete anymore. Even with other development tools or other projects.
In conclusion, we all can still develop in Delphi 7 and other old versions, but at what cost?
Watch The Complete Webinar on the Embarcadero YouTube Channel here
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition