Примечание переводчика: В нашем блоге на Хабре мы много пишем о построении облачного сервиса 1cloud и опыте работы с инфраструктурой других компаний. Однако серьезный вклад в развитие технологий делают инженеры-энтузиасты, и об этом важно помнить. Сегодня мы представляем вашему вниманию рассказ о языке программирования SPITBOL, который был разработан несколько десятков лет назад, позднее использовался для анализа украденных персональных данных сайта Ashley Madison, но может просто исчезнуть, если усилия его создателя не увенчаются успехом.



Дэйв Шилдс (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)


  1. TriKrista
    29.10.2015 19:36
    +6

    1. 1cloud
      29.10.2015 19:43
      +3

      Если не касаться качества самого перевода (что можно было бы сделать), и того факта, что Хабр и Гиктаймс — это разные сайты и нет никакого смысла искать совпадения материалов на них, то в том материале, на который вы ссылаетесь даже ссылки на тот самый репозиторий на Гитхабе нету.


      1. WingedBoar
        29.10.2015 21:11
        +2

        > Если не касаться качества самого перевода

        Свой сначала поправьте.

        SPITBOL – Шилдс разработал его в 70-х годах

        Может всё же «language called SPITBOL that he worked on» не совсем так переводится? Например в вики в качестве разработчика указан совсем другой дяденька, а герой сюжета там даже не упомянут.

        Шилдс говорит, что SPITBOL – это «быстрая и грязная» реализация языка программирования 60-х годов SNOBOL4, созданного Робертом Дьюаром (Robert Dewar)

        Учитывая вновь открывшиеся факты, «языка — созданного» -> «реализация — созданная». Снобол другими людьми сделан.


    1. Wedmer
      29.10.2015 20:06
      +30

      Я, к примеру, GT не читаю. Даже усилия ТМ не помогают.


      1. lowride
        29.10.2015 23:03

        Вот кстати было бы хорошо если было бы реализовано как в приложении на ipad (android?), там все три ленты есть в одном приложении. Хотя было бы лучше если бы просто можно было поставить галку и видеть или не видеть один из сайтов в общей ленте.


        1. Alert
          29.10.2015 23:08

          1. baldr
            30.10.2015 00:22
            +1

            RSS?


            1. Dromok
              01.11.2015 18:09

              Я как раз через tinyrss.ru читаю. Вбил все три ленты (хабр, гк, мозг). Очень удобно.


              1. Wedmer
                01.11.2015 18:40

                А у меня стоял юзерскрипт, который все объединял. Отключил, чтобы нервы поберечь.


      1. KvanTTT
        29.10.2015 23:57
        +21

        На GT все же довольно интересные посты есть, про парадокс Ферми например. А вот Мегамозг вообще шляпа :(


        1. jrip
          30.10.2015 14:23
          +1

          На GT есть опасность случайно прочитать комментарии и офигеть от того как, оказывается, все ужасно.


  1. GDApsy
    29.10.2015 20:26
    +20

    Все же, по-моему, зря произвели разделение, если что-то неинтересно, то можно просто описаться от хаба соответствующего.


    1. stychos
      29.10.2015 21:26
      +6

      Вообще да, хотел написать пост в DIY, но он внезапно оказался на гиктаймсе — и кому там будет интересен мой говнокод для ардуинки? В общем, желание отпало. С другой стороны, там в теме про возникновение жизни столько фриков набежало, что иногда думается, что не зря.


      1. bolk
        29.10.2015 22:04
        +4

        Да я сейчас вообще ничего не пишу, потому что даже не понимаю на какой сайт мне писать, желания разбираться нету, зачем мне лишний барьер?


        1. stychos
          30.10.2015 10:47
          +3

          Вы конечно простите, но Хабр изначально — ресурс с достаточно высоким барьером доступа, да и в инженерной и IT-сферах желание разбираться в чём-либо только приветствуется.


          1. bolk
            30.10.2015 11:33
            +1

            Вы тоже меня простите, то «Хабр» давно не центральный для меня ресурс. Он давно скатился на уровень маркетингового бла-бла. Я не против в чём-то разбираться (вы в этом убедитесь, если посмотрите мои записи), но разбираться в этом тонком делении у меня нет никакого желания, для меня это просто неудобство на очередном сайте.


            1. stychos
              30.10.2015 11:44

              Вы хороший автор, и в чём-то, безусловно, разбираетесь. Я же «прикопался» к фразе «желания разбираться нету, зачем мне лишний барьер?» — ну в данный момент мне показалось, что это слишком гипертрофированная реакция, лишённая практического смысла, как-то не по-христиански рано Вы опустили руки на написание материала как такового, из-за какого-то маркетингового бла-бла — ведь перестав писать материал Вы делаете хуже не только Хабру (сомнительный довод), но и себе. Но, конечно, это Ваше и только Ваше право — писать, или не писать статьи.


              1. monah_tuk
                30.10.2015 18:49

                Писать вполне можно и в своём блоге, где, в конце концов, есть нужная подсветка синтаксиса и удобная разметка :)


                1. stychos
                  30.10.2015 23:27

                  Да можно конечно, потому и пишу, что это право пишущего.


                  1. monah_tuk
                    31.10.2015 05:49

                    Я про сделать хуже себе. Просто фраза воспринимается как: прекратив писать материал [на Хабре], вы сделаете хуже не только Хабру [ну а как ты можешь прекращением письма сделать ему хуже, если ты не писал сюда?], но и себе. Ну и автор (поправте, если не прав) делал акцент на неудобство конкретного сайта (системы сайтов), а не на прекращение творческого процесса вообще. Так что себе он точно хуже не сделает. А хабру давно стоит озадачиться парсером и более вменяемой разметкой, а не дописыванием @ к нику и сомнительным делением ресурсов.


                    1. stychos
                      31.10.2015 06:27

                      Мне кажется, если человек долгое время тут писал, то значит что-то в этом для него было — может, интересные собеседники в комментариях, с которыми можно почерпнуть знаний и мотивации к дальнейшему написанию (а значит и саморазвитию), может просто нравилось делиться знаниями на публику, которую долго набирать в личном блоге, может ещё что-то. В любом случае, я всего лишь высказал своё мнение — если человеку его дело интересно, то такие мелкие препятствия не должны сильно омрачать жизнь. Ну и в итоге, конечно же дело каждого, что ему лучше или хуже.


      1. isden
        30.10.2015 10:43
        +2

        > столько фриков набежало

        Фриков там набежало всего два или три, просто орут они громко и много.


        1. stychos
          30.10.2015 11:09

          Соглашусь, преувеличил.


      1. xenohunter
        30.10.2015 10:45

        Что за тема про возникновение жизни? Не могу найти.


        1. stychos
          30.10.2015 10:47
          +1

          1. xenohunter
            30.10.2015 11:07

            Спасибо.


  1. sb3d
    29.10.2015 22:21
    +2

    Грустно-забавная история. По себе знаю что уже в тридцать сложно идти вперёд и осваивать технологии, а уж в семьдесят. Старику это конечно в плюс, ему и дело, и интерес. А вот ценность его труда вероятно около нулевая.


    1. GDApsy
      29.10.2015 22:24
      +2

      Ну гипотетически это может кого-то вдохновить на развитие своих проектов в области языков и компиляторов.


      1. sb3d
        29.10.2015 22:31
        -4

        Наверное сегодня не то время, когда стоит в одиночку писать язык или компилятор. Не взлетит.


        1. GDApsy
          29.10.2015 22:49
          +1

          Согласен, проект героя топика сам не взлетит, но может быть его идеи повлияют на новые прректы пусть и косвенно, я об этом.


          1. oYASo
            30.10.2015 01:39
            +7

            Да ладно вам, взлетит, не взлетит. Мужик, судя по всему, просто кайфует от процесса — не это ли классно на пенсии, ну? Судя по истории, взлетевший проектов ему уже хватает, теперь можно просто пописать то, что хочется.


        1. je56
          30.10.2015 02:05
          +8

          Проекты большинства из нас никогда не взлетят. Независимо от возраста и времени.


    1. jrip
      30.10.2015 14:25

      >о себе знаю что уже в тридцать сложно идти вперёд и осваивать технологии
      Да ладно, по-моему как раз наоборот все проще, чем например, в 20.


    1. bolk
      30.10.2015 15:34
      +4

      В 30 сложно идти вперёд? ОМГ.


      1. PavelSandovin
        30.10.2015 16:52

        И в 70 не сложно, если здоровье позволяет.


        1. bolk
          30.10.2015 20:30

          Доживу, расскажу.


  1. AlexHa
    30.10.2015 00:33

    Не так давно прочитал высказывание какого-то 70-ти летнего что ли мультипликатора, что сейчас он делает то же самое, что и в 25, но в 3 раза медленнее.


    1. KvanTTT
      30.10.2015 16:42
      +1

      Это значит, что будучи 100 летним он будет делать то же самое, что и в 25, но 4 раза дольше? :D


      1. AlexHa
        30.10.2015 22:02

        Сложно сказать, может быть, зависимость нелинейная.


  1. SerJook
    30.10.2015 09:14
    +3

    Умирающие языки программирования надо взять под защиту ЮНЕСКО.


    1. baldr
      30.10.2015 09:19

      Тут вспоминается история про Спасти 25 000 мануалов


  1. xenohunter
    30.10.2015 10:38
    -2

    Хм. 20 лет для GitHub — как-то маловато. Думаю, он продержится намного дольше.
    По теме: все бы так любили свою работу!


    1. baldr
      30.10.2015 10:47
      +7

      20 лет — это, все-таки, довольно много.
      Случиться может всякое. Как, например, с Google Code или с SourceForge.