क्या MUMPS जीवित है? [बन्द है]


11

मेरे पहले कार्यस्थल पर हम एक पीडीपी 11-क्लोन (टीपीए 440) पर डिजिटल स्टैंडर्ड MUMPS का उपयोग कर रहे थे , फिर हमने 90 के दशक की शुरुआत में, Hewlett-Packard मशीन, HP-UX 9 पर चलने वाले माइक्रोनिटिक्स स्टैंडर्ड MUMPS पर स्विच किया।

क्या अभी भी MUMPS जीवित है? क्या कोई इसका उपयोग कर रहा है? यदि हाँ, कृपया इसके बारे में कुछ शब्द लिखें: क्या आप इसे चरित्र मोड में उपयोग कर रहे हैं, क्या यह वेब सर्वर के रूप में कार्य करता है? आदि (मेरा मतलब कैच भी है।)

यदि आप इसका उपयोग कर चुके हैं, तो इसके बारे में आपकी क्या भावना थी? क्या आपने इसे पसंद किया?


1
मुझे नहीं लगता कि किसी को कुछ पसंद आता है जो इस तरह दिखता है । कम से कम पर्ल अभिव्यंजक है।
imgx64

13
"क्या MUMPS जीवित है?" - हां, लेकिन सभी डेवलपर्स खुद को मार रहे हैं।
स्टीवन एवर्स

@ imgx64 भगवान जो भयानक लग रहा है!
TheLQ

आपको कमांड के संक्षिप्त रूप का उपयोग करने की आवश्यकता नहीं है, "DHSY =% YK% H,% YQ", आपको पूर्ण कमांड नाम लिखना चाहिए (और लंबे लेबल / चर नामों का उपयोग करना चाहिए): "Do HourCount Set Year =% YearParam को%% Param नाम दें। ,% वर्षप्रेम छोड़ो ”। साथ ही, शॉर्ट कमांड फॉर्म का उपयोग करने के वर्षों के बाद, मैंने लॉन्ग-फॉर्म कमांड और लंबे नाम वाले चर के साथ 20-लाइन प्रोग्राम लिखा। मेरे कॉलेजियम को बताया गया था: "ठीक है, यह एक अच्छा मजाक है, लेकिन इसे फिर से मत करो", छोटे आदेशों को पढ़ना 10 गुना कठिन था।
ern0

जवाबों:


11

Intersystems एक MUMPS व्युत्पन्न बेचते हैं: http://www.intersystems.com

MUMPS में सबसे दिलचस्प लोगों में से कुछ शायद यहाँ हैं: http://www.outoftheslipstream.com/

मैंने कुछ साल पहले Cache (MUMPS व्युत्पन्न) के बारे में ब्लॉगिंग शुरू की थी: http://cachetastic.blogspot.com/ (लेकिन फिर नौकरी बदली)

कुछ वर्षों के लिए उस दुनिया से बाहर होने के बाद, मेरी सोच यह है कि NoSQL आंदोलन शायद MUMPS होने के लिए सबसे अच्छी और बुरी बात है। अंतत: इसकी संभावना है कि दोनों ही इसे मारें और मारें। क्योंकि कोई, किसी बिंदु पर, MUMPS के डेटाबेस और क्वेरी संरचना को लगभग समान रूप से सुदृढ़ करने जा रहा है, लेकिन MUMPS परंपरा से कोई संबंध नहीं है। तब लोग इस नए स्टोरेज सिस्टम के बारे में जानकारी देंगे। लेकिन कोई भी कभी भी एक MUMPS व्युत्पन्न का चयन नहीं करेगा।

उदाहरण के लिए, एक या दो महीने पहले, मैं एक सहयोगी के साथ बात कर रहा था कि हमारे एनवाईआई एप्लिकेशन में किसी चीज़ के लुक-अप को कैश करने के लिए रेडिस का उपयोग करें। हमारे पास तीन कुंजियों के एक ट्रिपल द्वारा संबोधित किए गए रिकॉर्ड्स की एक बड़ी संख्या थी, और इनमें से एक या दो कुंजी (लेकिन अलग-अलग समय पर अलग-अलग संयोजन) से मिलान करने के लिए जल्दी से सबसेट प्राप्त करने की आवश्यकता थी।

