Дэйв Шилдс пытается сохранить умирающий машинный язык.
Шилдс занимается программированием более 50 лет, и на протяжении десятилетий он работал на компании NYU и IBM на должности программиста-исследователя — то есть того человека, который двигает границы программной разработки вперед. За свою карьеру Шилдс сделал несколько достаточно заметных достижений, в том числе, он был одним из разработчиков Jikes, компилятора Java, который был одним первым опенсорс проектов IBM.
Но семидесятилетний Шилдс заинтересован сегодня, в первую очередь, в одном: малоизвестном языке программирования, носящем название SPITBOL, над которым он работал в 1970-е, и который потом был заброшен на 30 лет.
SPITBOL, по словам Шилдса, — это «быстрый и грязный» способ внедрения языка программирования, носившего название SNOBOL4, написанного Девидом Девором. Это краткий и точный язык — всего 28 000 строк кода, половина из которых — комментарии, и предназначен он был, в основном, для управления текстом и символами, а также для распознавания графики. В то время SNOBOL4 считался мощным, но медленным, а SPITBOL создавался для скорости.
Сегодня Шилдс пытается поддержать жизнь SPITBOL в качестве опенсорсного проекта на хосте GitHub, и делает это в одиночку. После запуска проекта онлайн в 2009 году Шилдс был единственным, кто вносил изменения в код SPITBOL. Таким образом, он преуспел в изменении конфигурации языка, который он в свое время портировал на суперкомпьютер 60-х годов CDC 6600 для работы на современных операционных системах Linux и Mac.
Я думаю, что GitHub будет существовать еще 20 лет. Сегодня есть возможность создавать программное обеспечение, которое будет работать по-настоящему долго. Все, что я когда-либо написал, хранилось на магнитных лентах, и теперь потеряно для истории
Цель Шилдса — внедрить элементы SPITBOL во многие современные языки (к примеру, Go от Google), чтобы, таким образом, люди могли продолжать использовать его после того, как он уйдет. «Я работаю над этим кодом уже 50 с чем-то лет, и, учитывая, что я могу делать с помощью него сегодня, люди смогут применять его в будущем, на протяжении еще 10 или 20 лет», — говорит Шилдс.
SPITBOL написан на ассемблерном уровне — низкоуровневый код, который практически напрямую взаимодействует с аппаратной частью компьютера. Так как большинство кода сейчас пишется на более высоком уровне, Шилдс считает SPITBOL важной частью истории развития программирования.
Что касается этого языка, самое примечательное в нем то, что он – наиболее элегантный пример программирования на машинном уровне. Искусство написания кода на машинном языке – забытое искусство
SPITBOL использовался для синтаксического анализа данных по делу взлома Ashley Madison.
В 70-х годах Шилдс перестал работать над SPITBOL. В 1987 году программист по имени Марк Эммер взял на себя проект после нескольких лет работы над SNOBOL4. Он использовал код, который дал ему на дискете Девор, и на протяжении следующего десятилетия Эммер занимался поддержкой SPITBOL и создал новые версии для работы на машинах того времени под управлением Mac, Windows и Unix. Также он превратил проект в предприятие по рассылке программного обеспечения из дома по электронной почте. В 1994 году он прекратил работу над SPITBOL.
«Как бы ни любил я программирование и своих клиентов, это не могло обеспечить мне безбедную жизнь на пенсии, — Написал мне Эммер в электронном письме, — Так что в 1994 году я восстановил старые рабочие контакты и начал заниматься разработкой низкоуровневых систем, и продолжал заниматься этим до самого выхода на пенсию в 2009 году и переезда в Мексику в 2011 году».
Сейчас, по словам Эммера, все, что было написано на SPITBOL — ленты и диски из прошедших десятилетий — упаковано в картонные коробки, которые он только недавно перевез из Колорадо в свой дом в Мексике. Но 2009 год был годом сюрпризов.
В то время как Эммер занимался выходом на пенсию, Шилдс намеревался вернуться в игру. Эммер послал Шилдсу архив со всем необходимым, и Шилдс начал работу по портированию всего этого материала на GitHub. Шесть лет спустя Шилдс все еще занимается этим проектом, надеясь сохранить ему жизнь на годы вперед.
«Я восхищен, — пишет Эммер относительно проекта Шилдса. — Это чудесный код, и памятник гениальной работе Роберта Девора по внедрению».
В 2012 году, в публикации, описывающей его роль как единственного разработчика репозитория SPITBOL на GitHub — которая привлекла некоторое внимание на Hacker News — Шилдс называет себя также единственным пользователем SPITBOL. Это ирония, как сказал он мне по телефону. Он не единственный пользователь, просто он не получает достаточно откликов на проделанную им за это время работу.
Я осознал, что это не была погоня за популярностью. Это была просто работа, сама по себе
В качестве примера можно привести довольно активное сообщество на Yahoo, посвященное SNOBOL4 и SPITBOL. Последняя публикация была сделана 31 августа, и на тот момент в сообществе состояло 165 участников. В группе участники обсуждали применение SPITBOL для обработки адресных книг и, в одном случае, синтаксический анализ базы данных пользователей Ashley Madison.
Но, в конце концов, большая (или маленькая) база пользователей не была целью Шилдса. Это было возвышенное желание творить код.
Этот момент я осознал во время создания Jikes. Мы получили целую кучу наград, и в то время это было чем-то значительным, но, оглядываясь на те времена спустя несколько лет, я понял, что нами двигала вовсе не погоня за популярностью. Это просто была работа, сама по себе. Это то, что приносило наибольшее удовлетворение и то, что я лучше всего помню до сих пор. Вот что я думаю о SPITBOL
Платежные решения Paysto для читателей Гиктаймс:
→ Получите оплату банковской картой прямо сейчас. Без сайта, ИП и ООО.
→ Принимайте оплату от компаний через Интернет. Без сайта, ИП и ООО.
→ Приём платежей от компаний для Вашего сайта. С документооборотом и обменом оригиналами.
→ Автоматизация продаж и обслуживание сделок с юр.лицами. Без посредника в расчетах.
→ Принимайте оплату от компаний через Интернет. Без сайта, ИП и ООО.
→ Приём платежей от компаний для Вашего сайта. С документооборотом и обменом оригиналами.
→ Автоматизация продаж и обслуживание сделок с юр.лицами. Без посредника в расчетах.