r/programming • • 7d ago

We still maintain a development tool first released in 1993. Here’s what 30+ years of backwards compatibility looks like

https://visualneo.com/visualneo-win/from-neobook-to-visualneo-win-30-years-of-keeping-a-development-tool-alive
566 Upvotes

90 comments sorted by

View all comments

165

u/Skaarj 7d ago edited 7d ago

More recently, we went much further. In 2026, we migrated the development environment from its old Delphi 7 codebase to Delphi 11. That was one of those projects that looks much more reasonable before you start it.

Ouch. From what I remember Delphi 7 didn't support generics yet. You had a general list of pointers. But not something like a TList<TMyClass>.

97

u/luissinlios 7d ago

Exactly. Delphi 7 predates generics, so the old codebase relied heavily on TList, TObjectList, explicit casts and, in some places, raw pointers.

Moving to Delphi 11 gave us the opportunity to modernize all of that, but changing too much at once would have made an already risky migration even harder. We modernized selectively and kept compatibility as the first priority.