यह उसी तरह की चीज है जिसे MUMPS नाश्ते के लिए खाते हैं। लेकिन हमें रेडिस की, वैली पेयर स्ट्रक्चर में स्क्वैश करना मुश्किल लग रहा था। शब्दकोशों के साथ भी। (एक ही मेम के बारे में सच होगा आदि) मेरे जीवन में पहली बार, मैंने खुद को वास्तव में पछतावा पाया कि मैं इस मॉड्यूल को कैश ऑब्जेक्टस्क्रिप्ट में नहीं लिख सकता।

कैश पर कुछ और विचार यहाँ:

अच्छा: http://cachetastic.blogspot.com/2008/07/ok-after-mentioning-some-bad-nings.html

बुरा: http://cachetastic.blogspot.com/2008/07/some-mumps-dissing-and-more-positive.html


9

मजेदार इंटरस्ट को रेडिस का उल्लेख करना चाहिए। मैं वास्तव में Mumps (दोनों कैश और GT.M) का उपयोग करके लगभग सभी रेडिस के व्यवहार को उलट दिया है। इसकी सरलीकृत और बुनियादी कुंजी / मूल्य जोड़ी संरचना और एपीआई का अनुकरण करना केक का एक टुकड़ा रहा है और रेडिस के जिन ग्राहकों का मैंने परीक्षण किया है, उन्हें भी नहीं पता कि वे उचित रेडिस के बजाय एक मम्प्स डेटाबेस से बात कर रहे हैं।

हालांकि, जैसे इंटरस्टेर कहते हैं, मम्प्स डेटाबेस अपने डेटा संरचना दोनों के संदर्भ में बहुत अधिक सक्षम है (वास्तव में एक मम्प्स डेटाबेस आसानी से सभी 4 NoSQL डेटाबेस प्रकारों का अनुकरण कर सकता है: कुंजी / मूल्य, सारणीबद्ध, दस्तावेज़ और ग्राफ़, और मॉडल भी कर सकते हैं संबंधपरक और वस्तु dbs - यदि आवश्यक हो तो एक बार में), और डिस्क पर इन-मेमोरी बनाम मेमोरी के बीच ठीक से हल किया गया और स्वचालित संतुलन। लगभग कुछ वर्षों से चले आ रहे NoSQL डेटाबेस के विपरीत, Mumps प्रौद्योगिकियाँ परिपक्व, आज़माई हुई, परखी हुई, अच्छी तरह से समर्थित और विश्लेषण और प्रशासन पैकेज उपलब्ध हैं, और इस तरह का प्रदर्शन किया है कि कई NoSQL डेटाबेस जैसे CouchDB के लिए मर जाएंगे। ।

तो क्यों नहीं Cache और GT.M के विक्रेता NoSQL बाजार में कड़ी मेहनत कर रहे हैं, बजाय इसके कि कोई उनके पहिये को मजबूत करे, जैसा कि आप कहते हैं?

विकिपीडिया साइट से भाषा और उस प्राचीन और बहिष्कृत उदाहरण के उपयोग के बारे में थका देने वाली पुरानी उबासी के रूप में:

a) यदि आप चाहते हैं तो Mumps डेटाबेस को आपकी पसंद की पालतू सेक्सी आधुनिक भाषा द्वारा एक्सेस किया जा सकता है

b) प्रोग्रामिंग की शैली सन्दूक के साथ बाहर चली गई, और उस समय की तरह पीडीपी कंप्यूटरों से अद्भुत प्रदर्शन को निचोड़ने के लिए लिखा गया था, जिसमें आपकी घड़ी में चिप की तुलना में कम प्रसंस्करण शक्ति थी। मॉडर्न मंप्स कोडिंग वास्तव में अजगर की शैली के समान है और यह केवल स्वच्छ, पठनीय और बनाए रखने योग्य हो सकता है।

ग) किसी भी भाषा की तरह अच्छे उदाहरण हैं जो आप पा सकते हैं और भयानक हैं। यह मत समझो कि कण्ठमाला कोडिंग को अपारदर्शी और विकिपीडिया साइट पर उदाहरण के रूप में पुराने जमाने की आवश्यकता है।

