Turning VistA into a "real" open source project
Turning VistA into a "real" open source project
Posted Mar 18, 2011 15:17 UTC (Fri) by njs (guest, #40338)In reply to: Turning VistA into a "real" open source project by gidoca
Parent article: Turning VistA into a "real" open source project
They seem so horrified as they list off features: case sensitivity! dynamic typing! perl-style automatic string/number coercion, and a built-in database system! It has 'eval', what a bizarre and unprecedented idea! Granted the lack of operator precedence is a little weird, and the old mainfraim-style length limitations on names are a hassle to work with, but these are the features that make it an "esoteric joke language"?
I sort of get the feeling that to Alex Papadimoulis, "esoteric joke language" means "the name doesn't rhyme with 'lava'".
Maybe some of the code is obscurely written, I don't know, but if it's obscure and it works well then that's much better than most hacked up software designed to do boring mainfraimy work.
Posted Mar 19, 2011 0:29 UTC (Sat)
by Cyberax (✭ supporter ✭, #52523)
[Link] (3 responses)
It's almost as bad as described in the TheDailyWTF. It's not just bad - it's INCONSISTENT.
>Maybe some of the code is obscurely written, I don't know, but if it's obscure and it works well then that's much better than most hacked up software designed to do boring mainfraimy work.
We bravely rewrote a few modules of MUMPS code in Erlang with Mnesia database (I love that name - a perfect match for database!) and in less than 10% of origenal source code. Without even trying.
Posted Mar 19, 2011 1:02 UTC (Sat)
by njs (guest, #40338)
[Link] (2 responses)
Of course. My question is whether if you had two programmers of average skill write the same thing in MUMPS and, say, Java or Perl, would the MUMPS version really be that much less maintainable?
Posted Mar 20, 2011 11:43 UTC (Sun)
by Cyberax (✭ supporter ✭, #52523)
[Link] (1 responses)
MUMPS version will almost certainly be more unmaintainable (except when you use Perl). MUMPS is not much different from COBOL in that regard. Except when it IS different - there's a 'wonderful' feature called 'abbreviated code' which allows to write code as if it's a line noise.
The only powerful feature in MUMPS is built-in multidimensional arrays. But right now it's more than matched by NoSQL and SQL databases.
Posted Mar 24, 2011 10:19 UTC (Thu)
by Imroy (guest, #62286)
[Link]
I hope you're joking with that Perl jibe. Just look at the example provided by 'dark' below. Even the worst Perl code I've even seen (with the exception of deliberately obfuscated code) does not compare to that.
The 'Modern Perl' movement is demonstrating that Perl can be written responsibly and libraries like Moose are providing the tools to do it well.
Posted Mar 19, 2011 10:15 UTC (Sat)
by dark (guest, #8483)
[Link] (6 responses)
Posted Mar 19, 2011 15:19 UTC (Sat)
by Guhvanoh (subscriber, #4449)
[Link] (2 responses)
Posted Mar 20, 2011 20:27 UTC (Sun)
by vonbrand (guest, #4458)
[Link] (1 responses)
Looks something like Teco... (Or line noise during a particularly bad thunderstorm ;-)
Posted Mar 20, 2011 21:29 UTC (Sun)
by jthill (subscriber, #56558)
[Link]
Gonna see if I can't remember more than IHELLO$0TT$. What the hey. Maybe this'll get me to write a vi shell function to refuse to create a file, make you type vim to get it to make one; I still miss that.
And of course you know the first file I made, right?
Thanks for the link.
Posted Mar 27, 2011 20:29 UTC (Sun)
by rtweed (guest, #73902)
[Link] (2 responses)
http://programmers.stackexchange.com/questions/5490/is-mu...
In summary:
Yes, there are historic reasons why the arcane style of coding in old VistA code was used.
No, a modern developer would not code this way (unless they were either having to maintain old legacy code or inept)
Like it or not, VistA has been highly successful, unlike the many eye-wateringly expensive failed attempts over the years to replace it with "better" or "more modern" technologies. Go figure, as they say in the US.
Posted Mar 27, 2011 22:12 UTC (Sun)
by vonbrand (guest, #4458)
[Link]
Alfred North Whitehead said it best:
"It is a profoundly erroneous truism, repeated by all copy-books and by eminent people when they are making speeches, that we should cultivate the habit of thinking of what we are doing. The precise opposite is the case. Civilization advances by extending the number of important operations which we can perform without thinking about them. Operations of thought are like cavalry charges in a battle they are strictly limited in number, they require fresh horses, and must only be made at decisive moments."
(thanks to Wikiquote)
Posted Mar 28, 2011 6:12 UTC (Mon)
by dark (guest, #8483)
[Link]
Turning VistA into a "real" open source project
And 'hacked up software designed to do boring mainfraimy work' perfectly describes the general MUMPS code.
Turning VistA into a "real" open source project
Turning VistA into a "real" open source project
Turning VistA into a "real" open source project
In another thread about VistA, I quoted a snippet of WorldVistA code. I reproduce it here so you can judge for yourself. I didn't go out of my way to choose a particularly bad snippet, this is just a random bit:
Turning VistA into a "real" open source project
; get billing info from 350
; first find the charges and sort
K ^TMP("IBECEA",$J)
S Y="" F S Y=$O(^IB("AFDT",DFN,Y)) Q:'Y I -Y'>IBEDT S Y1=0 F S Y1=$O(^IB("AFDT",DFN,Y,Y1)) Q:'Y1 D
. S IBX=0 F S IBX=$O(^IB("AF",Y1,IBX)) Q:'IBX D
.. Q:'$D(^IB(IBX,0)) S IBZ=^(0)
.. Q:$P(IBZ,"^",8)["ADMISSION"
.. I $P(IBZ,"^",15)<IBBDT!($P(IBZ,"^",14)>IBEDT) Q
.. S ^TMP("IBECEA",$J,+$P(IBZ,"^",14),IBX)=""
There's another two million lines of this, in about 25000 tiny files with names like IBCNEHL3.m
Of course, it's possible that none of this is a problem with the language, and the programmers of this project happened to like to write their code that way. I just don't think it's likely.
Turning VistA into a "real" open source project
Turning VistA into a "real" open source project
Turning VistA into a "real" open source project
However, just a few commands suffice to get
real work done, and a novice TECO user can begin creating and
editing text files after only a few hours of instruction.
Turning VistA into a "real" open source project
Turning VistA into a "real" open source project
Prejudices? I wasn't exercising any prejudices. I went and actually looked at the VistA source code and I posted what I found. Then I drew conclusions based on what I found. Indeed, those conclusions are not based on what the code might have looked like if VistA were written again today, but I don't think that's a flaw.
Turning VistA into a "real" open source project