444 000 произведений, 109 000 авторов.

Электронная библиотека книг » Seva Soth » Ретро Бит 9 (СИ) » Текст книги (страница 5)
Ретро Бит 9 (СИ)
  • Текст добавлен: 4 октября 2026, 06:30

Текст книги "Ретро Бит 9 (СИ)"


Автор книги: Seva Soth



сообщить о нарушении

Текущая страница: 5 (всего у книги 15 страниц)

Глава 8

– Бонжур, мон ами! – жизнерадостно постучался к нам в демонстрационную Филипп, возмутительно бодрый, если учесть, сколько шампанского он вчера выпил. Я не считал, но без бокала француза вчера не видел.

– Месье и мадам Уильямс, разрешите и вас пригласить на нашу ля презентасьён! – позвал Канн. – Новый революционный продукт, от которого вы окажетесь в восторге. Мы выступили свахами и поженили прекрасный текстовый редактор Кристобаля с нашим супер-быстрым компилятором и из их союза родилось нечто особенное. Мой юный деловой партнер предложил название Турбо Паскаль!

– Я не опоздал? – заглянул Джон Харрис. Очень вовремя пришел. Все-таки Эдитор как минимум наполовину его проект.

По скептическому выражению лица батьки – не убедил его харизматичный дядя Филя. Значит, сюрприз получится. У меня лично ни малейшего сомнения в величии борландовского продукта не возникло.

Я отпер соседнюю комнату, программерскую, и сел за свой верный 5150. Дискету в дисковод… запускаем файл с таким знакомым названием TURBO.COM – и вот он, до боли привычный желто-синий интерфейс, в котором я провел десятки часов в политехе. Не знаю, кто там со стороны Борланда занимался проектом, но этот разумный человек решил не ломать то, что и так хорошо работает.

Пара минут и простейший Хеллоу Ворлд создан. F5 и… вуаля.

– Стой-стой-стой, еще раз! – попросил Кен. Я повторил и тут его, кажется, проняло.

– Одна секунда! – в каком-то восхищении озвучил Джон.

– Именно так, мон дьё! Турбина! Болид!

– Я не слышал дисковода во время компиляции, – отметил Кен.

– Потому что он не используется, месье, отсюда и скорость, всё в оперативной памяти.

– Выглядит перспективно, – одобрил батька, – если не промахнетесь с ценообразованием – продукт получится популярным. Вам нужен издатель?

– Мы справимся с тиражированием и дистрибьюцией сами. Майкрософт продает свой компилятор Паскаля за пятьсот долларов вместе с документацией. У меня другая стратегия – сорок девять девяносто пять!

Во взгляде Уильямса читалось «еще один коммунист на мою голову».

– Считаете, слишком дешево, месье? Я объясню! Сколько в стране профессионалов, готовых платить пять сотен за программу? Их всего несколько тысяч, и за них обычно платит работодатель. Назначая доступную цену, я проигрываю в прибыли с одного клиента, но выигрываю в охвате. Студенты, которым нужно делать дипломную работу, обычные люди, которым надо посчитать свои налоги! Их сотни тысяч! Проигрывая на порядок в цене, я выигрываю на два порядка в охвате!

Я к их дискуссии не особенно прислушивался, воспроизводя по памяти змейку. Мог бы отыскать исходник в сети на Корвусе, но хотелось пощупать редактор, не запороли ли где, не наплодили ли багов.

Написал… и ничего не заработало. Линтер поругался на строчки с очисткой экрана и на клавиатурные прерывания.

– Мистер Канн, вы что, изменили название библиотеки с системными вызовами? – предположил Джон.

– О нет, мон ами, мы ее попросту выбросили. Включили все необходимые функции по умолчанию.

У парня на лице читалось «А что, так можно было?»

Допилить простейшую игру – дело пяти минут. Канн и батька за это время успели предварительно договориться об использовании мощностей Сьерры для тиражирования дискет. У батьки, как я понял, копировальщики не всегда работой обеспечены, вот и нашелся им сторонний подрядчик. И главным камнем преткновения тут стало отсутствие у Борланд денег на предоплату.