..और मेसन, मेरा निष्कर्ष यह होगा कि शायद आप डेटाबेस परिदृश्य से परिचित नहीं हैं जैसा कि आपने सोचा था कि आप थे! :-) यदि आपने अपने जीवन में किसी भी प्रकार का चिकित्सा उपचार किया है, तो आपकी जानकारी आपके परीक्षणों के अनुरोध को प्रबंधित करने वाले लोगों सहित रास्ते में umpteen Mumps सिस्टम के माध्यम से होगी। आपके दैनिक समाचार पत्र की सामग्री को एक मम्प्स प्रणाली द्वारा प्रबंधित किया जा सकता है और यहां तक ​​कि आपके द्वारा ऑनलाइन ऑर्डर किया जाने वाला पिज्जा भी शायद मम्प्स प्रणाली के माध्यम से हो सकता है। आपके द्वारा विदेशों में शिप की गई वस्तुओं का रसद शायद एक मम्प्स प्रणाली के माध्यम से प्रबंधित किया गया था, और यदि आप एक शोधकर्ता बन गए हैं, जिन्हें कुछ फैंसी धातुओं या सिरेमिक की जरूरत है, तो आपने संभवतः उन्हें मम्प्स सिस्टम के माध्यम से ऑर्डर किया होगा।

उन कारणों में से एक जो आप शायद ही कभी सुनते हैं कि वास्तव में आश्चर्यजनक रूप से व्यापक डेटाबेस क्या है, विक्रेताओं ने परंपरागत रूप से सीधे उपयोगकर्ताओं के बजाय एप्लिकेशन / सिस्टम डेवलपर्स के साथ सीधे व्यवहार किया है, इसलिए डेटाबेस आमतौर पर उत्पादों में पर्दे के पीछे एम्बेडेड होता है।


1
मुझे लगता है कि भाषा खराब नहीं है। मैंने कोशिश नहीं की, लेकिन यह एक आधुनिक हार्डवेयर पर बहुत जल्दी होना चाहिए। MSM का नवीनतम संस्करण संरचित प्रोग्रामिंग का समर्थन कर रहा था: स्थानीय चर (नई कमांड), फ़ंक्शन पैरामीटर, मल्टी-लाइनों के लिए इनलाइन सबरूटीन्स। हम इन सुविधाओं से बहुत खुश थे, और हमने उपयोगिताओं का एक समूह बनाया है: सूची दर्शक, मेनू आदि। आखिरकार, हम स्टैक से बाहर भाग गए, इसलिए हमने माइक्रोनिटिक्स से स्टैक का आकार बढ़ाने के लिए कहा। उन्होंने हमें डिफ़ॉल्ट 16-डीएम के बजाय एमएसएम के 32-स्टैक कस्टम संस्करण को संकलित किया।
ern0

1
थोड़ा रोब को पीछे धकेलने के लिए, जबकि मुझे लगता है कि MUMPS db पर ध्यान देने योग्य है, मुझे आश्चर्य है कि अगर सिर्फ db, किसी अन्य भाषा से एक्सेस किया गया तो भी MUMPS कहा जा सकता है। जो कोई भी MUMPS चुनता है, वह विरासत कोड चलाने में सक्षम होने की उम्मीद करता है। तो MUMPS, जैसे कि यह या नहीं, db + भाषा के बराबर है।
इंटरस्ट

2
जैसा कि मैंने कहीं और उल्लेख किया है, भाषा के लिए वास्तविक आपदा / डीलब्रेकर गतिशील स्कूपिंग है। मुझे नहीं लगता कि आज कोई भी इंजीनियर, स्थानीय चर के बिना किसी भाषा को चुनने का औचित्य साबित कर सकता है जो स्थानीय बने रहें। तो, हर तरह से एक ब्लैक बॉक्स घटक के रूप में MUMPS db का उपयोग करें, लेकिन भाषा मोचन से परे है और इसे आराम करने के लिए रखा जाना चाहिए।
INTERSTAR

