MUMPS ยังมีชีวิตอยู่หรือไม่? [ปิด]


11

ที่ทำงานแรกของฉันเราใช้ Digital Standard MUMPSใน PDP 11-clone (TPA 440) จากนั้นเราได้เปลี่ยนไปใช้ MUMPS มาตรฐานแบบไมโครวิชันที่ทำงานบนเครื่อง Hewlett-Packard, HP-UX 9 ประมาณต้นยุค 90

MUMPS ยังมีชีวิตอยู่หรือไม่? มีใครใช้หรือไม่ ถ้าใช่โปรดเขียนบางคำเกี่ยวกับมัน: คุณใช้มันในโหมดตัวอักษรมันทำหน้าที่เป็นเว็บเซิร์ฟเวอร์หรือไม่? เป็นต้น (ฉันหมายถึงCachéด้วย)

หากคุณเคยใช้มันคุณมีความรู้สึกอย่างไรกับเรื่องนี้ คุณชอบหรือไม่


1
ผมไม่คิดว่าใครชอบสิ่งที่ดูเหมือนว่านี้ อย่างน้อย Perl เป็นสิ่งที่แสดงออก
imgx64

13
"MUMPS ยังมีชีวิตอยู่หรือไม่?" - ใช่ แต่นักพัฒนาทั้งหมดกำลังฆ่าตัวตาย
Steven Evers

@ imgx64 พระเจ้าที่ดูน่ากลัว!
TheLQ

คุณไม่จำเป็นต้องใช้คำสั่งสั้น ๆ "DHSY =% YK% H,% YQ" คุณควรเขียนชื่อคำสั่งทั้งหมด (และใช้ชื่อเลเบล / ชื่อตัวแปรที่ยาวกว่า): "Do HourCount Set Year =% YearParam ฆ่า% HourParam ,% YearParam ออกจาก " นอกจากนี้หลังจากหลายปีที่ใช้รูปแบบคำสั่งสั้น ๆ ฉันเขียนโปรแกรม 20 บรรทัดพร้อมคำสั่งแบบยาว usng และตัวแปรที่มีชื่อยาว เพื่อนร่วมงานของฉันถูกบอกว่า: "โอเคมันเป็นเรื่องตลกที่ดี แต่อย่าทำอีกครั้ง" มันอ่านได้ยากกว่าคำสั่งสั้น ๆ ถึง 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 อีกเลย

ตัวอย่างเช่นเดือนหรือสองที่ผ่านมาฉันกำลังพูดคุยกับเพื่อนร่วมงานเกี่ยวกับการใช้ redis เพื่อแคชการค้นหาบางอย่างในแอปพลิเคชัน Django ของเรา เรามีบันทึกจำนวนมากที่ส่งมาจากปุ่มสามในสามและจำเป็นต้องได้รับชุดย่อยที่ตรงกับหนึ่งหรือสองของคีย์เหล่านี้อย่างรวดเร็ว (แต่ชุดค่าผสมที่แตกต่างกันในแต่ละช่วงเวลา)

นี่คือสิ่งที่ MUMPS กินเป็นอาหารเช้า แต่เราพบว่ามันยากที่จะสควอชให้เป็นกุญแจสำคัญของ Redis โครงสร้าง val pair แม้กับพจนานุกรม (เหมือนจะเป็นจริงจาก memcached ฯลฯ ) เป็นครั้งแรกในชีวิตของฉันฉันพบว่าตัวเองรู้สึกเสียใจจริง ๆ ที่ฉันไม่สามารถเขียนโมดูลนี้ใน Cache ObjectScript

ความคิดเพิ่มเติมเกี่ยวกับแคชที่นี่:

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

ไม่ดี: http://cachetastic.blogspot.com/2008/07/some-mumps-dissing-and-more-positive.html


9

Interstar ที่ตลกควรพูดถึง Redis ฉันได้ทำวิศวกรรมย้อนกลับเกือบทุกพฤติกรรมของ Redis โดยใช้คางทูม (ทั้งแคชและ GT.M) การเลียนแบบโครงสร้างคู่คีย์ / ค่าพื้นฐานที่เรียบง่ายและพื้นฐานและ API นั้นเป็นเรื่องง่ายและลูกค้า Redis ที่ฉันทดสอบไม่แม้แต่รู้ว่าพวกเขากำลังพูดคุยกับฐานข้อมูลคางทูมแทนที่จะเป็น Redis ที่เหมาะสม

