top | item 26141786

26 Years of Delphi

197 points| mustafabisic1 | 5 years ago |blogs.embarcadero.com

171 comments

order
[+] midrus|5 years ago|reply
Great memories.

Delphi was my first programming language. I learned it from programming magazines I used to buy when I was about 17 years old or so.

My dad had a small supermarket at that time, and I remember the first useful program I built in my life was a small application to scan discount coupons he used to accept. Those coupons had a barcode and I discovered the hand scanners we used were just doing keyboard emulation. So I wrote an application in Delphi that would allow my father to scan all coupons at the end of the day and then print a sheet with a table of quantities, amounts, subtotals and totals of the money he had in coupons... something he was doing by hand before this. He was so happy with this program.

The program itself was very, very, very shitty, but it worked well for him. For example, at that point I didn't even knew that arrays existed, so all the logic and multiplication was done manually, like label43 = textInput25 * textInput24 * 0.1.

I also remember that, in order to send the form to the printer, I wrote code to go control by control, change the background to white, the border to black, calling something like form.printForm() and then restoring all the colors. This caused a horrible flickering when printing... but hey... it worked!!

The best memories I have was that probably, this was the first time I had that "feeling" of having built something useful to somebody. And certainly the best moment was when one of his suppliers who also accepted those coupons asked us for a copy of the program. Great times.

Some days I feel like I've never have built something as useful again since then .

[+] zuzun|5 years ago|reply
Oh, this brought back memories of the first useful Delphi program I wrote, back when I was a teenager:

The basketball club of our city held an online popularity contest, where the winner would receive free tickets or something. My friend desperately wanted to win this competition, so I wrote a Delphi program that would record the mouse clicks it took to perform a single vote and then repeat them forever. All of our peers received a copy of the program and in a coordinated attack, we opened the site in our browsers, taught the program to vote and left it running until my friend rose to first place. Sadly, he ultimately lost the competition, because another fan was better at forging votes. He surpassed us with ease. I guess he just hammered the server with HTTP POST requests, something I had no clue of at the time. In the end, the number of votes on the first and second place were laughably off the charts.

Years later, when we were adults, my friend became friends with the owner of the club, who invited us to a game. There, my friend introduced me by telling him this story, which I had completely forgotten. The owner had a good laugh, but I think I blushed a little.

[+] HeyLaughingBoy|5 years ago|reply
> Some days I feel like I've never have built something as useful again since then

Oh I am so familiar with this feeling. I recently found a program I wrote at my last job on a flash drive. It came from a chance conversation with one of the scientists I worked with.

After listening to her lament the many hours of manually parsing log files it took for her team to generate reports, I wrote a short program one day (with a few updates over the following weeks) to do it for them. Some days I feel that the code I wrote that one slow afternoon was the most useful thing I've done in terms of ROI. A couple hours of fun text manipulation and voila: a bunch of Very Happy People (tm) and untold hundreds of hours of time saved.

[+] cwbrandsma|5 years ago|reply
I have had nightmares about stuff like this. I get called in to update an in house program, start looking at the code and exclaim “wtf is this? Who wrote this?”...and then enters a sheepish looking 17 year old. Now I have to back track “hold up there...is this your first program? Really? Good job”.
[+] benibela|5 years ago|reply
>The program itself was very, very, very shitty, but it worked well for him. For example, at that point I didn't even knew that arrays existed, so all the logic and multiplication was done manually, like label43 = textInput25 * textInput24 * 0.1.

That is exactly how I wrote my Delphi code as kid!

Later, I learned to use arrays, and used them for everything because I did not know any other data structures. Like, array of array of array of integer. And the ref counting makes them memory safe. Delphi had the best arrays of all languages

At the university, they taught more complex data structures like linked lists and tree structures, so I started using them.

Then I learned about caches and that tree structures are bad for caches. Optimal are arrays. One should only use arrays for everything, so I started using arrays again.