– Мистер Канн, я готов дать вам кредит на тиражирование дискет, из числа моих роялти Сьерры, – после кратких моральных терзаний решил я, – но при условии, что вы мне поможете с другим проектом. Недавно я отправил в Вашингтон авторскую заявку на новый язык программирования, полностью бесплатный и открытый сам по себе. Нет, это не коммунизм, а та же стратегия охвата рынка, что и у вас, только более глобальная. Вот, посмотрите, у меня есть расписанные спецификации того, что хочу получить.

– Приятель, ты опять занимаешься благотворительностью, – обреченно проворчал батька, – зачем отдавать бесплатно то, за что можно брать деньги?

– Кен, мы это уже обсуждали… итак, позвольте вам представить мой новый язык – Джулай Скрипт! Сокращенно JS. Эти же буквы мы используем для расширений исполняемых файлов. У меня есть полностью расписанная спецификация того, каким я хочу видеть язык на старте. А в голове – дорожная карта его развития на десять лет вперед.

– А почему Джулайскрипт? – спросила миссис Уильямс и у меня на этот вопрос хороший, причем даже правдивый ответ имелся.

– Жюйе Скрипт! Жюйе – это июль, мон ами! Летний язык, теплый, как Ницца в июле! – воскликнул месье Канн.

– Официально потому, что я писал эту спецификацию в июле. А на самом деле в честь плаката с мисс Июль 81-го, который висел у нас в трейлере в Лос-Анджелесе. Затянувшаяся шутка.

Как основу нового языка я взял нежно любимый мной Питон, приправил тайпскриптом, добавил щепотку Го и капельку Раст. Копировать один из них целиком не стал, попытался соединить сильные стороны всех доноров и убрать слабые.

За идею отказа от операторных скобок и использования вместо них отступов следовало бы поставить памятник. Увы, не помню, кому именно. Кто-то предложил так делать еще в 60-х и лишь в 90-х Гвидо Ван Россум, отец Питона, ее популяризировал.

В качестве единственного валидного отступа я выбрал два пробела. В зародыше решил задушить спор между любителями пробела и табуляции. Но! Текстовый редактор научим по нажатию на Таб эти пробелы ставить и по бекспейсу их стирать, как единый символ. Четыре тоже окажутся валидны, но в моду войдут в будущем, когда экраны станут пошире. Решение, которым я, можно сказать, предотвратил раскол цивилизации на два лагеря. Но это не точно.

Синтаксис я утащил у змеиного языка почти целиком. И написать на Джулайскрипт нечитаемую кашу, втиснутую в одну строчку, физически невозможно.

Точки с запятой – на мороз! Полностью и без исключений, дозволенных оригинальным питоном. Кто-то станет вообще о них жалеть? Вот не думаю. Уверен, каждый программист их ненавидит, а особенно русскоязычные, так как в кириллической раскладке точка с запятой находится не там же, где и в английской. Не знаю, та ли эта несправедливость, которую стоит браться исправлять. Букву «Ж» с клавиатуры так запросто не выкинуть.

Типизация строгая. В непрекращающемся холиваре между сторонниками динамической и статической типизации я стою над спором, находя темные и светлые стороны в обоих подходах. Но карамба! У нас 1983-й год и засилье процессоров в один мегагерц! Тратить ресурсы компьютера и драгоценные такты на приведение типов рано! А вот автоматический вывод типов сделать стоит. Если кто-то инициализировал переменную значением 42, то это не только ответ на главный вопрос жизни, вселенной и всего такого, но и целое число и в явном виде тип разрешить не указывать.

Вот лет через десять кто-нибудь наверняка возьмет мою открытую спецификацию и создаст свой JS с блэкджеком и необязательными типами переменных.

С ключевыми словаи не перебарщиваем, не больше тридцати. Глобальные переменные запрещены. Всего один оператор проверки на равенство – «двойное равно». А присваивание – через одинарное. И никакого моржового оператора «двоеточие и равно» – самой раздражающей меня части в целом приятного Паскаля.