1
मम्प्स में चर का पूरा शाब्दिक स्कूपिंग है - यह वर्षों से किया है, लेकिन बहुत से लोगों ने ध्यान नहीं दिया है! कण्ठमाला कोड किसी भी अन्य भाषा की तरह ही स्वच्छ और अच्छा व्यवहार किया जा सकता है। वास्तव में माइम्प्स में वैरिएबल स्कोपिंग के संदर्भ में जावास्क्रिप्ट के लिए बहुत अधिक समानताएं हैं। उदा। न्यू इन मंप्स, वास्तव में, जावास्क्रिप्ट में var के समान है। डिफ़ॉल्ट रूप से, हालांकि, चर दोनों भाषाओं में वैश्विक रूप से स्कूप किए गए हैं।
रोब

1
रोब। मैंने निश्चित रूप से कैश में वैरिएबल के लेक्सिकल स्कोपिंग को नोटिस नहीं किया था। Cachetastic.blogspot.com/2008/07/… में मेरे उदाहरण के बारे में क्या ? यह "नया" कीवर्ड का उपयोग करता है, लेकिन आप चाहते हैं कि स्कूपिंग नियम नहीं है। F में x और g में x एक ही वैरिएबल नहीं होना चाहिए, जी के बिना स्पष्ट रूप से किसी भी x को छिपाने के लिए जो स्टैक पर हुआ हो। उसी चीज़ को जावास्क्रिप्ट में परिवर्तित किया गया, COS के "नए" को "var" के साथ सही ढंग से x को अपरिभाषित के रूप में बदल दिया गया।
इंटरस्टार

6