Now I know about loop unrolling. And about the conservativity of the Pascal optimizer, it never keeps values in registers if they can alias. Heap values like arrays are always assumed to alias. If you do not use arrays, but use a separate local variable for every element, it can be much faster.

[+] neverartful|5 years ago|reply
Kudos to you for making things work when it was all brand new to you. You demonstrated a lot of creativity and ingenuity!
[+] bm98|5 years ago|reply
>The best memories I have was that probably, this was the first time I had that "feeling" of having built something useful to somebody. And certainly the best moment was when one of his suppliers who also accepted those coupons asked us for a copy of the program. Great times.

And then you go off to college, and one day the program stops working because of one problem or another, and they call you in the middle of studying for final exams, and that's when you learned about technical support and technical debt and all the things that make programming less fun!

Some people have recurring dreams in which they show up to school or work in their pajamas... my recurring dream is that some program I wrote in high school is still being used twenty years later, and they come calling because something broke...

[+] martin_a|5 years ago|reply
I think I've posted it before, but I'll repeat myself nevertheless: Delphi was my first contact with programming.

I was probably 13 or 14 years old and had no idea what I was doing, but I could resize the windows, add items to lists, change the color of Strings and place buttons and stuff like this.

So, _obviously_ I needed the Delphi 6 Enterprise edition which a friend had (pirated of course) and gave it to me on one of those really cheap CD-R with that distinctive plastic smell.

One of the first "real programs" we wrote was something to read sensor data via the parallel port. It was for a school project where a belt had to move and then stop, once the light barrier would sense something. We killed lots of parallel ports in doing that, because we just didn't knew how to do it.

Didn't really write anything more useful at that time, but it showed me that there's a world behind what we see and know as "programs". Maybe it laid some fundations in my brain, who knows.

Every time I see Delphi pop up I think I should probably have a look at it. But I'm a web monkey now. Lost for everything good, but I like to think back of the 14 year old me. Better times.

[+] loa_in_|5 years ago|reply
My beginnings were Turbo Pascal and Delphi. I guess I got spoiled because I never found an IDE where GUI design was do intuitive and easy afterwards
[+] myth2018|5 years ago|reply
+1 here.

I already had a background on electronics and, lucky me, I burnt no parallel ports.

When I joined the university I met a guy who built amateur solid motor rockets and I designed and built a prototype atmospheric probe for it. It measured temperature and barometric pressure only, and a program in Delphi 7 downloaded the data from a PIC mcu via parallel port, displayed them in a grid and stored them in a Paradox table (by then, I didn't know there was a difference between databases and tables and couldn't understand all that excitement some of my colleagues felt about Oracle, MSSQL and alikes. "They are mere files to store tabular data", I used to think).

By then, that was the most complex project I had built, and I can still feel the proud and the happiness so vividly. I was so ignorant about so many things that it didn't even occurr to me to look for information on the internet. And, anyway, it seems that the modus operandi by the time wasn't that -- nowadays we go right into the internet to look for the most suitable lib to the task.

I just got the data sheets, the docs and examples installed along Delphi, and found my way through.

It wasn't productive, but those were definitely good times.

[+] binwiederhier|5 years ago|reply
This could have been written by me. I loved Delphi and learned how to write software using Delphi 5. We got a cheap copy from school so I didn't have to pirate it. I still have that printout of the class hierarchy of the standard library and the CD ROM.

I loved Delphi and I'll be forever grateful for the lessons I've learned.

[+] FpUser|5 years ago|reply
>"... But I'm a web monkey now."

For the most part I was spared of this fate. I do everything from firmware to enterprise applications. Delphi/Lazarus are still both in my toolset for Windows and Raspberry Pi GUI based projects. Most of the time it is C++ based servers though.

I was entertaining QT at some point but it feels like a legal minefield with all their licensing shenanigans to me.

