Today I was helping to finish converting a massive application (500,000+ lines of code, without counting custom components) from a multi-tier COM based architecture to a single-tier packaged based one, and found a couple of interesting tidbits:

  • One was that among the 1,000+ warnings I was randomly looking at I found a couple of real bugs caused by uninitialized local variables. I don't get developers who let warnings pile up and never look at them.
  • Another think was a classic use of a goto statement. When I noticed the label declaration after the var block of a function my eyes and brain translated it in a variable called label... but after a fraction of a second I was amused to realized this was a real goto in a real program. Pretty save, I have to say, as it was a "goto endofcode" that could have been easily coded using Exit.

Overall, though, I was impressed to be able to make the conversion and help remove the 150KB type library that was cuasing errors on some computers and was comprising hunddreds of interfaces implemented by a huge numebr of remote data modules... and convert this into runtime packages changing a minimal amount of code (as we kept GUID to identify servers, fake internal registrations, and more more).

As I'm spending some time converting applications from COM architectures, this might be worth a white paper, but that's another story.

PS. I badly want to comment on the new Delphi compiler plans, hope to have time next week, as the last 10 days have been quite hectic.