25 years of excellence
[SHOWTOGROUPS=4,20]
Jon Lennart Aasenden
13/2/2020
Trying to sum up what a programming language and software authoring system like Delphi represents, spanning 25 years no less, is almost insurmountable. Where should I begin? Groundbreaking object orientation? Event driven architecture? A thriving component market? Or perhaps a technological wingspan that stretches from x86 assembly-language to high-performance ARM mobile applications?
Instead of blindly listing technological feats, I want to write about Delphi in a more personal manner. It’s a birthday after all, and birthdays are a time for speeches and reflections; of looking back to where it all began while firmly gazing into the future.
In short, I can only try to convey how valuable Delphi has been, and continue to be, for my life as a software developer. And I am confident that I share that experience with the millions of Delphi developers out there.
As I write this my thoughts go to the many students that are now discovering Delphi for the first time. I hope that my post can provide some food for thought as you begin your journey, and that you will come to love Delphi as much as I do.
Where it all began
In the early 1990s the computer market was a very different place compared with today. In Scandinavia and northern Europe, companies like Commodore and IBM still held a substantial stake in the home desktop market. But within just 3 short years, IBM’s OS/2 would be ousted in favour of Microsoft Windows, and the once mighty giant Commodore would meet its inevitable bitter end; both unable or unwilling to adapt to the new business model that was emerging. That same turbulent year of 1993,
Microsoft and IBM officially severed bonds, and IBM pivoted back to mainframes and their PPC architecture. A chipset design that would end up powering Macintosh computers throughout that decade and beyond..
Above: Cutout from Dr.Dobb's Journal first look at Delphi (from Web Archives).
The reason I mention these companies is to give you some context to how chaotic the market was at that time. For young students like myself it was almost impossible to know what technology to invest in. I started my coding career using a Turbo Pascal clone for the Commodore Amiga, something called High-Speed Pascal, published by UK based company Hi-Soft. At the time I was in the first year of my engineering education, and at school we mainly used Turbo Pascal and DBase. Sadly, PCs at the time were very expensive, and instead of paying $4000 for a PC, I bought a Commodore Amiga for $700. I think the Pascal compiler cost something like $99. So for a young student struggling to make ends meet, it was a substantial saving.
In 1994 the compiler I was using could no longer cope, and it was clear that Commodore was never going to recover. Thankfully, I bit the bullet and bought my first PC with a real copy of Turbo Pascal. And I am glad I did, because this prepared me for the release of Delphi the following year.
I'm not exaggerating when I say that Delphi was, and continues to be, a product that changed my life. Since its inception, the impact on the software development industry as a whole has been tremendous. Delphi, and before that Turbo Pascal, pioneered many of the technologies and techniques developers today take for granted, none more so than the Rapid Application Development (RAD) cycle itself. Before Delphi, ROI (return on investment) and TTM (time to market) were buzzwords with only marginal differences when it came to languages.
But when Delphi hit the scene, the time and money involved became very tangible, because the differences were disruptive (for its competitors) to say the least.
So out of the chaos and technological “wild west” that signified the early 90s, Delphi emerged as the clear winner. Deservedly so.
Leaps and jumps
One of the things that has always fascinated me, is the concept of evolution with regards to thought and ideas (a branch of teleonomy); something I often mention in my articles.
We like to think that evolution is a slow, gradual and linear process. But when it comes to ideas, and especially technology - my experience is that it moves forward in rapid, unexpected leaps.
Incubation times may vary, but eventually something amalgams and becomes the path forward.
Above: "The DNA of Delphi" outlining the key benefits of using Delphi for software production
When Delphi hit the market in 1995 it was so far ahead of the competition that people struggled to understand it. The notion of event-driven programming had existed for quite some time (Visual Basic for example), so Delphi didn’t incubate in a vacuum. There were C/C++ compilers that had evolved similar language features that Delphi brought to the masses, but they all lacked the simplicity and elegance of Delphi.
On the Commodore machines that I grew up with you had plenty of software that enabled drag & drop form design, and to some extent a similar approach to programming (albeit in a more primitive state). But what was unique with Delph is that no company had ever merged these ideas into a coherent whole where everything added up. The world had never seen anything like the VCL framework, or an IDE that adapted and integrated so closely with your code. As you wrote it no-less.
And what brought all of these elements together, was an extremely powerful compiler that was lightyears ahead of everyone else. The C/C++ compilers of the day (from a Pascal developer’s point of view) were absolutely powerful, but visual design was largely done separately (the exception being Borland C/C++ which had frameworks like OWL, so UI’s could be done by code). So in competing products, like Wacom (1984 ~ 2010) or Storm C++ (1995 ~ 2016), you would make the UI in one program, then import these designs into your C/C++ project as a resource file; not unlike Apple .nib files to this day. Once that was done you could finally build your program; a process that could easily take five minutes or five hours depending on the size of your codebase. Even a minor UI change would result in minutes worth of code generation and linking.
Delphi’s aggressive compiler and smart linker reduced this to seconds. And it was for over a decade the fastest compiler in the world. It was so fast, that most developers would use the compile function as a quick and dirty syntax check. An unthinkable task with other languages.
Object Orientation
The field that Delphi without a doubt took to the next level, was object oriented programming in the true sense of the phrase. Up until that point object orientation for Pascal had been somewhat half-hearted; Turbo Pascal 5.5 being the leading toolkit for DOS (marketed as “Turbo Pascal with objects”) where objects really was little more than record types with procedures. Unless you were fluent in C++ you had to venture to languages like Modula II or Smalltalk to find object models that resembled what Delphi would bring to the table. But they both lacked the RAD (rapid application development) layer that Delphi excelled at.
With Delphi, the entire spectrum of technology that was sown and incubated through the 80s and early 90s, leaped forward into a system where OOP was a fundamental aspect of the language itself, rather than tacked on as a bonus feature. Since Delphi programs operated with a full VMT (virtual method table), developers could enjoy clean inheritance, virtual and abstract methods and reliable data encapsulation - all of it from an easy to learn, easy to use and highly competitive language.
The proverbial frosting on this already impressive cake, was Delphi’s dedication to visual programming. That you could drop a button on a form, double-click on it, and fill out the event handler ad-hoc without leaving the IDE or switching a tab. This had already been done before, but Delphi was a real native compiler, not a bytecode or managed system where the IDE could operate with its own rules (at the expense of performance). It was the first time you could approach C/C++ level performance and depth - from the ease and elegance of Object Pascal. The fact that you could also write machine code side-by-side with Pascal put Delphi in a whole different league from say, Visual Basic or SmallTalk. Visual Basic literally went from hero to zero overnight.
This point, that Object Pascal had the same depth and power as C/C++, was strengthened by the fact that Delphi’s repertoire of components, both visual and not, were made in Delphi. In other words, you had no forced dependency on third party vendors for components (which was the modus operandi of competing solutions). Anyone could sit down and write their own components; components that could be sold and shipped as both binary or source. This gave rise to a thriving component market that eclipsed the competition utterly.
I will even go as far as to say, that had Delphi been released for IBM OS/2, it would have saved the platform. It was that significant.
In my final year of College we had Visual Basic on our curriculum, but behind closed doors it was Delphi we were using. I actually never attended a single class for my Microsoft certification, and aced the exam without reading more than the bare essentials. By then I was already writing COM components in Delphi and had gone far beyond the curriculum.
I vividly remember how our teacher put the curriculum aside one day, solely to present Delphi for us. He was a passionate developer and could hardly contain his excitement as he put the Delphi box in front of us. Wide eyed and mouth open we absorbed every bit of knowledge we could about this wonderful new system. Eager minds bursting at the seams with fresh ideas; it was a marvel.
When I picked up my exam papers I was offered a job as a teacher, which I respectfully declined. The idea of teaching anything but Delphi felt like a step backwards.
[/SHOWTOGROUPS]
Jon Lennart Aasenden
13/2/2020
Trying to sum up what a programming language and software authoring system like Delphi represents, spanning 25 years no less, is almost insurmountable. Where should I begin? Groundbreaking object orientation? Event driven architecture? A thriving component market? Or perhaps a technological wingspan that stretches from x86 assembly-language to high-performance ARM mobile applications?
Instead of blindly listing technological feats, I want to write about Delphi in a more personal manner. It’s a birthday after all, and birthdays are a time for speeches and reflections; of looking back to where it all began while firmly gazing into the future.
In short, I can only try to convey how valuable Delphi has been, and continue to be, for my life as a software developer. And I am confident that I share that experience with the millions of Delphi developers out there.
As I write this my thoughts go to the many students that are now discovering Delphi for the first time. I hope that my post can provide some food for thought as you begin your journey, and that you will come to love Delphi as much as I do.
Where it all began
In the early 1990s the computer market was a very different place compared with today. In Scandinavia and northern Europe, companies like Commodore and IBM still held a substantial stake in the home desktop market. But within just 3 short years, IBM’s OS/2 would be ousted in favour of Microsoft Windows, and the once mighty giant Commodore would meet its inevitable bitter end; both unable or unwilling to adapt to the new business model that was emerging. That same turbulent year of 1993,
Microsoft and IBM officially severed bonds, and IBM pivoted back to mainframes and their PPC architecture. A chipset design that would end up powering Macintosh computers throughout that decade and beyond..
Above: Cutout from Dr.Dobb's Journal first look at Delphi (from Web Archives).
The reason I mention these companies is to give you some context to how chaotic the market was at that time. For young students like myself it was almost impossible to know what technology to invest in. I started my coding career using a Turbo Pascal clone for the Commodore Amiga, something called High-Speed Pascal, published by UK based company Hi-Soft. At the time I was in the first year of my engineering education, and at school we mainly used Turbo Pascal and DBase. Sadly, PCs at the time were very expensive, and instead of paying $4000 for a PC, I bought a Commodore Amiga for $700. I think the Pascal compiler cost something like $99. So for a young student struggling to make ends meet, it was a substantial saving.
In 1994 the compiler I was using could no longer cope, and it was clear that Commodore was never going to recover. Thankfully, I bit the bullet and bought my first PC with a real copy of Turbo Pascal. And I am glad I did, because this prepared me for the release of Delphi the following year.
I'm not exaggerating when I say that Delphi was, and continues to be, a product that changed my life. Since its inception, the impact on the software development industry as a whole has been tremendous. Delphi, and before that Turbo Pascal, pioneered many of the technologies and techniques developers today take for granted, none more so than the Rapid Application Development (RAD) cycle itself. Before Delphi, ROI (return on investment) and TTM (time to market) were buzzwords with only marginal differences when it came to languages.
But when Delphi hit the scene, the time and money involved became very tangible, because the differences were disruptive (for its competitors) to say the least.
So out of the chaos and technological “wild west” that signified the early 90s, Delphi emerged as the clear winner. Deservedly so.
Leaps and jumps
One of the things that has always fascinated me, is the concept of evolution with regards to thought and ideas (a branch of teleonomy); something I often mention in my articles.
We like to think that evolution is a slow, gradual and linear process. But when it comes to ideas, and especially technology - my experience is that it moves forward in rapid, unexpected leaps.
Incubation times may vary, but eventually something amalgams and becomes the path forward.
Above: "The DNA of Delphi" outlining the key benefits of using Delphi for software production
When Delphi hit the market in 1995 it was so far ahead of the competition that people struggled to understand it. The notion of event-driven programming had existed for quite some time (Visual Basic for example), so Delphi didn’t incubate in a vacuum. There were C/C++ compilers that had evolved similar language features that Delphi brought to the masses, but they all lacked the simplicity and elegance of Delphi.
On the Commodore machines that I grew up with you had plenty of software that enabled drag & drop form design, and to some extent a similar approach to programming (albeit in a more primitive state). But what was unique with Delph is that no company had ever merged these ideas into a coherent whole where everything added up. The world had never seen anything like the VCL framework, or an IDE that adapted and integrated so closely with your code. As you wrote it no-less.
And what brought all of these elements together, was an extremely powerful compiler that was lightyears ahead of everyone else. The C/C++ compilers of the day (from a Pascal developer’s point of view) were absolutely powerful, but visual design was largely done separately (the exception being Borland C/C++ which had frameworks like OWL, so UI’s could be done by code). So in competing products, like Wacom (1984 ~ 2010) or Storm C++ (1995 ~ 2016), you would make the UI in one program, then import these designs into your C/C++ project as a resource file; not unlike Apple .nib files to this day. Once that was done you could finally build your program; a process that could easily take five minutes or five hours depending on the size of your codebase. Even a minor UI change would result in minutes worth of code generation and linking.
Delphi’s aggressive compiler and smart linker reduced this to seconds. And it was for over a decade the fastest compiler in the world. It was so fast, that most developers would use the compile function as a quick and dirty syntax check. An unthinkable task with other languages.
Object Orientation
The field that Delphi without a doubt took to the next level, was object oriented programming in the true sense of the phrase. Up until that point object orientation for Pascal had been somewhat half-hearted; Turbo Pascal 5.5 being the leading toolkit for DOS (marketed as “Turbo Pascal with objects”) where objects really was little more than record types with procedures. Unless you were fluent in C++ you had to venture to languages like Modula II or Smalltalk to find object models that resembled what Delphi would bring to the table. But they both lacked the RAD (rapid application development) layer that Delphi excelled at.
With Delphi, the entire spectrum of technology that was sown and incubated through the 80s and early 90s, leaped forward into a system where OOP was a fundamental aspect of the language itself, rather than tacked on as a bonus feature. Since Delphi programs operated with a full VMT (virtual method table), developers could enjoy clean inheritance, virtual and abstract methods and reliable data encapsulation - all of it from an easy to learn, easy to use and highly competitive language.
The proverbial frosting on this already impressive cake, was Delphi’s dedication to visual programming. That you could drop a button on a form, double-click on it, and fill out the event handler ad-hoc without leaving the IDE or switching a tab. This had already been done before, but Delphi was a real native compiler, not a bytecode or managed system where the IDE could operate with its own rules (at the expense of performance). It was the first time you could approach C/C++ level performance and depth - from the ease and elegance of Object Pascal. The fact that you could also write machine code side-by-side with Pascal put Delphi in a whole different league from say, Visual Basic or SmallTalk. Visual Basic literally went from hero to zero overnight.
This point, that Object Pascal had the same depth and power as C/C++, was strengthened by the fact that Delphi’s repertoire of components, both visual and not, were made in Delphi. In other words, you had no forced dependency on third party vendors for components (which was the modus operandi of competing solutions). Anyone could sit down and write their own components; components that could be sold and shipped as both binary or source. This gave rise to a thriving component market that eclipsed the competition utterly.
I will even go as far as to say, that had Delphi been released for IBM OS/2, it would have saved the platform. It was that significant.
In my final year of College we had Visual Basic on our curriculum, but behind closed doors it was Delphi we were using. I actually never attended a single class for my Microsoft certification, and aced the exam without reading more than the bare essentials. By then I was already writing COM components in Delphi and had gone far beyond the curriculum.
I vividly remember how our teacher put the curriculum aside one day, solely to present Delphi for us. He was a passionate developer and could hardly contain his excitement as he put the Delphi box in front of us. Wide eyed and mouth open we absorbed every bit of knowledge we could about this wonderful new system. Eager minds bursting at the seams with fresh ideas; it was a marvel.
When I picked up my exam papers I was offered a job as a teacher, which I respectfully declined. The idea of teaching anything but Delphi felt like a step backwards.
[/SHOWTOGROUPS]
Последнее редактирование: