מישהו שמע על שפת פיתוח MUMPS?

kisa77

New member
מישהו שמע על שפת פיתוח MUMPS?

אני רק יודע שזאת שפה ישנה משנות ה80 מישהו יכול לשפוך קצת אור על השפה.
 

0 אור 0

New member
זה לא בדיוק שפה

אלא מחולל יישומים, יש עד היום פה ושם תוכנות עתיקות שניתן לפתח להם מסכים ודוחות עם הדבר הזה ... אם יש שאלה ספציפית, אז נדמה לי שאני מכירה משיהי שעבדה פעם עם התוכנה הזאת, אז אני יכולה לנסות אצלה אם היא עוד זוכרת משהו.
 
אני עובד היום בשפה זו,

ו...קצת מכיר אותה
מה בדיוק מעניין את הקהל? אני יכול לספר עליה הרבה מאוד, כולל רשימת הפקודות, הפונקציות וכד'. בגדול, זו שפה מאוד ידידותית לכותב, אבל אם רוצה שהיא תהיה מספיק ידידותית גם לקורא, עליו להשקיע מאמץ מסוים. השפה נולדה אם אינני טועה בתחילת שנות ה-80 ע"י קבוצת מתכנתים בבית חולים צבאי במסצ'וסטס, עבור מחשבים מסוג PDP-11, והיא עבדה במסגרת מערכת הפעלה MUMPS. כלומר, היינו מעלים את המחשב עם דיסק עם מערכת ההפעלה MUMS. היתה כמעט חפיפה מלאה בין שתי צורות של כתיבת שורת פקודה: כשורה בתכנית, הנקראת ומופעלת מן הדיסק, או כשורה שאפשר להקליד ישירות בקונסול - פקודה למערכת ההפעלה. ל-MUMPS יש צורה גאונית של פנייה לנתונים (משתנים). יש להם מבנה של עץ חופשי, שכל צומת שלו יכולה להיות עם או בלי ערך מוגדר - למשל אם יש לו צאצאים. למשל:
set A=5 ;את הערך 5 A הענק למשתנה set A(5)=11 ;את הערך 11 A(5) הענק למשתנה set A(5,"ABC",7)="Ahalan" ;"Ahalan" את הערך A(5,"ABC",7) הענק למשתנה set ^A=5 ;את הערך 5 ^A הענק למשתנה set ^A(5)=11 ;את הערך 11 ^A(5) הענק למשתנה set ^A(5,"ABC",7)="Ahalan" ;"Ahalan" את הערך ^A(5,"ABC",7) הענק למשתנה​
במקרה השני, העץ A^, נרשם ישירות בדיסק! אם נכבה את המחשב וניכנס למערכת מחדש, המשתנה הלוקלי A וכל ענפיו ייעלמו כמובן, אך העץ A^ נשאר רשום הדיסק ואפשר בהחלט להשתמש בו! בעצם, בדיוק כך נשמרים הנתונים בדיסק. זהו למעשה בסיס נתונים עם כזאת גישה פשוטה. ב-MUMPS יש רשימה די קטנה של פקודות שימושיות, כגון:
set - הענק ערך למשתנה kill - הרוֹג משתנה for - בצע שורה עבור רשימת ערכים של משתנה, או... עד אינסוף quit - יציאה מתכנית או מלולאה if else do goto השנואה על המתכנתים הנכונים open - פתח מתקן קלט-פלט close use - עבור להשתמש במתקן קלט-פלט read, write - פעולות קלט-פלט​
ועוד כמה נחמדות. מילה אחת על הקלט-פלט. אם מתקן כלשהו מוגדר במערכת, אזי הקלט-פלט ב-MUMPS פשוט להפליא! כיום בביה"ח שיבא בתל השומר עדין משתמשים במערכת MUMPS לקריאת נתוני מכשירים רפואיים שונים. מערכת ההצבעה האלקטרונית הראשונה של גורבצ'וב בסובייט העליון נבנתה ב-MUMPS, כאשר במערכת מוגדרים כ-500 מתקני קלט, כמספר כפתורי ההצבעה, וה-MUMPS פשוט קורא את נתוניהם באמצעות פקודה פרימיטיבית read (שכמובן מתבצעת בו זמנית על כל הכפתורים). שכחתי לומר, שבמחשבי ה-PC הותקנו בתחילה MUMPS-ים שונים של חברות שונות (כנ"ל גם במחשבי VAX ו-RISC וכדומה). השיטה הפשוטה של תכנוּת הקלט-פלט אפשרה כבר ל-PC העתיקים ביותר לחבר למחשב מספר מסופים ולעבוד עליהם במקביל, וגם במחשבי פנטיום לעבוד בו זמנית עם כמות אדירה של משתמשים על אותו DB על אותו מחשב. היינו מטפלים במערכת של לקוח ממרחק: מתקשרים אליו במודם (היום - בקו ישיר), ופשוט נכנסים ל-MUMPS במחשב שלו כאילו היינו מסוף. ה-MUMPS הסטנדרטי ביותר לדעתי היה זה של חברת Micronetics, הדומה ביותר לזה שהיה במחשבי PDP של חברת Digital. כן, שכחתי לומר, שה-MUMPS כבר לא עלה כמערכת הפעלה, אלא כישום רגיל מתחת למערכת ההפעלה: יוניקס, חלונות, VAX וכדומה. בסופו של דבר, חברת InterSystems ניצחה בתחרות את שאר יצרניות ה-MUMPS והיא רכשה אותן, כאילו קצת המשיכה לתמוך בהן, אבל כמובן דחפה רק את הגרסה של עצמה. בשלב ראשון, הם התביישו לקרוא ל-MUMPS בשם זה, והם מסתירים את השפה תחת שמות יותר יבשים כגון "סקריפט", "M" וכדומה. הם גם בחרו דרך מיוחדת משלהם להתחברות לחלונות: פיתוח התחברויות וממשקים עם כל מה שאפשר ועם כל מה שזז, הענקת צורות שונות ומשונות לכתיבה, השאולים משפות אחרות: קלאסים, אובייקטים ושאר צרות. המערכת בכלל נקראת Caché (מבטאים: קָשֶה במלרע, ועוד לא היה ישראלי שלא אמר להם מה זה בעברית). בעת האחרונה הם המציאו דברים עוד יותר כלליים עם שמות בומסבטיים. הם טוענים שיש להם מחזור מכירות ענק, הגדל משנה לשנה. במקומות רבים בעולם (ונדמה לי שגם בארץ) יש באוניברסיטאות קורסים ללימוד המערכת שלהם. האמת, אני עדין עובד ב-MUMPS הישן והטוב, ומוכן לענות על שאלות ולהוסיף פרטים, ואף לצרף דוגמאות שונות. את ה"קשה" אני פחות מכיר.
 
