173 comments

[ 6.0 ms ] story [ 211 ms ] thread
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).
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.
Indeed, i always have issues with gdb and Lazarus (under Windows) with the debugger randomly deciding to stop working or not stepping through code (even with zero optimizations) or other stuff.

However the new debugger written specifically for Free Pascal seems to work much better - just not available everywhere ATM.

Has anyone published a good comparison of the two compilers building the same project? It’d be interesting to know how compile times compare.
The original Delphi compiler which was in use until some versions ago (and might still be available, dunno) was much faster than Free Pascal while producing more or less the same quality code (in terms of performance) but could only target Windows. Free Pascal targets a bunch of other CPUs and OSes though.

I haven't tried any of the recent versions, but AFAIK they're based on LLVM so i'd expect compilation times to have went up but produced executables to be a bit faster.

FWIW Free Pascal's developers have mentioned at the past that fast compiler performance isn't really something that they care much about (though in practice FPC is among the faster compilers, just not as fast as Delphi used to be).

> FWIW Free Pascal's developers have mentioned at the past that fast compiler performance isn't really something that they care much about

That's an interesting evolution. It had a lot of nice features, but compile time was the only thing about Delphi that was really magical.

Well, Free Pascal was never as fast as Delphi and i doubt its feature set would allow it to be as fast anyway. Delphi only supported a single platform for a single CPU for the largest majority of its lifetime whereas Free Pascal supported a ton of different CPUs and platforms while also adding support for a variety of different Pascal dialects at the same time and often extending the language beyond what you'd see in Delphi - all that adds up quickly.

Still, as i wrote, in practice FPC is quite fast. Lazarus itself is almost two million lines of code and yet it compiles and links in seconds.

"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.

Well... in a perfect universe where bad decisions are never made, sure. But a few years after the turn of the century someone at Borland/Inprise/CodeGear/whatever decided to rewrite the IDE while chasing .NET when under a company that by that time had completely lost any interest in development tools.

I've only tried the trial/free Delphi versions sporadically and TBH 'polished' isn't something i'd use to describe them. Then again neither is something i'd use to describe Lazarus (which i'm using much more often), however that is for completely different reasons.

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.
What were your apps?
I had Spinel Clean and Tidy that let you clean-up your registry and various temp files that were left all over the place back in the Win95 era. Also Spinel ScreenPik which was a screen capture utility.
embarcadero , wondering why they couldn't retain the original name borland? .. it was a nice platform , cant afford subscription model so moved on to open source technologies.
Delphi! Purchased ver.3.0 back in the day, it was excellent.

So, who's using Delphi in prod anno 2021?

I am not writing Delphi code anymore (but did that for close to 20 years professionally), but there are many artifacts still up and running and would probably run for next few decades if not longer.

1) I've started my programming career by creating new user interface for device that measures properties of metal joins on [BIG] machines [1]. It is used by many mining and energy companies. First version of this device was created somewhere in 70s so I guess this new one will last for many decades to come.

2) There was a time when every company created its own ERP software and I was hired to help maintain 500k lines of code monster that is used by fair chunk of construction companies in Austria. All the accounting, warehouse, quoting, payroll and what not was based on top of old Paradox database. Custom hacks were deployed to make sure we fit everything into 64kb of index space and I've got massive headaches trying to make work decades old database in networking mode. Another fun year was at the time when Vista changed memory layout and you sometimes crash everything because of memory location that was meant to be for printers is now occupied by sound stuff and you've touched protected memory. Anyway as far as I know this system is up and running, counting numbers, printing invoices, work orders and quotes all days long.

[1] https://www.popsci.com/resizer/meUXbu78Po3bGHtIFIaRTwBsLqg=/...

1) Big machine awesomeness!! Respect++ to you.

2) Funny, I did a fair bit of freelancing at construction companies back in the early 90's, mostly using Paradox (3.x DOS, if I'm not wrong) and mostly helping out with the insane reporting required for taking part in public tenders. I still have nightmares and have not gone back to freelancing since then.

