Дэйв Шилдс (Dave Shields) пытается спасти умирающий язык программирования.
Шилдс занимался программированием более 50-ти лет. Он на протяжении десятилетий работал программистом-исследователем в Нью-Йоркском университете и IBM, где «раздвигал границы» разработки программного обеспечения. За свою долгую карьеру Шилдс многого достиг, например, он был одним из разработчиков Jikes, компилятора Java – первого проекта IBM с открытым исходным кодом.
Сейчас Шилдсу семьдесят лет. На пенсии он занимается малоизвестным языком программирования SPITBOL – Шилдс работал над ним в 70-х годах, но по каким-то причинам забросил на 30 лет.
Дэйв (справа) и покойный ученый в области ИВТ Джек Шварц (Jack Schwartz) в 1975 году. Фото: Flickr/Дэйв Шилдс
Шилдс говорит, что SPITBOL – это «быстрая и грязная» реализация языка программирования 60-х годов SNOBOL4, созданного Робертом Дьюаром (Robert Dewar). Лаконичный и точный – всего 28000 строк кода, половина из которых комментарии – он [язык программирования], главным образом, предназначался для распознавания шаблонов и работы с текстом или символами. SNOBOL4 был мощным языком, но медленным, из-за этого ему на смену пришел быстрый SPITBOL.
Сейчас Шилдс в одиночку пытается сохранить SPITBOL как проект с открытым исходным кодом, размещенный на GitHub. С момента появления проекта на сайте в 2009 году Шилдс был единственным, кто выкладывал на GitHub код на SPITBOL. Ему удалось успешно адаптировать язык (Шилдс уже как-то портировал его на суперкомпьютер 60-х годов CDC 6600) для работы на современных операционных системах Linux и Mac.
«Я думаю, что GitHub просуществует лет 20, – сказал мне Шилдс по телефону. – Теперь можно хранить созданное программное обеспечение долгие годы. Другие мои проекты хранились на магнитных лентах и сейчас потеряны для истории».
Пособия и документация по SNOBOL и SPITBOL. Фото: Марк Эммер (Mark Emmer)
Цель Шилдса – это создание реализаций SPITBOL для многих современных языков программирования (например, Go от Google), чтобы люди могли пользоваться им после смерти его создателя. «Я работаю с этим кодом уже больше полувека и все думаю, как бы сделать так, чтобы люди могли им пользоваться последующие 10-20 лет», – сказал Шилдс.
SPITBOL написан на языке ассемблера – языке низкого уровня, напрямую связанном с «железом». Поскольку сейчас больше распространены языки высокого уровня, Шилдс относится к SPITBOL как к важной части истории программного обеспечения. «Его особенность в том, что это самый элегантный из сохранившихся примеров кода машинного уровня, – сказал Шилдс. – Искусство писать на машинном уровне – это утраченное искусство».
Однажды SPITBOL использовали для анализа украденных персональных данных сайта знакомств Ashley Madison.
В 70-е годы Шилдс перестал работать над SPITBOL. В 1987 году за проект взялся программист Марк Эммер (Mark Emmer), несколько лет занимавшийся SNOBOL4. Код, c которым он впоследствии работал, ему предоставил на дискете сам Дьюар. На протяжении следующих десяти лет Эммер поддерживал SPITBOL и создал его версии, способные работать на системах Mac, Windows, Unix. Он также превратил проект в домашний бизнес (продавал программное обеспечение по почте). В 1994 году он прекратил работу над SPITBOL.
«Какое бы удовольствие мне ни приносили программирование и работа с клиентами, этот проект не мог обеспечить меня средствами к существованию и гарантировать достойный выход на пенсию, – написал мне Эммер по электронной почте. – В 1994 году я возобновил старые рабочие контакты и начал разрабатывать встроенные низкоуровневые системы, пока, наконец, в 2009 году не вышел на пенсию и не переехал в Мексику (в 2011 году)».
Все, что связано со SPITBOL – магнитные ленты и диски, накопившиеся за десятки лет – Эммер перевез из Колорадо в Мексику в картонных коробках. Но 2009 год был счастливым годом.
Как только Эммер отошел от дел, Шилдс захотел вернуться к работе. Эммер отправил ему .zip файл со всем необходимым, и тот приступил к переносу кода на GitHub. Даже спустя шесть лет Шилдс продолжает работу над проектом, надеясь сохранить его на долгие годы.
Марк Эммер
«Я восхищен, – так прокомментировал проект Шилдса Эммер. – Это удивительный фрагмент кода и памятник гению Роберта Дьюара».
В посте 2012 года Шилдс отметил, что является единственным разработчиком репозитория SPITBOL на GitHub (который удостоился внимания Hacker News). Шилдс также называет себя единственным пользователем языка. «Это довольно иронично», – сказал он мне по телефону. Но Шилдс не единственный пользователь, просто он не получал отзывов о проделанной им работе.
«Я понял, что слава не имеет значения. Это была просто работа».
В качестве примера можно привести функционирующую тематическую группу, посвященную SNOBOL4 и SPITBOL, на Yahoo! Groups. На момент написания этого поста, последняя запись в группе датирована 31 августа 2015 года, а количество её участников насчитывает 165 человек. В этой группе пользователи описывают возможности применения SPITBOL для обработки списков рассылки (однажды его использовали для анализа украденных персональных данных Ashley Madison).
Но Шилдсу не важно, сколько людей пользуются SPITBOL. Он просто наслаждается кодом.
«Работая над Jikes, я кое-что понял, – сказал Шилдс. – Мы выиграли кучу наград, а в то время это было большим достижением. Оглядываясь назад, я могу сказать, что слава не имела значения. Это была просто работа. Именно работа принесла наибольшее удовольствие и запомнилась мне больше всего. Вот как я отношусь к SPITBOL».
Комментарии (43)
GDApsy
29.10.2015 20:26+20Все же, по-моему, зря произвели разделение, если что-то неинтересно, то можно просто описаться от хаба соответствующего.
stychos
29.10.2015 21:26+6Вообще да, хотел написать пост в DIY, но он внезапно оказался на гиктаймсе — и кому там будет интересен мой говнокод для ардуинки? В общем, желание отпало. С другой стороны, там в теме про возникновение жизни столько фриков набежало, что иногда думается, что не зря.
bolk
29.10.2015 22:04+4Да я сейчас вообще ничего не пишу, потому что даже не понимаю на какой сайт мне писать, желания разбираться нету, зачем мне лишний барьер?
stychos
30.10.2015 10:47+3Вы конечно простите, но Хабр изначально — ресурс с достаточно высоким барьером доступа, да и в инженерной и IT-сферах желание разбираться в чём-либо только приветствуется.
bolk
30.10.2015 11:33+1Вы тоже меня простите, то «Хабр» давно не центральный для меня ресурс. Он давно скатился на уровень маркетингового бла-бла. Я не против в чём-то разбираться (вы в этом убедитесь, если посмотрите мои записи), но разбираться в этом тонком делении у меня нет никакого желания, для меня это просто неудобство на очередном сайте.
stychos
30.10.2015 11:44Вы хороший автор, и в чём-то, безусловно, разбираетесь. Я же «прикопался» к фразе «желания разбираться нету, зачем мне лишний барьер?» — ну в данный момент мне показалось, что это слишком гипертрофированная реакция, лишённая практического смысла, как-то
не по-христианскирано Вы опустили руки на написание материала как такового, из-за какого-то маркетингового бла-бла — ведь перестав писать материал Вы делаете хуже не только Хабру (сомнительный довод), но и себе. Но, конечно, это Ваше и только Ваше право — писать, или не писать статьи.monah_tuk
30.10.2015 18:49Писать вполне можно и в своём блоге, где, в конце концов, есть нужная подсветка синтаксиса и удобная разметка :)
stychos
30.10.2015 23:27Да можно конечно, потому и пишу, что это право пишущего.
monah_tuk
31.10.2015 05:49Я про сделать хуже себе. Просто фраза воспринимается как: прекратив писать материал [на Хабре], вы сделаете хуже не только Хабру [ну а как ты можешь прекращением письма сделать ему хуже, если ты не писал сюда?], но и себе. Ну и автор (поправте, если не прав) делал акцент на неудобство конкретного сайта (системы сайтов), а не на прекращение творческого процесса вообще. Так что себе он точно хуже не сделает. А хабру давно стоит озадачиться парсером и более вменяемой разметкой, а не дописыванием @ к нику и сомнительным делением ресурсов.
stychos
31.10.2015 06:27Мне кажется, если человек долгое время тут писал, то значит что-то в этом для него было — может, интересные собеседники в комментариях, с которыми можно почерпнуть знаний и мотивации к дальнейшему написанию (а значит и саморазвитию), может просто нравилось делиться знаниями на публику, которую долго набирать в личном блоге, может ещё что-то. В любом случае, я всего лишь высказал своё мнение — если человеку его дело интересно, то такие мелкие препятствия не должны сильно омрачать жизнь. Ну и в итоге, конечно же дело каждого, что ему лучше или хуже.
sb3d
29.10.2015 22:21+2Грустно-забавная история. По себе знаю что уже в тридцать сложно идти вперёд и осваивать технологии, а уж в семьдесят. Старику это конечно в плюс, ему и дело, и интерес. А вот ценность его труда вероятно около нулевая.
GDApsy
29.10.2015 22:24+2Ну гипотетически это может кого-то вдохновить на развитие своих проектов в области языков и компиляторов.
sb3d
29.10.2015 22:31-4Наверное сегодня не то время, когда стоит в одиночку писать язык или компилятор. Не взлетит.
GDApsy
29.10.2015 22:49+1Согласен, проект героя топика сам не взлетит, но может быть его идеи повлияют на новые прректы пусть и косвенно, я об этом.
oYASo
30.10.2015 01:39+7Да ладно вам, взлетит, не взлетит. Мужик, судя по всему, просто кайфует от процесса — не это ли классно на пенсии, ну? Судя по истории, взлетевший проектов ему уже хватает, теперь можно просто пописать то, что хочется.
je56
30.10.2015 02:05+8Проекты большинства из нас никогда не взлетят. Независимо от возраста и времени.
jrip
30.10.2015 14:25>о себе знаю что уже в тридцать сложно идти вперёд и осваивать технологии
Да ладно, по-моему как раз наоборот все проще, чем например, в 20.
bolk
30.10.2015 15:34+4В 30 сложно идти вперёд? ОМГ.
AlexHa
30.10.2015 00:33Не так давно прочитал высказывание какого-то 70-ти летнего что ли мультипликатора, что сейчас он делает то же самое, что и в 25, но в 3 раза медленнее.
xenohunter
30.10.2015 10:38-2Хм. 20 лет для GitHub — как-то маловато. Думаю, он продержится намного дольше.
По теме: все бы так любили свою работу!baldr
30.10.2015 10:47+720 лет — это, все-таки, довольно много.
Случиться может всякое. Как, например, с Google Code или с SourceForge.
TriKrista
70-летний программист пытается сохранить древний язык программирования на GitHub
1cloud
Если не касаться качества самого перевода (что можно было бы сделать), и того факта, что Хабр и Гиктаймс — это разные сайты и нет никакого смысла искать совпадения материалов на них, то в том материале, на который вы ссылаетесь даже ссылки на тот самый репозиторий на Гитхабе нету.
WingedBoar
> Если не касаться качества самого перевода
Свой сначала поправьте.
Может всё же «language called SPITBOL that he worked on» не совсем так переводится? Например в вики в качестве разработчика указан совсем другой дяденька, а герой сюжета там даже не упомянут.
Учитывая вновь открывшиеся факты, «языка — созданного» -> «реализация — созданная». Снобол другими людьми сделан.
Wedmer
Я, к примеру, GT не читаю. Даже усилия ТМ не помогают.
lowride
Вот кстати было бы хорошо если было бы реализовано как в приложении на ipad (android?), там все три ленты есть в одном приложении. Хотя было бы лучше если бы просто можно было поставить галку и видеть или не видеть один из сайтов в общей ленте.
Alert
TM Feed?
baldr
RSS?
Dromok
Я как раз через tinyrss.ru читаю. Вбил все три ленты (хабр, гк, мозг). Очень удобно.
Wedmer
А у меня стоял юзерскрипт, который все объединял. Отключил, чтобы нервы поберечь.
KvanTTT
На GT все же довольно интересные посты есть, про парадокс Ферми например. А вот Мегамозг вообще шляпа :(
jrip
На GT есть опасность случайно прочитать комментарии и офигеть от того как, оказывается, все ужасно.