อย่างไรก็ตามเช่น interstar พูดว่าฐานข้อมูลคางทูมมีความสามารถมากขึ้นทั้งในแง่ของโครงสร้างข้อมูล (ที่จริงแล้วฐานข้อมูลคางทูมสามารถเลียนแบบฐานข้อมูล NoSQL ทั้ง 4 ประเภทได้อย่างง่ายดาย: คีย์ / ค่า, ตาราง, เอกสารและกราฟและยังสามารถจำลอง ความสัมพันธ์และวัตถุ dbs - ทั้งหมดในครั้งเดียวหากจำเป็น) และการจัดเรียงอย่างถูกต้องและสมดุลอัตโนมัติระหว่างในหน่วยความจำเมื่อเทียบกับบนดิสก์ ซึ่งแตกต่างจากฐานข้อมูล NoSQL ที่มีอยู่เพียงไม่กี่ปีเทคโนโลยี Mumps นั้นได้รับการทดลองทดสอบสนับสนุนและมีแพคเกจการวิเคราะห์และการจัดการที่พร้อมใช้งานและมีประสิทธิภาพที่ฐานข้อมูล NoSQL เช่น CouchDB จะตาย .

แล้วทำไมผู้ขาย Cache และ GT.M ถึงไม่โปรโมตอย่างหนักในตลาด NoSQL แทนที่จะปล่อยให้ใครบางคนพลิกโฉมวงล้ออย่างที่คุณพูด?

สำหรับผู้ที่ทะเลาะวิวาทเก่าที่เหนื่อยล้าเกี่ยวกับภาษาและการใช้ตัวอย่างโบราณและล้าสมัยจากเว็บไซต์ Wikipedia:

a) ฐานข้อมูลคางทูมสามารถเข้าถึงได้โดยสัตว์เลี้ยงของคุณภาษาที่ทันสมัยในการเลือกถ้าคุณต้องการ

b) รูปแบบการเขียนโปรแกรมนั้นออกไปพร้อมกับหีบพันธสัญญาและเขียนในเวลาเช่นนั้นเพื่อบีบประสิทธิภาพที่น่าทึ่งจากคอมพิวเตอร์ PDP ที่มีพลังการประมวลผลน้อยกว่าชิปในนาฬิกาของคุณ การเข้ารหัส Modern Mumps นั้นคล้ายกับ Python มากและสามารถสะอาดอ่านและบำรุงรักษาได้

c) เช่นเดียวกับภาษาใด ๆ มีตัวอย่างที่ดีที่คุณสามารถค้นหาและน่ากลัว อย่าคิดว่าการเข้ารหัสของคางทูมจะต้องทึบแสงและล้าสมัยเหมือนตัวอย่างบนไซต์ Wikipedia

.. และเมสันข้อสรุปของฉันอาจเป็นไปได้ว่าบางทีคุณอาจไม่คุ้นเคยกับภูมิทัศน์ของฐานข้อมูลอย่างที่คุณคิด! :-) หากคุณเคยได้รับการรักษาพยาบาลรูปแบบใดในชีวิตของคุณข้อมูลของคุณจะได้รับการผ่านระบบคางทูมมากมายตลอดทางรวมถึงคนที่จัดการร้องขอการทดสอบของคุณ เนื้อหาของหนังสือพิมพ์รายวันของคุณอาจได้รับการจัดการโดยระบบ Mumps และแม้แต่พิซซ่าที่คุณสั่งซื้อออนไลน์ก็อาจผ่านระบบ Mumps ด้วย โลจิสติกส์ของสินค้าที่คุณส่งไปต่างประเทศอาจถูกจัดการผ่านระบบคางทูมและถ้าคุณเป็นนักวิจัยที่ต้องการโลหะแฟนซีหรือเซรามิกคุณจะต้องสั่งผ่านระบบคางทูม

