I totally agree with that. This week, I happened to stumble into some code I wrote in the 1996/7/8 era with Delphi 1 and 2:
OMG what a mess. Can't believe I got any money for that! I must have been so into that code that nobody else could make any sense of it and that includes me after 28 odd years. It was around then that we decided all the database stuff should be done in code, not through the screendrawing properties. Things got better when the actionlist and actions were introduced and we introduced the rule that we only write IDE's based on actions, never direct. That code, from the early 2000's looks a lot better!
But as with any programming it takes some discipline, but makes a team and yourself a lot more productive.
The 1996/7 code shows its age: hey Delphi is great, we need to do everything visually. NOT. It happened to be a false promise in many ways.
Things like Datamodules and Action lists were the onset of better programming when combined.
Writing more in code helps a lot regarding quality and maintenance.
After all, a good program is usually not the userinterface, although it is part of its usefulness.
Many should un-learn user interface centric programming, a.k.a. screen drawing, because it is plain wrong.
Wrong in the sense that perfectly good tools are used in the wrong way.
All this because I found an USB floppy drive in the attick along with some floppies that were not deceased yet..
Now all I need is an USB ide interface for my BigFoots to be able to see what other damage I have caused in the past...

<shiver>
(D2 was distributed on around 20! floppies)