От Джаваскрипта берем его самую крутую часть: концепцию того, что каждая функция – это объект и ее можно положить в переменную, передать в качестве аргумента. Плюс объявление списков и словарей прямо в синтаксисе, без лишних кавычек. Это единственное место, где я оставил фигурные скобки, чтобы валидный в прежнем времени JSON оставался таковым и в наши доисторические времена. Расшифровка аббревиатуры у нас теперь, естественно, иная – Джулай Скрипт Обджект Нотейшн. Еще от современного JS – деление на переменные и константы, по умолчанию неизменяемые, как сделано и в «Раст», но наоборот.

От Раста – синтаксический сахар с проверками на null через вопросик и два вопросика. Подумывал и вовсе его отменить, но слишком большой разрыв шаблона всем программистам. Зато никаких отдельных null и undefined.

Еще мне нравится «Сборщик мусора», как концепция, не требующая думать о том, где что в памяти потерялось, но пока нерационально. Вместо него описал концепцию владения памятью снова из Раст. Не уверен, насколько это окажется реально без глубокого погружения в теоретическую базу. И ошибок, как мы помним, не существует! Если функция отработала с ошибкой, она ее и вернет, а не уронит все в панике.

И зачатки асинхронности через асинх/эвейт, без которых мы получим настоящий ад обратных вызовов и меня все проклянут.

И сахар! Много-много синтаксического сахара, ради которого программисты к нами и придут: f-строки, то есть подстановка в шаблон именованных значений, срезы и отрицательные индексы в массивах, множественные присваивания и распаковка, именованные аргументы в функциях, цепочки сравнений, ветвления через матч-кейз, перебор коллекций и диапазонов через цикл «for in», двойные и одинарные кавычки для обычных строк и тройные для многострочных, числа с неплавающей запятой, стрелочные функции. Куча-куча всяких хотелок, в общем. Всё, что смог припомнить выглядящего технически реализуемым с моей колокольни. Всё, что люди придумывали через красные от слез и кофе глаза неспящих долгими ночами разрабов.

Вот как-то так неидеально, но постарался закрыть самые больные места. Язык общего назначения, который может в зависимости от ситуации и компилироваться, и использоваться как скриптовый, внутри интерпретатора. И это всё я подарю человечеству во имя Омниссии. И даже не по лицензии Каналья, а просто так, без обязанности открывать свои исходники, иначе взрыв популярности не произойдет. Рантайм скриптов максимально компактный, чтобы и в табличный процессор включить не зазорно, и в бухгалтерскую программу, похожую на 1С, и в игру для описания логики НПС.

А далее главное – красиво ворваться. И разберемся, к чему это приведет. Если кто-то по-настоящему умный, вроде Томпсона или ван Россума, на моем фундаменте создаст язык будущего, удобный всем, я только скупую слезу пущу и профинансирую его крупным грантом. Ревновать не стану.

Главная цель создания скриптового языка, конечно – сделать его дефолтным в будущих браузерах. Я сам эту дорожку всем покажу, собственным примером в будущем «Каналья Эксплорере»… нет, неудачный нейминг. «Каналья Навигаторе»? Но всё потом, не сейчас.

И Кен, и месье Филипп читали предложенный мной документ с примерами возможных синтаксических конструкций, каждый со своего экземпляра – с запасом напечатал. Я замер, ожидая их реакции. Батька уже пару раз проявлял себя лютым консерватором, не принимающим новое.

Удивил Джон – он взял отдельную копию распечатки, уселся за свой компьютер и начал бодро стучать по клавишам. Он же не напишет мне сейчас готовый интерпретатор за десять минут? Я тогда неполноценным себя почувствую.

– Ох, мон дьё, тут написаны прекрасные мечты о чудесном языке и я бы хотел создать его компилятор для вас… но мой лучший разработчик, датчанин из Копенгагена, полностью занят Турбо Паскалем. За первой версией последует вторая… третья… а вести много проектов одновременно – верный путь провалить их все. Всё, что могу пообещать вам – консультации от Андерса, так его зовут… Вы, Кристоф, и вы, Джон, очень талантливые программисты, я верю, что вы справитесь сами и окажу всю возможную поддержку, мон ами.

