在我的第一个工作场所中,我们在PDP 11克隆(TPA 440)上使用了Digital Standard MUMPS,然后在90年代初左右,我们切换到了运行在HP-UX 9惠普机器上的Micronetics Standard MUMPS。
MUMPS还在吗?有没有人使用它?如果是,请写一些有关它的信息:您是否在字符模式下使用它,它是否充当Web服务器?等(我的意思也是Caché。)
如果您曾经使用它,您对此有什么感觉?你喜欢吗?
在我的第一个工作场所中,我们在PDP 11克隆(TPA 440)上使用了Digital Standard MUMPS,然后在90年代初左右,我们切换到了运行在HP-UX 9惠普机器上的Micronetics Standard MUMPS。
MUMPS还在吗?有没有人使用它?如果是,请写一些有关它的信息:您是否在字符模式下使用它,它是否充当Web服务器?等(我的意思也是Caché。)
如果您曾经使用它,您对此有什么感觉?你喜欢吗?
Answers:
Intersystems出售MUMPS衍生产品:http : //www.intersystems.com
MUMPS中一些最有趣的人可能在这里:http ://www.outoftheslipstream.com/
几年前,我开始写有关Cache(MUMPS衍生产品)的博客:http ://cachetastic.blogspot.com/ (但后来换了工作)
离开这个世界已经有两年了,我的想法是NoSQL运动可能是MUMPS发生的最好和最糟糕的事情。最终,它有可能为自己辩护并杀死它。因为某个时候,有人将几乎完全重塑MUMPS的数据库和查询结构,但与MUMPS传统没有任何联系。然后人们会对这个新的存储系统赞不绝口。但是没有人会再次选择MUMPS衍生工具。
例如,一两个月前,我正在与一位同事讨论使用Redis在我们的Django应用程序中缓存某些内容的查询。我们有大量的记录,这些记录由三个键中的三个键来解决,因此需要快速获取与其中一个或两个键匹配的子集(但在不同时间具有不同的组合)。
这是MUMPS早餐吃的东西。但是我们发现很难挤入redis的键值对结构。即使有字典。(memcached等也是如此。)我一生中第一次发现自己实际上后悔自己无法在Cache ObjectScript中编写此模块。
有关Cache的其他一些想法:
良好:http : //cachetastic.blogspot.com/2008/07/ok-after-mentioning-some-bad-things.html
错误的:http : //cachetastic.blogspot.com/2008/07/some-mumps-dissing-and-more-positive.html
有趣的明星应该提到Redis。实际上,我已经使用Mumps(包括Cache和GT.M)对Redis的几乎所有行为进行了反向工程。模拟其简单和基本的键/值对结构和API简直是小菜一碟,而我测试过的Redis客户端甚至都不知道他们是在与Mumps数据库对话,而不是在与正确的Redis对话。
但是,就像interstar所说的那样,Mumps数据库在数据结构方面具有更多的功能(实际上,Mumps数据库可以轻松模拟所有4种NoSQL数据库类型:键/值,表格,文档和图形,还可以进行建模关系数据库和对象数据库-如果需要的话,一次完成),并在内存和磁盘之间进行适当的整理和自动平衡。与已经使用了几年的NoSQL数据库不同,Mumps技术已经成熟,经过尝试,经过测试,得到了良好的支持,并且具有可用的分析和管理软件包,并且具有许多NoSQL数据库(例如CouchDB)将要牺牲的性能。 。
那么,为什么不让Cache和GT.M的供应商大力推动NoSQL市场,而不是像您所说的那样让别人重新发明轮子呢?
关于旧的关于语言的争吵以及维基百科站点上古老而过时的示例的使用:
a)如果您愿意,可以选择您的宠物性感现代语言访问腮腺炎数据库
b)这种编程风格是随方舟而生的,其编写之时就是为了从处理能力比手表中的芯片要低的PDP计算机中获得惊人的性能。实际上,现代Mumps编码的样式与Python非常相似,并且可以保持简洁,可读性和可维护性。
c)像任何语言一样,您可以找到很好的例子,而且很糟糕。不要假设Mumps编码必须像Wikipedia网站上的示例一样不透明且过时。
..和梅森,我的结论是,也许您对数据库的了解不如您想象的那样!:-)如果您一生中曾接受过任何形式的医疗,则您的信息将一直通过众多的Mumps系统进行检查,包括管理请求测试的系统。您日报的内容可能是由Mumps系统管理的,甚至您在网上订购的披萨也可能是通过Mumps系统管理的。您可能已经运往国外的物品的物流可能是通过Mumps系统管理的,如果您碰巧是需要一些高档金属或陶瓷的研究人员,则可能会通过Mumps系统订购它们。
您很少听说实际上是一个令人惊讶的普遍数据库的原因之一是,供应商通常直接与应用程序/系统开发人员打交道,而不是与最终用户打交道,因此数据库通常是在后台嵌入产品中的。
MUMPS非常活跃。它一直是最值得信赖的系统之一。编程人员通常很少,而且正常运行时间令人印象深刻。MUMPS似乎很笨拙,但可能只需很少的按键就可以编写非常清晰和功能强大的代码,而MUMPS支持的数据结构使其在各种不同的体系结构中都非常强大和可移植。所有弗吉尼亚州的医院都在使用MUMPS,在大多数情况下,平均修复时间非常快。可以从Source Forge轻松下载用MUMPS编写的VistA系统,并且提供了VistA和MUMPS的多模式性质(可以通过多种方式访问数据库,包括滚动和滚动,瘦客户端,浏览器或RPC或其他程序接口)。通过许多研究它的人。MUMPS是一种简单的语言,具有很少的命令和一种数据类型。它很容易学习,因为它是一种解释语言,可以使堆栈和符号表保持完整,以准确查看应用程序停止调试时的情况。VistA已用于运营国防部医院(综合医疗体系,CHCS)以及印度卫生局(IHS RPMS),并且曾经由美国公共卫生局使用。它为该国节省了数百万美元的运营成本。MUMPS几乎可以在任何设备上运行。它可以轻松地对几乎任何其他数据库模型进行建模,并提供令人惊讶的快速访问数据库。MUMPS模型实际上可以在系统上有更多用户时获得更快的性能(在某些情况下,由于MUMPS的缓存方面,查找数据块所需的指针块已经在内存中,并且不需要再次获取它们,顺便说一句,MUMPS的指针开销仅运行大约2%,因此大多数数据库是实际的用户数据)。MUMPS最初被编写为在2K机器上运行。新技术的冲击只是将MUMPS环境的全部功能扩展到了一个领域,整个医院现在都在低成本的商品服务器上运行。早期,MUMPS脱离了硬件,并从该决定中受益匪浅。我们不用担心字的大小或精度,或多少或多少。数据库的绑定较晚,并且会随着特定记录的需要而增长。任何数据库中的记录都不会超过所需的大小。可以根据记录的一部分或整个记录来扩展或修剪数据库。MUMPS还在吗?不用在PDP-11 / 34上获得8个用户,而是可以在办公桌下面的台式PC上获得数百个用户。它被用于银行,欧洲证券交易所,旅游业(酒店和预订代理商),一些汽车配件厂以及大多数成功的医院(商业,私人或社区)以某种形式运行MUMPS。弗吉尼亚州目前有超过30亿的患者超过30年的病史。除了波士顿的贝丝以色列/女执事医院在其自己的MUMPS系统中拥有超过35年的治疗成果外,这本身就是其他医疗保健系统无法实现的。完全正确?不用在PDP-11 / 34上获得8个用户,而是可以在办公桌下面的台式PC上获得数百个用户。它被用于银行,欧洲证券交易所,旅游业(酒店和预订代理商),一些汽车配件厂以及大多数成功的医院(商业,私人或社区)以某种形式运行MUMPS。弗吉尼亚州目前有超过30亿的患者超过30年的病史。除了波士顿的贝丝以色列/女执事医院在其自己的MUMPS系统中拥有超过35年的治疗成果外,这本身就是其他医疗保健系统无法实现的。完全正确?不用在PDP-11 / 34上获得8个用户,而是可以在办公桌下面的台式PC上获得数百个用户。它被用于银行,欧洲证券交易所,旅游业(酒店和预订代理商),一些汽车配件公司以及大多数成功的医院(商业,私人或社区)以某种形式运行MUMPS。弗吉尼亚州目前有超过30亿的患者超过30年的病史。除了波士顿的贝丝以色列/女执事医院在其自己的MUMPS系统中拥有超过35年的治疗成果外,这本身就是其他医疗保健系统无法实现的。旅游行业(酒店和预订代理商),一些汽车配件公司以及大多数成功的医院(商业,私人或社区)都以某种形式运行MUMPS。弗吉尼亚州目前有超过30亿的患者超过30年的病史。除了波士顿的贝丝以色列/女执事医院在其自己的MUMPS系统中拥有超过35年的治疗成果外,这本身就是其他医疗保健系统无法实现的。旅游行业(酒店和预订代理商),一些汽车配件公司以及大多数成功的医院(商业,私人或社区)都以某种形式运行MUMPS。弗吉尼亚州目前有超过30亿的患者超过30年的病史。除了波士顿的贝丝以色列/女执事医院在其自己的MUMPS系统中拥有超过35年的治疗成果外,这本身就是其他医疗保健系统无法实现的。
VistA(退伍军人健康信息系统和技术架构)仍在积极开发中:http : //en.wikipedia.org/wiki/VistA_EMR
我也是g.tm的新手,但我可以回答这个问题:
是的,腮腺炎还活着。仍然有人在努力。这里有些例子 :
http://georgejames.com/,谁在gt.m中编写了Openstreetmap api服务器,现在我正在学习。
现在也有适用于g.tm的现代企业网络工具 http://gradvs1.mgateway.com/main/
最后一个证明它还存在的证据是它已经移植到最新的GNU / linux和云平台上。
麦克风
Epic Systems是从事病历工作的大型公司之一,仍在其应用程序中使用MUMPS。
您应该阅读以下内容:
http://thedailywtf.com/Articles/A_Case_of_the_MUMPS.aspx
关于MUMPS。
另一方面,我在DC区域工作,并且相当定期地遇到人们,不仅知道他们经常在MUMPS工作。
Interstar的示例正确编写为使用功能:
f ;
new x
set x=$$g()
write x
quit
g()
new x
set x = 5
quit x
do f
f
是用do调用的过程。在这种情况下,如果它没有形式参数,则不需要()
。一个过程只是退出而不会返回任何东西。
g()
另一方面是一种功能。新产品x
对于正确确定范围至关重要x
。通过在函数名称之前添加函数,$$
然后在QUIT后面添加返回值来调用函数。函数必须声明一个正式的参数列表,即使它在这里是空的也是如此。实际上,您可以这样编写以下实例g()
:
g()
quit 5
现在一切都将正常运行。由于某些原因,许多Mumps开发人员似乎并未注意到或理解功能的存在,也不了解它们与过程之间的区别。我认为这就是为什么刚接触腮腺炎的人大惊小怪的原因之一(不足为奇)-那里有很多可怕的代码。
如上所示,它们都是非常干净且受人尊敬的东西。但是,由程序员来明确在函数和过程中定义变量的范围。忽略它们,它们将是全球性的并且无处不在。诀窍是在隔离运行时构建和测试每个功能,并确保它们仅依赖于形式参数,并且仅依赖它们的形式参数,并且在完成后不留下任何东西。