Oh yeah, the amount of reports are insane. There were more than 200 different reports implemented in the tool and most of them have been customized for each separate customer. It was spaghetti bowl of half baked custom DSL, config files and what not.
Not in prod, but I do occasionally use the community version.
We’ve got a 20 year Delphi code base for a robotic product that we need to update the functionality and simplify the UI. If I could have 2 Delphi devs to take on this project I’d be delighted. We’ll probably just use a .net cover though.
Sure, happy to work on it. Last day rate was $1200/day
I've using TurboPascal from 1990 till 2010. Still love it!

Willing to help. Drop me mail to peter at mobiliodevelopment dot com

I started a project in 2006 with Delphi

I still maintain it

But I ported it to FreePascal/Lazarus, since I did not want to buy newer versions

On what platform(s) do you run Lazarus if I may ask? Does it work reliably for you? I've tried Lazarus a while ago on macOS and the out-of-the-box experience seemed a bit flaky, unable to compile (or run) a simple writeln('hello world') throwing obscure linking errors. (Granted XCode occasionally gives me the same experience! Mostly because of code signing issues.)

Invoking fpc from Terminal worked OK.

On Linux

It is ok. On Linux nothing is really reliable

I'm part of a 4 man team that maintains a 1.3 million loc application in the PropTech industry. It's been jazzed u with a WPF front end I can compile all 1.3 million loc in 11 seconds on my work laptop using Delphi Xe7.

The rest of the form has gone web but moving 1.3 million LOC would be a 10 year project we estimate. So it's not happening. Customers love it and thats what matters.

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.

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 :-( )

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.

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
Yes. I do not understand why GUI designing is not getting better.
>"... 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.

+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.

Yeah, it was my introduction to programming too, but I was six or seven at the time.
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.

For desktop? I am not sure what we have is superior. Unless you count, which was designed by the same guy who did Delphi.
We might not have better commercial tools for building pixel-perfect UIs for apps that are going to run on a narrow range of devices in terms of capabilities and display sizes.

We've got better F/OSS tools for, well, everything else, desktop or otherwise, than the commercial tools of that time, though.

From my perspective, the modern web is mostly a regression: subscriptions or advertising everywhere, frustrating tools for building UIs, etc.
You don't have to download a pirated IDE for starters. There is a wealth of good open source tools and content.
yep. This is exactly what attracted me to Delphi. Did a lot of Pascal dev in college with TP. Then tried out VB 3.0 for windows dev. Hated VB because of the performance and having to include the VB runtime. Delphi created a single standalone executable and it was fast. Back in those days, if you wanted close to C/C++ performance without having to learn or deal with the complexities, Delphi was the next best thing.
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)

The C# WinForms UI builder is a nice ripoff of the Delphi UI builder.
Its not really a ripoff as C# and Delphi is designed by the same person.
ahh not really. VB and powerbuilder UI builders predate Delphi and Csharp.
Yes, that is why when Delphi 1 (or 2?) was announced, it was billed as the VB killer. That never happened, I guess, though it did become somewhat successful. I used both VB and Delphi some, in work and personal projects. Preferred Delphi by far.
Oh I definately agree, Delphi was a better dev tool compared to VB at the time. No runtime needed to be shipped, standalone fully compiled executable alone was the killer feature.
I did not used Delphi but did a a few Windows apps with C# and Windows Forms int he past, I am curious in the present day for Windows only dev what would be the advantage of using Delphi over C# with VS or Intellij.
Delphi produces native applications with no dependency, offers components encapsulating Windows APIs, COM, WinRT -- and a great native platform experience. Binary code with no dependency = real xcopy deployment, small deployment, memory and CPU efficiency. It's like writing in VC++ in terms of power, but visual and high level in terms of dev experience
Thanks for response, I agree with parts of your response but I do not understand what you mean with "components encapsulating Windows APIs, COM, WinRT" in comparison with .Net , I mean .Net also wraps the majority of the win32 and other APIs.
Yes but the resulting .exe depends on like 20 installed .dlls. For starters, the .NET runtime, which will fundamentally limit where your app runs.