Поддержку больше моральную, как я понял из контекста, и чуточку консультационную от датчанина в три часа ночи по телефону, так как в Европе сильно другой часовой пояс. И, казалось бы, отморозился, но с таким искренним сожалением, что не нашел я сил злиться. Да и, по-хорошему, француз прав, у него свой бизнес с великолепными перспективами и все силы в ближайшие годы на него пойдут. Да они даже Турбо Си не помню в каком году выпустят, но, скорее всего, ближе к девяностому. И не поспешил ли я в данном случае?

– Крис, приятель, зачем тебе вообще этот язык программирования? У нас есть Ассемблер, Си, Паскаль, мы создаем при их помощи отличные игры, – не понял меня мистер Уильямс. – Я понимаю, что лавры создателя собственного языка – это почетно, возможность встать в один ряд с Курцем, Кемени и Виртом. Я и сам в молодости подумывал, не создать ли мне что-то такое. Но пойми, нет никакой уверенности, что новый язык вообще заинтересует много людей и станет популярным.

А может, самому взять и написать? Ага-ага, наивный панамский бабосо. Помнится, я где-то читал, что первую версию интерпретатора Джаваскрипт написали всего за десять дней… но там не говорилось, сколько лет до того разработчики занимались рантаймами и сколько у них имелось десятилетий опыта и готовых модулей, позаимствованных из своих ранних проектов. Я хоть и хорош, как сам Ктулху, но мы с щупальцатым ужасом глубин так-то свои интерпретаторы никогда не писали и вообще он фхтагн в океанских глубинах. Конечно, потратив полгодика, я бы всем им показал… что шести месяцев мало, чтобы идеально разобраться в теме. Вот за год-два уже реальнее в число элиты войти. Но кто эти два года меня кормить будет?

– Кен, это не блажь. Скриптовый язык очень ускорит нам разработку игровой логики, если им сможет пользоваться каждый гейм-дизайнер, далекий от ассемблера. И двадцать лет назад, когда создавали Бейсик, уже существовали Фортран и Кобол. Почему не остановились на них?

– Не убедил, дружище. За то время, что ты потратишь на инструмент мечты, ты не заработаешь ни цента, хотя мог бы создать десять игр, – вернулся к старому спору Кен.

– Милый, посмотри, как это выглядит! – позвала Роберта к компьютеру Джона. – Похоже на нормальную человеческую речь, а не конспект по алгебре.

И все мы сгрудились у монитора Харриса. Он умный и талантливый парень – за какие-то десять минут набросал прототип змейки на описанном мной языке, ориентируясь на спецификацию. Без несуществующей среды исполнения работать не сможет, но тут невооруженным глазом видно, насколько чище и читабельней выглядит код в сравнении с Паскалем.

– Не аргумент! – не принял вредный батька.

– Кен, он ведь все равно сделает, как замыслил, – улыбнулась мужу Роберта и тот перестал спорить. Мудрая женщина.

– Крис, я чувствую в себе силы попробовать самому, – вызвался вдруг Джон. – На вчерашней вечеринке я много болтал с Сэмом Гарландом, аспирантом из Беркли. Его научный руководитель, доктор Оустерхаут, как раз занимается интерпретаторами. Сначала сделаем интерпретируемый язык, а далее дойдем и до компиляции. Когда ты предложил редактор делать, я тоже не поверил, что это возможно, а сейчас он всем нравится.

Молодой программист мотнул головой в сторону дисплея с запущенным Каналья Эдитором, перебрендированным в Турбо Паскаль.

И он прав. Слона едят по кусочкам. А там, глядишь, и датчанин переберется в Калифорнию, чтобы сделать нам компилятор под уже вполне себе успешный Джулайскрипт. У меня есть смутное ощущение, что я должен этого Ганса Христиана Андерсона знать, но память моя, увы, несовершенна. И Оустерхаут – прямо нужный человек. То, что ошибок не существует, я ведь из его книги почерпнул. Может быть, и вовсе к работе над проектом его привлечем.

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

