מהי השפה הכי עתיקה, מוזרה, מגעילה או יוצאת דופן שקודדת בה?

לא כולל שפות אזוטריות כמו בריינפאק וכו'.

אתחיל עם RTL/2, שפה בזמן אמת עם דגש על (א) כניסה חוזרת ו-(ב) כיעור. הקוד לדוגמה היחיד שאני יכול למצוא הוא זה, מדף ויקיפדיה. ובכל זאת, זה הספיק כדי להעלות זיכרונות טראומטיים.

קוד:

TITLE Hello World; LET NL=10; EXT PROC(REF ARRAY BYTE) TWRT; ENT PROC RRJOB() INT; TWRT("Hello World#NL#"); RETURN(1); ENDPROC;

ה EXT PROC ההכרזה היא למשוך את TWRT פונקציה מהספרייה הרגילה כדי שנוכל להוציא משהו. RRJOB() הוא המקביל ל main().

RTL/2 (או, לפחות הגרסה שנגרמה לי) הגיעה עם סביבת ריצה לא נעימה שרצה על מחשב DOS, והיית צריך להשתמש בעורך לא ידידותי להחריד כדי לכתוב את זה. מיותר לציין שהוא זכה למעט אחיזה מחוץ לתעשייה הכימית בבריטניה והוא מת לחלוטין עכשיו. לימדו אותי את זה כחלק ממודול בזמן אמת באוניברסיטה, לפני כ-30 שנה.

בעבר, התעניינתי בשפות מחשב אז הייתי מוריד אותן ומשתעשע קצת והן ממשיכות הלאה. כתבתי כמה דברים ב-ABC (קודמתה של Python) ב-Atari ST שלי בשביל הכיף. שפות מסוימות עשויות להיות גסות למדי. כתבתי איזו אסיפה של SHARC. חוץ מזה, לא הייתי אומר שכתבתי מספיק בחבורה של שפות אחרות כדי לספור (הכל כמו על-off). היו לנו שני פרופסורים בקולג' שהיו מעריצים גדולים של ADA אז היינו צריכים להשתמש בזה במשך כמה שיעורים. כתב קצת ליספ ופרולוג. ראיתי קצת קובול אבל מעולם לא היה צריך לכתוב את זה. אבל הייתי צריך לכתוב ספרייה שייבאה נתוני קבצים שטוחים של קובול.

לא בטוח שאחד מהם מתאים, אבל השפה הראשונה שלי הייתה BASIC, והקשה ביותר הייתה x86 ASM.

עם זאת, השפה הגרועה ביותר הייתה שפה קניינית של חברת מדיה. MTL: Morris Templating Language. זה ממש לא היה קיים מחוץ לאתרי עיתוני מוריס. הוא ניסה לפשט דברים נפוצים כדי לאפשר פיתוח מהיר יותר של דברים כמו לוחות שנה, רשימות, גרפים וכו', אך למעשה כמעט ולא נעשה בו שימוש. על ידי רוב הנכסים כי הפעמים הנדירות שהיה צורך במשהו זה היה מחוץ לשעות העבודה של אנשים כמוני אז הם אמרו תזדיין ועשו גרפיקה :פ

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

הוותיקים ביותר הם Fortran ו-COBOL. הכי יוצא דופן היה IBM JCL. אבל גם COBOL וגם JCL היו לזמן קצר מאוד. פורטרן למשך התואר שלי.

התכוונתי לומר JCL יחד עם REXX ו-EXEC2.

מה שהיה די מרגיז זה שהייתי בחור UNIX &C לאורך כל הדרך, אבל נאלצתי להתממשק עם מסד נתונים במיינפריים של IBM באמצעות עבודות חילוץ נתונים שנכתבו למעלה. שנאתי את זה!

הוותיק ביותר? = בסיסי
הכי מוזר? = LISP, MIPS ו-TCL/Tk, אבל אלה שימשו בתוכנית התואר הראשון שלי כשפות הוראה.
הכי מוזר שבאמת השתמשתי ב-IRL? = ColdFusion בסביבות מסגרת הזמן של Macromedia.

ג.

עשיתי גם הרכבה של x86. יש לי גם אח מתמטיקאי, אז עזרתי לו לעשות Fortran.