Second updates in those underlying dlls and runtimes may prevent your app from working correctly.

So if the customer doesn't have or screws up their .NET installation, your app stops running. Getting a Delphi app to stop running on windows through bad sysadminning ... I haven't seen it done.

Think of C# apps like java .jar applications. They end in .exe, but they're not, not really. And at least .jar makes it a lot clearer it needs a JRE to run, and it's cross platform to boot.

Your reply is not what I asked.

I know the issues with the .Net dependency, like user has 4.0 but the app depends on 4.5 or similar problems. But this is not a big issue and you can if you want bundle the Java or .Net runtime inside the application.

Anyway I was aware of this binary size / memory usage difference in favor of unmanaged code, my question was something else, if you can clarify that or admit it was an error would be great.

> Yes but the resulting .exe depends on like 20 installed .dlls. For starters, the .NET runtime, which will fundamentally limit where your app runs. Second updates in those underlying dlls and runtimes may prevent your app from working correctly.

Not these days (for newer codebases).

The DotNet Framework has that issue with the runtimes, but it's been a fair few years since Microsoft were suggesting people start new projects with the Framework for much other than WinForms.

The present and the future of DotNet is DotNet Core, which can produce cross-platform single-file stand-alone dependency-free binaries, well suited to a copy/paste deploy if you want.

That said, away from Windows you're a bit screwed for the GUI. It's a great flow for cross-platform console tools and web apps/servers though, especially with the free VS2019 Community Edition or, better still given it is many gigabytes less and cross-platform, with VS Code and the C# plugin.

Delphi has make it very easy to call the Windows API, COM and WinRT, with wide coverage, and encapsulates some of the complexities to make it easier for developers, as you would expect from any good programming tooling today.

Where it gets very cleaver is actually in the way OOP/components are used under the hood to already make many modern features cross-platform ready!

e.g. The same component used by developers for linking to the Notifications API's on Windows 10, works on Android, iOS and macOS! Under the hood, Interfaces are providing back the platform specific implementation, but at a high level you just work with the same component in code, making it very fast to develop cross platform.

The same is true of the RTL for parallel programming, file access etc. - This is thanks to the way API's get encapsulated. I hope that answers the question.

Thanks for trying to respond, it was clear to me that Delphi is similar with Qt ,Java and .Net and encapsulates platform specific stuff in OOP components. My question was why Delphi over C# ? The answer seems to be that if you don't want or can't use the .Net runtime dependency, or maybe if you want small binary size or small memory usage.

My conclusion is that for Windows only GUI there is no major advantage in favor of Delphi, .Net has more tools and libraries. For cross platform it seems Delphi has a superior story though with official support for GUIs on major platforms so is more similar to the Qt Toolkit (Qt also includes a GUI designer and non GUI related components).

This article made me feel really, really old!
I loved Pascal and I did most of my DOS programming with it until DJGPP.

But for Windows in jumped right to Visual C++. All because Delphi was “dying”, at least in popularity. So I never got to give it a chance.

One of my competitors used Delphi to write their software. One part of the software ran under the print spooler so when 64-bit Windows came along they were stuffed as the 64-bit version of Delphi was slow to arrive. I did quite well out of that.
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.

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.

The killing feature was not .Net for me, but the free and fully featured IDE. I hated to type out every public declaration twice in the Delphi 5 IDE I got from school.

I remember that I hated the startup time of Visual Studio though. In Delphi 5, I typed invalid syntax to create a temporary bookmark: When I pressed F5 to compile the project, I immediately jumped to it. This was entirely impossible for C# programs.