หนึ่งในเหตุผลที่คุณไม่ค่อยได้ยินเกี่ยวกับสิ่งที่จริง ๆ แล้วฐานข้อมูลที่แพร่หลายอย่างแปลกใจก็คือผู้ขายมักจะจัดการกับนักพัฒนาแอพพลิเคชั่น / ระบบโดยตรงมากกว่าผู้ใช้ดังนั้นฐานข้อมูลจึงมักจะฝังอยู่เบื้องหลังผลิตภัณฑ์


1
ฉันคิดว่าภาษาไม่เลว ฉันไม่ได้ลอง แต่จะต้องรวดเร็วในฮาร์ดแวร์ที่ทันสมัย MSM เวอร์ชันล่าสุดรองรับการเขียนโปรแกรมที่มีโครงสร้าง: ตัวแปรโลคัล (คำสั่งใหม่), พารามิเตอร์ฟังก์ชัน, รูทีนย่อย inline สำหรับหลายบรรทัด เรามีความสุขมากกับคุณสมบัติเหล่านี้และเราได้สร้างยูทิลิตี้มากมาย: list list, menu และสุดท้ายเราหมด stack ดังนั้นเราจึงถาม Micronetics เพื่อเพิ่มขนาดของ stack พวกเขารวบรวม MSM เวอร์ชั่นที่กำหนดเอง 32 สแต็กลึกแทนที่จะเป็น 16-default ที่เป็นค่าเริ่มต้น
ern0

1
ในการผลักดัน Rob กลับมาในขณะที่ฉันคิดว่า MUMPS db คุ้มค่าที่จะให้ความสนใจฉันสงสัยว่าเฉพาะ db ที่เข้าถึงได้จากภาษาอื่นยังสามารถเรียกว่า MUMPS ได้ ทุกคนที่เลือก MUMPS คาดว่าจะสามารถเรียกใช้รหัสดั้งเดิมได้ ดังนั้น MUMPS ชอบหรือไม่เท่ากับ db + ภาษา
interstar

2
ดังที่ฉันได้กล่าวถึงที่อื่นภัยพิบัติที่เกิดขึ้นจริง / ดีลเลอร์สำหรับภาษานั้นคือการกำหนดขอบเขตแบบไดนามิก ฉันไม่คิดว่าวิศวกรทุกคนในวันนี้สามารถปรับการเลือกภาษาโดยไม่ต้องมีตัวแปรในท้องถิ่นที่อยู่ในท้องถิ่น ดังนั้นโดยทั้งหมดให้ใช้ MUMPS db เป็นองค์ประกอบกล่องดำ แต่ภาษาอยู่นอกเหนือการไถ่ถอนและควรจะพัก
interstar

1
คางทูมมีคำศัพท์ที่กำหนดขอบเขตของตัวแปรอย่างสมบูรณ์ - มันทำมาหลายปีแล้ว แต่ผู้คนจำนวนมากดูเหมือนจะไม่ได้สังเกต! รหัสคางทูมอาจมีความสะอาดและประพฤติได้ดีเหมือนกับภาษาอื่น ๆ ในความเป็นจริงคางทูมมีความคล้ายคลึงกันมากกับ Javascript ในแง่ของการกำหนดขอบเขตตัวแปร เช่นใหม่ในคางทูมคือผลเช่นเดียวกับ var ใน Javascript อย่างไรก็ตามตามค่าเริ่มต้นตัวแปรจะถูกกำหนดขอบเขตทั่วโลกในทั้งสองภาษา
Rob

1
ปล้น. แน่นอนฉันไม่ได้สังเกตการกำหนดขอบเขตของคำศัพท์ใน Cache สิ่งที่เกี่ยวกับตัวอย่างของฉันในcachetastic.blogspot.com/2008/07/ … ซึ่งใช้คำหลัก "ใหม่" แต่ไม่ใช่กฎการกำหนดขอบเขตที่คุณต้องการ x ใน f และ x in g ไม่ควรเป็นตัวแปรเดียวกันโดยไม่ต้องซ่อน x ใด ๆ ที่เกิดขึ้นบนสแต็กอย่างชัดเจน สิ่งเดียวกันนี้ถูกแปลงเป็นจาวาสคริปต์แทนที่ "ใหม่" กับ "var" ของ COS อย่างถูกต้องจะให้ x ใน f เป็นไม่ได้กำหนด
interstar