Ну а что, мне ему как-то ведь надо премию Тьюринга обеспечить? Я же обещал, а вато локо сказал – вато локо сделал, иначе пацаны из баррио не поймут.

– Мон ами, я не понял только одну вещь, – обратился ко мне Филипп, чуть позже уже наедине. – Как нам быть с кредитом на тиражирование дискет? Это ведь и в ваших интересах, у вас процент наших акций.

– Пусть ваш датчанин согласится периодически давать консультации Джону и вы его получите.

Не знай я, что Борланд обречены на успех – пожадничал бы, наверное. А так – верное дело. Не беспроцентный займ же.

Глава 9

По окончанию демонстрации Уильямсы и мистер Канн засобирались. Все они нашенские, калифорнийцы, «хоми» на языке улиц. Но штат у нас большой и ехать как минимум Уильямсам не один час. И Гектору с Еленой тоже, надо бы их проводить как следует, вкусностей с собой на дорожку сложить. Рассуждаю, как моя бабушка! Не панамская, а русская. Но в чем она не права?

У умных людей мысли сходятся, так как Линда объявила перерыв в ротоскопировании и вместе с Беллой, накинувшей фартук поверх обтягивающего трико, шуршала на кухне. Что за зрелище… хоть немедленно на обложку журнала.

– Съемками командует Трейси. Ей бы режиссером в кино или театре стать, у нее очень хорошо получается, – рассказала Линда.

– Ага, прям профи, сабэс, – подтвердила Изабелла. – Тонда пердида за то, что карьеру себе порушила и вообще лока, но в том, как выгодно себя на камеру показать, знает. Тобалито, ты бы видел, какая наша Мэри красотка получилась. Вот точно быть ей мисс Март.

Угумс, «Наша Мэри – алмаз, идеал народных масс…»

Проводили Гектора и Елену, тепло с ними попрощавшись.

– Карналь, я расспросил твоего компадре Рамона – у вас тут есть оружейный магазин и стрелковый клуб. Он поклялся мне, что уже сегодня вас обоих, и тебя и чикиту, отведет и со стволом обращаться научит. Это серьезно, Кристобаль, каких только локо кабронов на улицах нет. Не пригодится ствол – так удовольствие получишь. Ай, карамба! Дай обниму! А на День Благодарения снова у нас! Устроим наконец-то крестины! Вы с хайной станете падрино и мадрино у Валентины!

Был уличный преступник, а стал добропорядочный семьянин. И нет, это не я его перевоспитал, это всё сила любви и крошечная Валенька. Семья, нет ничего важнее семьи. Доминик Торетто одобряет.

Неподалеку Елена что-то очень эмоционально, но тихо объясняла Линде и та густо покраснела, как не случалось уже много месяцев. Не лезем в женские секреты – предназначайся они для моих ушей, теть Лена говорила бы на всю улицу.

Нашел Санчеса уже после того, как проводили последних гостей. Он возился со своим ржавым корытом в нашем просторном офисном гараже, тоже прошедшем через руки ремонтной бригады и обзаведшимся автоматическими воротами. Рамон еще и инструмента всякого натащил, вот уж не знаю, где он его взял, и стало не хуже, чем у батьки Кена в сгоревшем.

– Привет, хефе. Твой карналь просил тебе стрелковый клуб показать. Тут при оружейном магазине есть.

– Спасибо, отведешь нас с Линдой на неделе… да можно и вообще сегодня. Но я больше по другому поводу. Я на вечеринке заметил, что ты много общался с Роберто и его братом.

– Симон. Сейчас весь расклад тебе дам, хефе. Робертито – полный матадито, такой же, как твой компадре Джон. Умный, с компьютерами ладит и не болтливый, но скромный. Он даже с чикитой заговорить стесняется, как какой-то левас. Со мной общаться не хотел, пока ты ему не сказал, что я свой. А вот его карналь Рико – вато локо. Хочет доказать чикано, что не хуже нас. Но это у него недавно началось, даже говорить по-уличному не научился. Не жил он в гетто и миерду ложками не жрал. У них там в Окленде какие-то чоло район заняли, а с кем поведешься…