First of all, Anders was hired to create J++.

Secondly, he only joined after been asked multiple times by ex-Borland colleges when he felt it wasn't his place any longer at Borland.

https://youtu.be/0g-IjyFnrAM

Borland killed itself by switching to services.
When it first came out, Delphi was streets ahead of the main Microsoft options available at the time, namely VB and Visual C++. I remember it with great affection.
Delphi is as old as Python, damn.
Even older. It's the Windows follow on to Dos Turbo Pascal which existed from 1984.
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?
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.
> When Delphi was released in 1005

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

I guess that should be 1995. Same year as Java 1, FWIW.
Used that from year 1, too, for some years.
Unfortunately, I've never used Delphi. But the article makes me nostalgic for the old school Borland style GUIs with icons on the buttons and stippled backgrounds. Or the CTL3D style which was really modern at the end of the Win 3.1 era.
Compared to developing an application for the web those Borland interfaces were wicked fast and pretty clever. Extremely productive.
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?

Anti-trust. In fact Microsoft invested in Borland as part of a settlement for predatory hiring, IIRC.
26 years ago Delphi was pretty affordable and you didn't need a lawyer to protect yourself from the licensor too :)
I remember using Delphi 1 on a 386 under Windows 3.1 and watching and even listening to the GUI reloading from the swap file component by component. I had enough RAM but I think the Windows memory manager was not great. Today, I'd throw the PC out the window, but at the time, there was something reassuring about it. But maybe I'm embellishing my memories.
Out here in the battlegrounds of web development, this article makes me miss the safe cocoon of Delphi and Windows development.
I still occasionally come across Delphi in use today, and even new projects are started using it as the core technology. It definitely wouldn't be my choice but it is interesting to see how productive people can be with this even now.
I remember when I discovered Delphi, it was in circa 2001-2002.

At the time I was 16-17 and knew how to program with PHP (I was modding phpBB at the time), tried with PHP-GTK to build user interfaces, but found it not that great.

Then I discovered Delphi, already knew some parts of Pascal. But what a gem it was, in a matter of days I felt like I was totally proficient, could create windows, manage resize, add components, tweak colors, run background tasks, want a listview? just drag it. Need a HTTP call? drag the component (can't remember the name), connect onclick to it, and you're done. I recall the website torry.net with plenty of libraries to download.

I also tried Borland C++, but wasn't good enough with it, and as I remember discovering that even DevC++ was written with Delphi. Simply figuring out it was good enough for me.

I created so much things with it until like 2004-2005 I think, like a complete terminal on my Windows, re implementing standard commands all within Delphi. Wrote some games companion for Rainbow Six and RavenShield [1], fetching statistics and available servers, scanning games to find your friends, downloaded thousand times. An alt-tab which worked with Quake III that at the time was also downloaded hundreds of times, a companion to The All Seeing Eye (server browsing), a small Photoshop tool where I learnt how to create my own filters like Gaussian blurs and so on [2], key mapping profiles for plenty of games by modifying INI files [3], a code formatter inside DevC++ [4], ...

I have lost all of my source code (didn't knew how to backup things at the time), still have some binaries and screenshots for posterity

I remember this period with nostalgia and great passion.

Thank you Delphi for the good times and all the fun, this is when I really knew what I wanted to do after school.

[1] https://rehost.diberie.com/Uploads/37/20210215-160435-948cd7... [2] https://rehost.diberie.com/Uploads/37/20210215-160351-cc03e0... [3] https://rehost.diberie.com/Uploads/37/20210215-160401-712b1f... [4] https://rehost.diberie.com/Uploads/37/20210215-160338-6f856c... && https://rehost.diberie.com/Uploads/37/20210215-160330-cc512a...

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 .

>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...

And one day you learn about charging yearly support fees, and that makes your dreams of someone using your app for 20+ years much more pleasant...
You and I sound like we had very similar childhoods . . .

I wrote a tool that managed a bunch of information related to the AP Computer Science exam[0] which my High School continued to use for 10 years after I graduated. I had received a call on it once, five years after I graduated, from a guy filling in for the teacher I wrote it for and I ended up working with one of his students to figure it out ... while at the Atlanta airport, traveling for work. :)

[0] I don't recall the details, but it was a surprisingly involved text-based pascal program.

I'm gonna be honest, if I'm just sitting in the airport with not much to do, this sounds like fun. No pressure, just taking a call and debugging an old script, with a chance to give a kid a good story/learning experience...

"C'mon kid, I had it working for 5 years and you broke it? What'd you do!" :)