6

MUMPS ยังมีชีวิตอยู่อย่างมาก เป็นหนึ่งในระบบที่ไว้วางใจได้มากที่สุดในมือที่เหมาะสม เจ้าหน้าที่การเขียนโปรแกรมมักจะมีขนาดเล็กและเวลาที่น่าประทับใจ ดูเหมือนว่ามือใหม่อาจจะเข้าใจผิดว่า MUMPS นั้นเป็นป้าน แต่ก็เป็นไปได้ที่จะเขียนโค้ดที่ชัดเจนและใช้งานได้ดีในจังหวะสำคัญน้อยมากและโครงสร้างข้อมูลที่สนับสนุนโดย MUMPS ทำให้มีประสิทธิภาพสูงและสามารถเคลื่อนย้ายข้ามสถาปัตยกรรมต่างๆ โรงพยาบาล VA ทั้งหมดใช้ MUMPS และค่าเฉลี่ยเวลาในการซ่อมรวดเร็วมากในกรณีส่วนใหญ่ ระบบ VistA ที่เขียนใน MUMPS นั้นสามารถดาวน์โหลดได้อย่างง่ายดายจาก Source Forge และลักษณะของโพลีโมดัล (ฐานข้อมูลสามารถเข้าถึงได้หลายวิธีม้วนและเลื่อนไคลเอนต์เบราว์เซอร์หรือ RPC หรืออินเทอร์เฟซโปรแกรมอื่น ๆ ) ของ VistA และ MUMPS ผ่านสำหรับหลาย ๆ คนที่เจาะลึกเข้าไป MUMPS เป็นภาษาง่าย ๆ ที่มีคำสั่งน้อยมากและมีชนิดข้อมูลหนึ่งชนิด มันง่ายต่อการเรียนรู้เพราะเป็นภาษาที่ตีความแล้วออกจากสแต็กและตารางสัญลักษณ์ไม่เปลี่ยนแปลงเพื่อดูว่าเกิดอะไรขึ้นเมื่อแอปพลิเคชันหยุดการดีบัก VistA ถูกใช้เพื่อบริหารโรงพยาบาลกระทรวงกลาโหม (Composit Health System, CHCS) รวมถึง Indian Health Service (IHS RPMS) และครั้งหนึ่งเคยถูกใช้โดย US Public Health Service มันช่วยประเทศประหยัดหลายล้านดอลลาร์ในค่าใช้จ่ายในการดำเนินงาน MUMPS ทำงานเกือบทุกอย่าง มันเป็นแบบจำลองเกือบทุกรูปแบบฐานข้อมูลอื่น ๆ ได้อย่างง่ายดายและให้การเข้าถึงฐานข้อมูลที่รวดเร็วอย่างน่าประหลาดใจ แบบจำลอง MUMPS สามารถเพิ่มประสิทธิภาพได้เร็วขึ้นด้วยผู้ใช้มากขึ้นในระบบ (ในบางกรณี เนื่องจากด้านการแคชของ MUMPS ที่บล็อกตัวชี้ที่จำเป็นในการค้นหาบล็อกข้อมูลอยู่ในหน่วยความจำแล้วและไม่จำเป็นต้องดึงข้อมูลอีกครั้ง BTW ตัวชี้ค่าใช้จ่ายสำหรับ MUMPS จะทำงานประมาณ 2% ดังนั้นฐานข้อมูลส่วนใหญ่ของคุณ เป็นข้อมูลผู้ใช้จริง) MUMPS ถูกเขียนขึ้นเพื่อใช้งานบนเครื่อง 2K การโจมตีของเทคโนโลยีใหม่ได้ขยายคุณสมบัติเต็มรูปแบบของสภาพแวดล้อม MUMPS เป็นอาณาจักรที่โรงพยาบาลทั้งหมดกำลังทำงานบนเซิร์ฟเวอร์สินค้าโภคภัณฑ์ที่มีราคาต่ำ ในช่วงต้น MUMPS ได้หย่าขาดจากฮาร์ดแวร์และได้รับประโยชน์อย่างมากจากการตัดสินใจดังกล่าว เราไม่ต้องกังวลเกี่ยวกับขนาดของคำหรือความแม่นยำหรือจำนวนหรือขนาด ฐานข้อมูลมีความล่าช้าและมีการเติบโตตามความต้องการบันทึกเฉพาะ ไม่มีบันทึกในฐานข้อมูลใด ๆ ที่มีขนาดใหญ่เกินกว่าที่จะต้องมี ฐานข้อมูลสามารถขยายหรือตัดเป็นส่วนหนึ่งของบันทึกหรือเป็นบันทึกทั้งหมด MUMPS ยังอยู่หรือเปล่า แทนที่จะใช้ผู้ใช้ 8 คนใน PDP-11/34 คุณสามารถรับผู้ใช้สองสามร้อยคนบนพีซีบนโต๊ะใต้โต๊ะของคุณ มันถูกใช้ในการธนาคารตลาดหลักทรัพย์ยุโรปอุตสาหกรรมการท่องเที่ยว (โรงแรมและตัวแทนการจอง) บ้านอะไหล่รถยนต์บางแห่งและโรงพยาบาลที่ประสบความสำเร็จที่สุด (เชิงพาณิชย์ส่วนตัวหรือชุมชน) กำลังใช้ MUMPS ในบางรูปแบบ ปัจจุบันเวอร์จิเนียมีประวัติผลลัพธ์มากกว่า 30 ปีสำหรับผู้ป่วยกว่า 9 ล้านคน ในตัวของมันเองเป็นสิ่งที่ระบบการดูแลสุขภาพอื่น ๆ ไม่ประสบความสำเร็จยกเว้นโรงพยาบาลเบ ธ อิสราเอล / Deaconess ในบอสตันที่มีผลงานมากกว่า 35 ปีในระบบ MUMPS ที่สร้างขึ้นในบ้านของพวกเขา คุณ betcha แทนที่จะใช้ผู้ใช้ 8 คนใน PDP-11/34 คุณสามารถรับผู้ใช้สองสามร้อยคนบนพีซีบนโต๊ะใต้โต๊ะของคุณ มันถูกใช้ในการธนาคารตลาดหลักทรัพย์ยุโรปอุตสาหกรรมการท่องเที่ยว (โรงแรมและตัวแทนการจอง) บ้านอะไหล่รถยนต์บางแห่งและโรงพยาบาลที่ประสบความสำเร็จที่สุด (เชิงพาณิชย์ส่วนตัวหรือชุมชน) กำลังใช้ MUMPS ในบางรูปแบบ ปัจจุบันเวอร์จิเนียมีประวัติผลลัพธ์มากกว่า 30 ปีสำหรับผู้ป่วยกว่า 9 ล้านคน ในตัวของมันเองเป็นสิ่งที่ระบบการดูแลสุขภาพอื่น ๆ ไม่ประสบความสำเร็จยกเว้นโรงพยาบาลเบ ธ อิสราเอล / Deaconess ในบอสตันที่มีผลงานมากกว่า 35 ปีในระบบ MUMPS ที่สร้างขึ้นในบ้านของพวกเขา คุณ betcha แทนที่จะใช้ผู้ใช้ 8 คนใน PDP-11/34 คุณสามารถรับผู้ใช้สองสามร้อยคนบนพีซีบนโต๊ะใต้โต๊ะของคุณ มันถูกใช้ในการธนาคารตลาดหลักทรัพย์ยุโรปอุตสาหกรรมการท่องเที่ยว (โรงแรมและตัวแทนการจอง) บ้านอะไหล่รถยนต์บางแห่งและโรงพยาบาลที่ประสบความสำเร็จที่สุด (เชิงพาณิชย์ส่วนตัวหรือชุมชน) กำลังใช้ MUMPS ในบางรูปแบบ ปัจจุบันเวอร์จิเนียมีประวัติผลลัพธ์มากกว่า 30 ปีสำหรับผู้ป่วยกว่า 9 ล้านคน ในตัวของมันเองเป็นสิ่งที่ระบบการดูแลสุขภาพอื่น ๆ ไม่ประสบความสำเร็จยกเว้นโรงพยาบาลเบ ธ อิสราเอล / Deaconess ในบอสตันที่มีผลงานมากกว่า 35 ปีในระบบ MUMPS ที่สร้างขึ้นในบ้านของพวกเขา อุตสาหกรรมการท่องเที่ยว (โรงแรมและตัวแทนการจอง) บ้านอะไหล่รถยนต์บางแห่งและโรงพยาบาลที่ประสบความสำเร็จมากที่สุด (เชิงพาณิชย์ส่วนตัวหรือชุมชน) กำลังใช้ MUMPS ในบางรูปแบบ ปัจจุบันเวอร์จิเนียมีประวัติผลลัพธ์มากกว่า 30 ปีสำหรับผู้ป่วยกว่า 9 ล้านคน ในตัวของมันเองเป็นสิ่งที่ระบบการดูแลสุขภาพอื่น ๆ ไม่ประสบความสำเร็จยกเว้นโรงพยาบาลเบ ธ อิสราเอล / Deaconess ในบอสตันที่มีผลงานมากกว่า 35 ปีในระบบ MUMPS ที่สร้างขึ้นในบ้านของพวกเขา อุตสาหกรรมการท่องเที่ยว (โรงแรมและตัวแทนการจอง) บ้านอะไหล่รถยนต์บางแห่งและโรงพยาบาลที่ประสบความสำเร็จมากที่สุด (เชิงพาณิชย์ส่วนตัวหรือชุมชน) กำลังใช้ MUMPS ในบางรูปแบบ ปัจจุบันเวอร์จิเนียมีประวัติผลลัพธ์มากกว่า 30 ปีสำหรับผู้ป่วยกว่า 9 ล้านคน ในตัวของมันเองเป็นสิ่งที่ระบบการดูแลสุขภาพอื่น ๆ ไม่ประสบความสำเร็จยกเว้นโรงพยาบาลเบ ธ อิสราเอล / Deaconess ในบอสตันที่มีผลงานมากกว่า 35 ปีในระบบ MUMPS ที่สร้างขึ้นในบ้านของพวกเขา


