Читать книгу - "Ретро Бит 1-10 - Сева Сотх"
— И решать ее при помощи карандаша и бумаги — истинное безумие.
— Так делали разработчики, которых Кен нанял для переноса моей Зубодробилки. Да, он занял полгода, но получилось хорошо. Не представляю, как ты собираешься справиться за два месяца.
— Мы же программисты, подобную муторную миерду нам сам великий Ктулху велел автоматизировать. Написать утилиту, которая будет считать такты вместо нас.
Идея моя оказалась проста, как двадцать пять центов — запилить анализатор синтаксиса, который подсчитает такты вместо меня. Пройдется по коду модуля, проставит накладные затраты на каждое действие и подобьет итог. Линтер — так подобные скрипты называют в светлом айтишном будущем. Но, кажется, в нынешние лохматые времена хотя бы сам термин уже придумали. Скармливаем ему ассемблерный код и видим прогноз, сколько процессорных действий он займет. Пожалуй, я преуменьшил, когда говорил про дробовик. У нас выйдет если и не БФГ, то, по крайней мере, ракетная установка.
Обстоятельно изложил Джону концепцию.
— Но у тебя ведь очень сжатые сроки, — напомнил коллега, — разумно ли тратить время на инструмент, который не факт, что поможет?
— Лучше день потерять, затем за пять минут долететь, — цитату из советского мультфильма собеседник понять шансов не имел даже теоретически, так как на экранах знаменитое «Главное — хвост!» появится только через несколько лет. — Распиши мне количество процессорных тактов в каждой ассемблерной команде, я их наизусть не помню.
Да вообще не помню, кроме того, что взятая как из лексикона Трейси команда NOP, то есть «ничего не делать», стоит два такта, а однотактовых совсем нет, что очень усложняет жизнь и заставляет ненавидеть саму математическую концепцию четности и нечетности!
Ночь — она звала меня. И Джона вместе со мной. Справились ли мы с задуманным к утру? Решительное нет. Я, может быть, благословлен Омниссией и вообще инженер, но если бы подобные в чем-то революционные штуки писались за одну ночь, то их бы уже кто-нибудь создал. Нельзя просто так взять и написать парсер до рассвета.
Я почти уверен, что нечто подобное уже существует и активно используется разрабами, находящимися в рабстве у Атари и прикованных кандалами на корпоративной галере. Наверняка есть тот же инструмент и у беглых рабов, ныне основавших Активижн.
Джон реально умный парень, быстро понял мою идею и, притащив из дома свой собственный Эппл 2, начал помогать: сначала заполнять таблицу со стоимостью действий в виде структуры на Паскале, а затем еще и отдельные процедуры писать.
Именно Паскаль я выбрал в качестве инструмента для реализации идеи. Во-первых, идеальный компромисс между быстродействием и легкостью кодинга. Во-вторых — удобный доступ к файлам. Читаем листинг построчно, выделяем ключевые слова, оцениваем их стоимость. Материмся на ветвлениях, которые стоят разное число действий, если условие выполнилось или нет.
У нас ушли две недели практически безостановочной разработки с редкими перерывами на сон и еду. Есть такая шутка, что если один программист напишет программу за неделю, то два — за две! Не наш случай. Помощь Джона на самом деле бесценной оказалась, главным образом за счет досконального знания ассемблера под процессоры семейства 6502. Я, со своей стороны, вкладывался знанием приемов командной разработки и общим пониманием принципов устройства линтеров. Мои навыки из будущего и его из прошлого, которое для меня настоящее, отлично друг друга дополнили.
Вообще, групповая разработка на технологиях 1982 — та еще боль, сопоставимая с фрустрацией от столкновения с недоконсолью. Джон с ухмылкой назвал её «Сникернет». То есть кроссовочная сеть. Ты записываешь код на дискету и несешь ее к соседнему столу ножками, после чего другой программер наполовину вручную объединяет ваши листинги.
Банальный копипаст «выделить-скопировать-вставить» в эпоху ретро-компьютеров выглядит, как тот еще цирк с конями. Нельзя просто так взять, открыть файл, скопировать кусок текста и вставить в другой файл. Не умеют так редакторы, в том числе самый продвинутый из имеющихся, включенный в среду UCSD Pascal.
Тут Скопировать/Вставить даже внутри файла нельзя! И это при том, что у меня есть древняя привычка копипаcтитть ключевые слова, включая банальный PRINT. Каменный век предлагает лишь Вырезать/Вставить. В чем здесь логика — я не выкупил. Так что и горячие клавиши для работы с текстом я тоже создам и в обиход введу. Причем сразу угодные богу-машине Ctrl-C и Ctrl-V, а не Ctrl-Ins и Shift-Ins, привычные всяким староверам. Если успею себе честь присвоить раньше Стива Джобса. Всегда есть какой-то Стив, который вводит инновации быстрее тебя!
Но система контроля версий и совместного написания кода станет одним из первых нововведений в офисе Каналья Геймс, когда я развернусь в Эль-Серрито. На полноценный версионник по типу Гит возможностей железа не хватит. А вот что-то похожее на SVN почему бы и не изобразить. И мне ведь не обязательно всё делать в одно лицо — найму разрабов.
В случае с Паскалем мы пришли к самому простому решению: разделению зон ответственности по файлам. Джон писал модуль JH.PAS, я — СС.PAS и периодически передавали друг дружке дискету со стола на стол.
И я бы даже не сказал, что это было мучительно, хотя и тяжело физически света белого не видеть. Всё компенсировал чистый кайф от понимания того, что создаешь нечто особенное, а уж когда скрипт заработал и четко раскидал нам тайминги, а затем и подсветил проблемы, где мы не укладываемся — вообще песня. Мы с Джоном аж пятюню друг другу отбили, когда поняли, что готово. Крутой он кодер, гениальный, почище Синклера. Может быть, мне его схантить, раз Кен у меня мистера Лоу увёл?
Очень перспективный инструмент, между прочим, создали, учитывая, какую бездну времени, иногда целые минуты, занимает компиляция. На основе нашего линтера, который и так разбирает код, не так сложно сделать утилиту для раннего обнаружения ошибок и опечаток. Для чего в моём будущем статические анализаторы кода и используются.
Джона у меня Кен отобрал и еще около двух недель ушли уже у меня одного на доводку и тестирование созданного при помощи нового инструмента прототипа. Он выглядел откровенно неказистым, примитивным, монохромным, но работал
Прочитали книгу? Предлагаем вам поделится своим впечатлением! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.
Оставить комментарий
- Гость Ирина28 октябрь 10:35Мачеха для четверых и ни одной инструкции - Александра КаплуноваБольшое спасибо за книгу, очень понравилась, автору вдохновения
- Тата15 октябрь 06:48Любовь через развод - Женя ГромоваНе понравилось. Для 28 лет, да ещё и завуча школы, героиня слишком тупая..
- Вероника08 октябрь 13:31Моя истинная попаданка - Наталья БулановаЗдравствуйте.Прочитала с интересом о том что можно разделить себя чтобы не терять две цели и к чему это может привести. Единственное что не понравилось это то что
- Гость Елена22 сентябрь 22:55Академия Сердцеедов. Обман - Полина ВерховцеваВсе три книги Полины Верховцевой понравились, спасибо большое автору и за возможность прочитать полностью.