(אף אחד מהשלושה לא הייתי נוגע שוב אם יכולתי. אני תמיד אומר שהרבה סטודנטים למדעי המחשב אומרים שהם אוהבים את ג' כשהם לומדים. והם שומרים על זה זיכרון טוב... עד שהם צריכים לכתוב C בשביל כסף.)

אלה יהיו הכי ותיקים/מגעילים, אני חושב. (ובכן, המגעיל ביותר עשוי לכלול גם קובצי bat.)

עשיתי גם הרכבה של 6502, הרכבה של 68k, C64 Basic ו-Blitz Basic (אהבתי את זה, זה מה שאני מחשיב שהפך אותי למתכנת).

לגבי חריג, עזרתי למכר לכתוב "C+-", ה-C/C++ מאשאפ המוזר של האוניברסיטה שלהם. למה? למה? אלה היו עבור כמה קורסי אלגוריתמים איומים. למה שהם יבזבזו זמן בכתיבת שפה לא ברורה מוזרה כשהסילבוס שלהם היה כל כך קשה? איזה בזבוז.

בפעם הראשונה ששיחקתי עם מחשב אמיתי כלשהו (לא סופר את Atari 2600 או Intellivision) שיחקנו עם לוגו.

הו... שכחתי לגמרי לציין את OOF... Fortran מונחה עצמים. עשינו בו מטלה לתכנות מקביל עוד בשנת 1991.

SQL זה די מוזר. אני אוהב להשתמש בשמות עמודות כמו "FROM", "WHERE " ו-"DISTINCT" כדי לשפר את זה.

הוותיק ביותר? Fortran 77, כנראה על קוד שעדיין בשימוש. הרבה חיזוי מזג אוויר/אטמוספירה ומחקר, ודברים אווירודינמיים שעדיין משתמשים בזה.
הכי מוזר? פרולוג, הרבה כיף
הכי חריג? יציאת מערכת הפעלה בהרכבה לארכיטקטורת ARC הניתנת להגדרה מחדש. זה/היה יישומי מיקרו-ארכיטקטורה של מפרט ISA והתייחסות שמשאירים במפורש מקום להוראות הרחבה ספציפיות לשבב, אוגרים, מצב ארכיטקטוני וכדומה. בעיקרון, מותאם לתכנון פונקציונליות ASIC המשולבת בצורה הדוקה ברמת צינור ההוראות עם ליבת CPU גנרית למדי.

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

RPG 2.

אני אחמק עכשיו.
כמו כן, COBOL ו-IBM JCL.

Sysadmin, אבל עשיתי קצת COBOL ו-NATURAL בעבודה ישנה.

הוותיק ביותר? הרכבה Z80 תחת CP/M על מכונות מחשב ישנות Addressograph/Multigraph/Varityper.

הכי מוזר? Magna8 תחת GCOS8. שפת "פיתוח מהיר" של COBOL במיינפריים ישן של בול היה למעסיק שלי. Magna8 היה "תכנות פונקציונלי" לפני שזה היה דבר. היית אמור (בעצם) להזין פקודות בכל סדר ישן וזה יהיה הגיוני של כל העניין ולייצר תוכנית COBOL לעשות את זה. במציאות מחברי השפה ידעו שזה לא יכול לעשות הרבה בלי עזרה, אז הקלדת גם מספרי שורות בטווחים ספציפיים (טווחים עבור כל "מודול", IIRC) ואז היה צריך לקחת את הפלט COBOL, להבין מה לא בסדר, ואז לכתוב שורה נוספת מספרים. bleh.

הכי מגעיל? 80286 אסיפה. bleh כפול.

הכי חריג? הָלְאָה. Deep Blue C היה סגן אלוף, אבל Forth מנצח.

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

מעולם לא השתמשתי במשהו מוזר במיוחד, אבל שוטטתי בכמה שפות מאוד קנייניות בזמני. Apogee היה אחד מהם -- זה היה כמו dBase, רק שונה. נדמה לי שנזכר שנדרש קצת מאמץ כדי לגרום להם לתת לנו קובצי DLL של Windows כדי לגשת לנתונים שלנו.

למעסיק האחרון היו מספר DSLs עם תצורת DSL שפותחו בבית עבור מוצר הדגל שלו.

הוותיק ביותר? כנראה איזה FORTRAN IV הייתי צריך לשנות עבור עבודת הקיץ הראשונה שלי במהלך הקולג'. בא מעולם של כתיבת תוכניות זעירות ונקיות ב- Scheme ו-C++, זה היה מבוא אכזרי למציאות.

מוזר ו/או מגעיל? Sendmail.cf, ו-sendmail.mc, הבן הממזרי שלו עם מעבד המאקרו M4.

RPG (RPG3) ו-IBM CL יהיו הכי יוצאי דופן שלי.

FOCUS ו-JCL לקבל נתונים ממיינפריים של יבמ כשעבדתי בחברת ביטוח

כתבתי גם כמה פקודות מאקרו VBA ב-Excel כדי להזין נתונים לתוך IBM PCOMM באמצעות רשת הפיקסלים ושימוש במפתחות שליחה כדי להפוך משימות לאוטומטיות כמו ניווט בתפריטים ועדכון קבצי דירוג. חסכתי ממש אלפי שעות אדם של הזנת נתונים ידנית, אבל פחדתי שמשהו ישתבש מכיוון שזה היה המנוע של כל מערכת התמחור, וזה היה פשוטו כמשמעו, שימוש ב-Excel כדי לעשות דברים "שים Y בשורה ה-24 ובעמודה ה-36 על המסך, שלח מקשי את כפתור ה-Enter" ולרוץ במשך יום שלם רק לרכוב על אופניים בין אלפי מסכים

אה, שכחתי פוקוס. הייתי יועץ של אורקל (כן, אני יודע) שקיבלתי במקום אחד ובסופו של דבר עשיתי FOCUS. הרגיש מאוד מוזר.

כמו כן, ה-C++ המקורי מאוד, לפני שהיה מהדר, כאשר הוא הומר ל-C ביניים. מה שפירושו כמובן ניפוי באגים היה כיף (אבל לפחות זה לא פלט דפים של שגיאות תבניות).

מה שגם גורם לי לחשוב על מטא-תכנות התבנית של C++ 😱 - ולא בצורה טובה!

התעסק עם מספר שפות במהלך השנים למרות שזה מעולם לא הביא למשהו שימושי
  • בסיסי על TRS-80 (תחילת שנות ה-80 בתיכון)
  • Basic, Forth, גרסה כלשהי של C הכל על Atari 8 סיביות
  • Pascal, C, Modula-2 על Atari ST
  • HyperTalk
  • VAX פסקל וטורבו פסקל

הרבה ספרים על שפות שונות כמו פרולוג (אני אוהב לקרוא ספרים על שפות שונות, גם אם לעולם לא אשתמש בהן)

ג'אווה (זה היה מעורפל בזמנו, לי בכל מקרה - היה לו פרויקט עבודה לקחת מק+מסך מגע+ג'אווה ולעשות איתו משהו. למרבה המזל זה בוטל לפני שנכתבה שורת קוד אחת.)
VAX Basic - העבודה האמיתית הראשונה שהייתה לי כמתכנת כללה את זה.