MUMPS बहुत जीवित है। यह उचित हाथों में जाने वाले सबसे भरोसेमंद प्रणालियों में से एक रहा है। प्रोग्रामिंग स्टाफ आमतौर पर छोटा होता है और अप-टाइम प्रभावशाली होता है। ऐसा लगता है कि MUMPS अप्रभावी है, लेकिन यह बहुत ही कम महत्वपूर्ण स्ट्रोक में बहुत स्पष्ट और अत्यधिक कार्यात्मक कोड लिखने के लिए संभव हो सकता है और MUMPS द्वारा समर्थित डेटा संरचनाएं इसे विभिन्न विभिन्न आर्किटेक्चर में बेहद शक्तिशाली और बहुत ही परिवहन योग्य बनाती हैं। सभी VA अस्पताल MUMPS का उपयोग कर रहे हैं और ज्यादातर मामलों में समय-समय पर मरम्मत बहुत जल्दी होती है। MUMPS में लिखा गया VistA सिस्टम आसानी से स्रोत फोर्ज और पॉली-मोडल प्रकृति से डाउनलोड किया जाता है (डेटाबेस को कई तरीकों, रोल और स्क्रॉल, पतले क्लाइंट, ब्राउज़र, या RPC, या अन्य प्रोग्राम इंटरफ़ेस द्वारा एक्सेस किया जा सकता है) आता है। के माध्यम से कई जो इसे में तल्लीन। MUMPS बहुत ही कम कमांड और एक डेटा प्रकार के साथ एक सरल भाषा है। यह सीखना आसान है क्योंकि यह एक व्याख्या की गई भाषा है और स्टैक और प्रतीक तालिका को देखने के लिए बरकरार है कि जब डिबग के लिए आवेदन बंद हो गया था तो वास्तव में क्या हो रहा था। विस्टा का उपयोग रक्षा अस्पतालों (समग्र स्वास्थ्य देखभाल प्रणाली, सीएचसीएस) के साथ-साथ भारतीय स्वास्थ्य सेवा (आईएचएस आरपीएमएस) को चलाने के लिए किया गया है, और कभी यूएस पब्लिक हेल्थ सर्विस द्वारा इसका उपयोग किया गया था। इसने परिचालन लागत में देश को कई मिलियन डॉलर की बचत की। MUMPS लगभग किसी भी चीज़ पर चलता है। यह लगभग किसी भी अन्य डेटाबेस मॉडल को आसानी से मॉडल करता है और डेटाबेस में आश्चर्यजनक रूप से तेजी से पहुंच प्रदान करता है। MUMPS मॉडल वास्तव में सिस्टम पर अधिक उपयोगकर्ताओं के साथ तेजी से प्रदर्शन प्राप्त कर सकता है (कुछ मामलों में, MUMPS के कैशिंग पहलुओं के कारण जहां एक डेटा ब्लॉक को खोजने के लिए पॉइंटर ब्लॉक की आवश्यकता पहले से ही याद में है और उन्हें फिर से लाने की आवश्यकता नहीं है, BTW, MUMPS के लिए सूचक ओवरहेड सिर्फ 2% चलता है, इसलिए आपके अधिकांश डेटाबेस वास्तविक उपयोगकर्ता डेटा है)। MUMPS को मूल रूप से 2K मशीन पर चलाने के लिए लिखा गया था। नई तकनीक के हमले ने केवल MUMPS पर्यावरण की पूर्ण विशेषताओं को एक दायरे में विस्तारित किया है, जहां पूरे अस्पताल अब कम-लागत वाले कमोडिटी सर्वर पर चलाए जा रहे हैं। शुरुआत में, MUMPS ने खुद को हार्डवेयर से अलग कर लिया और उस निर्णय से बहुत अच्छा लाभ उठाया। हम शब्द आकार या सटीक, या कितने या कितने बड़े के बारे में चिंता नहीं करते हैं। डेटाबेस देर से बाध्यकारी है और विशिष्ट रिकॉर्ड आवश्यकताओं के रूप में बढ़ता है। किसी भी डेटाबेस में कोई रिकॉर्ड किसी भी बड़े से होने की आवश्यकता नहीं है। डेटाबेस को रिकॉर्ड के भाग के रूप में या पूरे रिकॉर्ड के रूप में विस्तारित या प्रून किया जा सकता है। क्या MUMPS अभी भी आसपास है?, आप betcha? पीडीपी -11 / 34 पर 8 उपयोगकर्ता प्राप्त करने के बजाय, आप अपने डेस्क के नीचे डेस्क-टॉप पीसी पर सौ उपयोगकर्ताओं के एक जोड़े को प्राप्त कर सकते हैं। इसका उपयोग बैंकिंग में किया जा रहा है, यूरोपियन स्टॉक एक्सचेंज, यात्रा उद्योग (होटल और बुकिंग एजेंट), कुछ ऑटो पार्ट्स हाउस, और अधिकांश सफल अस्पताल (वाणिज्यिक, निजी या समुदाय) किसी न किसी रूप में MUMPS चला रहे हैं। वर्तमान में VA के 9 मिलियन से अधिक रोगियों के लिए 30 से अधिक वर्षों के परिणाम इतिहास हैं। यह अपने आप में कुछ ऐसा है जिसे बोस्टन में बेथ इज़राइल / डेकोनेस अस्पताल के अलावा किसी अन्य स्वास्थ्य सेवा प्रणाली ने पूरा नहीं किया है, जिसके परिणाम उनके घर में निर्मित MUMPS प्रणाली में 35 वर्ष से अधिक हैं। आप बेट्चा हो? पीडीपी -11 / 34 पर 8 उपयोगकर्ता प्राप्त करने के बजाय, आप अपने डेस्क के नीचे डेस्क-टॉप पीसी पर सौ उपयोगकर्ताओं के एक जोड़े को प्राप्त कर सकते हैं। इसका उपयोग बैंकिंग में किया जा रहा है, यूरोपियन स्टॉक एक्सचेंज, यात्रा उद्योग (होटल और बुकिंग एजेंट), कुछ ऑटो पार्ट्स हाउस, और अधिकांश सफल अस्पताल (वाणिज्यिक, निजी या समुदाय) किसी न किसी रूप में MUMPS चला रहे हैं। वर्तमान में VA के 9 मिलियन से अधिक रोगियों के लिए 30 से अधिक वर्षों के परिणाम इतिहास हैं। यह अपने आप में कुछ ऐसा है जिसे बोस्टन में बेथ इज़राइल / डेकोनेस अस्पताल के अलावा किसी अन्य स्वास्थ्य सेवा प्रणाली ने पूरा नहीं किया है, जिसके परिणाम उनके घर में निर्मित MUMPS प्रणाली में 35 वर्ष से अधिक हैं। आप बेट्चा हो? पीडीपी -11 / 34 पर 8 उपयोगकर्ता प्राप्त करने के बजाय, आप अपने डेस्क के नीचे डेस्क-टॉप पीसी पर सौ उपयोगकर्ताओं के एक जोड़े को प्राप्त कर सकते हैं। इसका उपयोग बैंकिंग में किया जा रहा है, यूरोपियन स्टॉक एक्सचेंज, यात्रा उद्योग (होटल और बुकिंग एजेंट), कुछ ऑटो पार्ट्स हाउस, और अधिकांश सफल अस्पताल (वाणिज्यिक, निजी या समुदाय) किसी न किसी रूप में MUMPS चला रहे हैं। वर्तमान में VA के 9 मिलियन से अधिक रोगियों के लिए 30 से अधिक वर्षों के परिणाम इतिहास हैं। यह अपने आप में कुछ ऐसा है जिसे बोस्टन में बेथ इज़राइल / डेकोनेस अस्पताल के अलावा किसी अन्य स्वास्थ्य सेवा प्रणाली ने पूरा नहीं किया है, जिसके परिणाम उनके घर में निर्मित MUMPS प्रणाली में 35 वर्ष से अधिक हैं। यात्रा उद्योग (होटल और बुकिंग एजेंट), कुछ ऑटो पार्ट्स हाउस, और अधिकांश सफल अस्पताल (वाणिज्यिक, निजी या समुदाय) किसी न किसी रूप में MUMPS चला रहे हैं। वर्तमान में VA के 9 मिलियन से अधिक रोगियों के लिए 30 से अधिक वर्षों के परिणाम इतिहास हैं। यह अपने आप में कुछ ऐसा है जिसे बोस्टन में बेथ इज़राइल / डेकोनेस अस्पताल के अलावा किसी अन्य स्वास्थ्य सेवा प्रणाली ने पूरा नहीं किया है, जिसके परिणाम उनके घर में निर्मित MUMPS प्रणाली में 35 वर्ष से अधिक हैं। यात्रा उद्योग (होटल और बुकिंग एजेंट), कुछ ऑटो पार्ट्स हाउस, और अधिकांश सफल अस्पताल (वाणिज्यिक, निजी या समुदाय) किसी न किसी रूप में MUMPS चला रहे हैं। वर्तमान में VA के 9 मिलियन से अधिक रोगियों के लिए 30 से अधिक वर्षों के परिणाम इतिहास हैं। यह अपने आप में कुछ ऐसा है जिसे बोस्टन में बेथ इज़राइल / डेकोनेस अस्पताल के अलावा किसी अन्य स्वास्थ्य सेवा प्रणाली ने पूरा नहीं किया है, जिसके परिणाम उनके घर में निर्मित MUMPS प्रणाली में 35 वर्ष से अधिक हैं।


