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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

— Текстовый редактор за этим проследит.

— И у вас он есть, я знаю, читал колонку мистера Нортона. А вот у нас, в Юникс, Vi разницы между отступом в два или три пробела не увидит. Я далек от позиции жестких критиков идей мистера Лэндина, в них есть своя правда, но считаю, что время их еще не пришло.

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

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

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

Глава 10

— Крис, и что мы будем делать? — спросил Джон уже в коридоре Эванс Холла. — Откажемся от идеи? Она меня очень увлекла.

— Закрывать пробелы в знаниях и работать, друг мой. У тебя хоть раз программа компилировалась с первого раза и без ошибок?

— Да, часто.

О щупальцатый ужас глубин! Как же непросто с этими гениями. Я-то парень простой, у меня даже написанная по памяти змейка не сразу заработала из-за опечатки.

— То, что нас критикуют — это нормально, меня иногда заносит. Смысл в том, что редко получается хорошо с первого раза без доработок. Не отчаиваемся и продолжаем. Например, проблему отступов можно решить добавлением ключевого слова end в конце блока. Или все же фигурными скобками — не тот компромисс, из-за какого я бы страдал, в Си мы к ним привыкли.

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

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

На работе застали сразу трех красоток в черных трико, будоражащих мужские умы, в нашем с Линдой кабинете. Они в этих нарядах прямо супергероини: Супергёрл, Чудо-женщина и… пусть будет Затанна. Нормальное трио. Хотя, все в черном облегающем… скорее шпионки. Ангелы Чарли! Оригинальный сериал о красавицах из детективного агентства уже отгремел, а до фильмов ещё много лет, но чего бы и не повторить?

— Крис! Потрясающие новости, звонили с телевидения! — обрадовала меня Линда. Ей пришлось постараться, чтобы ее слабый голос всех перекричал.

— Йеп! — подхватила Трейси. — Продюсеры с канала КРОН из Фриско увидели нашу запись и им понравилось! Они сказали, что посмотрели все серии и мы с младшенькой — те лица, которые они ищут.

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

— Да нет же, дурашка! У нас тут новая анимация с кошечкой получилась, когда она трется об ноги. Это же милота неописуемая, девочки снялись и мне тоже захотелось. Я снова телезвезда. Потрясно же! Смекаешь?

— Гатита терлась об мои ноги, сабэс? — с гордостью пояснила Изабелла.

— И об мои… — тихонько добавила Мэри.

— Этот же канал уже снимал шоу о видеоиграх — Старкейд, — зачастила моя красавица, — мы очень удачно угодили в их запросы.

— И это не Голливуд, поэтому я не пролетаю! — подхватила блондинка.

— Что именно они предложили? — осторожно уточнил я.

— Переснять пилотный эпизод в профессиональной студии, по всем правилам, и показать в подходящем временном слоте, там, где крутили Старкейд, — рассказала Линда. — Если рейтинги канал устроят, выпустить полный сезон, возможно, на всю страну.