פעילויות קידוד מבוססות C# ו-.NET צורכות כעת את חיי העבודה שלי, אבל הן אינן מעורפלות.

הייתה גם שפה פונקציונלית תוצרת בית שבה השתמשה התואר הראשון שלי עבור קורסי CS II. התחביר שלו עוצב במידת מה על פי פרולוג, מכיוון שהם שימשו גב אל גב במהלך הקורס. המאפיין הייחודי ביותר שלו היה תחביר פשוט מאוד להערכה עצלנית של ביטויים ספציפיים. אני חושב שזה פשוט נדבק $ מולם כדי להצביע על תנופה. זה הקל מאוד ללמד מושגים כמו גנרטורים שייצרו אינסוף רשימות, אבל רק כשהם נצרכו.

לפי הסדר שלמדתי אותם:
צופים PL/1
בית BASiC
מכללת ForTran
פסקל
Modula-2
Smalltalk 85
PDP 8 ASM
עבודה RPGII
COBOL
PL/SQL
ג
אובייקטים עסקיים

Smalltalk היה המוזר ביותר, RPGII היה קוד לכתיבה בלבד. התפרנסתי טוב מהיכולת לשנות RPG מ-1983 עד 1998 נהניתי להפוך את PL/SQL למהיר יותר

ב-RPG, משתנים מספריים הם באורך של 2 אותיות, בוליאנים הם מספרים בני 2 ספרות, הגדולים, הקטנים והשווים לעמדות היו בכרטיס 80 העמודות. הערות עוברות מעמודה 81 ל-96.

קובץ התצורה של Sendmail הוא פשוט רע.

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

במבט לאחור, AMOS Basic המקורי היה שפה די מוזרה ומגעילה. התחביר היה בכל מקום, חלק מהסיביות הן מעין שפה טבעית-Y, חלק מהסיביות יותר דמויי c, הכל נעשה באמצעות מילות מפתח במקום ממשקי API אז יש ממש מאות מהם, בלי עקביות לגבי שום דבר בכלל, וכל כך הרבה מהם הם באמת WTF חוֹמֶר. ואז יש את שפת האנימציה המשובצת, AMAL :eek:

