strepetaa (strepetaa) wrote,
strepetaa
strepetaa

Categories:

флешмоб девяностые: свежий взгляд

Периодически — раз в несколько месяцев — приходят письма от людей, которые хотели, но не смогли запустить мою древнюю программку. Потому что написана она 20 лет назад на MS-DOS, понятия не имеет о Юникоде, работает с голым plain text'ом в консоли. Типа — а ну-ка выбирай, дорогой писатель, альтернативная у тебя кодировка-то или, может, KOI-8. Самому жутко.

Но письма все приходят. Будят совесть. И вот совесть была разбужена: я придумал, как помочь страждущим без того, чтобы писать костыли для мертвого кода. А именно: вот есть такие Google Docs, куда можно что хочешь положить — хоть вордовский файл, хоть какой. Удобная, легкая, бесплатная вещь. И есть у них свой Apps Script для аддонов, на основе Javascript. Взять да и портировать ее туда — а? Заодно в яваскрипте попрактикуюсь наконец, а то все вокруг все на нем пишут, а у меня все как-то руки не доходили.

Такой будет прыжок из девятнадцатого века в двадцать первый: все сразу в облаке, в онлайне, в AppStore. Это даже посовременнее, чем приспособа для MS Word, о которой меня все просили (но которую делать не было ну никакого желания). Какой там к чертям ворд — будущее же вокруг! Да?

Ну что. Потратил три дня, перегнал. Шесть тысяч строк кондового C ужались в 800 строк прозрачного яваскрипта. Прогресс, господа! Никаких тебе пойнтеров и маллоков, одни легкие анонимные объектики, как мыльные пузыри. Будущее!

Только вот упс. Все это хозяйство ворочается страшно медленно, оказывается. Намного медленнее, чем я думал. И Apps Script, что уж совсем издевательство, дает твоему скрипту максимум пять минут на работу, после чего вылетает с ошибкой. Пришлось следить за временем, доделывать сколько успел и прерываться с извинениями, не дожидаясь вылета. Успевает он за это время проверить тысячи три слов.

Как-то это меня подкосило. Как-то я этого не ожидал совсем. Ведь в 1995 году все крутилось — ну не так чтоб очень быстро, но работать было можно. (Хотя... может, мы тогда были просто терпеливее? Сейчас уж не проверить...) Понятно, что язык сам по себе медленнее, но сколько же лет-то прошло — должны же были компьютеры стать соотвественно порезвей? Должна быть на свете справедливость, я вас спрашиваю?

Нет. Нету на свете справедливости.

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

Впрочем, оно все open source. Смотрите, пробуйте сами. Хотя бы пока оно проверяется, документ вполне можно править — работает асинхронно, и на том спасибо. Тоже ведь прогресс. И эгалите: поскольку работает оно на гугловских серверах, скорость будет одинаковая у всех, независимо от вашего CPU.

Ну не сможете вы свой роман целиком проверить, придется по главкам раскрашивать, по абзацам. Все лучше, чем ничего. Не пропадать же трудам — пусть лежит, дожидается совсем уже будущного будущего, когда железо будет настолько же быстрее нынешнего, насколько Javascript медленнее C.

Где и на чем в том будущем будут писать тексты, хотел бы я только знать.
Subscribe

  • Стихи. Все.

    Вот и прожили мы... ну не половину, но порог: после которого ностальгия по прошлому начинает перевешивать (слегка) стыд за то, каким же был идиотом.…

  • Видим лишь руины

    Была такая компьютерная игрушка, в конце 80-х... Лягушке (очевидно, не умеющей плавать?) нужно перебраться на другой берег пруда, прыгая по листикам…

  • и о политике

    Тех, кто, подобно мне, взирает с доброжелательным недоумением на lesswrong.com и аффилиированные с ним сообщества и не вполне, может быть, понимает,…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 1 comment