Today marks the 27th anniversary of the first release of Delphi. My personal experience with the product starts several years before 1995. Let me tell you the story about how I came to use it--and why I still find it the best development tool for what I do today.
I was always interested in math and technology and played around briefly with the Radio Shack TRS-80 as a freshman in high school but got impatient with the faulty tape drives for loading and saving programs (I probably wouldn't have made it as a programmer had I been a few years older and been relegated to using punch cards). But when the school I attended set up a computer lab with Apple IIs, I bought a single-sided floppy disk to save the AppleSoft BASIC programs I was writing as I went through the tutorial books that came with the machines. I soon discovered that those tutorials only scratched the surface of the power hidden in the circuitry--my interest was piqued.
As a computer science major in college, I studied several different programming languages, including business applications using BASIC, the strict formatting syntax of FORTRAN, a short look at SNOBOL (StriNg Oriented symBOlic Language), and assembly language on three very different instruction sets: Apple's 6502, Intel's 8088/8086 (which was used in the wildly popular PC), and the DEC 11/780 minicomputer with its 12 internal registers. I appreciated learning how code interacted with the hardware and enjoyed writing low-level routines that had absolute control over every aspect of a program but quickly realized it would be too time-consuming if I wanted to build high-level business applications.
Then I took a course about data structures. To build and test the concepts learned in class, we used Turbo Pascal. This small editor/compiler/debugger all-in-one programming environment was easy to use but didn't require a runtime environment and could actually be used to build real applications in addition to being a great learning tool. While in college, I acquired my first business client, a cleaning supplies vendor that bought a PC and Paradox to manage their inventory but didn't know how to use it. I quickly learned about the power of a database system with a nice user interface and built a front-end application with several reports. This came to be very useful experience many years later.
In my first long-term programming job after college, I was tasked with building a new application on PCs and was given the freedom to choose the software development tool to use. It had to store data, access hardware interrupts, and be usable by students and educators--a tall order for the late 1980s. I had taught myself C/C++ in college (there was no formal class on it yet) but I hadn't gotten very far--dealing with pointers was a pain and the compilers were slow. I quickly chose Turbo Pascal which got me up to speed quickly and allowed me to drop to assembly as needed. I soon had a DOS-based application running with pull-down menus and data stored using BTreeFiler. Over the course of the next several years, the application grew in size and complexity and Borland Pascal (as it was now called) kept right up with it, supporting larger modules and newer and better ways of doing things as an integrated development environment.
As Windows 3.1 became popular, I tried to get my head around the Object Windows Library, or OWL, knowing I'd have to eventually support Windows-based applications. But the library was difficult to use, from a Turbo Pascal perspective, reminding me of the crude memory allocation requirements of C and having to look up Windows API parameters just to do simple things like paint controls or respond to events.
Then Delphi was released and everything changed.
On February 14, 1995, Borland released Delphi, the successor to Borland Pascal 7 but based on and built for the Windows platform. I could still write DOS-based applications, subsequently dubbed "console" apps, but no longer did I need to use OWL for Windows development, instead I could visually drop components on a form, move them around with my mouse, double-click the event-handler, and hit F9 (the same function key since the early versions of Turbo Pascal) to instantly run my Windows app, increasing my productivity by an order of magnitude. When Windows 95 came out later that year supporting 32-bit applications, development tools, including Delphi, followed suit with upgrades to their compilers.
Delphi also came with the BDE or Borland Database Engine, which supported several popular database products at the time. I was able to utilize my prior experience with Paradox to quickly build rich database applications for clients and when clients had different databases installed, like dBASE or FoxPro, I could readily support them without too much difficulty or learning curve.
When the WebBroker technology was introduced, web server capabilities were added to the toolset and while I jumped on board and started using it quite a bit, it wasn't long before I realized that, by itself, it's not the most efficient way to create websites. Several other methods for web app building with Delphi have come along since then to keep Delphi as a viable tool for web app development.
Delphi also supports Microsoft's COM technology which I've used quite a bit for not only integrating with Word and Excel but also to interact with a point-of-sale application that uses this technique in their plugin architecture.
Overall, I've continued to be productive by using Delphi for a variety of client projects. However, I'm fully aware there are other tools with new approaches to building apps that apply techniques more suited to younger generations of users. I'd be remiss to ignore them.
Back in 2013, I started questioning whether Delphi was what I wanted to continue using for the bulk of my development efforts. I even tried a few other tools, including .NET and various web frameworks. But there are always pros and cons and I learned the grass is seldom that much greener on the other side of the fence. I also realized that learning another development environment is far more than just the syntax of the language or a different set of shortcut keys; it's a whole ecosystem of libraries and frameworks and support forums which, when considered in its whole, take an enormous amount of time to achieve a high degree of fluency and productivity.
Since Delphi keeps growing and evolving with technological trends, it was far better for me to continue using this highly capable development suite, augment it with stand-alone editors, integrated comparison tools, embedded scripting, work with its web frameworks, and fully embrace its cross-platform capabilities in the FireMonkey framework. It's taken much less effort to learn how to use Delphi in new and expanded ways and upgrade my decades-worth of experience and libraries than to start from nearly ground zero with a whole new paradigm for developing and deploying applications.
Just like the move from DOS to Windows, moving from Windows to cross-platform or the web is a change in how I design and build software but with a great set of books, playing around with ready-made examples, and frequenting forums filled with experienced programmers ready to share their expertise (and their opinions), I'm more productive than ever. I can develop apps for every platform my clients need (and several they haven't asked for yet) using a language I can literally think in. No development environment is perfect, no one tool fits everyone's needs or personality but for me, Delphi has proven to be a modern and capable programming tool every step of the way.
Happy Birthday, Delphi!