Історія про Мела, Справжнього Програміста
Історія Мела (англ. The Story of Mel) — твір, представник комп'ютерного фольклору, що став широковідомим завдяки Usenet і Файлові Жаргону. Головна дійова особа історії — Мел Кей (англ. Mel Kaye), приклад Справжнього Програміста, чиї навички і майстерність у програмуванні є предметом захоплення колег. Автором твору є Ед Нейтер (англ. Ed Nather).
Нейтер описує надзвичайні здібності до програмування його колишнього колеги Мела, що працює у корпорації Royal McBee[en].[1][2] Твір було спочатку написано прозою, але пізніше хтось модифікував його у «поезію вільного стилю», що широко розповсюдилася завдяки комп'ютерним мережам і Usenet.[3][4]
Про Мела Кея мало що відомо, крім того, що він здійснив «більшість роботи з програмування» компілятора ACT-1 (1959 рік) для комп'ютера LGP-30[en] фірми Royal McBee.[5][6]. Нейтер описує Мела як людину, що уникає використання оптимізувального асемблера, натомість надаючи перевагу «ручному» кодуванню з максимальним використанням можливостей машинного коду комп'ютера і деяких його особливостей (таких, наприклад, як реалізація програмної затримки через період обертання магнітного барабану, що слугував головною оперативною пам'яттю машини).
У історії розповідається, як Мелові доручили переписати програму, що грає у блекджек, з LGP-30 на новіший комп'ютер RPC-4000 (терміну «портування програмного забезпечення» тоді не існувало). Щоб відвідувачі на виставках, де мав показуватися новий комп'ютер, не засмучувалися, керівництво компанії наказало Мелові модифікувати програму: вона мала враховувати позицію спеціального перемикача на консолі, щоб у визначеному його положенні користувачі комп'ютера завжди вигравали. Кею така ідея вкрай не сподобалася, втім під тиском менеджменту він все-таки додав таку функціональність — але «з точністю до навпаки»: якщо перемикач активували, то не людина, а комп'ютер завжди вигравав у «блекджек».
Кей звільнився, а Нейтера попросили «полагодити баг». Під час аналізу коду він був спантеличений тим, що програма хоч і мала нескінченний цикл, але лічильник команд постійно виходив з-за меж цього циклу. Врешті-решт він зрозумів, що програма реалізовувала код, який модифікує сам себе під час обробки елементів масиву, і що використовується програмне переповнення. Додавання 1 до адреси інструкції x зазвичай просто збільшувало адресу до x+1, але якщо x було максимальною дозволеною адресою, до відбувалося переповнення і результат ставав 0. На додачу до цього комп'ютер модифікував біти коду операції, так що в підсумку виходила операція «перехід до адреси 0». Така техніка програмування настільки вразила Нейтера, що він вирішив відмовитися від модифікацій, і відрапортував керівництву, що не зміг знайти помилки.
Есей був опублікований у групі Usenet «net.followup» 21 травня 1983 року користувачем utastro!nather
(адреса email Еда Нейтера у той час).[1][2]
Комп'ютери для фірми Royal McBee виготовлялися компанією Librascope, і документація на програму «блекджек» написана самим Мелом Кеєм. У серпневому за 1956 рік номері журналу «Librazette» компанії Librascope є історія навчання роботі на LGP-30, де згадується, що робота деякі інженерів Librascope буде оплачуватися фірмою Royal McBee, і серед цих інженерів є ім'я Мела Кея.[7]
На обкладинці цього номера журналу є фотографія, де знято програмістів-новачків і їх інструкторів, з Мелом Кеєм включно.[8]
- ↑ а б Raymond, Eric S., ред. (1 липня 1992). The Jargon File, Version 2.9.10, 01 Jul 1992 (jargon2910.ascii.gz). line 20505. Архів оригіналу за 9 березня 2017. Процитовано 1 липня 2014.
- ↑ а б Matt Crawford (20 листопада 1984). The realest programmer of all. Newsgroup: net.jokes. Архів оригіналу за 4 листопада 2012. Процитовано 9 грудня 2018.
- ↑ The Story of Mel, free verse version. Архів оригіналу за 24 грудня 2018. Процитовано 9 грудня 2018.
- ↑ The Story of Mel, A Real Programmer, Annotated. www.cs.utah.edu. Архів оригіналу за 9 лютого 2020. Процитовано 9 грудня 2018.
- ↑ Bill von Hagen (1 червня 1994). New Light on the Legend of Mel. alt.folklore.computers.
- ↑ Mel Kaye. FOLDOC. Архів оригіналу за 27 листопада 2018. Процитовано 9 грудня 2018.
In particular, Mel Kaye of Royal McBee...
- ↑ Librascope Memories (PDF). The Librazette. Librascope Inc. Архів оригіналу (PDF) за 28 січня 2018. Процитовано 9 грудня 2018.
- ↑ Mel Kaye in the first LGP-30 training class. the Librazette. Librascope Inc. Архів оригіналу за 30 листопада 2018. Процитовано 9 грудня 2018.
- utastro!nather (21 травня 1983), The Story of Mel — A recent article devoted to the *macho* side of programming made the bald and unvarnished statement: Real Programmers write in Fortran., Greg Lindahl, архів оригіналу за 9 березня 2017, процитовано 9 березня 2017 (NB. A copy of the original prose version.)
- utastro!nather (21 травня 1983), re: Real Programmers ..., Rob Stampfli, архів оригіналу за 12 лютого 2018, процитовано 11 лютого 2018 (A completely original copy of Ed Nather's Usenet post, with headers)
- Nather, Ed (12 вересня 2003) [1983-05-21], The story of Mel, a Real Programmer, FOLDOC, архів оригіналу за 9 березня 2017, процитовано 9 березня 2017 (NB. Punctuation added/corrected for readability. Contains link to program tape of blackjack for LGP-30)
- Jennings, Tom, ред. (30 листопада 2000) [1956-10-18], Mel the Programmer: LGP-30 Coding Sheet - Program 13.0, архів оригіналу за 9 березня 2017, процитовано 9 березня 2017 (Mel Kaye's signature] on a coding sheet for the LGP-30.)
- Kaye, Mel, Manual for Blackjack Game (PDF), USA: Librascope, Inc., RPC-4000 Program W1-01.0, архів оригіналу (PDF) за 9 березня 2017, процитовано 8 березня 2017 (NB. Presumably the subject of the original story.)
- Seibel, James (8 квітня 2015), «The Story of Mel» Explained (англ.), архів оригіналу за 18 травня 2018, процитовано 18 лютого 2018 (Детальний аналіз історії, з поясненням технічних деталей.)
- Macho programmers, drum memory and a forensic analysis of 1960s machine code. freeCodeCamp.org. 2 квітня 2018. Contains even more technical details
- van den Bogaard, Adrienne (2008). Stijlen van programmeren 1952-1972. Studium. 2: 128-144. Архів оригіналу за 15 серпня 2018. Процитовано 14 серпня 2018.