– Мог он мой лоурайдер угнать? – очевидный вопрос.

– Сомневаюсь, что чико из хорошей семьи умеет вскрыть машину так, чтобы соседка ничего не поняла. Так что если бы ему ключ кто дал и только ради чикиты. Видел бы ты, как он на чичис сеньориты Изабеллы облизывался. Я разговорю его, хефе, но не сразу. Не то, чтобы я сам к такой красоте равнодушен…

Возвращаемся к глупой версии, как из мыльной оперы, про свершение подвигов во имя Консуэлы.

– Рамон. Подари ему особенную уточку с фингалом при случае и посмотри на реакцию.

– Карамба! Сеньорита Ким заговорит ему патито⁈ И у Рико хуэвос отвалятся, если снова замыслит недоброе! Святая дева гваделупская! Да ты каналья, хефе!

– Да, я такой, – не сдержал усмешки, – и что там со стрелковым клубом? Я не фанат оружия, но раз уж Гектор подарил ружье…

– … то мы обязаны из него пострелять, хефе, сегодня же покажу, где это. Они работают по воскресеньям!

И что скрывать, мне и самому интересно! Настоящая охота, где надо в уточек стрелять – нет. А вот бумажные мишени – известные злодеи, так и ждущие заслуженного возмездия. Взяли Рамона с собой и поехали на Тойоте. Каких-то пять минут пути до выезда из города в сторону Окленда. Наши Горки маленькие.

– Запомните главное правило – никогда не направлять оружие на людей, даже разряженное и в шутку – рассказывал Санчес. – Иначе если Хавьер увидит – больше никогда не впустит. Из рук в руки ружье не передавать, на линии вдвоем не находиться, очки и наушники не снимать, если глаза и уши дороги. Со своими патронами не приходить, стрелять только купленными в магазине. Компренде, амигос?

– Энтьенде, – ответил я, – а откуда ты его знаешь? И все эти правила?

– Так Гектор попросил тебя отвести, хефе. Вот я и узнал.

И это в век без интернета. Завидую. Я с той же эффективностью найти необходимое не сумел бы.

Линда тоже подтвердила согласие следовать правилам и мы наконец-то приехали.

Низенький бетонный домик с яркой вывеской в цветах американского флага мне сразу показался знакомым, ну а внутри узнавание сделалось полным. «Аммунишн!» Один в один место, где продавали оружие в Сан-Андреас и других частях ГТА. Витрина из бронестекла с револьверами и пистолетами, длинноствольное оружие на стене. Разве что гранатомет и шестиствольный миниган отсутствуют.

Два продавца – блондинистый парень лет двадцати в футболке, бинго, с флагом Конфедерации на груди и мексиканец лет шестидесяти. С последним Рамон перекинулся длинными фразами на испанском, и я при всей своей вовлеченности в среду ничего не понял.

– Хавьер Веласкес, хозяин магазина, научу вас стрелять. Правила знаете? Тогда двадцать баксов за аренду плюс за патроны, сколько израсходуете, – сказал сухопарый чикано и повел в тир, получив подтверждение. И место для стрельбы тоже один в один как из каждой второй игры. Снимаю шляпу перед разработчиками, неизменно точно передающими общую эстетику.

Наушники на уши и прозрачные очки на глаза. Ну… попробуем. Сначала инструктаж. Хавьер на пустом ружье показал все органы управления, куда пихать патроны, чтобы они оказались в трубчатом магазине, где тут предохранитель и куда нажимать для выстрела. Спойлер – не на левую кнопку мышки, а на туговатый спусковой крючок. Показал, как держать оружие, чтобы не улететь от отдачи и ничего себе не сломать.

После первого инструктажа, подписали бумажку о том, что клуб ни за что не отвечает и показали владельцу права, чтобы подтвердить, что нам уже стукнуло восемнадцать. Из воздушки на заднем дворе, без всякой бюрократии, как-то больше нравилось.