6

มีคำถามคางทูมสองสามข้อใน SO:

/programming/tagged/mumps


ทำไมต้องลงคะแนน? คำถามคือยังมีชีวิตอยู่ MUMPS? มีใครใช้หรือไม่ - แน่นอนว่านี่คือหลักฐานที่เกี่ยวข้องของใครบางคนที่เขียนโค้ดใหม่และ / หรือการเรียนรู้ MUMPS อย่างจริงจัง?
Colin Pickard

4

ใช่ MUMPS ยังมีชีวิตอยู่มาก ส่วนที่ดีของโรงพยาบาล VA ในสหรัฐอเมริกาใช้ MUMPS


3
และส่วนที่ดีของผู้ป่วยที่มีชีวิตอยู่? :-)
Maniero

8
@ ใหญ่: แน่นอน ถ้าไม่พวกเขาจะยังคงเป็นผู้ป่วยไม่ได้
Mason Wheeler


3

ฉันยังใหม่กับ g.tm แต่ฉันสามารถตอบได้:

ใช่คางทูมยังมีชีวิตอยู่ ยังมีคนกำลังทำงานอยู่ นี่คือตัวอย่างบางส่วน :

http://georgejames.com/ผู้เขียนเซิร์ฟเวอร์ api ของ Openstreetmap ใน gt.m ที่ฉันกำลังเรียนรู้อยู่ตอนนี้

