Sur mon premier lieu de travail, nous utilisions Digital Standard MUMPS sur un clone PDP 11 (TPA 440), puis nous sommes passés à Micronetics Standard MUMPS fonctionnant sur une machine Hewlett-Packard, HP-UX 9, vers le début des années 90.
MUMPS est-il toujours vivant? Y a-t-il quelqu'un qui l'utilise? Si oui, veuillez écrire quelques mots à ce sujet: l'utilisez-vous en mode caractère, agit-il comme serveur Web? etc. (je veux dire Caché aussi.)
Si vous l'avez utilisé, qu'avez-vous ressenti à ce sujet? As-tu aimé?
Je ne pense pas que quiconque aime quelque chose qui ressemble à ça . Perl au moins est expressif.
imgx64
13
"MUMPS est-il vivant?" - Oui, mais tous les développeurs se tuent.
Steven Evers
@ imgx64 Dieu qui a l'air horrible!
TheLQ
Vous n'avez pas besoin d'utiliser la forme abrégée des commandes, "DHSY =% YK% H,% YQ", vous devez écrire des noms de commande complets (et utiliser des noms d'étiquette / de variable plus longs): "Do HourCount Set Year =% YearParam Kill% HourParam ,% YearParam Quit ". De plus, après des années d'utilisation du formulaire de commande court, j'ai écrit un programme de 20 lignes avec des commandes de format long usng et des variables nommées longues. On a dit à mes collègues: "D'accord, c'est une bonne blague, mais ne recommence pas", c'était 10 fois plus difficile à lire que de courtes commandes.
J'ai commencé à bloguer sur Cache (le dérivé de MUMPS) il y a quelques années: http://cachetastic.blogspot.com/ (mais j'ai ensuite changé d'emploi)
Ayant été hors de ce monde pendant quelques années, je pense que le mouvement NoSQL est probablement la meilleure et la pire chose qui puisse arriver à MUMPS. En fin de compte, il est probable à la fois de le justifier et de le tuer. Parce que quelqu'un, à un moment donné, va réinventer la base de données et la structure de requête de MUMPS presque à l'identique, mais sans aucun lien avec la tradition MUMPS. Ensuite, les gens seront ravis de ce nouveau système de stockage. Mais personne ne choisira plus jamais un dérivé MUMPS.
Par exemple, il y a un mois ou deux, je parlais avec un collègue de l'utilisation de redis pour mettre en cache une recherche de quelque chose dans notre application Django. Nous avions un grand nombre d'enregistrements adressés par un triple de trois clés, et nous devions obtenir rapidement des sous-ensembles correspondant à une ou deux de ces clés (mais des combinaisons différentes à des moments différents).
C'est le genre de chose que MUMPS mange pour le petit déjeuner. Mais nous avions du mal à nous écraser dans la clé de redis, la structure de la paire de vals. Même avec des dictionnaires. (Il en serait de même pour memcached, etc.) Pour la première fois de ma vie, je me suis retrouvé à regretter de ne pas avoir pu écrire ce module dans Cache ObjectScript.
Quelques réflexions supplémentaires sur Cache ici:
Une drôle d'interstar devrait mentionner Redis. J'ai en fait inversé l'ingénierie de presque tout le comportement de Redis en utilisant Mumps (à la fois Cache et GT.M). Émuler sa structure de paire clé / valeur simplifiée et de base et ses API a été un jeu d'enfant et les clients Redis que j'ai testés ne savent même pas qu'ils parlent à une base de données Mumps au lieu du Redis approprié.
Cependant, comme le dit interstar, la base de données Mumps est capable de bien plus en termes de structure de données (en fait, une base de données Mumps peut facilement émuler les 4 types de base de données NoSQL: clé / valeur, tableau, document et graphique, et peut également modéliser dbs relationnel et objet - tout à la fois si nécessaire), et l'équilibre correctement trié et automatique entre en mémoire et sur disque. Contrairement aux bases de données NoSQL qui n'existent que depuis quelques années, les technologies Mumps sont matures, testées, testées, bien prises en charge et disposent de packages d'analyse et d'administration disponibles, et offrent le genre de performances pour lesquelles de nombreuses bases de données NoSQL telles que CouchDB pourraient mourir. .
Alors, pourquoi les fournisseurs de Cache et GT.M ne font-ils pas de promotion sur le marché NoSQL plutôt que de laisser quelqu'un réinventer sa roue comme vous le dites?
En ce qui concerne les vieilles querelles fatiguées sur la langue et l'utilisation de cet exemple ancien et dépassé du site Wikipedia:
a) La base de données des oreillons est accessible par la langue moderne sexy de votre animal de compagnie si vous le souhaitez
b) ce style de programmation est sorti avec l'arche, et a été écrit à l'époque comme ça pour comprimer les performances incroyables des ordinateurs PDP qui avaient moins de puissance de traitement que la puce de votre montre. Le codage Modern Mumps est en fait très similaire dans le style à Python et peut être tout aussi propre, lisible et maintenable.
c) Comme toute langue, il existe de bons exemples et de terribles. Ne présumez pas que le codage des oreillons doit être aussi opaque et démodé que l'exemple sur le site Wikipedia.
..et Mason, ma conclusion serait que vous n'êtes peut-être pas aussi familier avec le paysage de la base de données que vous le pensiez! :-) Si vous avez eu une forme de traitement médical dans votre vie, vos informations auront été transmises par le biais de nombreux systèmes d'oreillons en cours de route, y compris ceux qui gèrent la demande de vos tests. Le contenu de votre quotidien peut être géré par un système Oreillons et même la pizza que vous avez commandée en ligne était probablement également via un système Oreillons. La logistique des articles que vous pourriez avoir expédiés à l'étranger a probablement été gérée via un système d'oreillons, et si vous étiez un chercheur qui avait besoin de métaux ou de céramiques de fantaisie, vous les aurez probablement commandés via un système d'oreillons.
L'une des raisons pour lesquelles vous entendez rarement parler d'une base de données étonnamment omniprésente est que les fournisseurs ont traditionnellement traité directement avec les développeurs d'applications / systèmes plutôt qu'avec les utilisateurs finaux, de sorte que la base de données est généralement intégrée dans les coulisses des produits.
Je pense que la langue n'est pas mauvaise. Je n'ai pas essayé mais ça doit être assez rapide sur un matériel moderne. La dernière version de MSM supportait la programmation structurée: variables locales (nouvelle commande), paramètres de fonction, sous-programmes en ligne pour les lignes multiples. Nous étions tellement satisfaits de ces fonctionnalités, et nous avons créé un tas d'utilitaires: visionneuse de liste, menu, etc. Enfin, nous avons manqué de pile, nous avons donc demandé à Micronetics d'augmenter la taille de la pile. Ils nous ont compilé une version personnalisée de MSM à 32 niveaux de profondeur au lieu de la version par défaut à 16 niveaux.
ern0
1
Pour repousser un peu Rob, alors que je pense que la base de données MUMPS mérite une attention particulière, je me demande si seulement la base de données, accessible depuis une autre langue, peut encore être appelée MUMPS. Quiconque choisit MUMPS s'attend à pouvoir exécuter le code hérité. Donc MUMPS, qu'on le veuille ou non, est égal à la base de données + la langue.
interstar
2
Comme je l'ai mentionné ailleurs, le véritable désastre / dealbreaker pour la langue est la portée dynamique. Je ne pense pas qu'un ingénieur, aujourd'hui, puisse justifier le choix d'une langue sans variables locales qui restent locales. Donc, par tous les moyens, utilisez la base de données MUMPS comme composant de boîte noire, mais le langage est au-delà de la rédemption et devrait être mis de côté.
interstar
1
Les oreillons ont une portée lexicale complète des variables - cela fait des années, mais beaucoup de gens ne semblent pas l'avoir remarqué! Le code Mumps peut être aussi propre et bien se comporter que n'importe quel autre langage. En fait, Mumps présente de nombreuses similitudes avec Javascript en termes de portée variable. Par exemple, New in Mumps est, en fait, le même que var dans Javascript. Par défaut, cependant, les variables ont une portée globale dans les deux langues.
Rob
1
Rob. Je n'ai certainement pas remarqué la portée lexicale des variables dans Cache. Qu'en est-il de mon exemple dans cachetastic.blogspot.com/2008/07/… ? Cela utilise le "nouveau" mot clé, mais ce n'est absolument PAS la règle de portée que vous souhaitez. Le x dans f et le x dans g ne devraient PAS être la même variable SANS g avoir à cacher explicitement tout x qui se trouvait sur la pile. La même chose convertie en javascript, remplacer le "nouveau" de COS par "var" donne correctement x en f comme indéfini.
interstar
6
MUMPS est très vivant. Il a été l'un des systèmes les plus dignes de confiance entre de bonnes mains. Le personnel de programmation est généralement petit et le temps de disponibilité est impressionnant. Il peut sembler aux non-initiés que MUMPS est obtus, mais il est possible d'écrire du code très lucide et hautement fonctionnel en très peu de touches et les structures de données prises en charge par MUMPS le rendent extrêmement puissant et très transportable à travers différentes architectures différentes. Tous les hôpitaux VA utilisent MUMPS et le délai moyen de réparation est très rapide dans la plupart des cas. Le système VistA écrit en MUMPS est facilement téléchargeable à partir de Source Forge et la nature poly-modale (la base de données est accessible de plusieurs façons, roll and scroll, client léger, navigateur ou RPC, ou toute autre interface de programme) de VistA et MUMPS vient à travers pour beaucoup de ceux qui s'y plongent. MUMPS est un langage simple avec très peu de commandes et un type de données. Il est facile à apprendre car il s'agit d'un langage interprété et laisse la pile et la table des symboles intactes pour voir exactement ce qui se passait lorsque l'application s'est arrêtée pour le débogage. VistA a été utilisé pour gérer les hôpitaux du Département de la Défense (Composite Health Care System, CHCS) ainsi que l'Indian Health Service (IHS RPMS), et a déjà été utilisé par le US Public Health Service. Il a permis au pays d'économiser plusieurs millions de dollars en coûts d'exploitation. MUMPS fonctionne sur presque tout. Il modélise presque n'importe quel autre modèle de base de données et offre un accès étonnamment rapide aux bases de données. Le modèle MUMPS peut en fait obtenir des performances plus rapides avec plus d'utilisateurs sur le système (dans certains cas, en raison des aspects de mise en cache de MUMPS où les blocs de pointeur nécessaires pour trouver un bloc de données sont déjà en mémoire et n'ont pas besoin d'être récupérés à nouveau, BTW, la surcharge du pointeur pour MUMPS s'exécute à environ 2%, donc la plupart de votre base de données correspond aux données réelles de l'utilisateur). MUMPS a été initialement écrit pour fonctionner sur une machine 2K. L'attaque des nouvelles technologies n'a fait qu'élargir toutes les fonctionnalités de l'environnement MUMPS dans un domaine où des hôpitaux entiers sont désormais gérés sur des serveurs de produits à bas prix. Très tôt, MUMPS s'est séparé du matériel et a très bien profité de cette décision. Nous ne nous soucions pas de la taille des mots ou de la précision, ni du nombre ni de la taille. La base de données se lie tardivement et se développe en fonction des besoins spécifiques de l'enregistrement. Aucun enregistrement dans aucune base de données n'est plus volumineux qu'il ne devrait l'être. La base de données peut être étendue ou élaguée selon une partie d'un enregistrement ou comme un enregistrement entier. Est-ce que MUMPS est toujours là?, Tu parles? Au lieu d'avoir 8 utilisateurs sur un PDP-11/34, vous pouvez obtenir quelques centaines d'utilisateurs sur le PC de bureau sous votre bureau. Il est utilisé dans les banques, la Bourse européenne, l'industrie du voyage (hôtels et agents de réservation), certaines maisons de pièces détachées automobiles et les hôpitaux les plus performants (commerciaux, privés ou communautaires) exploitent MUMPS sous une forme ou une autre. L'AV a actuellement plus de 30 ans d'historique de résultats pour ses plus de 9 millions de patients. C'est en soi quelque chose qu'aucun autre système de santé n'a accompli, à l'exception de l'hôpital Beth Israel / Deaconess de Boston qui a plus de 35 ans de résultats dans son système MUMPS construit à la maison. vous betcha? Au lieu d'avoir 8 utilisateurs sur un PDP-11/34, vous pouvez obtenir quelques centaines d'utilisateurs sur le PC de bureau sous votre bureau. Il est utilisé dans les banques, la Bourse européenne, l'industrie du voyage (hôtels et agents de réservation), certaines maisons de pièces détachées automobiles et les hôpitaux les plus performants (commerciaux, privés ou communautaires) exploitent MUMPS sous une forme ou une autre. L'AV a actuellement plus de 30 ans d'historique de résultats pour ses plus de 9 millions de patients. C'est en soi quelque chose qu'aucun autre système de santé n'a accompli, à l'exception de l'hôpital Beth Israel / Deaconess de Boston qui a plus de 35 ans de résultats dans son système MUMPS construit à la maison. vous betcha? Au lieu d'avoir 8 utilisateurs sur un PDP-11/34, vous pouvez obtenir quelques centaines d'utilisateurs sur le PC de bureau sous votre bureau. Il est utilisé dans les banques, la Bourse européenne, l'industrie du voyage (hôtels et agents de réservation), certaines maisons de pièces détachées automobiles et les hôpitaux les plus performants (commerciaux, privés ou communautaires) exploitent MUMPS sous une forme ou une autre. L'AV a actuellement plus de 30 ans d'historique de résultats pour ses plus de 9 millions de patients. C'est en soi quelque chose qu'aucun autre système de santé n'a accompli, à l'exception de l'hôpital Beth Israel / Deaconess de Boston qui a plus de 35 ans de résultats dans son système MUMPS construit à la maison. l'industrie du voyage (hôtels et agents de réservation), certaines maisons de pièces détachées automobiles et les hôpitaux les plus performants (commerciaux, privés ou communautaires) exploitent MUMPS sous une forme ou une autre. L'AV a actuellement plus de 30 ans d'historique de résultats pour ses plus de 9 millions de patients. C'est en soi quelque chose qu'aucun autre système de santé n'a accompli, à l'exception de l'hôpital Beth Israel / Deaconess de Boston qui a plus de 35 ans de résultats dans son système MUMPS construit à la maison. l'industrie du voyage (hôtels et agents de réservation), certaines maisons de pièces détachées automobiles et les hôpitaux les plus performants (commerciaux, privés ou communautaires) exploitent MUMPS sous une forme ou une autre. L'AV a actuellement plus de 30 ans d'historique de résultats pour ses plus de 9 millions de patients. C'est en soi quelque chose qu'aucun autre système de soins de santé n'a accompli, à l'exception de l'hôpital Beth Israel / Deaconess de Boston qui a plus de 35 ans de résultats dans son système MUMPS construit à la maison.
Pourquoi le downvote? La question était Est-ce que MUMPS est toujours vivant? Y a-t-il quelqu'un qui l'utilise? - c'est sûrement une preuve pertinente que quelqu'un écrit sérieusement du nouveau code et / ou apprend MUMPS?
Colin Pickard
4
Oui, MUMPS est bien vivant. Aux États-Unis, une bonne partie des hôpitaux VA utilisent MUMPS.
Et une bonne partie des patients sont vivants? :-)
Maniero
8
@bigown: Bien sûr. Sinon, ils ne seraient pas encore des patients.
Mason Wheeler
4
VistA (Veterans Health Information Systems and Technology Architecture) est l'AFAIK toujours en développement actif: http://en.wikipedia.org/wiki/VistA_EMR
D'un autre côté, je travaille dans la région de DC et je rencontre des gens assez régulièrement qui savent non seulement ce que MUMPS y font fréquemment.
Ça ... ça m'a HORRIFIÉ. Je sens que je dois me baigner maintenant. :(
Matt DiTrolio
1
Il est difficile d'expliquer à l'ère de SQL que ces problèmes, énumérés dans cet article, sont des fonctionnalités. Une lettre est pour la vitesse. Un type est bien meilleur que la saisie automatique. Etc.
ern0
1
Eh bien, je n'ai jamais entendu parler de quelqu'un l'utilisant, dans n'importe quel contexte ou pour quelque raison que ce soit, sauf sur The Daily WTF. Le lecteur peut en tirer les conclusions. ;)
f ;
new x
set x=$$g()
write x
quit
g()
new x
set x = 5
quit x
do f
fest une procédure qui est invoquée avec un do. Si, comme dans ce cas, il n'a pas de paramètres formels, vous n'avez pas besoin de (). Une procédure se termine et ne renvoie rien.
g()d'autre part est une fonction. La nouvelle xest cruciale pour une portée correcte x. Une fonction est invoquée en précédant son nom de $$et elle QUITTE avec une valeur de retour. Une fonction doit avoir une liste de paramètres formelle déclarée même si elle est vide comme ici. En fait, vous pouvez écrire cette instance g()comme suit:
g()
quit 5
Tout se comportera parfaitement maintenant. Pour une raison quelconque, beaucoup de développeurs de Mumps ne semblent pas avoir remarqué ou compris l'existence de fonctions, ni comprendre la différence entre elles et les procédures. Je pense que c'est l'une des raisons pour lesquelles les nouveaux arrivants à Mumps lèvent la main avec horreur (sans surprise) - il y a énormément de code terrible.
Écrit comme indiqué ci-dessus, tout est assez propre et respectable. Cependant, il appartient au programmeur d'étendre explicitement les variables dans les fonctions et procédures. Laissez-les de côté et ils seront mondiaux et couleront partout. L'astuce consiste à créer et à tester chaque fonction au fur et à mesure et à s'assurer qu'elles ne s'appuient que sur leurs paramètres formels et, une fois terminées, elles ne laissent rien de côté.
Maintenant, l'une des raisons pour lesquelles vous voyez du code Mumps qui n'utilise pas de nouvelles commandes et qui repose sur les variables étant globales (donc il casse si vous créez de nouvelles variables) est parce qu'il a été écrit à un moment dans le passé avant les fonctions et la portée lexicale a été ajoutée à la langue. Malheureusement, il existe BEAUCOUP de code hérité et, oui, cela finit par être un cauchemar à entretenir, mais c'est un héritage pour vous. D'un autre côté, il est tout à fait possible d'écrire du code Mumps propre, moderne et bien comporté, à condition que vous écriviez de nouvelles choses à partir de zéro sans aucune substance héritée.
Rob
En regardant votre exemple d'origine, la valeur x, lorsque new'd dans la procédure f est automatiquement disponible pour g - c'est exactement la façon dont Mumps est. De la même manière, les gens habitués aux langages de syntaxe C sont surpris lorsqu'ils découvrent que la portée en Javascript n'est appliquée qu'aux fonctions, et non, par exemple, aux boucles internes ou aux blocs à l'intérieur d'une fonction. C'est exactement comme ça - une fois que vous le savez, vous le traitez en conséquence. De telles idiosyncrasies n'ont pas empêché les gens d'accepter et d'adopter Javascript.
Rob
Rob: "En regardant votre exemple d'origine, la valeur x, lorsque new'd dans la procédure f est automatiquement disponible pour g - c'est exactement la façon dont Mumps est." En effet! Et c'est ce que cela signifie de dire que MUMPS a une portée dynamique et non une portée lexicale. Dans un langage à portée lexicale, vous n'avez pas besoin d'avoir le "nouveau x" dans la fonction g, car la structure lexicale du programme (c'est-à-dire le fait que g est défini en dehors de la définition de f), est suffisante pour garantir que les x référencés en g et f sont deux variables entièrement différentes.
interstar
Rob. Sur le point plus large, qu'une équipe de programmeurs MUMPS bien disciplinée, écrivant à partir de zéro et utilisant soigneusement "nouveau" pour s'assurer que toutes les variables sont locales, peut éviter les douleurs de la portée dynamique. Bien sûr, je suis d'accord. Mais pourquoi devrions-nous avoir besoin d'une discipline de fer et de centaines de lignes de code supplémentaires, pour reproduire ce que toutes les autres langues contemporaines vous offrent gratuitement? De plus, si vous êtes confronté à un code hérité qui n'a pas été écrit avec cette discipline, il est presque impossible de le mettre plus tard, car vous ne pouvez pas dire si le système s'appuie sur l'un de ces non-locaux pour transmettre des informations .
interstar
Il existe d'autres méthodes (plus anciennes) pour séparer les variables de sous-programme: tous les noms de variables des utilitaires système commencent par le signe «%», ils se trouvent donc dans «l'espace de noms système». De plus, nommer des variables dans New concerne la vitesse: si vous utilisez une commande explicite pour pousser des variables réutilisées sur la pile, l'interpréteur ne doit rien faire lui-même lors de l'entrée dans une routine. Vous pouvez également utiliser Nouveau, sans paramètres, qui masque toutes les variables actuelles.
Réponses:
Intersystems vend un dérivé de MUMPS: http://www.intersystems.com
Certaines des personnes les plus intéressantes de MUMPS sont probablement ici: http://www.outoftheslipstream.com/
J'ai commencé à bloguer sur Cache (le dérivé de MUMPS) il y a quelques années: http://cachetastic.blogspot.com/ (mais j'ai ensuite changé d'emploi)
Ayant été hors de ce monde pendant quelques années, je pense que le mouvement NoSQL est probablement la meilleure et la pire chose qui puisse arriver à MUMPS. En fin de compte, il est probable à la fois de le justifier et de le tuer. Parce que quelqu'un, à un moment donné, va réinventer la base de données et la structure de requête de MUMPS presque à l'identique, mais sans aucun lien avec la tradition MUMPS. Ensuite, les gens seront ravis de ce nouveau système de stockage. Mais personne ne choisira plus jamais un dérivé MUMPS.
Par exemple, il y a un mois ou deux, je parlais avec un collègue de l'utilisation de redis pour mettre en cache une recherche de quelque chose dans notre application Django. Nous avions un grand nombre d'enregistrements adressés par un triple de trois clés, et nous devions obtenir rapidement des sous-ensembles correspondant à une ou deux de ces clés (mais des combinaisons différentes à des moments différents).
C'est le genre de chose que MUMPS mange pour le petit déjeuner. Mais nous avions du mal à nous écraser dans la clé de redis, la structure de la paire de vals. Même avec des dictionnaires. (Il en serait de même pour memcached, etc.) Pour la première fois de ma vie, je me suis retrouvé à regretter de ne pas avoir pu écrire ce module dans Cache ObjectScript.
Quelques réflexions supplémentaires sur Cache ici:
Bon: http://cachetastic.blogspot.com/2008/07/ok-after-mentioning-some-bad-things.html
Mauvais: http://cachetastic.blogspot.com/2008/07/some-mumps-dissing-and-more-positive.html
la source
Une drôle d'interstar devrait mentionner Redis. J'ai en fait inversé l'ingénierie de presque tout le comportement de Redis en utilisant Mumps (à la fois Cache et GT.M). Émuler sa structure de paire clé / valeur simplifiée et de base et ses API a été un jeu d'enfant et les clients Redis que j'ai testés ne savent même pas qu'ils parlent à une base de données Mumps au lieu du Redis approprié.
Cependant, comme le dit interstar, la base de données Mumps est capable de bien plus en termes de structure de données (en fait, une base de données Mumps peut facilement émuler les 4 types de base de données NoSQL: clé / valeur, tableau, document et graphique, et peut également modéliser dbs relationnel et objet - tout à la fois si nécessaire), et l'équilibre correctement trié et automatique entre en mémoire et sur disque. Contrairement aux bases de données NoSQL qui n'existent que depuis quelques années, les technologies Mumps sont matures, testées, testées, bien prises en charge et disposent de packages d'analyse et d'administration disponibles, et offrent le genre de performances pour lesquelles de nombreuses bases de données NoSQL telles que CouchDB pourraient mourir. .
Alors, pourquoi les fournisseurs de Cache et GT.M ne font-ils pas de promotion sur le marché NoSQL plutôt que de laisser quelqu'un réinventer sa roue comme vous le dites?
En ce qui concerne les vieilles querelles fatiguées sur la langue et l'utilisation de cet exemple ancien et dépassé du site Wikipedia:
a) La base de données des oreillons est accessible par la langue moderne sexy de votre animal de compagnie si vous le souhaitez
b) ce style de programmation est sorti avec l'arche, et a été écrit à l'époque comme ça pour comprimer les performances incroyables des ordinateurs PDP qui avaient moins de puissance de traitement que la puce de votre montre. Le codage Modern Mumps est en fait très similaire dans le style à Python et peut être tout aussi propre, lisible et maintenable.
c) Comme toute langue, il existe de bons exemples et de terribles. Ne présumez pas que le codage des oreillons doit être aussi opaque et démodé que l'exemple sur le site Wikipedia.
..et Mason, ma conclusion serait que vous n'êtes peut-être pas aussi familier avec le paysage de la base de données que vous le pensiez! :-) Si vous avez eu une forme de traitement médical dans votre vie, vos informations auront été transmises par le biais de nombreux systèmes d'oreillons en cours de route, y compris ceux qui gèrent la demande de vos tests. Le contenu de votre quotidien peut être géré par un système Oreillons et même la pizza que vous avez commandée en ligne était probablement également via un système Oreillons. La logistique des articles que vous pourriez avoir expédiés à l'étranger a probablement été gérée via un système d'oreillons, et si vous étiez un chercheur qui avait besoin de métaux ou de céramiques de fantaisie, vous les aurez probablement commandés via un système d'oreillons.
L'une des raisons pour lesquelles vous entendez rarement parler d'une base de données étonnamment omniprésente est que les fournisseurs ont traditionnellement traité directement avec les développeurs d'applications / systèmes plutôt qu'avec les utilisateurs finaux, de sorte que la base de données est généralement intégrée dans les coulisses des produits.
la source
MUMPS est très vivant. Il a été l'un des systèmes les plus dignes de confiance entre de bonnes mains. Le personnel de programmation est généralement petit et le temps de disponibilité est impressionnant. Il peut sembler aux non-initiés que MUMPS est obtus, mais il est possible d'écrire du code très lucide et hautement fonctionnel en très peu de touches et les structures de données prises en charge par MUMPS le rendent extrêmement puissant et très transportable à travers différentes architectures différentes. Tous les hôpitaux VA utilisent MUMPS et le délai moyen de réparation est très rapide dans la plupart des cas. Le système VistA écrit en MUMPS est facilement téléchargeable à partir de Source Forge et la nature poly-modale (la base de données est accessible de plusieurs façons, roll and scroll, client léger, navigateur ou RPC, ou toute autre interface de programme) de VistA et MUMPS vient à travers pour beaucoup de ceux qui s'y plongent. MUMPS est un langage simple avec très peu de commandes et un type de données. Il est facile à apprendre car il s'agit d'un langage interprété et laisse la pile et la table des symboles intactes pour voir exactement ce qui se passait lorsque l'application s'est arrêtée pour le débogage. VistA a été utilisé pour gérer les hôpitaux du Département de la Défense (Composite Health Care System, CHCS) ainsi que l'Indian Health Service (IHS RPMS), et a déjà été utilisé par le US Public Health Service. Il a permis au pays d'économiser plusieurs millions de dollars en coûts d'exploitation. MUMPS fonctionne sur presque tout. Il modélise presque n'importe quel autre modèle de base de données et offre un accès étonnamment rapide aux bases de données. Le modèle MUMPS peut en fait obtenir des performances plus rapides avec plus d'utilisateurs sur le système (dans certains cas, en raison des aspects de mise en cache de MUMPS où les blocs de pointeur nécessaires pour trouver un bloc de données sont déjà en mémoire et n'ont pas besoin d'être récupérés à nouveau, BTW, la surcharge du pointeur pour MUMPS s'exécute à environ 2%, donc la plupart de votre base de données correspond aux données réelles de l'utilisateur). MUMPS a été initialement écrit pour fonctionner sur une machine 2K. L'attaque des nouvelles technologies n'a fait qu'élargir toutes les fonctionnalités de l'environnement MUMPS dans un domaine où des hôpitaux entiers sont désormais gérés sur des serveurs de produits à bas prix. Très tôt, MUMPS s'est séparé du matériel et a très bien profité de cette décision. Nous ne nous soucions pas de la taille des mots ou de la précision, ni du nombre ni de la taille. La base de données se lie tardivement et se développe en fonction des besoins spécifiques de l'enregistrement. Aucun enregistrement dans aucune base de données n'est plus volumineux qu'il ne devrait l'être. La base de données peut être étendue ou élaguée selon une partie d'un enregistrement ou comme un enregistrement entier. Est-ce que MUMPS est toujours là?, Tu parles? Au lieu d'avoir 8 utilisateurs sur un PDP-11/34, vous pouvez obtenir quelques centaines d'utilisateurs sur le PC de bureau sous votre bureau. Il est utilisé dans les banques, la Bourse européenne, l'industrie du voyage (hôtels et agents de réservation), certaines maisons de pièces détachées automobiles et les hôpitaux les plus performants (commerciaux, privés ou communautaires) exploitent MUMPS sous une forme ou une autre. L'AV a actuellement plus de 30 ans d'historique de résultats pour ses plus de 9 millions de patients. C'est en soi quelque chose qu'aucun autre système de santé n'a accompli, à l'exception de l'hôpital Beth Israel / Deaconess de Boston qui a plus de 35 ans de résultats dans son système MUMPS construit à la maison. vous betcha? Au lieu d'avoir 8 utilisateurs sur un PDP-11/34, vous pouvez obtenir quelques centaines d'utilisateurs sur le PC de bureau sous votre bureau. Il est utilisé dans les banques, la Bourse européenne, l'industrie du voyage (hôtels et agents de réservation), certaines maisons de pièces détachées automobiles et les hôpitaux les plus performants (commerciaux, privés ou communautaires) exploitent MUMPS sous une forme ou une autre. L'AV a actuellement plus de 30 ans d'historique de résultats pour ses plus de 9 millions de patients. C'est en soi quelque chose qu'aucun autre système de santé n'a accompli, à l'exception de l'hôpital Beth Israel / Deaconess de Boston qui a plus de 35 ans de résultats dans son système MUMPS construit à la maison. vous betcha? Au lieu d'avoir 8 utilisateurs sur un PDP-11/34, vous pouvez obtenir quelques centaines d'utilisateurs sur le PC de bureau sous votre bureau. Il est utilisé dans les banques, la Bourse européenne, l'industrie du voyage (hôtels et agents de réservation), certaines maisons de pièces détachées automobiles et les hôpitaux les plus performants (commerciaux, privés ou communautaires) exploitent MUMPS sous une forme ou une autre. L'AV a actuellement plus de 30 ans d'historique de résultats pour ses plus de 9 millions de patients. C'est en soi quelque chose qu'aucun autre système de santé n'a accompli, à l'exception de l'hôpital Beth Israel / Deaconess de Boston qui a plus de 35 ans de résultats dans son système MUMPS construit à la maison. l'industrie du voyage (hôtels et agents de réservation), certaines maisons de pièces détachées automobiles et les hôpitaux les plus performants (commerciaux, privés ou communautaires) exploitent MUMPS sous une forme ou une autre. L'AV a actuellement plus de 30 ans d'historique de résultats pour ses plus de 9 millions de patients. C'est en soi quelque chose qu'aucun autre système de santé n'a accompli, à l'exception de l'hôpital Beth Israel / Deaconess de Boston qui a plus de 35 ans de résultats dans son système MUMPS construit à la maison. l'industrie du voyage (hôtels et agents de réservation), certaines maisons de pièces détachées automobiles et les hôpitaux les plus performants (commerciaux, privés ou communautaires) exploitent MUMPS sous une forme ou une autre. L'AV a actuellement plus de 30 ans d'historique de résultats pour ses plus de 9 millions de patients. C'est en soi quelque chose qu'aucun autre système de soins de santé n'a accompli, à l'exception de l'hôpital Beth Israel / Deaconess de Boston qui a plus de 35 ans de résultats dans son système MUMPS construit à la maison.
la source
il y a quelques questions sérieuses sur les oreillons sur SO:
/programming/tagged/mumps
la source
Oui, MUMPS est bien vivant. Aux États-Unis, une bonne partie des hôpitaux VA utilisent MUMPS.
la source
VistA (Veterans Health Information Systems and Technology Architecture) est l'AFAIK toujours en développement actif: http://en.wikipedia.org/wiki/VistA_EMR
la source
Je suis également nouveau sur g.tm, mais je peux répondre à ceci:
Oui, Mumps est vivant. Il y a encore des gens qui y travaillent. Voici quelques exemples :
http://georgejames.com/ qui a écrit un serveur api Openstreetmap en gt.m que j'apprends maintenant.
Il existe également des outils Web d'entreprise modernes pour g.tm http://gradvs1.mgateway.com/main/
et la dernière preuve qu'il est vivant est qu'il a été porté sur les dernières plates-formes GNU / linux et cloud.
Mike
la source
Epic Systems , l' une des grandes entreprises travaillant dans les dossiers médicaux , utilise toujours MUMPS dans ses applications.
la source
Vous devriez lire ceci:
http://thedailywtf.com/Articles/A_Case_of_the_MUMPS.aspx
sur MUMPS.
D'un autre côté, je travaille dans la région de DC et je rencontre des gens assez régulièrement qui savent non seulement ce que MUMPS y font fréquemment.
la source
Eh bien, je n'ai jamais entendu parler de quelqu'un l'utilisant, dans n'importe quel contexte ou pour quelque raison que ce soit, sauf sur The Daily WTF. Le lecteur peut en tirer les conclusions. ;)
la source
Exemple d'Interstar correctement écrit pour utiliser des fonctions:
f
est une procédure qui est invoquée avec un do. Si, comme dans ce cas, il n'a pas de paramètres formels, vous n'avez pas besoin de()
. Une procédure se termine et ne renvoie rien.g()
d'autre part est une fonction. La nouvellex
est cruciale pour une portée correctex
. Une fonction est invoquée en précédant son nom de$$
et elle QUITTE avec une valeur de retour. Une fonction doit avoir une liste de paramètres formelle déclarée même si elle est vide comme ici. En fait, vous pouvez écrire cette instanceg()
comme suit:Tout se comportera parfaitement maintenant. Pour une raison quelconque, beaucoup de développeurs de Mumps ne semblent pas avoir remarqué ou compris l'existence de fonctions, ni comprendre la différence entre elles et les procédures. Je pense que c'est l'une des raisons pour lesquelles les nouveaux arrivants à Mumps lèvent la main avec horreur (sans surprise) - il y a énormément de code terrible.
Écrit comme indiqué ci-dessus, tout est assez propre et respectable. Cependant, il appartient au programmeur d'étendre explicitement les variables dans les fonctions et procédures. Laissez-les de côté et ils seront mondiaux et couleront partout. L'astuce consiste à créer et à tester chaque fonction au fur et à mesure et à s'assurer qu'elles ne s'appuient que sur leurs paramètres formels et, une fois terminées, elles ne laissent rien de côté.
la source