Ощущения от того, что где-то совсем рядом громыхнуло и ремингтон толкнул в плечо, как копытом – максимально для меня странные, но, карамба, при том, что в самом краю черного круга мишени большая рваная дырка появилась – незабываемые. Наверное, что-то глубинное из первобытных времен, когда завалил мамонта и всё племя довольно. Захотелось вскинуть Вингматер над головой и издать торжествующий клич, но подобной дурости я себе не позволил. Слишком уж посредственный результат, на тройку с минусом.

Вот Линда, наш лучший стрелок, угодила в верхнюю часть центра круга. Примерно там, где в дартсе утроение. То есть очень хороший выстрел. Массы тела, чтобы побороть отдачу, ей, правда, не хватило и моя пушинка чуть не улетела с позиции за черту. Глаза при этом так азартом и сверкали.

Позже дома у нас обоих в месте контакта с прикладом здоровенный синячище обнаружился. Клянусь, у меня – в форме уточки!

Имеется у меня, не знаю, хорошее или плохое качество – зацикливаться на поставленных целях. Вот захотелось мне Тетрис сделать и упорно к реализации затеи ломился. Далее портативная консолька в башку втемяшилась и до конца пока не отпустила. А теперь вот Джулайскрипт, как шанс войти в историю и сделать хорошо миллионам программистов по всему миру.

Созвонился в понедельник с Сэмом Гарландом, набрав его рабочий номер. На день рождения я от него в подарок только короткое поздравление и бумажное письмо от Дональда Кнута, направленное Сэму, как моему «научному руководителю», получил, где великий математик указывал, что большая часть идей не нова, но собрал вместе я их очень уместно и алгоритм получился очень зрелым.

– Привет, Сэм, мы с моим другом Джоном, ты познакомился с ним на вечеринке, тут изобрели одну крутую штуку и хотим совета по ее реализации, – начал я, когда аспирант поднял трубку, – как от старшего товарища, почти наставника и научного руководителя…

– Ага, научрука-второкурсника колледжа, еще не побывавшего ни на одном занятии, так как только перевелся из Калтеха, и вольнослушателя, забросившего занятия. И что вы там придумали? Очередные костыли для бухгалтеров, страдающих от неумения пользоваться командной строкой?

– Пффф, – раздраженно фыркнула Бренда, которая как раз принесла мне на ознакомление очень важный бухгалтерский отчет о том, сколько у нас денег. Спойлер – на все хотелки их недостаточно!

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

– Тогда подъезжайте в Эванс Холл, у меня как раз сегодня есть пара часов до того, как доктор Оустерхаут принесет черновик программы на осенний семестр. Четвертый этаж, комната 418.

Я не удержался и издал короткий смешок. Сэм – чайник! Не в том смысле, что ламер, не разбирающийся в компьютерах, а электрический, согласно http коду 418, предусмотренному для электрочайников в виде первоапрельской шутки. Попрошу у него кипяточку.

– Привет, ребята, – Сэм поднялся из-за стола, сидя за которым, выписывал что-то из толстого учебника. – Крис, отличная вечеринка. Я бы никогда не подумал, что окажусь на одном мероприятии со Стивом Возняком и Элом Алкорном. Они очень уважаемые в научной среде инженеры. И я наелся так, что проголодался только к ужину. Так что у вас за сюрприз?

– Язык программирования, дружелюбный к программисту. Мне он нужен для начала интерпретируемым, а в перспективе и с компилятором. И очень прошу – не надо мне говорить, что комфорт вреден и разработчики должны страдать.

– Я, говоря словами психолога из телешоу, вышел из зоны комфорта, еще когда работал с доктором Стерлингом. Показывай свою авантюру, – вздохнул Сэм и получил папочку с распечаткой моих наполеоновских планов.

– Опять? Ты опять? Я про Джулайскрипт! – воскликнул Гарланд, перевернув страницу. – Я уже достаточно тебя изучил, чтобы понять, что нет никакой мисс Джулай.

– Есть, у меня даже ее фотография сохранилась.

– Это летний язык, придуманный в июле, – выдал одну из вчерашних фраз Джон Харрис.

