ti-enxame.com

MUMPS está vivo?

No meu primeiro local de trabalho, estávamos usando o Digital Standard CAXUMBA em um clone PDP 11 (TPA 440), depois mudamos para o Micronetics Standard MUMPS em execução em um Máquina Hewlett-Packard, HP-UX 9, por volta dos anos 90.

MUMPS ainda está vivo? Alguém está usando? Se sim, escreva algumas palavras sobre o assunto: você o está usando no modo de caractere, ele funciona como servidor da web? etc. (também quero dizer Caché.)

Se você já o usou, quais foram seus sentimentos? Você gostou?

11
ern0

A Intersystems vende um derivado de MUMPS: http://www.intersystems.com

Algumas das pessoas mais interessantes do MUMPS provavelmente estão aqui: http://www.outoftheslipstream.com/

Comecei a blogar sobre o cache (o derivado do MUMPS) há alguns anos: http://cachetastic.blogspot.com/ (mas depois mudei de emprego)

Tendo saído desse mundo por alguns anos, meu pensamento é que o movimento NoSQL é provavelmente a melhor e a pior coisa que aconteceu ao MUMPS. Em última análise, é provável que o reivindique e o mate. Porque alguém, em algum momento, reinventará o banco de dados e a estrutura de consultas do MUMPS quase de forma idêntica, mas sem conexão com a tradição do MUMPS. Então as pessoas vão se deliciar com esse novo sistema de armazenamento. Mas ninguém jamais escolherá um derivado do MUMPS novamente.

Por exemplo, um mês ou dois atrás, eu estava conversando com um colega sobre o uso de redis para armazenar em cache uma pesquisa de algo em nosso aplicativo Django. Tivemos um grande número de registros endereçados por um triplo de três chaves e necessário obter rapidamente subconjuntos que correspondam a uma ou duas dessas chaves (mas combinações diferentes em momentos diferentes).

Esse é o tipo de coisa que o MUMPS come no café da manhã. Mas estávamos achando difícil entrar na estrutura de pares de valores-chave da redis. Mesmo com dicionários. (O mesmo aconteceria com o memcached, etc.) Pela primeira vez na minha vida, me senti realmente lamentando não poder escrever este módulo no Cache ObjectScript.

Mais algumas reflexões sobre o cache aqui:

Bom: http://cachetastic.blogspot.com/2008/07/ok-after-mentioning-some-bad-things.html

Ruim: http://cachetastic.blogspot.com/2008/07/some-mumps-dissing-and-more-positive.html

11
interstar

Interstar engraçado deve mencionar Redis. Na verdade, eu fiz engenharia reversa de quase todo o comportamento do Redis usando o Mumps (tanto o Cache quanto o GT.M). Emular sua estrutura simplista e básica de pares de chave/valor e APIs tem sido fácil e os clientes Redis que eu testei nem sabem que estão conversando com um banco de dados Mumps em vez dos Redis adequados.

No entanto, como diz a interstar, o banco de dados Mumps é capaz de muito mais em termos de estrutura de dados (na verdade, um banco de dados Mumps pode emular facilmente todos os quatro tipos de banco de dados NoSQL: chave/valor, tabular, documento e gráfico, e também pode modelar dbs relacionais e de objetos - todos de uma vez, se necessário), e o equilíbrio corretamente classificado e automático entre a memória e o disco. Ao contrário dos bancos de dados NoSQL que existem há apenas alguns anos, as tecnologias Mumps são maduras, experimentadas, testadas, bem suportadas e têm pacotes de análise e administração disponíveis e têm o tipo de desempenho pelo qual muitos bancos de dados NoSQL, como o CouchDB, morreriam. .

Então, por que os fornecedores de Cache e GT.M não estão promovendo muito o mercado NoSQL, em vez de permitir que alguém reinvente a roda como você diz?

Quanto à velha e cansada briga sobre o idioma e o uso desse exemplo antigo e ultrapassado do site da Wikipedia:

a) O banco de dados Mumps pode ser acessado por sua linguagem moderna e sensual, se você quiser