นอกจากนี้ยังมีเครื่องมือเว็บไซต์องค์กรที่ทันสมัยสำหรับ g.tm http://gradvs1.mgateway.com/main/

และข้อพิสูจน์สุดท้ายที่ยังมีชีวิตอยู่ก็คือมันได้รับการย้ายไปยัง GNU / linux ล่าสุดและแพลตฟอร์มคลาวด์

ไมค์



1

คุณควรอ่านสิ่งนี้:

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

เกี่ยวกับ MUMPS

ในทางกลับกันฉันทำงานในพื้นที่ DC และพบกับผู้คนเป็นประจำอย่างสม่ำเสมอซึ่งไม่เพียง แต่รู้ว่าพวกเขาทำงานเป็นประจำใน MUMPS


นั่น .... ที่ทำให้ฉันแย่ ฉันรู้สึกเหมือนฉันต้องอาบน้ำตอนนี้ :(
Matt DiTrolio

1
เป็นการยากที่จะอธิบายในยุคของ SQL ว่าปัญหาเหล่านี้ซึ่งรายชื่อบทความนั้นเป็นคุณสมบัติ ตัวอักษรหนึ่งตัวใช้ความเร็ว ประเภทเดียวดีกว่าการพิมพ์อัตโนมัติ อื่น ๆ
ern0

1

ฉันไม่เคยได้ยินใครที่ใช้มันในบริบทหรือด้วยเหตุผลใด ๆ ยกเว้นใน WTF ประจำวัน ข้อสรุปที่สามารถดึงออกมาได้จากสิ่งนี้ขึ้นอยู่กับผู้อ่าน ;)


