En mi primer lugar de trabajo, estábamos usando Digital Standard MUMPS en un PDP 11-clone (TPA 440), luego cambiamos a Micronetics Standard MUMPS que se ejecuta en una máquina Hewlett-Packard, HP-UX 9, a principios de los 90.
¿Sigue vivo MUMPS? ¿Hay alguien usándolo? En caso afirmativo, escriba algunas palabras al respecto: ¿lo está utilizando en modo de caracteres, actúa como servidor web? etc. (Me refiero a Caché, también.)
Si lo has usado, ¿qué sentiste al respecto? ¿Te gustó?
No creo que a nadie le gusta algo que se parece a esto . Al menos Perl es expresivo.
imgx64
13
"¿MUMPS está vivo?" - Sí, pero todos los desarrolladores se están matando.
Steven Evers
@ imgx64 Dios que se ve horrible!
TheLQ
No necesita usar la forma abreviada de comandos, "DHSY =% YK% H,% YQ", debe escribir los nombres completos de los comandos (y usar etiquetas / nombres de variables más largos): "Do HourCount Set Year =% YearParam Kill% HourParam ,% YearParam Salir ". Además, después de años de usar un formulario de comando corto, escribí un programa de 20 líneas con comandos largos y variables con nombres largos. A mis colegas se les dijo: "está bien, es una buena broma, pero no lo vuelvan a hacer", fue 10 veces más difícil de leer que los comandos cortos.
Empecé a bloguear sobre Cache (el derivado de MUMPS) hace un par de años: http://cachetastic.blogspot.com/ (pero luego cambié de trabajo)
Después de haber estado fuera de ese mundo durante un par de años, creo que el movimiento NoSQL es probablemente lo mejor y lo peor que le puede pasar a MUMPS. En última instancia, es probable que lo reivindiquen y lo maten. Porque alguien, en algún momento, va a reinventar la base de datos y la estructura de consultas de MUMPS de forma casi idéntica, pero sin conexión con la tradición de MUMPS. Entonces la gente se entusiasmará con este nuevo sistema de almacenamiento. Pero nadie volverá a elegir un derivado de MUMPS.
Por ejemplo, hace un mes o dos, estaba hablando con un colega sobre el uso de redis para almacenar en caché una búsqueda de algo en nuestra aplicación Django. Teníamos una gran cantidad de registros abordados por un triple de tres claves, y necesitábamos obtener rápidamente subconjuntos que coincidan con una o dos de estas claves (pero diferentes combinaciones en diferentes momentos).
Este es el tipo de cosas que MUMPS come en el desayuno. Pero nos resultaba difícil meternos en la estructura clave del par val de redis. Incluso con diccionarios. (Lo mismo sería cierto para memcached, etc.) Por primera vez en mi vida, me arrepiento de no haber podido escribir este módulo en Cache ObjectScript.
La divertida estrella debería mencionar a Redis. De hecho, realicé ingeniería inversa en casi todo el comportamiento de Redis usando Mumps (tanto Cache como GT.M). Emular su estructura de pares clave / valor simplista y básica y las API ha sido pan comido y los clientes de Redis que he probado ni siquiera saben que están hablando con una base de datos de Mumps en lugar de con el Redis adecuado.
Sin embargo, como dice Interstar, la base de datos de Mumps es capaz de mucho más en términos de su estructura de datos (en realidad, una base de datos de Mumps puede emular fácilmente los 4 tipos de bases de datos NoSQL: clave / valor, tabla, documento y gráfico, y también puede modelar DBS relacionales y de objetos, todo a la vez si es necesario), y el equilibrio automático y ordenado adecuadamente entre la memoria y el disco. A diferencia de las bases de datos NoSQL que han existido durante unos pocos años, las tecnologías Mumps son maduras, probadas, probadas, bien respaldadas y tienen paquetes de análisis y administración disponibles, y tienen el tipo de rendimiento que muchas bases de datos NoSQL como CouchDB morirían .
Entonces, ¿por qué los vendedores de Cache y GT.M no están promocionando en el mercado NoSQL en lugar de dejar que alguien reinvente su rueda como usted dice?
En cuanto a las viejas y cansadas disputas sobre el lenguaje y el uso de ese antiguo y anticuado ejemplo del sitio de Wikipedia:
a) La base de datos de paperas puede ser accedida por su mascota, el idioma moderno y atractivo de su elección si lo desea
b) ese estilo de programación salió con el arca, y fue escrito en ese momento para exprimir un rendimiento sorprendente de las computadoras PDP que tenían menos potencia de procesamiento que el chip en su reloj. La codificación moderna de paperas es en realidad muy similar en estilo a Python y puede ser igual de limpia, legible y mantenible.
c) Como cualquier idioma, hay buenos ejemplos que puedes encontrar y terribles. No asuma que la codificación de paperas debe ser tan opaca y anticuada como el ejemplo en el sitio de Wikipedia.
..y Mason, mi conclusión sería que quizás no estés tan familiarizado con el panorama de la base de datos como creías. :-) Si ha recibido algún tipo de tratamiento médico en su vida, su información habrá pasado por innumerables sistemas de paperas, incluidos los que gestionan la solicitud de sus pruebas. El contenido de su periódico diario puede ser administrado por un sistema de paperas e incluso la pizza que ordenó en línea probablemente también fue a través de un sistema de paperas. La logística de los artículos que podría haber enviado al extranjero probablemente se administró a través de un sistema de paperas, y si usted fuera un investigador que necesitaba algunos metales o cerámicas elegantes, probablemente los haya ordenado a través de un sistema de paperas.
Una de las razones por las que rara vez se escucha sobre lo que en realidad es una base de datos sorprendentemente generalizada es que los proveedores tradicionalmente han tratado directamente con los desarrolladores de aplicaciones / sistemas en lugar de usuarios finales, por lo que la base de datos generalmente se integra detrás de escena en los productos.
Creo que el idioma no es malo. No lo intenté, pero debe ser bastante rápido en un hardware moderno. La última versión de MSM era compatible con la programación estructurada: variables locales (nuevo comando), parámetros de función, subrutinas en línea para líneas múltiples. Estábamos muy contentos con estas características, y hemos creado un montón de utilidades: visor de listas, menú, etc. Finalmente, nos quedamos sin pila, por lo que le pedimos a Micronetics que aumentara el tamaño de la pila. Nos compilaron una versión personalizada de MSM de 32 profundidades en lugar de la predeterminada de 16 profundidades.
ern0
1
Para retrasar un poco a Rob, aunque creo que vale la pena prestarle atención al MUMPS db, me pregunto si solo el db, al que se accede desde otro idioma, todavía se puede llamar MUMPS. Cualquiera que elija MUMPS espera poder ejecutar código heredado. Entonces MUMPS, nos guste o no, es igual a db + el lenguaje.
Interstar
2
Como mencioné en otra parte, el verdadero desastre / factor decisivo para el lenguaje es el alcance dinámico. No creo que ningún ingeniero, hoy, pueda justificar la elección de un idioma sin variables locales que permanezcan locales. Por lo tanto, use MUMPS db como un componente de recuadro negro, pero el lenguaje está más allá de la redención y debe detenerse.
interestatal
1
Las paperas tienen un alcance léxico completo de variables: lo ha hecho durante años, ¡pero parece que muchas personas no se han dado cuenta! El código de paperas puede ser tan limpio y de buen comportamiento como cualquier otro idioma. De hecho, Mumps tiene muchas similitudes con Javascript en términos de alcance variable. Por ejemplo, Nuevo en Paperas es, en efecto, lo mismo que var en Javascript. Sin embargo, de forma predeterminada, las variables tienen un alcance global en ambos idiomas.
Rob
1
Robar. Ciertamente no noté el alcance léxico de las variables en la caché. ¿Qué pasa con mi ejemplo en cachetastic.blogspot.com/2008/07/… ? Que utiliza la palabra clave "nuevo", pero NO es la regla de alcance que desea. La x en fy la x en g NO deberían ser la misma variable SIN que g tenga que ocultar explícitamente cualquier x que haya quedado en la pila. Lo mismo convertido en javascript, reemplazando "nuevo" de COS por "var" da correctamente x en f como indefinido.
interstar
6
MUMPS está muy vivo. Ha sido uno de los sistemas más confiables en manos adecuadas. El personal de programación suele ser pequeño y el tiempo de actividad es impresionante. Puede parecer para los no iniciados que MUMPS es obtuso, pero es posible escribir código muy lúcido y altamente funcional en muy pocos golpes de tecla y las estructuras de datos compatibles con MUMPS lo hacen extremadamente poderoso y muy transportable a través de varias arquitecturas diferentes. Todos los hospitales de VA están usando MUMPS y el tiempo medio de reparación es muy rápido en la mayoría de los casos. El sistema VistA escrito en MUMPS se descarga fácilmente desde Source Forge y la naturaleza polimodal (se puede acceder a la base de datos de muchas maneras, roll and scroll, thin client, navegador o RPC, u otra interfaz de programa) de VistA y MUMPS a través de muchos que profundizan en ello. MUMPS es un lenguaje simple con muy pocos comandos y un tipo de datos. Es fácil de aprender porque es un lenguaje interpretado y deja intacta la pila y la tabla de símbolos para ver exactamente lo que estaba sucediendo cuando la aplicación se detuvo para la depuración. VistA se ha utilizado para administrar los hospitales del Departamento de Defensa (Sistema Compuesto de Atención Médica, CHCS), así como el Servicio de Salud Indígena (IHS RPMS), y el Servicio de Salud Pública de EE. UU. Le ahorró al país muchos millones de dólares en costos operativos. MUMPS se ejecuta en casi cualquier cosa. Modela casi cualquier otro modelo de base de datos fácilmente y proporciona un acceso sorprendentemente rápido a las bases de datos. El modelo MUMPS puede obtener un rendimiento más rápido con más usuarios en el sistema (en algunos casos, debido a los aspectos de almacenamiento en caché de MUMPS, donde los bloques de puntero necesarios para encontrar un bloque de datos ya están en la memoria y no es necesario recuperarlos, por cierto, la sobrecarga del puntero para MUMPS se ejecuta solo alrededor del 2%, por lo que la mayor parte de su base de datos son datos reales del usuario). MUMPS se escribió originalmente para ejecutarse en una máquina 2K. La avalancha de nuevas tecnologías solo ha ampliado las características completas del entorno MUMPS en un ámbito donde hospitales completos ahora se ejecutan en servidores de productos básicos de bajo costo. Al principio, MUMPS se divorció del hardware y se ha beneficiado muy bien de esa decisión. No nos preocupamos por el tamaño de la palabra o la precisión, o cuántos o qué tan grandes. La base de datos se enlaza tarde y crece a medida que el registro específico lo necesite. Ningún registro en ninguna base de datos es más grande de lo necesario. La base de datos puede expandirse o podarse como parte de un registro o como un registro completo. ¿MUMPS sigue ahí ?, ¿apostas? En lugar de obtener 8 usuarios en un PDP-11/34, puede obtener un par de cientos de usuarios en la PC de escritorio debajo de su escritorio. Se está utilizando en la Banca, la Bolsa de Valores Europea, la industria de viajes (agentes de hoteles y reservas), algunas casas de autopartes y los hospitales más exitosos (comerciales, privados o comunitarios) están ejecutando MUMPS de alguna forma. El VA actualmente tiene más de 30 años de historias de resultados para sus más de 9 millones de pacientes. Eso en sí mismo es algo que ningún otro sistema de atención médica ha logrado, excepto Beth Israel / Deaconess Hospital en Boston que tiene más de 35 años de resultados en su sistema MUMPS construido en casa. ¿puedes apostar? En lugar de obtener 8 usuarios en un PDP-11/34, puede obtener un par de cientos de usuarios en la PC de escritorio debajo de su escritorio. Se está utilizando en la Banca, la Bolsa de Valores Europea, la industria de viajes (agentes de hoteles y reservas), algunas casas de autopartes y los hospitales más exitosos (comerciales, privados o comunitarios) están ejecutando MUMPS de alguna forma. El VA actualmente tiene más de 30 años de historias de resultados para sus más de 9 millones de pacientes. Eso en sí mismo es algo que ningún otro sistema de atención médica ha logrado, excepto Beth Israel / Deaconess Hospital en Boston que tiene más de 35 años de resultados en su sistema MUMPS construido en casa. ¿puedes apostar? En lugar de obtener 8 usuarios en un PDP-11/34, puede obtener un par de cientos de usuarios en la PC de escritorio debajo de su escritorio. Se está utilizando en la Banca, la Bolsa de Valores Europea, la industria de viajes (agentes de hoteles y reservas), algunas casas de autopartes y los hospitales más exitosos (comerciales, privados o comunitarios) están ejecutando MUMPS de alguna forma. El VA actualmente tiene más de 30 años de historias de resultados para sus más de 9 millones de pacientes. Eso en sí mismo es algo que ningún otro sistema de atención médica ha logrado, excepto Beth Israel / Deaconess Hospital en Boston que tiene más de 35 años de resultados en su sistema MUMPS construido en casa. la industria de viajes (agentes de hoteles y reservas), algunas casas de autopartes y los hospitales más exitosos (comerciales, privados o comunitarios) están ejecutando MUMPS de alguna forma. El VA actualmente tiene más de 30 años de historias de resultados para sus más de 9 millones de pacientes. Eso en sí mismo es algo que ningún otro sistema de atención médica ha logrado, excepto Beth Israel / Deaconess Hospital en Boston que tiene más de 35 años de resultados en su sistema MUMPS construido en casa. la industria de viajes (agentes de hoteles y reservas), algunas casas de autopartes y los hospitales más exitosos (comerciales, privados o comunitarios) están ejecutando MUMPS de alguna forma. El VA actualmente tiene más de 30 años de historias de resultados para sus más de 9 millones de pacientes. Eso en sí mismo es algo que ningún otro sistema de atención médica ha logrado, excepto Beth Israel / Deaconess Hospital en Boston que tiene más de 35 años de resultados en su sistema MUMPS construido en casa.
¿Por qué el voto negativo? La pregunta era ¿Sigue vivo MUMPS? ¿Hay alguien usándolo? - seguramente esta es evidencia relevante de que alguien está escribiendo seriamente un nuevo código y / o aprendiendo MUMPS?
Colin Pickard
4
Sí, MUMPS está muy vivo. Una buena parte de los hospitales de VA en los EE. UU. Usan MUMPS.
@bigown: Por supuesto. Si no, aún no serían pacientes.
Mason Wheeler
4
VistA (Arquitectura de Tecnología y Sistemas de Información de Salud para Veteranos) está AFAIK todavía en desarrollo activo: http://en.wikipedia.org/wiki/VistA_EMR
Eso ... que me HORRIFICÓ. Siento que necesito bañarme ahora. :(
Matt DiTrolio
1
En la era de SQL, es difícil explicar que estos problemas, que ese artículo enumera, son características. Una letra es para la velocidad. Un tipo es mucho mejor que la escritura automática. Etc.
ern0
1
Bueno, nunca he oído hablar de alguien que lo use, en ningún contexto o por cualquier motivo, excepto en The Daily WTF. Las conclusiones que se pueden sacar de esto dependen del lector. ;)
f ;
new x
set x=$$g()
write x
quit
g()
new x
set x = 5
quit x
do f
fes un procedimiento que se invoca con un do. Si, como en este caso, no tiene parámetros formales, no necesita el (). Un procedimiento simplemente se cierra y no devuelve nada.
g()Por otro lado es una función. Lo nuevo xes crucial para un alcance correcto x. Se invoca una función precediendo su nombre con $$y SALE con un valor de retorno. Una función debe tener una lista de parámetros formales declarada incluso si está vacía como aquí. En realidad, podría escribir esta instancia de g()simplemente:
g()
quit 5
Todo se comportará perfectamente ahora. Por alguna razón, muchos desarrolladores de Mumps no parecen haber notado o entendido la existencia de funciones, o no entienden la diferencia entre ellas y los procedimientos. Creo que esta es una de las razones por las cuales las personas nuevas en Mumps levantan sus manos con horror (no es sorprendente): hay muchísimo código terrible por ahí.
Escrito como se muestra arriba, todo es bastante limpio y respetable. Sin embargo, depende del programador explícitamente abarcar variables dentro de funciones y procedimientos. Déjalos fuera y serán globales y se filtrarán por todas partes El truco consiste en construir y probar cada función a medida que avanza de forma aislada y asegurarse de que no dependan de nada más que de sus parámetros formales y, cuando terminen, no dejen nada atrás.
Ahora, una de las razones por las que ve el código de paperas que no usa comandos nuevos y que depende de que las variables sean globales (por lo que se rompe si usa las variables nuevas) es porque se escribió en un momento anterior a las funciones y El alcance léxico se agregó al lenguaje. Desafortunadamente, hay MUCHO código heredado y, sí, termina siendo una pesadilla de mantener, pero ese es el legado para ti. Por otro lado, es bastante posible escribir un código de paperas limpio, moderno y con buen comportamiento, siempre que esté escribiendo cosas nuevas desde cero sin preocuparse de ningún material heredado.
Rob
Mirando su ejemplo original, el valor x, cuando nuevo en el procedimiento f está disponible automáticamente para g, así es como son las paperas. De la misma manera, las personas que están acostumbradas a los lenguajes de sintaxis C se sorprenden cuando descubren que el alcance en Javascript solo se aplica a funciones, y no, por ejemplo, a bucles o bloques internos dentro de una función. Así son las cosas: una vez que lo sabes, lo manejas en consecuencia. Tales idiosincrasias no han impedido que las personas acepten y adopten Javascript.
Rob
Rob: "Mirando su ejemplo original, el valor x, cuando nuevo en el procedimiento f, está automáticamente disponible para g, así es como son las paperas". ¡En efecto! Y eso es lo que significa decir que MUMPS tiene un alcance dinámico y no un alcance léxico. En un lenguaje de ámbito léxico, no necesita tener la "nueva x" en la función g, porque la estructura léxica del programa (es decir, el hecho de que g se define fuera de la definición de f) es suficiente para garantizar que Las x referidas en gyf son dos variables completamente diferentes.
interstar
Robar. En el punto más amplio, que un equipo bien disciplinado de programadores de MUMPS, escribiendo desde cero y usando cuidadosamente "nuevo" para asegurar que todas las variables sean locales, puede evitar los dolores del alcance dinámico. Claro, estoy de acuerdo. Pero, ¿por qué deberíamos necesitar disciplina de hierro y cientos de líneas de código adicionales para replicar lo que cualquier otro lenguaje contemporáneo te ofrece de forma gratuita? Además, si te enfrentas a un código heredado que no se escribió con esta disciplina, es casi imposible ponerlo más tarde, porque no puedes saber si el sistema depende de uno de estos no locales para transmitir información. .
interstar
Existen otros métodos (más antiguos) para separar las variables de subrutina: todos los nombres de variables de las utilidades del sistema comienzan con el signo '%', por lo que están en el "espacio de nombres del sistema". Además, nombrar variables en Nuevo se trata de la velocidad: si usa un comando explícito para insertar variables reutilizadas en la pila, el intérprete no tiene que hacer nada al ingresar a una rutina. Además, puede usar Nuevo, sin parámetros, que oculta todas las variables actuales.
Respuestas:
Intersystems vende un derivado de MUMPS: http://www.intersystems.com
Algunas de las personas más interesantes de MUMPS probablemente estén aquí: http://www.outoftheslipstream.com/
Empecé a bloguear sobre Cache (el derivado de MUMPS) hace un par de años: http://cachetastic.blogspot.com/ (pero luego cambié de trabajo)
Después de haber estado fuera de ese mundo durante un par de años, creo que el movimiento NoSQL es probablemente lo mejor y lo peor que le puede pasar a MUMPS. En última instancia, es probable que lo reivindiquen y lo maten. Porque alguien, en algún momento, va a reinventar la base de datos y la estructura de consultas de MUMPS de forma casi idéntica, pero sin conexión con la tradición de MUMPS. Entonces la gente se entusiasmará con este nuevo sistema de almacenamiento. Pero nadie volverá a elegir un derivado de MUMPS.
Por ejemplo, hace un mes o dos, estaba hablando con un colega sobre el uso de redis para almacenar en caché una búsqueda de algo en nuestra aplicación Django. Teníamos una gran cantidad de registros abordados por un triple de tres claves, y necesitábamos obtener rápidamente subconjuntos que coincidan con una o dos de estas claves (pero diferentes combinaciones en diferentes momentos).
Este es el tipo de cosas que MUMPS come en el desayuno. Pero nos resultaba difícil meternos en la estructura clave del par val de redis. Incluso con diccionarios. (Lo mismo sería cierto para memcached, etc.) Por primera vez en mi vida, me arrepiento de no haber podido escribir este módulo en Cache ObjectScript.
Algunas ideas más sobre el caché aquí:
Bien: http://cachetastic.blogspot.com/2008/07/ok-after-mentioning-some-bad-things.html
Malo: http://cachetastic.blogspot.com/2008/07/some-mumps-dissing-and-more-positive.html
fuente
La divertida estrella debería mencionar a Redis. De hecho, realicé ingeniería inversa en casi todo el comportamiento de Redis usando Mumps (tanto Cache como GT.M). Emular su estructura de pares clave / valor simplista y básica y las API ha sido pan comido y los clientes de Redis que he probado ni siquiera saben que están hablando con una base de datos de Mumps en lugar de con el Redis adecuado.
Sin embargo, como dice Interstar, la base de datos de Mumps es capaz de mucho más en términos de su estructura de datos (en realidad, una base de datos de Mumps puede emular fácilmente los 4 tipos de bases de datos NoSQL: clave / valor, tabla, documento y gráfico, y también puede modelar DBS relacionales y de objetos, todo a la vez si es necesario), y el equilibrio automático y ordenado adecuadamente entre la memoria y el disco. A diferencia de las bases de datos NoSQL que han existido durante unos pocos años, las tecnologías Mumps son maduras, probadas, probadas, bien respaldadas y tienen paquetes de análisis y administración disponibles, y tienen el tipo de rendimiento que muchas bases de datos NoSQL como CouchDB morirían .
Entonces, ¿por qué los vendedores de Cache y GT.M no están promocionando en el mercado NoSQL en lugar de dejar que alguien reinvente su rueda como usted dice?
En cuanto a las viejas y cansadas disputas sobre el lenguaje y el uso de ese antiguo y anticuado ejemplo del sitio de Wikipedia:
a) La base de datos de paperas puede ser accedida por su mascota, el idioma moderno y atractivo de su elección si lo desea
b) ese estilo de programación salió con el arca, y fue escrito en ese momento para exprimir un rendimiento sorprendente de las computadoras PDP que tenían menos potencia de procesamiento que el chip en su reloj. La codificación moderna de paperas es en realidad muy similar en estilo a Python y puede ser igual de limpia, legible y mantenible.
c) Como cualquier idioma, hay buenos ejemplos que puedes encontrar y terribles. No asuma que la codificación de paperas debe ser tan opaca y anticuada como el ejemplo en el sitio de Wikipedia.
..y Mason, mi conclusión sería que quizás no estés tan familiarizado con el panorama de la base de datos como creías. :-) Si ha recibido algún tipo de tratamiento médico en su vida, su información habrá pasado por innumerables sistemas de paperas, incluidos los que gestionan la solicitud de sus pruebas. El contenido de su periódico diario puede ser administrado por un sistema de paperas e incluso la pizza que ordenó en línea probablemente también fue a través de un sistema de paperas. La logística de los artículos que podría haber enviado al extranjero probablemente se administró a través de un sistema de paperas, y si usted fuera un investigador que necesitaba algunos metales o cerámicas elegantes, probablemente los haya ordenado a través de un sistema de paperas.
Una de las razones por las que rara vez se escucha sobre lo que en realidad es una base de datos sorprendentemente generalizada es que los proveedores tradicionalmente han tratado directamente con los desarrolladores de aplicaciones / sistemas en lugar de usuarios finales, por lo que la base de datos generalmente se integra detrás de escena en los productos.
fuente
MUMPS está muy vivo. Ha sido uno de los sistemas más confiables en manos adecuadas. El personal de programación suele ser pequeño y el tiempo de actividad es impresionante. Puede parecer para los no iniciados que MUMPS es obtuso, pero es posible escribir código muy lúcido y altamente funcional en muy pocos golpes de tecla y las estructuras de datos compatibles con MUMPS lo hacen extremadamente poderoso y muy transportable a través de varias arquitecturas diferentes. Todos los hospitales de VA están usando MUMPS y el tiempo medio de reparación es muy rápido en la mayoría de los casos. El sistema VistA escrito en MUMPS se descarga fácilmente desde Source Forge y la naturaleza polimodal (se puede acceder a la base de datos de muchas maneras, roll and scroll, thin client, navegador o RPC, u otra interfaz de programa) de VistA y MUMPS a través de muchos que profundizan en ello. MUMPS es un lenguaje simple con muy pocos comandos y un tipo de datos. Es fácil de aprender porque es un lenguaje interpretado y deja intacta la pila y la tabla de símbolos para ver exactamente lo que estaba sucediendo cuando la aplicación se detuvo para la depuración. VistA se ha utilizado para administrar los hospitales del Departamento de Defensa (Sistema Compuesto de Atención Médica, CHCS), así como el Servicio de Salud Indígena (IHS RPMS), y el Servicio de Salud Pública de EE. UU. Le ahorró al país muchos millones de dólares en costos operativos. MUMPS se ejecuta en casi cualquier cosa. Modela casi cualquier otro modelo de base de datos fácilmente y proporciona un acceso sorprendentemente rápido a las bases de datos. El modelo MUMPS puede obtener un rendimiento más rápido con más usuarios en el sistema (en algunos casos, debido a los aspectos de almacenamiento en caché de MUMPS, donde los bloques de puntero necesarios para encontrar un bloque de datos ya están en la memoria y no es necesario recuperarlos, por cierto, la sobrecarga del puntero para MUMPS se ejecuta solo alrededor del 2%, por lo que la mayor parte de su base de datos son datos reales del usuario). MUMPS se escribió originalmente para ejecutarse en una máquina 2K. La avalancha de nuevas tecnologías solo ha ampliado las características completas del entorno MUMPS en un ámbito donde hospitales completos ahora se ejecutan en servidores de productos básicos de bajo costo. Al principio, MUMPS se divorció del hardware y se ha beneficiado muy bien de esa decisión. No nos preocupamos por el tamaño de la palabra o la precisión, o cuántos o qué tan grandes. La base de datos se enlaza tarde y crece a medida que el registro específico lo necesite. Ningún registro en ninguna base de datos es más grande de lo necesario. La base de datos puede expandirse o podarse como parte de un registro o como un registro completo. ¿MUMPS sigue ahí ?, ¿apostas? En lugar de obtener 8 usuarios en un PDP-11/34, puede obtener un par de cientos de usuarios en la PC de escritorio debajo de su escritorio. Se está utilizando en la Banca, la Bolsa de Valores Europea, la industria de viajes (agentes de hoteles y reservas), algunas casas de autopartes y los hospitales más exitosos (comerciales, privados o comunitarios) están ejecutando MUMPS de alguna forma. El VA actualmente tiene más de 30 años de historias de resultados para sus más de 9 millones de pacientes. Eso en sí mismo es algo que ningún otro sistema de atención médica ha logrado, excepto Beth Israel / Deaconess Hospital en Boston que tiene más de 35 años de resultados en su sistema MUMPS construido en casa. ¿puedes apostar? En lugar de obtener 8 usuarios en un PDP-11/34, puede obtener un par de cientos de usuarios en la PC de escritorio debajo de su escritorio. Se está utilizando en la Banca, la Bolsa de Valores Europea, la industria de viajes (agentes de hoteles y reservas), algunas casas de autopartes y los hospitales más exitosos (comerciales, privados o comunitarios) están ejecutando MUMPS de alguna forma. El VA actualmente tiene más de 30 años de historias de resultados para sus más de 9 millones de pacientes. Eso en sí mismo es algo que ningún otro sistema de atención médica ha logrado, excepto Beth Israel / Deaconess Hospital en Boston que tiene más de 35 años de resultados en su sistema MUMPS construido en casa. ¿puedes apostar? En lugar de obtener 8 usuarios en un PDP-11/34, puede obtener un par de cientos de usuarios en la PC de escritorio debajo de su escritorio. Se está utilizando en la Banca, la Bolsa de Valores Europea, la industria de viajes (agentes de hoteles y reservas), algunas casas de autopartes y los hospitales más exitosos (comerciales, privados o comunitarios) están ejecutando MUMPS de alguna forma. El VA actualmente tiene más de 30 años de historias de resultados para sus más de 9 millones de pacientes. Eso en sí mismo es algo que ningún otro sistema de atención médica ha logrado, excepto Beth Israel / Deaconess Hospital en Boston que tiene más de 35 años de resultados en su sistema MUMPS construido en casa. la industria de viajes (agentes de hoteles y reservas), algunas casas de autopartes y los hospitales más exitosos (comerciales, privados o comunitarios) están ejecutando MUMPS de alguna forma. El VA actualmente tiene más de 30 años de historias de resultados para sus más de 9 millones de pacientes. Eso en sí mismo es algo que ningún otro sistema de atención médica ha logrado, excepto Beth Israel / Deaconess Hospital en Boston que tiene más de 35 años de resultados en su sistema MUMPS construido en casa. la industria de viajes (agentes de hoteles y reservas), algunas casas de autopartes y los hospitales más exitosos (comerciales, privados o comunitarios) están ejecutando MUMPS de alguna forma. El VA actualmente tiene más de 30 años de historias de resultados para sus más de 9 millones de pacientes. Eso en sí mismo es algo que ningún otro sistema de atención médica ha logrado, excepto Beth Israel / Deaconess Hospital en Boston que tiene más de 35 años de resultados en su sistema MUMPS construido en casa.
fuente
Hay un par de preguntas serias sobre las paperas en SO:
/programming/tagged/mumps
fuente
Sí, MUMPS está muy vivo. Una buena parte de los hospitales de VA en los EE. UU. Usan MUMPS.
fuente
VistA (Arquitectura de Tecnología y Sistemas de Información de Salud para Veteranos) está AFAIK todavía en desarrollo activo: http://en.wikipedia.org/wiki/VistA_EMR
fuente
También soy nuevo en g.tm, pero puedo responder esto:
Sí, las paperas están vivas. Todavía hay personas trabajando en ello. Aquí hay unos ejemplos :
http://georgejames.com/ que escribió un servidor api Openstreetmap en gt.m que estoy aprendiendo ahora.
También hay herramientas web empresariales modernas para g.tm http://gradvs1.mgateway.com/main/
y la última prueba de que está vivo es que ha sido portado a las últimas plataformas GNU / linux y en la nube.
Miguel
fuente
Una de las grandes empresas que trabajan en registros médicos, Epic Systems , todavía utiliza MUMPS en sus aplicaciones.
fuente
Deberías leer esto:
http://thedailywtf.com/Articles/A_Case_of_the_MUMPS.aspx
acerca de MUMPS.
Por otro lado, trabajo en el área de DC y me encuentro con personas con bastante regularidad que no solo saben qué MUMPS trabajan con frecuencia.
fuente
Bueno, nunca he oído hablar de alguien que lo use, en ningún contexto o por cualquier motivo, excepto en The Daily WTF. Las conclusiones que se pueden sacar de esto dependen del lector. ;)
fuente
Ejemplo de Interstar escrito correctamente para usar funciones:
f
es un procedimiento que se invoca con un do. Si, como en este caso, no tiene parámetros formales, no necesita el()
. Un procedimiento simplemente se cierra y no devuelve nada.g()
Por otro lado es una función. Lo nuevox
es crucial para un alcance correctox
. Se invoca una función precediendo su nombre con$$
y SALE con un valor de retorno. Una función debe tener una lista de parámetros formales declarada incluso si está vacía como aquí. En realidad, podría escribir esta instancia deg()
simplemente:Todo se comportará perfectamente ahora. Por alguna razón, muchos desarrolladores de Mumps no parecen haber notado o entendido la existencia de funciones, o no entienden la diferencia entre ellas y los procedimientos. Creo que esta es una de las razones por las cuales las personas nuevas en Mumps levantan sus manos con horror (no es sorprendente): hay muchísimo código terrible por ahí.
Escrito como se muestra arriba, todo es bastante limpio y respetable. Sin embargo, depende del programador explícitamente abarcar variables dentro de funciones y procedimientos. Déjalos fuera y serán globales y se filtrarán por todas partes El truco consiste en construir y probar cada función a medida que avanza de forma aislada y asegurarse de que no dependan de nada más que de sus parámetros formales y, cuando terminen, no dejen nada atrás.
fuente