6

वहाँ SO पर गंभीर कण्ठमाला सवाल के एक जोड़े हैं:

/programming/tagged/mumps


क्यों होता है पतन? सवाल यह था कि क्या अभी भी MUMPS जीवित है? क्या कोई इसका उपयोग कर रहा है? - निश्चित रूप से यह किसी के गंभीरता से नए कोड लिखने और / या MUMPS सीखने का प्रासंगिक प्रमाण है?
कॉलिन पिकार्ड

4

हाँ MUMPS बहुत जीवित है। अमेरिका में VA अस्पतालों का एक अच्छा हिस्सा MUMPS का उपयोग करता है।


3
और मरीजों का अच्छा हिस्सा जीवित हैं? :-)
मनिएरो सेप

8
@bownown: बेशक। यदि नहीं, तो वे अभी भी रोगी नहीं होंगे।
मेसन व्हीलर

4

विस्टा (अनुभवी स्वास्थ्य सूचना प्रणाली और प्रौद्योगिकी वास्तुकला) अभी भी सक्रिय विकास में AFAIK है: http://en.wikipedia.org/wiki/VistA_EMR


3

मैं g.tm में नया भी हूं, लेकिन मैं इसका जवाब दे सकता हूं:

हां, मम्प्स जीवित है। अभी भी इस पर काम करने वाले लोग हैं। यहाँ कुछ उदाहरण हैं :

http://georgejames.com/ जिन्होंने gt.m में एक ओपनस्ट्रीटमैप एप सर्वर लिखा था जो मैं अभी सीख रहा हूं।

अब g.tm http://gradvs1.mgateway.com/main/ के लिए आधुनिक उद्यम वेब टूल भी हैं