[+] nezirus|5 years ago|reply
My experience was very similar to yours, playing around with components and forms on Delphi 3; But in addition to that I've managed to learn some assembly with Delphi (asm blocks), go figure.

And the speed of the compiler on my venerable Pentium MMX 166MHz!!! (Sad looks towards my Rust build on a 100x more powerful computer :-( )

[+] fiddlerwoaroof|5 years ago|reply
Yeah, it was my introduction to programming too, but I was six or seven at the time.
[+] albertzeyer|5 years ago|reply
In any discussion about Delphi, you really should also mention Lazarus (https://www.lazarus-ide.org/). It's more mature (i.e. more cross platform) than Delphi, and fully open source. It's based on the Free Pascal Compiler (FPC) (https://www.freepascal.org/) (also open source).
[+] gramie|5 years ago|reply
"It's more mature"

Usually that implies that bugs and rough patches have been ironed out. I would have to say that Delphi is far more polished than Lazarus.

Not that I'm complaining about Lazarus, it's an amazing accomplishment and I play around with it every now and then to see how far it's come.

[+] FpUser|5 years ago|reply
It is more cross platform but integrated debugger kind of sucks. I am doing some project for Raspberry Pi 4 and had to resort to debugPrint() as on some breakpoints it reports gdb error and terminates debugging.
[+] justin66|5 years ago|reply
Has anyone published a good comparison of the two compilers building the same project? It’d be interesting to know how compile times compare.
[+] mhd|5 years ago|reply
Yeah, Idera, tell me how great Delphi was before you friggin' ruined it, like everything you touch.

Anyway, we've recently had "FoxPro" guest-star here, and Delphi definitely was one that took its lunch money. Decent small-business relational databases appeared, and people were eager to marry it with fancy GUIs -- maybe even with that new-fangled 32 bit Windows Microsoft was promising. Visual Basic was what Microsoft offered. But for many, the language felt a bit awkward, as did the programming paradigm. I'm leaning a bit out of the meaphorical window here, but there's an argument to be made that VB was closer to 4GLs than "conventional" programming languages.

Delphi just really hit a sweet spot. A fast Pascal compiler was to be expected from them, the OO features were available in previous Turbo Pascal versions, too. But all very nicely integrated into a truly RAD IDE -- if what you wanted to develop rapidly was a CRUD Windows app.

Still one of the best experiences doing that. I'd have done more if for a while my corporate masters didn't demand Java/Swing or sacrificing goats (MFC).

And then mobile devices finally ruined every chance of ever getting a decent desktop GUI again.

[+] Gehinnn|5 years ago|reply
I remember when I turned 16 and all I wanted as birthday present was a license for Delphi 2009. If I remember correctly, it costed more than €1k at that time. Obviously I got something else.

When I learned about the free Visual Studio Express, I switched to .Net development and never used Delphi again.

This experience shaped me and all tools I will ever create will be available for free to students and kids.

[+] rahoulb|5 years ago|reply
Thats because Microsoft hired Anders Hjeilsberg, architect of Delphi, to create the .net platform and the C# language. And in the process signing the death warrant for Borland (who created Delphi).

The rumour was Microsoft's own staff preferred using Delphi to their own tools, which is why they hired Hjeilsberg.

[+] mikewarot|5 years ago|reply
I started in Turbo Pascal, and migrated to Delphi when it came along, it was cheap enough that I had the pro version up until I moved into SysAdmin. Now that I want to dive back into production programming, Delphi has basically priced itself out of existence for me.

Lazarus is a good alternative, a bit buggy, but at least I can afford it. Eventually I'll probably implement a Pascal layer on top of Racket.

As far as straight up GUI toolkits go, there's no better tool than Delphi. I doubt I'll ever have something that powerful again.

[+] ivanhoe|5 years ago|reply
Delphi had, by far, the best documentation that I've ever encountered. Every Win API method was documented, explained and illustrated with an example. Delphi 4 manual was so much easier to follow than Microsoft's own Win16/32 API help in VS C++ (which I actually used more back then).
[+] jhbadger|5 years ago|reply
A lot of this was good, reminding us that the world of 1995 when Delphi was first released was quite different from now. But the idea that "The video games industry was in its early days" in 1995 is a bit of a weird assertion. So the 8-bit and 16-bit eras didn't count?
[+] markus_zhang|5 years ago|reply
Yeah that line also hit me as a bit weird. Even when we count the PC game industry it was pretty mature at that time already.
[+] nottorp|5 years ago|reply
26 years ago Delphi was pretty affordable and you didn't need a lawyer to protect yourself from the licensor too :)
[+] raynr|5 years ago|reply
Delphi 2 was my introduction to programming. It was on a pirate CD-ROM together with many other programs - Office, C++ Builder, Visual Studio. Once I discovered it (because of course I'd play with all the programs on the pirate CD), I was amazed.

At the time I didn't know of an easier way to draw windows and buttons and stuff, and have them do what you expect them to do (Visual Basic? Pfft, edgy, tweenage me scoffed at the idea of compiling pseudocode that had to be interpreted at runtime. And don't tell tweenage me about MFC, past me would never have admitted that using the MS foundation classes in C++ was too difficult for my dumb brain. I also didn't "get" C++ so couldn't get on with Borland's C++ builder. But object pascal... object pascal was structured and easy to understand and compiled to machine code in an eyeblink so was therefore superior to everything else!!! Man, what a butt I was...)

First program I wrote and released was a game editor. Someone had reverse engineered a certain video game's file and data structure and documented the offsets and sizes of all the stats of the entities in the game. I used that information and slapped a shitty GUI with comboboxes and dropdown lists and number fields (with no bounds checking I think), together with some very dodgy file read/write code I part copied from some geocities page and part copied from some reference book code, and I made my first game editor. People actually used it! Man, that felt cool.

Man, what a butt I was, I was the very definition of an "I am a programmer" meme.

Later on that information made its way into a UGE module so my program was no longer relevant.

I remember borrowing Delphi reference books from the library and, not having enough computer time, hand writing my code to learn.

Good times. I didn't know Delphi was still in use, I am obviously not in the development line anymore. 26 years! I feel old!

[+] statictype|5 years ago|reply
Delphi was great. I remember downloading it (pirated obviously) over a 14k connection. It took like a day.

The killer feature was that it could build stand lone executables with no runtime.

On one hand I really miss those days. On the other hand, what we have today is far superior. Its a great time to be alive for a kid who wants to learn how to program.

[+] dsparkman|5 years ago|reply
Delphi, ah the memories. I use to make a fair amount of money in the late 90s making shareware applications with Delphi. It was the most productive I have ever been as a developer. But, the world moved to web fairly rapidly, so I had to move on to the web.
[+] kolinko|5 years ago|reply
Ah delphi, earned some of my first money as a student doing two awesome projects in Delphi that worked for the next 10 years...

I still haven’t found anything with such a good interface builder (Xcode comes close, but it’s still worse imho)

[+] dbsmith83|5 years ago|reply
Ah, I remember being in middle school and buying a huge book seeming to be 6 inches thick with a copy of Delphi 1.0. This was what started it for me. The really cool thing was that in Delphi, you could often import Visual Basic components. Me and my friend would look for components that other VB programs would use and try to use them in our own projects. GUI creation is second to none with Delphi/Lazarus and I love the event based system, but nowadays I find writing in Pascal a little...not fun.
[+] kristaps|5 years ago|reply
> When Delphi was released in 1005

Lovely typo, although it undeniably feels as if Delphi has been around forever.

[+] vram22|5 years ago|reply
I guess that should be 1995. Same year as Java 1, FWIW.
[+] anta40|5 years ago|reply
I started learning Delphi in 2003 (or 2002?) when in high school.

At that time, not many of us were interested in programming, probably only the "geeks". Of course, typically high schoolers prefer sports, online games, or music.

I taught myself QB, Turbo Pascal, Turbo C, VB. Well, VB was my 1st exposure to Windows programming. Making Windows apps was very easy. I wrote tiny web browser (using built-in IE component), audio player, a tool to bypass Ctrl-Alt-Del (copied from Planet Source Code), simple Symbian games (with AppForge Mobile VB) etc.

Then I found a book explaining database programming... with Delphi. I believe it was Delphi 6. Unlike MSVC, Delphi was surpisingly easy to learn. Sure, I already had some Pascal knowledge. After that, I ported most of my existing VB codes into Delphi.

1 year before graduation, I found another book about mobile app programming. At that time, smartphones weren't that popular unlike today. Only really rich kids who used Sony P900 or Nokia 9210i. J2ME-enabled mobiles phones were relatively more popular, at least. And that's how I joined the Java world, which until today is still is.

I kinda miss Delphi. Yes, I'm aware there's an open source alternative: Lazarus. Let's see if I still can write something interesting with it :)

[+] ruph123|5 years ago|reply
Whenever I heard “Delphi”, I thought it was an ancient programming language that older colleagues used to mention (“... <anecdote> ... many moons ago, back when I used to program Delphi.”).

But so Delphi really is/was a GUI editor? Something like an ancient Qt Creator? And according to Wikipedia it is not even a language but is using “Object Pascal”. Wild.

I wonder why this never comes up when I read a out cross platform GUI frameworks...

[+] Joeri|5 years ago|reply
Delphi was something that doesn't really exist anymore, the blending of IDE, programming language and toolkit into a single product. You programmed in Object Pascal, using the VCL toolkit (component suite), and because that was the only thing the IDE needed to support, it was tightly wrapped around those two things. The visual designer was the glue between the pieces.

The result of compiling a delphi project was a native windows executable that used the core win32 API's underneath (the VCL was implemented over bare windows api's). Compiling was blazing fast (seconds), and the executables that came out of it were blazing fast as well (C++ level performance). This contrasted heavily with visual basic, whose apps required a slow interpreter library, which made them cumbersome to install and run.

[+] FpUser|5 years ago|reply
Delphi is a complete IDE. The language is called Object Pascal but can be informally referred to as Delphi language.

The language itself is far from being ancient and it supports very practical and modern set of features.

The IDE is expensive but there is a Lazarus (basically open source version of Delphi). It is somewhat less polished but is still very nice.

If you search for this exact phrase "cross platform GUI frameworks" there are more then enough links mentioning Delphi/Lazarus. They're of course only usable within their respective environments. Not universal like QT.

[+] jonp888|5 years ago|reply
The lack of any free or hobbyist-priced editions when everybody else was giving away their tooling for free more or less killed it off.

It is still beloved by it's acolytes and there are a handful people out there who learned Delphi 20 years ago and stubbornly refuse to use anything else. It's an uphill struggle though because no-one releases a Delphi SDK for anything anymore.

[+] andi999|5 years ago|reply
Yes, it is basically Qt Creator, but much much faster and problem free.
[+] kwanbix|5 years ago|reply
Sadly it was killed by so many bad decisions from Borland. It was really a great tool.

Maybe if Microsoft had bought it instead of "just hiring" Anders Hejlsberg?

[+] barrkel|5 years ago|reply
Anti-trust. In fact Microsoft invested in Borland as part of a settlement for predatory hiring, IIRC.
[+] npalm|5 years ago|reply
We still maintain our flagship software in Delphi. We were on Delphi 6 until a year ago we jumped to modern Delphi. We were surprised to learn that the Delphi installer was quite broken and the 1 year license doesn't include install help after the first month! Needless to say, we promptly started migrating our code to something else.
[+] vram22|5 years ago|reply
>1 year license

They don't have a permanent license?