Given that on a previous job I found one that about my then current employer (pretty obvious if you worked there), I can certainly attest to at least some of them being true, even if they sound absurd. (The real story with context was a little less ridiculous, but still seems objectively questionable.)
I'm guilty of putting a JSON language in production.
In my case it's just an if this then that rules engine with a backend that looks kind of like lisp, [eventName, [[action, param]]] is pretty much the whole language, except for a few bits of special syntax in the eventName (=variable>6 to trigger on greater than 6, @every five minutes to trigger every five minutes).
It lets people edit rules visually in a way that anyone can probably use if they can use a spreadsheet.
Sometimes the task needs some hackery to shove it into such a limited language, but I'd rather have boring hacks than elegance backed by lots of in house novelty to maintain.
Reminds me of a place where every screen, dialog and domain object was specified in a single table with hundreds of fields that could only be accessed or changed via a custom app that looked like a primitive DOS spreadsheet app, and often contained pointers to other objects in this table via their line number "pointer". There was a week-long training course when I joined just to explain how this worked.
Oh, and everything in the app was done via messages which were again specified by their line number in the same table as above and processed by a single ginormous switch statement with huge amounts of fall-through being used which led to messages being dealt with in whatever arbitrary order made that work, and which often then sent their own messages in a recursion hell.
They were part-way through updating the app to Win32 when I joined, and apparently gave up that project after I left in 2001, to a new job where the world of Java applets running on the Microsoft JVM seemed like a whole new modern world.
13 comments
[ 7.1 ms ] story [ 41.5 ms ] threadAnything posted on the daily wtf is trying to come off as a real story.
Famous last words.
In my case it's just an if this then that rules engine with a backend that looks kind of like lisp, [eventName, [[action, param]]] is pretty much the whole language, except for a few bits of special syntax in the eventName (=variable>6 to trigger on greater than 6, @every five minutes to trigger every five minutes).
It lets people edit rules visually in a way that anyone can probably use if they can use a spreadsheet.
Sometimes the task needs some hackery to shove it into such a limited language, but I'd rather have boring hacks than elegance backed by lots of in house novelty to maintain.
Look, like mapbox styling runs on "s-expr"-like based languge encoded as JSON arrays: https://github.com/mapbox/mapbox-gl-language#mapboxlanguage
We did it in related project too and worked well enough.
Oh, and everything in the app was done via messages which were again specified by their line number in the same table as above and processed by a single ginormous switch statement with huge amounts of fall-through being used which led to messages being dealt with in whatever arbitrary order made that work, and which often then sent their own messages in a recursion hell.
They were part-way through updating the app to Win32 when I joined, and apparently gave up that project after I left in 2001, to a new job where the world of Java applets running on the Microsoft JVM seemed like a whole new modern world.