<story><title>The Worst Programming Environment in the World?</title><url>https://github.com/jloughry/BANCStar/blob/master/README.md</url></story><parent_chain><item><author>rwmj</author><text>Kind of reminds me of MUMPS, which is a real bunch of crazy that I had to use for a time.&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/MUMPS&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;en.wikipedia.org&amp;#x2F;wiki&amp;#x2F;MUMPS&lt;/a&gt;&lt;p&gt;Edit: The examples on the wikipedia page make it look less crazy than it is.  For example every keyword can be abbreviated to a single letter, and &lt;i&gt;was&lt;/i&gt; abbreviated to a single letter in the code I had to read.  Also, each variable is connected to a global database which (in 1990) had no ACID properties or staging system, so better hope your undebugged program didn&amp;#x27;t delete any patient data (or worse, randomly modify it).</text></item></parent_chain><comment><author>x0x0</author><text>oh, and if we&amp;#x27;re discussing a certain emr company in madison...&lt;p&gt;in the beginning, in the 70s or so, ram was very tight and the source was interpreted, not compiled; variable names were shortened to save memory.  So the oldest core routines have single letter variable names&lt;p&gt;variables aren&amp;#x27;t declared; when you use a name, the interpreter just travels up the call stack looking for somewhere that variable is defined.  so if you accidentally use the wrong name, especially with the strong bias to very short variable names, in nested enough code you will find that variable.  This led to some amazing bugs&lt;p&gt;the prefix of the command to delete a node in the internal db (really just global sparse arrays) deleted everything.  A coworker fat fingered that in a customer&amp;#x27;s prod systems and took down a hospital chain you&amp;#x27;ve heard of.  I just heard him wail, &amp;quot;Oh SHIT&amp;quot; and sprint out of our office; I later found out he ran for the recovery team.&lt;p&gt;they also had 15mm lines of vb6&lt;p&gt;oh, and they love h1b slave labor.  Bring them over, abuse them, threaten to fire them if they don&amp;#x27;t work their asses off, and leave them with no transferable job skills.  I presume the ceo uses her billions to salve her conscience.</text></comment>
<story><title>The Worst Programming Environment in the World?</title><url>https://github.com/jloughry/BANCStar/blob/master/README.md</url></story><parent_chain><item><author>rwmj</author><text>Kind of reminds me of MUMPS, which is a real bunch of crazy that I had to use for a time.&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/MUMPS&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;en.wikipedia.org&amp;#x2F;wiki&amp;#x2F;MUMPS&lt;/a&gt;&lt;p&gt;Edit: The examples on the wikipedia page make it look less crazy than it is.  For example every keyword can be abbreviated to a single letter, and &lt;i&gt;was&lt;/i&gt; abbreviated to a single letter in the code I had to read.  Also, each variable is connected to a global database which (in 1990) had no ACID properties or staging system, so better hope your undebugged program didn&amp;#x27;t delete any patient data (or worse, randomly modify it).</text></item></parent_chain><comment><author>perturbation</author><text>Every time they have an &amp;quot;X language is terrible&amp;quot; link, people slag off MUMPS.  I program in a modern variant of MUMPS almost every day.  It &lt;i&gt;can&lt;/i&gt; be obfuscated as in the examples, but with proper programming practice (conventions for declaring variables, function names, &lt;i&gt;not&lt;/i&gt; using goto where not appropriate, etc.) it&amp;#x27;s really not all that bad.&lt;p&gt;What I miss the most from other programming languages are features like public&amp;#x2F;private variables&amp;#x2F;methods, objects&amp;#x2F;classes + inheritance, type-checking, first-class functions, etc.  (It does support try-catch and exception handling, however.)  Even the above gripes aren&amp;#x27;t entirely 100%, as Intersystems extended MUMPS to have object-oriented features with Cache Objectscript, however, no one uses these so as not to be locked in to one vendor&amp;#x27;s non-standard implementation of the lagnguage.  When comparing to say, Fortran-77, there&amp;#x27;s just no contest in my mind- out of everything I&amp;#x27;ve programmed in, including VB, I hate Fortran by far the most.</text></comment>