As someone who maintains an unknown but very large(several MLOC) free Pascal code base, I must say that I can't see much reason in the Pascal hate.
Sure, I would love to rewrite the whole thing in Lisp (which is the language that lets me keep my soul), but we are all in all still very happy with the current code base.
A complete recompile is less than 20 minutes, and then about half that time is spent in guile for macro expansion (we have a macro DSL). We have considered porting it to chez scheme, but we rarely do full recompiles.
Pascal lends itself well to big codebase, but will probably never again be a new cool thing. I do however believe that being able to test a big change on a Dev machine in less than 10s gives us a pretty big advantage over similar solutions in other languages.
Yep. We had a 250k line codebase ten years ago that took 20secs for a full rebuild in Delphi. You could code like a demon. Even 17 years ago it had awesome reflection that let you do some really efficient (lines of code) stuff with generating classes on components.
I would love to try, but I am only seeing oportunities atm. When I think reasonably about it I know that it is a bad idea.
OTOH: We are now at a position where I am pretty sure we are a perfect fit for Greenspun's tenth rule.
The amount of time we spent to make a large part of our code stateless is mind-boggling. We now have the luxury of being able to copy the state of almost 100% of the user-facing stuff and send it back home for us to test. That would have been so much easier with something like Allegro CL.
I have actually implemented a pretty neat macro system in guile scheme that I am in the process of cleaning up for an open source release. We write parethesised, prefix pascal for our macros that gets expanded to regular pascal (easy for most algol-like languages). Having a proper macro system made it possible to remove _a lot_ of boilerplate, even though we primarily use it to generate code that the compiler can optimize easier.
Sure, I would love to rewrite the whole thing in Lisp (which is the language that lets me keep my soul), but we are all in all still very happy with the current code base.
A complete recompile is less than 20 minutes, and then about half that time is spent in guile for macro expansion (we have a macro DSL). We have considered porting it to chez scheme, but we rarely do full recompiles.
Pascal lends itself well to big codebase, but will probably never again be a new cool thing. I do however believe that being able to test a big change on a Dev machine in less than 10s gives us a pretty big advantage over similar solutions in other languages.