b) esse estilo de programação saiu com a ark e foi escrito na época para extrair um desempenho incrível dos computadores PDP que tinham menos poder de processamento do que o chip do seu relógio. A codificação moderna do Mumps é realmente muito semelhante em estilo a Python e pode ser igualmente limpa, legível e mantida.

c) Como em qualquer idioma, existem bons exemplos e terríveis. Não assuma que a codificação do Mumps precisa ser tão opaca e antiquada quanto o exemplo no site da Wikipedia.

..e Mason, minha conclusão seria que talvez você não esteja tão familiarizado com o cenário do banco de dados quanto pensava! :-) Se você já teve alguma forma de tratamento médico em sua vida, suas informações passaram por vários sistemas Mumps ao longo do caminho, incluindo aqueles que gerenciam a solicitação de seus testes. O conteúdo do seu jornal diário pode ser gerenciado por um sistema Mumps e até a pizza que você pediu on-line provavelmente também foi por meio de um sistema Mumps. A logística dos itens que você pode ter enviado para o exterior provavelmente foi gerenciada por um sistema Mumps, e se você era um pesquisador que precisava de alguns metais ou cerâmicas sofisticadas, provavelmente os encomendaria por meio de um sistema Mumps.

Uma das razões pelas quais você raramente ouve sobre o que é realmente um banco de dados surpreendentemente difundido é que os fornecedores tradicionalmente lidam diretamente com os desenvolvedores de aplicativos/sistemas, e não com os usuários finais; portanto, o banco de dados geralmente é incorporado nos bastidores dos produtos.

9
Rob

MUMPS está muito vivo. Tem sido um dos sistemas mais dignos de confiança que está nas mãos apropriadas. A equipe de programação geralmente é pequena e o tempo de atividade é impressionante. Pode parecer aos não iniciados que o MUMPS é obtuso, mas é possível escrever código muito lúcido e altamente funcional em muito poucos toques de tecla, e as estruturas de dados suportadas pelo MUMPS o tornam extremamente poderoso e transportável em várias arquiteturas diferentes. Todos os hospitais VA estão usando MUMPS e o tempo médio de reparo é muito rápido na maioria dos casos. O sistema Vista escrito em MUMPS é facilmente baixado do Source Forge e do polimodal nature (o banco de dados pode ser acessado de várias maneiras, rolar e rolar, thin client, navegador ou RPC ou outra interface de programa) do Vista e do MUMPS é oferecido a muitos que se interessam por ele. O MUMPS é uma linguagem simples, com poucos comandos e um tipo de dados.É fácil aprender porque é uma linguagem interpretada e deixa a pilha e a tabela de símbolos intactas para ver exatamente o que estava acontecendo quando o aplicativo parou para depuração.O Vista foi usado para executar os hospitais do Departamento de Defesa (Composite Health Care System, CHCS), bem como o Serviço de Saúde da Índia (IHS RPMS), e já foi usado pelo Serviço Público de Saúde dos EUA. Economizou milhões de dólares em custos operacionais para o país. O MUMPS funciona com quase tudo. Ele modela quase qualquer outro modelo de banco de dados com facilidade e fornece s acesso surpreendentemente rápido aos bancos de dados. O modelo MUMPS pode realmente obter um desempenho mais rápido com mais usuários no sistema (em alguns casos, devido aos aspectos de cache do MUMPS, nos quais os blocos de ponteiro necessários para encontrar um bloco de dados já estão na memória e não precisam ser buscados novamente , BTW, a sobrecarga do ponteiro para MUMPS é executada em cerca de 2%, portanto, a maior parte do seu banco de dados são dados reais do usuário). MUMPS foi originalmente escrito para rodar em uma máquina 2K. O ataque de novas tecnologias apenas expandiu todos os recursos do ambiente MUMPS para um domínio em que hospitais inteiros agora estão sendo executados em servidores de baixo custo. No início, o MUMPS se divorciou do hardware e se beneficiou muito bem dessa decisão. Não nos preocupamos com o tamanho ou a precisão do Word, nem com quantos ou com que tamanho. O banco de dados está atrasado e aumenta conforme o registro específico precisa. Nenhum registro em qualquer banco de dados é maior do que precisa. O banco de dados pode ser expandido ou removido como parte de um registro ou como um registro inteiro. O MUMPS ainda está por aí ?, você apostou? Em vez de obter 8 usuários em um PDP-11/34, você pode obter algumas centenas de usuários no PC de mesa embaixo da sua mesa. Ele está sendo usado no setor bancário, na Bolsa de Valores Européia, na indústria de viagens (agentes de hotéis e reservas), em algumas casas de autopeças e nos hospitais mais bem-sucedidos (comerciais, privados ou comunitários) executando o MUMPS de alguma forma. Atualmente, o VA tem mais de 30 anos de histórico de resultados para seus mais de 9 milhões de pacientes. Isso por si só é algo que nenhum outro sistema de saúde conseguiu, exceto o Beth Israel/Deaconess Hospital em Boston que possui mais de 35 anos de resultados em seu sistema MUMPS construído em casa.

