Comment by saagarjha
2 years ago
Maybe my mind has already gone insane but I’m reading the part where the company is using the language “cleverly” and all I’m seeing is software engineering practices being applied to a language to make it scale across large projects. Sure, you can be upset that the language sucks or whatever, but given that you have a bunch of legacy code in a language that doesn’t have modern affordances, these all seem very reasonable and in some cases almost admirable. I’ve been in codebase with similarly poor languages (BASIC, C, assembly) and doing things like imposing “namespaces” or refactoring code into “modules” within the confines of what your tools let you do would have been very helpful.
It sounds a lot like a FoxPro codebase I worked with. Mumps predates FoxPro by 15-20 years but some constraints applied to FoxPro that are silly now, especially 8 character DOS filenames. Both languages let you build a string that you then use as a function name and have a form of "eval". In both cases, namespaces are absent and made up for by code letters and lookup tables. In FoxPro 2.x, tables were named by their filenames. Code was shared between projects by using a 2 letter code to different the parts that were project specific. It was WTF-inducing for me at the time, coming from C++ and Pascal, but it made sense at the time. Those applications were quite fast on very limited hardware, probably 286s when the project was started.