דוגמאות קטנטנות

הדפסת "לוח כפל" קטן (עד 5, כדי שלא יחרוג מהמסך:
for i=1:1:5 write ! for j=1:1:5 write j," * ",i," = ",$justify(i*j,2) :שאפשר לכתוב גם כך f i=1:1:5 w ! f j=1:1:5 w j," * ",i," = ",$j(i*j,2) :הסבר קטנטן write ! .פירושו - לעבור לשורה חדשה .exe להלן, תכנית להעתקת קובץ ("חיצוני") כלשהו, אפילו בינארי מסוג Copy(FileFrom,FileTo) ; Copy any file open 51:(FileFrom:::::"") ; Without delimeter open 52:(FileTo:"W"::::"") ; Without delimeter set EndOfFile=0 for do if EndOfFile quit . use 51 read a . set EndOfFile=$c ; System variable - enl of file . use 52 write a close 51,52 quit​
רוצים דוגמאות יותר רציניות? או מידע נוסף על השפה?
 
אכן.

ובכלל הכתבה בוויקיפדיה מצוינת! הערה אחת קטנה. מכיוון שדובר על גרסאות שונות של השפה אצל יצרנים שונים, אך גם על סטנדרטים שהתקבלו ע"י כולם, יש להצביע על אחד המקומות העיקריים בהם השפה שונה: הקלט-פלט! בדוגמה הראשונה בכתבה בוויקיפדיה כתוב משהו כזה:
set FileName="MyFile.html" open FileName use FileName write "<html><head>",! . . .​
וכן הלאה. צורה זו להגדרת מתקן קלט-פלט אינה אחידה בכל ה-MUMPS-ים. ב-MSM (שזה Micronetics Standard MUMPS) כותבים את זה כך:
set FileName="MyFile.html" open 51:(FileName:"W") use FileName write "<html><head>",! . . .​
גם לא ראיתי (אולי פספסתי) בכתבה פירוט כיווני הפיתוח של ה-Caché בשנים האחרונות, שהלכו די רחוק מה-MUMPS המקורי אך עדין קשורים אליו (למרות ההתנכרות לשם המקורי). בפירוט זה יש עניין מעשי, היות שזו מערכת הפועלת היום, די נפוצה בארצות רבות - הרבה יותר מה-MUMPS המקורי, מתוחזקת וממשיכה להתפתח ביד צוות מתכנתים מעולים, ובנוסף, כיווני ההתפתחות מעניינים כשלעצמם - ממשקים עם DB שונים, עם סביבות שונות, פיתוח בסביבת אינטרנט, ואפילו שינויי הסינטקסיס של השפה עצמה בהשוואה לכתוב בכתבה ולמה שאני משתמש בו: יתר חופשיות במספר הרווחים ובהעברת חלקי פקודה לשורה חדשה, איזורי {...} כמו ב-C, וכד', וכן צורות מיוחדות עבור קשר עם האינטרנט למשל.
 
../images/Emo122.gif הערה קטנה

כתבת הסבר מעולה, נכנסתי מקישור בפורום חידות רק כדי לראות מה זה, התחלתי לקרוא והשכלתי אז
.
 

מוטציה1

New member
אכן החכמת אותנו!

ראוי להוסיף לקישורים, מילונים, טאגליינס. מנהלים יקרים, לתפעולכם.
 

svoivandim

New member
אחלה הסברים,כל הכבוד! שאלה נוספת

יש לי רעיון עבודה בסביבת עבודה זו, כלומר רעיון מקצועי , אני לא חושב שישאלו אותי על השפה עצמה , השאלה שלי כזאת: האם שווה לקחת את העבודה הזאת? הרי זאת שפה ישנה ,מה אוכל בעוד שנתיים שלוש לעשות עם הניסיון הרב שלי בשפה זו, אני מסתכל קצת קדימה הרי בעבודה הזאת לא יחזיקו אותי כל החיים ויגיע שלב שאצטרך לחפש שוב עבודה. חיפשתי בכמה אתרים לחיפוש עבודה ולא ראיתי דרישה למתכנתי MUMPS לכן מפה נובע החשש אם בכלל שווה להכנס לזה. אשמח לשמוע דעות!
 
כמה הערות

אם מדובר ב-caché, אז השפה והסביבה בהחלט עכשוויים ויש להם ביקוש בארץ ובעולם. נסה לעשות חיפוש על "caché". אם אתה ממילא הולך לראיון, שאל אותם! לאן הם הולכים, וכו'. ישנם מעסיקים די מנוולים: מגייסים אנשים לעבודה שהם בעצמם יודעים שהיא זמנית במהותה. אם זאת, יתכן שאותה חברה תבטיח לך מעבר לסביבות הפיתוח החדשות שלה - אם יש לה כאלה! ישנו גם הצד הפסיכולוגי של מראיין-מרואיין. אספר סיפור קצר. במקום העבודה הקודם שלי חיפסו מתכנת MUMPS. המלצתי על ידיד שלי, והוא בא לראיון. שם המראיין שאל אותו: האם ה-MUMPS הוא העדפה שלך? החבר ענה שלאו דווקא, ושהוא יכול לעבוד ברצון הן ב-MUMPS והן בסביבות אחרות. ובגלל תשובה זו... לא קיבלו אותו! כשסיפרתי על כך לבוס שלי, הוא אמר שהמראיין אידיוט ששאל ככה, ושגם החבר שלי אידיוט שהוא ענה ככה
והנה סיבה מעניינת, מדוע לא להיכנס לזה. כשמתרגלים לכתוב ב-MUMPS זה כל כך פשוט וידידותי, שאח"כ קשה מאוד, פסיכולוגית, להתרגל לשפות אחרות, כי הן (כולן!) קשות יותר. לצערי, אינני יודע מה להוסיף בנדון.
 
נ.ב.

מכיוון שמספר החברות המפתחות ב-MUMPS בארץ יחסית אינו גדול (אם לא מדובר ב-caché), יש סבירות די גבוהה שאני מכיר את החברה עבורה אתה מתראיין, ואם אתה רוצה, אתה יכול לשלוח לי במסר את שם החברה, ואז אולי אוכל להודיע לך אי-אלו פרטים נוספים.
 

pixiER

New member
../images/Emo45.gif תודה../images/Emo70.gif

הקישור לשרשור זה התווסף למילון המונחים של הפורום, לטובת הבאים שיתענינו בשפה העתיקה... (איך הגיעו שניים יחד באותו היום???)
 
למעלה