[personal profile] strepetaa
Периодически — раз в несколько месяцев — приходят письма от людей, которые хотели, но не смогли запустить мою древнюю программку. Потому что написана она 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.

Где и на чем в том будущем будут писать тексты, хотел бы я только знать.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

strepetaa

August 2017

S M T W T F S
  1234 5
6789101112
13141516171819
20212223242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 11th, 2025 04:42 am
Powered by Dreamwidth Studios