और अंतिम प्रमाण यह है कि यह जीवित है कि इसे नवीनतम जीएनयू / लाइनक्स और क्लाउड प्लेटफार्मों पर पोर्ट किया गया है।

माइक



1

आपको इसे पढ़ना चाहिए:

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

MUMPS के बारे में।

दूसरी ओर, मैं डीसी क्षेत्र में काम करता हूं और नियमित रूप से लोगों में भाग लेता हूं कि न केवल यह पता है कि MUMPS क्या है वे अक्सर इसमें काम करते हैं।


कि .... कि मुझे परेशान किया। मुझे लगता है कि मुझे अब स्नान करने की आवश्यकता है। :(
मैट डायट्रियो

1
एसक्यूएल की उम्र में यह समझाना मुश्किल है कि ये मुद्दे, जो उस लेख को सूचीबद्ध करते हैं, विशेषताएं हैं। एक अक्षर गति के लिए है। एक प्रकार स्वचालित टाइपिंग से कहीं बेहतर है। आदि
ern0

1

खैर, मैंने कभी भी किसी को भी इसका इस्तेमाल करते हुए, किसी भी संदर्भ में या किसी भी कारण से, डेली डब्ल्यूटीएफ को छोड़कर कभी नहीं सुना है। इससे क्या निष्कर्ष निकाला जा सकता है, यह पाठक के ऊपर है। ;)


1

इंटरस्टेर का उदाहरण सही ढंग से फ़ंक्शन का उपयोग करने के लिए लिखा गया है:

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

g()  
  new x  
  set x = 5  
  quit x  

do f  

fएक ऐसी प्रक्रिया है जिसे एक कार्य के साथ लागू किया जाता है। यदि, इस मामले में, इसका कोई औपचारिक पैरामीटर नहीं है, तो आपको इसकी आवश्यकता नहीं है ()। एक प्रक्रिया सिर्फ छोड़ता है और कुछ भी वापस नहीं करता है।

g()दूसरी ओर एक फ़ंक्शन है। नई xसही ढंग से गुंजाइश के लिए महत्वपूर्ण है x। किसी फ़ंक्शन को उसके नाम से पहले दर्ज किया जाता है $$और यह रिटर्न मान के साथ क्विट करता है। एक फ़ंक्शन के पास औपचारिक पैरामीटर सूची होनी चाहिए, भले ही वह यहाँ की तरह खाली हो। वास्तव में आप इस उदाहरण को इस प्रकार लिख सकते हैं g():

g()  
 quit 5

यह सब अब पूरी तरह से व्यवहार करेगा। कुछ कारणों से बहुत सारे Mumps डेवलपर्स को कार्यों के अस्तित्व पर ध्यान नहीं दिया या समझा नहीं गया है, या उनके और प्रक्रियाओं के बीच के अंतर को समझते हैं। मुझे लगता है कि यह एक कारण है कि मम्प्स के लिए नए लोग अपने हाथों को हॉरर में फेंकते हैं (आश्चर्य की बात नहीं) - वहाँ एक भयानक बहुत भयानक कोड है।

जैसा कि ऊपर दिखाया गया है, यह सब काफी साफ और सम्मानजनक सामान है। हालाँकि, यह प्रोग्रामर पर निर्भर है कि वह फ़ंक्शन और प्रक्रियाओं के भीतर चर को स्पष्ट रूप से स्कोप करे। उन्हें बाहर छोड़ दो और वे वैश्विक होंगे और हर जगह रिसाव करेंगे। चाल को प्रत्येक फ़ंक्शन का निर्माण और परीक्षण करना है क्योंकि आप अलगाव में जाते हैं और यह सुनिश्चित करते हैं कि वे कुछ भी नहीं लेकिन उनके औपचारिक मापदंडों पर भरोसा करते हैं और जब वे समाप्त हो जाते हैं, तो वे कुछ भी पीछे नहीं छोड़ते हैं।