Oh, man, the only thing better would have been if one of my colleagues was there with me... I was very young in this job (19, first real job, next youngest was 26). Waiting on my bags, traveling for business as a 19-year old kid and fielding support calls for software I wrote on the side. Even without any witnesses, it felt pretty damn awesome. I remember the incident very well because the flip side was that I was scheduled to work at the switch site in Downtown, which meant I was staying at a really nice hotel and besides the software issue, I had a much more pressing problem of Northwest Airlines[0] having managed to lose my bags on a direct flight and I had failed to pack the usual emergency items in my carry-on[1].

[0] Yup, it was that long ago.

[1] Someone told me "they don't lose bags on a direct flight". Very wrong. Lost them on the way back, too -- same fscking trip. But Detroit opened a new terminal and was having a "holiday baggage handling crisis"; after a few weeks they compensated me and sometime the following summer my bag appeared on my front porch. The "crisis" only affected international flights, so I wonder if my luggage had a better trip than I did. It was seriously more than 6 months lost.

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.

This is a wonderful story in many angles !
Thanks for sharing this story
Kudos to you for making things work when it was all brand new to you. You demonstrated a lot of creativity and ingenuity!
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”.
Try when it’s a 44 year old and he’s been there twenty years, leaving his fingerprints on every process

“We have to listen to Dave, he built this place! We can’t replace his code!”

Or when you complain about some really horrible legacy code and then it comes up that is written by your new tech lead just a few months ago.
Or, worse: By yourself a few years ago.
"....aaah this was my early functional phase."
yea i learned about that early on, and the hard way... first day i was told by the VP to review a bunch of code and share my thoughts with the team next day. all the code that, IMO, had the worse issues, had all been recently redone by the guy who was adjacent to my boss. that sure got me started on the wrong foot with that guy.
Did that with the CTO. Don't think he was impressed. Later on I got the sack from that place.
To be fair to Dave: he knows all the edge cases, he just isn't the right person to be writing code.
> 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.

I feel like back then I could appreciate the usefulness of my work a lot more. Even a very simple program was like magic and I got my feeling of accomplishment. Nowadays it's all about best practices, getting stars on Github or writing influential blog posts to further my career. By surrounding myself with other successful people, the bar has become a lot higher than in my childhood days where most peers could barely even turn on a computer. I have realized that writing a software to do X is most of the time trivial; getting tests to pass is only the very first step. But writing software in a _good way_ (whatever that means) is the hard part and the worst thing is that there is no clear indicator if you are even improving. It used to be the program either works or it doesn't. But values like maintainability and scalability are intangible and a perfectionist like me is compelled to work themselves to death in pursuit of an unclear goal. In many cases I don't even care if the program works as long as the code is beautiful, like a mathematician who spends all his time working out elegant proofs with zero applicability whatsoever. It doesn't help that I have to waste my talent on pointless CRUD and yet another e-commerce system, which only serves to sell people things they don't need and make the rich even richer.
I did something similar! It shoved lab results into a SQLite DB and ran some simple queries for them. Before it was all being hand imported into excel. I thought it was neat throw away work but turned out the entire lab team migrated over to it.

Something about people actively choosing to use your work with no pressure, marketing or mandate just hits different emotionally.

>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.