6
Chris Richardson

existem algumas perguntas sérias sobre caxumba no SO:

https://stackoverflow.com/questions/tagged/mumps

6
Colin Pickard

Sim, o MUMPS está muito vivo. Boa parte dos hospitais VA nos Estados Unidos usa MUMPS.

4
Kavet Kerek

O Vista (Sistemas de Informação de Saúde para Veteranos e Arquitetura de Tecnologia) ainda está em desenvolvimento: AFAIK: http://en.wikipedia.org/wiki/Vista_EMR

4
slu

Eu também sou novo no g.tm, mas posso responder isso:

Sim, Mumps está vivo. Ainda há pessoas trabalhando nisso. aqui estão alguns exemplos :

http://georgejames.com/ quem escreveu um servidor api Openstreetmap em gt.m que estou aprendendo agora.

Agora também existem ferramentas modernas da Web corporativa para g.tm http://gradvs1.mgateway.com/main/

e a última prova de que ele está vivo é que foi portado para as mais recentes plataformas GNU/linux e cloud.

mike

3
h4ck3rm1k3

Uma das grandes empresas que trabalham em registros médicos, Epic Systems , ainda usa MUMPS em suas aplicações.

2
Steve Wranovsky

exemplo da Interstar escrito corretamente para usar funções:

f ;   
  new x  
  set x=$$g()  
  write x  
  quit  

g()  
  new x  
  set x = 5  
  quit x  

do f  

f é um procedimento que é chamado com um do. Se, como neste caso, não tiver parâmetros formais, você não precisará do (). Um procedimento é encerrado e não retorna nada.

g() por outro lado, é uma função. O novo x é crucial para o escopo correto x. Uma função é invocada precedendo seu nome com $$ E é encerrada com um valor de retorno. Uma função deve ter uma lista formal de parâmetros declarada, mesmo que esteja vazia como aqui. Na verdade, você pode escrever esta instância de g() da seguinte maneira:

g()  
 quit 5

Tudo se comportará perfeitamente agora. Por alguma razão, muitos desenvolvedores do Mumps parecem não ter percebido ou compreendido a existência de funções ou entendido a diferença entre eles e os procedimentos. Eu acho que essa é uma das razões pelas quais as pessoas novas no Mumps jogam as mãos para cima horrorizadas (sem surpresa) - há um monte de códigos terríveis por aí.

Escrito como mostrado acima, é tudo bastante limpo e respeitável. No entanto, cabe ao programador definir explicitamente o escopo das variáveis ​​nas funções e procedimentos. Deixe-os de fora e eles serão globais e vazarão em todos os lugares. O truque é criar e testar cada função à medida que você se isolar e garantir que elas dependam apenas de seus parâmetros formais e, quando concluídas, não deixem nada para trás.

1
Rob

Bem, eu nunca ouvi falar de alguém usando, em qualquer contexto ou por qualquer motivo, exceto no The Daily WTF. Que conclusões podem ser tiradas disso dependem do leitor. ;)

1
Mason Wheeler

Você deve ler isto:

http://thedailywtf.com/Articles/A_Case_of_the_MUMPS.aspx

sobre MUMPS.

Por outro lado, trabalho na área DC e encontro pessoas regularmente) que não apenas sabem em que MUMPS elas trabalham nela com freqüência.

1
Bill Leeper