לא על חומרה בפועל, היה לנו אמולטור תוכנה שרץ על מחשבים מבוססי 8088 (אפילו אז). הייתה לנו כיתה שהייתה משהו "אל..." אני לא זוכר מה, עכשיו, איפה היינו צריכים לתכנת בהרכבת PDP-11 כל הסמסטר.

עשה גם קצת עבודה על מיינפריים מסדרת Univac 1100 (זו הייתה המכונה הראשית של האוניברסיטה באותה תקופה). מילה של 36 סיביות ועבדה באמצעות ה-Ones' Complement כך שהיה לה אפס חיובי ושלילי ;)

היה לנו קורס שפות תכנות שהיו לנו בערך 8 מטלות וכל מטלה הייתה צריכה להיכתב בשפה אחרת... אז Smalltalk, Prolog, Lisp, C, ADA, OOPascal (Borland), ועוד כמה.

יש לי רצון עז לכתוב תוכניות באלגול.

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

נושא מעניין...

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

שימוש מקצועי - ישן C++. ביצעתי כ-95% פיתוח של Java כבר 20 שנה, אבל כרגע מפקח על בסיס קוד C++ גדול משנות ה-90. יש כמות עצומה של מורכבות הנובעת מ-1) סחיטת ביצועים מקובלים מהחומרה של עידן שנות ה-90 ו-2) הטמעת פונקציונליות מאפס שהיא כיום סטנדרטית ברוב השפות.

השפה הוותיקה, המוזרה והמגעילה ביותר שקודדתי בה אי פעם הייתה השפה שבה כתבתי את התוכנית בתשלום הראשונה שלי -FORTRAN II II כמורחב (מהטמעת קוד פתוח ללקוחות של IBM) עבור IBM 7090 על ידי C-E-I-R Inc. בעזרת מצפה הכוכבים האסטרופיזי של סמיתסוניאן. ההישג העיקרי שלי בשפה זו היה תוכנית שלב 3 המתוארת ב הפוסט הזה. היישום שלי של חיפוש עומק ראשון (פחות או יותר הומצא מחדש באופן עצמאי) היה מסובך מאוד בגלל ל- FORTRAN II לא היו שיחות תת-שגרה רקורסיביות, אז הייתי צריך ליישם מאפס ערימת חיפוש באמצעות מַעֲרָך.

שגיאת הקידוד שהזכרתי בטרום-P.S. הפסקה של הפוסט הזה הייתה תוצאה של מגבלת מבנה הבקרה הנוראה שהוצגה ב "תוכנית FORTRAN II פשוטה" במאמר בויקיפדיה. IIRC היה לי סניף תלת כיווני שעבר למספר ההצהרה הלא נכון בנסיבות מסוימות. לקח לי 14 שעות ימים מיום שלישי ועד מקלחת מוקדמת של יום ראשון בבוקר לזהות את השגיאה הזו, לאחר שלילת שגיאת מהדר (בעבר מצאתי אחת שהוצגה על ידי הרחבה C-E-I-R).

ההרחבה העיקרית של C-E-I-R ל- FORTRAN II הייתה היישום של הגיוני הסתעפות תלת כיוונית אם להצהרת הסתעפות יש 'B' (עבור בוליאנית) בעמודה הראשונה של כרטיס המקור. התנאי בתוך הסוגריים של ההצהרה יישם אז את '*' כאופרטור AND ואת '-' כאופרטור בלעדי-OR ב- ביטוי, ומספר ההצהרה האמצעי של שלושת העוקבים אחרי הסוגרייה הקרובה יסועף אליו אם הביטוי יוערך ל FALSE (אני חושב). הרחבה זו אפשרה לכתוב תוכניות שהשוו מחרוזות טקסט של 6 תווים (אורך של 7090 מילה), מה שהפך אותו אפשרי לכתוב תוכניות ש-COBOL-61 הפך לפשוט מאוד. למרות זאת הבוס שלי היה צריך לעזוב את תוכנית שלב 1 המתוארת באותה פסקה אחרונה ב-COBOL-61, כך שניתן היה להרחיב אותו כדי לתקן שגיאות שנכנסו למקשים בעמודה הלא נכונה בפורמט RCA-PERT קֶלֶט. הוא לא עשה זאת; היית צריך ל באופן ידני לתקן שגיאות כאלה ששלב 1 זיהה.

ההודעה האחרונה בבלוג

מדוע כל כך קשה למצוא משהו בקרקעית האוקיינוס?
September 27, 2023

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

מדוע כל כך קשה למצוא משהו בקרקעית האוקיינוס?
October 09, 2023

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

מדוע כל כך קשה למצוא משהו בקרקעית האוקיינוס?
September 27, 2023

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