अब एक कारण यह है कि आप मम्प्स कोड देखते हैं जो नए आदेशों का उपयोग नहीं करता है और जो वैश्विक होने वाले चर पर निर्भर करता है (इसलिए यह टूट जाता है यदि आप नए चर हैं) क्योंकि यह फ़ंक्शन से पहले एक बार में लिखा गया था और लेक्सिकल स्कूपिंग को भाषा में जोड़ा गया। दुर्भाग्य से वहाँ विरासत कोड का एक बहुत कुछ है और, हाँ, इसे बनाए रखने के लिए एक बुरा सपना है, लेकिन यह आपके लिए विरासत है। दूसरी ओर, स्वच्छ, आधुनिक, अच्छी तरह से व्यवहार किए गए मम्प्स कोड लिखना काफी संभव है, बशर्ते आप किसी भी विरासत सामान के बिना खरोंच से नई सामग्री लिख रहे हों।
रोब

अपने मूल उदाहरण को देखते हुए, मान x, जब प्रक्रिया में new'd स्वचालित रूप से g के लिए उपलब्ध होता है - यही Mumps है। उसी तरह, सी-सिंटैक्स भाषाओं के लिए उपयोग किए जाने वाले लोग आश्चर्यचकित होते हैं जब उन्हें पता चलता है कि जावास्क्रिप्ट में केवल फ़ंक्शन के लिए ही गुंजाइश है, और फ़ंक्शन के अंदर लूप या ब्लॉक के लिए नहीं, उदाहरण के लिए। बस यही तरीका है - एक बार जब आप इसे जान लेते हैं, तो आप उसके अनुसार व्यवहार करते हैं। इस तरह की मूर्खताओं ने लोगों को जावास्क्रिप्ट को स्वीकार करने और अपनाने से नहीं रोका है।
रॉब

रोब: "आपके मूल उदाहरण को देखते हुए, मूल्य x, जब प्रक्रिया में new'd स्वचालित रूप से जी के लिए उपलब्ध होता है - यह सिर्फ मम्प्स है।" वास्तव में! और इसका यही मतलब है कि MUMPS में डायनेमिक स्कोप है न कि लेक्सिकल स्कोप। एक lexically scoped भाषा में, आपको फ़ंक्शन जी में "नया x" रखने की आवश्यकता नहीं है, क्योंकि कार्यक्रम की लेक्सिकल संरचना (यानी, तथ्य यह है कि जी को एफ की परिभाषा के बाहर परिभाषित किया गया है), गारंटी देने के लिए पर्याप्त है। g और f में संदर्भित x दो पूरी तरह से भिन्न चर हैं।
इंटरस्ट

रोब। व्यापक बिंदु पर, कि MUMPS प्रोग्रामर की एक अच्छी तरह से अनुशासित टीम, स्क्रैच से लिख रही है, और सावधानीपूर्वक "नया" का उपयोग करके यह सुनिश्चित करने के लिए कि सभी चर स्थानीय हैं, गतिशील स्कूपिंग के दर्द से बच सकते हैं। ज़रूर, मैं सहमत हूँ। लेकिन हमें लौह अनुशासन और कोड की सैकड़ों अतिरिक्त लाइनों की आवश्यकता क्यों होनी चाहिए, यह दोहराने के लिए कि हर दूसरी समकालीन भाषा आपको मुफ्त में क्या देती है? इसके अलावा, यदि आपको विरासत कोड का सामना करना पड़ता है जो इस अनुशासन के साथ नहीं लिखा गया है, तो इसे बाद में रखना लगभग असंभव है, क्योंकि आप यह नहीं बता सकते हैं कि क्या सिस्टम इन गैर स्थानीय लोगों में से किसी एक पर भरोसा कर रहा है। ।
इंटरस्ट

सबरूटीन चर को अलग करने के लिए अन्य (पुराने) तरीके हैं: सिस्टम उपयोगिताओं के सभी चर नाम '%' संकेत से शुरू होते हैं, इसलिए वे "सिस्टम नेमस्पेस" में हैं। इसके अलावा, न्यू में वैरिएबल का नामकरण गति के बारे में है: यदि आप स्टैक पर फिर से उपयोग किए गए वैरिएबल को पुश करने के लिए एक एक्सप्लोसिव कमांड का उपयोग करते हैं, तो इंटरप्रेटर को रूटीन में प्रवेश करने पर कुछ भी नहीं करना है। इसके अलावा, आप नए का उपयोग कर सकते हैं, मापदंडों के बिना, जो सभी मौजूदा चर छुपाता है ।
इर्ने ०
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.