– Какое-то письмо Санта Клаусу, а не язык программирования! – через десять минут перешел аспирант в режим критика. – Мы были хорошими мальчиками, забери у нас точки с запятой. Отступы вместо операторных скобок. Программист будет терять время на их расстановку. Это хорошо выглядит только на экране и то не всегда. А как насчет распечаток?

– Сэм, а разве ты сейчас не ставишь и отступы, и скобки? – с самым невинным видом спросил я.

– Уел, – признал надувший щёки для ответа аспирант и продолжил читать.

– Крис… ты только не обижайся… но всё это не ты придумал, – наконец-то выдал он, – ты надергал чужих идей отовсюду.

И как начал сыпать фамилиями уважаемых людей.

– Отступы предложил в своей статье в шестьдесят шестом Питер Лэндин, я вспомнил на твоем аргументе о том, что мы их все равно ставим. В этом году англичане показали Оккам, там тоже самое. Функция, как значение – Лисп. Вывод типов – Эм-Эль. Ошибка, как часть возвращаемого значения… не помню, но было где-то.

Вот такой вот я каналья-плагиатор. Откуда большая часть идей пошла, я без гугла и википедии и не сказал бы. Хотя бы знаю, кому теперь памятник за идею отступов ставить – Питеру Лэндину. К нему не зарастет народная тропа. Программисты натопчут. Некоторые, правда, чтобы устроить вандализм.

– Если тебе прямо принципиально, я могу зарыться на несколько дней в библиотеку и найти первоисточники каждой твоей идеи. Крис, мы вместе с тобой боролись с академическим плагиатом, а теперь ты приносишь мне монстра Франкенштейна, слитого из частей.

– Сэм, ты закончил? Можно мне тогда кипяточку?

Ну да, не сдержался от шутки про чайник. Ее не понял вообще никто, даже Джон не улыбнулся, он выглядел разочарованным. Только что его гениального товарища Си-Си разоблачили, как плагиатора.

– Почти. Подстановка в строку – любая командная оболочка Юникса. Из всей твоей спецификации оригинального – ровно ноль. Ты собрал кадавра из чужих идей.

– Последняя строка документа. Прочти ее, – попросил я.

– Каждая из изложенных идей не является новаторской сама по себе, – вспыхнул было торжеством правоты Гарланд, но закончил предложение, – мы не изобретаем их, а собираем вместе под одной крышей. Наша цель в том, чтобы создать удобный инструмент.

– Сэм, ты чего тут расшумелся? Вольнослушатели хотят места на осенний семестр и все занято?

Без спроса и стука к нам зашел доктор Оустерхаут. То, что ошибок не существует, я у него позаимствовал, из ненаписанной еще книги. А он у кого-то другого. Но это не плагиат, а развитие и компиляция вместе идей. Как и в случае с Джулайскрипт.

– Нет, сэр… тут вот мои знакомые язык программирования изобрели, я критикую.

Гарланд, получив мое молчаливое согласие, оформленное кивком, передал распечатку научному руководителя.

– Строгая типизация для скриптового языка? Это лишнее… – пробормотал он себе под нос.

– Экономим ресурсы, сэр. Но вывод типов решает проблему связанной с типизацией многословности.

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

А вот не соглашусь с высоты послезнания. Есть Котлин, Го, Дарт… Джулия, в конце-то концов, она, правда, компилируемая, но издалека похожа на Питон и потому воспринимается, как интерпретируемая.

– Мы делаем удобный инструмент… сэр, – вступил в полемику Джон, – какая разница, сколько стульев он займет?

– Позвольте демонстрацию, – попросил я и на маркерной доске, имеющейся в кабинете аспиранта, набросал по памяти дюкесорт на джулайскрипте. Ничего так, симпатично получилось.

– Как видите, код…

– Сколько вот в этой строке пробелов? – спросил профессор, ткнув пальцем в рандомное место.

– Два… их всегда два, четыре, шесть, кратно двум.

– А если пользователь поставит не шесть, а пять, перепечатывая код с бумаги? Вы решили избавить программистов от ошибок по поиску пропущенных скобок, заменив их на пробелы, которые не видно.


    Ваша оценка произведения:

Популярные книги за неделю