1

ตัวอย่างของ Interstarเขียนขึ้นอย่างถูกต้องเพื่อใช้ฟังก์ชั่น:

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

g()  
  new x  
  set x = 5  
  quit x  

do f  

fคือโพรซีเดอร์ที่ถูกเรียกใช้ด้วย do ()ถ้าเป็นในกรณีนี้ก็ไม่เคยมีใครอย่างเป็นทางการพารามิเตอร์คุณไม่จำเป็นต้อง ขั้นตอนเพียงแค่ออกและไม่ส่งคืนอะไรเลย

g()ในอีกทางหนึ่งคือฟังก์ชั่น ใหม่เป็นสิ่งสำคัญในขอบเขตได้อย่างถูกต้องx xฟังก์ชั่นที่ถูกเรียกใช้โดยนำหน้าชื่อด้วย$$และมันเลิกกับค่าตอบแทน ฟังก์ชั่นจะต้องประกาศรายการพารามิเตอร์ที่เป็นทางการแม้ว่าจะว่างเปล่าเหมือนที่นี่ ที่จริงคุณสามารถเขียนตัวอย่างนี้g()เป็นเพียง:

g()  
 quit 5

มันจะทำงานได้อย่างสมบูรณ์แบบในขณะนี้ ด้วยเหตุผลบางอย่างนักพัฒนาคางทูมจำนวนมากดูเหมือนจะไม่สังเกตเห็นหรือเข้าใจการมีอยู่ของฟังก์ชันหรือเข้าใจความแตกต่างระหว่างพวกเขาและกระบวนการ ฉันคิดว่านี่เป็นหนึ่งในเหตุผลที่ผู้คนใหม่ ๆ ที่คางทูมยกมือขึ้นด้วยความกลัว (ไม่ใช่เรื่องที่น่าประหลาดใจ) - มีรหัสที่แย่มาก ๆ

เขียนตามที่แสดงไว้ข้างต้นทุกอย่างค่อนข้างสะอาดและน่านับถือ อย่างไรก็ตามมันขึ้นอยู่กับโปรแกรมเมอร์ที่จะกำหนดขอบเขตตัวแปรอย่างชัดเจนภายในฟังก์ชันและโพรซีเดอร์ ปล่อยให้พวกเขาออกและพวกเขาจะเป็นระดับโลกและรั่วไหลทุกที่ เคล็ดลับคือการสร้างและทดสอบแต่ละฟังก์ชั่นในขณะที่คุณแยกกันและให้แน่ใจว่าพวกเขาไม่ต้องพึ่งพาอะไรนอกจากพารามิเตอร์ที่เป็นทางการและเมื่อเสร็จแล้วพวกเขาจะไม่ทิ้งอะไรไว้ข้างหลัง


ตอนนี้หนึ่งในเหตุผลที่คุณเห็น Mumps code out ที่ไม่ได้ใช้คำสั่งใหม่และขึ้นอยู่กับตัวแปรที่เป็นโกลบอล (ดังนั้นมันจะแตกถ้าคุณใหม่ตัวแปร) เป็นเพราะมันถูกเขียนในอดีตก่อนหน้าที่และ เพิ่มการกำหนดขอบเขตคำในภาษา น่าเสียดายที่มีรหัสมรดกจำนวนมากออกมีและใช่มันกลายเป็นฝันร้ายที่จะรักษา แต่นั่นเป็นมรดกสำหรับคุณ ในทางกลับกันมันค่อนข้างเป็นไปได้ที่จะเขียนโค้ดคางทูมที่สะอาดและทันสมัยมีความประพฤติดีหากคุณกำลังเขียนสิ่งใหม่ ๆ จากศูนย์โดยไม่ต้องกังวลเรื่องมรดก
Rob

ดูตัวอย่างต้นฉบับของคุณค่า x เมื่อ new'd ในโพรซีเดอร์ f พร้อมใช้งานโดยอัตโนมัติสำหรับ g - นั่นเป็นเพียงวิธีที่คางทูมเป็น ในทำนองเดียวกันผู้ที่คุ้นเคยกับภาษา C-syntax จะประหลาดใจเมื่อพบว่าขอบเขตใน Javascript นั้นถูกนำไปใช้กับฟังก์ชั่นเท่านั้นและไม่เช่นในวงหรือบล็อกภายในฟังก์ชั่น นั่นเป็นเพียงวิธี - เมื่อคุณรู้ว่าคุณจัดการกับมันตาม นิสัยที่ไม่ดีดังกล่าวไม่ได้หยุดที่คนยอมรับและยอมรับจาวาสคริปต์
Rob

Rob: "ดูตัวอย่างต้นฉบับของคุณค่า x เมื่อใหม่ในโพรซีเดอร์ f จะมีให้โดยอัตโนมัติสำหรับ g - นั่นเป็นเพียงวิธีที่คางทูมเป็น" แน่นอน! และนั่นคือความหมายที่จะบอกว่า MUMPS มีขอบเขตแบบไดนามิกและไม่ใช่ขอบเขตคำศัพท์ ในภาษาที่ จำกัด ขอบเขตคุณไม่จำเป็นต้องมี "new x" ในฟังก์ชั่น g เนื่องจากโครงสร้างคำศัพท์ของโปรแกรม (เช่นความจริงที่ว่า g ถูกกำหนดนอกนิยามของ f) เพียงพอที่จะรับประกันได้ว่า xs ที่อ้างถึงใน g และ f เป็นสองตัวแปรที่แตกต่างกันอย่างสิ้นเชิง
interstar

ปล้น. ในจุดที่กว้างขึ้นทีมงานที่มีวินัยของโปรแกรมเมอร์ MUMPS เขียนตั้งแต่เริ่มต้นและใช้ "ใหม่" อย่างระมัดระวังเพื่อให้แน่ใจว่าตัวแปรทั้งหมดเป็นแบบโลคัลสามารถหลีกเลี่ยงความเจ็บปวดของการกำหนดขอบเขตแบบไดนามิก แน่นอนฉันเห็นด้วย แต่ทำไมเราต้องมีระเบียบวินัยเหล็กและโค้ดพิเศษอีกหลายร้อยบรรทัดเพื่อทำซ้ำสิ่งที่ภาษาร่วมสมัยอื่น ๆ ให้คุณฟรี นอกจากนี้หากคุณประสบกับรหัสดั้งเดิมที่ไม่ได้เขียนด้วยวินัยนี้มันแทบจะเป็นไปไม่ได้เลยที่จะใส่ไว้ในภายหลังเพราะคุณไม่สามารถบอกได้ว่าระบบใช้ระบบที่อาศัยอยู่ในท้องถิ่นเหล่านี้เพื่อส่งผ่านข้อมูล .
interstar

มีวิธีอื่น ๆ (เก่ากว่า) ในการแยกตัวแปรรูทีนย่อย: ชื่อตัวแปรทั้งหมดของยูทิลิตี้ระบบเริ่มต้นด้วยเครื่องหมาย '%' ดังนั้นพวกเขาจึงอยู่ใน "system namespace" นอกจากนี้การตั้งชื่อตัวแปรใน New เป็นเรื่องเกี่ยวกับความเร็ว: หากคุณใช้คำสั่ง explicite เพื่อผลักดันตัวแปรที่ใช้ซ้ำไปยังสแต็กผู้แปลไม่ต้องทำอะไรเลยเมื่อเข้าสู่รูทีน นอกจากนี้คุณยังสามารถใช้ใหม่โดยไม่มีพารามิเตอร์ที่ซ่อนทั้งหมดตัวแปรปัจจุบัน
ern0 0
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.