Вот такой вот я каналья-плагиатор. Откуда большая часть идей пошла, я без гугла и википедии и не сказал бы. Хотя бы знаю, кому теперь памятник за идею отступов ставить — Питеру Лэндину. К нему не зарастет народная тропа. Программисты натопчут. Некоторые, правда, чтобы устроить вандализм.
— Если тебе прямо принципиально, я могу зарыться на несколько дней в библиотеку и найти первоисточники каждой твоей идеи. Крис, мы вместе с тобой боролись с академическим плагиатом, а теперь ты приносишь мне монстра Франкенштейна, слитого из частей.
— Сэм, ты закончил? Можно мне тогда кипяточку?
Ну да, не сдержался от шутки про чайник. Ее не понял вообще никто, даже Джон не улыбнулся, он выглядел разочарованным. Только что его гениального товарища Си-Си разоблачили, как плагиатора.
— Почти. Подстановка в строку — любая командная оболочка Юникса. Из всей твоей спецификации оригинального — ровно ноль. Ты собрал кадавра из чужих идей.
— Последняя строка документа. Прочти ее, — попросил я.
— Каждая из изложенных идей не является новаторской сама по себе, — вспыхнул было торжеством правоты Гарланд, но закончил предложение, — мы не изобретаем их, а собираем вместе под одной крышей. Наша цель в том, чтобы создать удобный инструмент.
— Сэм, ты чего тут расшумелся? Вольнослушатели хотят места на осенний семестр и все занято?
Без спроса и стука к нам зашел доктор Оустерхаут. То, что ошибок не существует, я у него позаимствовал, из ненаписанной еще книги. А он у кого-то другого. Но это не плагиат, а развитие и компиляция вместе идей. Как и в случае с Джулайскрипт.
— Нет, сэр… тут вот мои знакомые язык программирования изобрели, я критикую.
Гарланд, получив мое молчаливое согласие, оформленное кивком, передал распечатку научному руководителя.
— Строгая типизация для скриптового языка? Это лишнее… — пробормотал он себе под нос.
— Экономим ресурсы, сэр. Но вывод типов решает проблему связанной с типизацией многословности.
— Сколько ресурсов вы потратите на вывод типов и с какой скоростью будет работать ваш компилятор? Вы пытаетесь усидеть на двух стульях, создать системный язык общего назначения, в то же время являющимся скриптовым.
А вот не соглашусь с высоты послезнания. Есть Котлин, Го, Дарт… Джулия, в конце-то концов, она, правда, компилируемая, но издалека похожа на Питон и потому воспринимается, как интерпретируемая.
— Мы делаем удобный инструмент… сэр, — вступил в полемику Джон, — какая разница, сколько стульев он займет?
— Позвольте демонстрацию, — попросил я и на маркерной доске, имеющейся в кабинете аспиранта, набросал по памяти дюкесорт на джулайскрипте. Ничего так, симпатично получилось.
— Как видите, код…
— Сколько вот в этой строке пробелов? — спросил профессор, ткнув пальцем в рандомное место.
— Два… их всегда два, четыре, шесть, кратно двум.
— А если пользователь поставит не шесть, а пять, перепечатывая код с бумаги? Вы решили избавить программистов от ошибок по поиску пропущенных скобок, заменив их на пробелы, которые не видно.
— Текстовый редактор за этим проследит.
— И у вас он есть, я знаю, читал колонку мистера Нортона. А вот у нас, в Юникс, Vi разницы между отступом в два или три пробела не увидит. Я далек от позиции жестких критиков идей мистера Лэндина, в них есть своя правда, но считаю, что время их еще не пришло.
Может быть, он и прав, если стрельнул Питон только в девяностых. Но не только за счет отступов, но и других удобных штук, удобной реализации модульности, например, полностью мной слизанной.
— Но отступы не главное, — продолжал Оустерхаут. — Вы пишете о владении памятью, вот здесь. Кристобаль, это тема для огромной диссертации. Если проверять все эти правила до исполнения, вам потребуется очень сложный анализатор. Если в рантайме — придется тащить за собой всю бухгалтерию владения и ссылок. И где тогда останется ваша компактность? Вы излагаете приятные идеи, но всего моего академического опыта и фундаментальных знаний не хватает, чтобы взяться за реализацию подобного компилятора. Однако потребность в минималистичном и простом командном языке я тоже ощущаю. Вы, очевидно, талантливые программисты, но примите мой совет — не спешите со взрослым компилируемым языком, начните с маленького интерпретатора под менее амбициозный язык и с ним мы с Сэмом вам поможем.
Умыл. И ведь не поспоришь не потому, что я его безмерно уважаю, а потому, что одного каналью понесло выкатить сразу все свои хотелки, зачастую противоречащие друг другу, в наивной надежде, что «датчанин из Борланда» разберется, как правильно зарелизить, ведь в будущем у других оно работает. Вот я торадо бабосо! Амбиции, вероятно, придется урезать, может быть, даже очень сильно. Но от идеи захватить веб-разработку своим интерпретатором я не откажусь.
Глава 10
— Крис, и что мы будем делать? — спросил Джон уже в коридоре Эванс Холла. — Откажемся от идеи? Она меня очень увлекла.
— Закрывать пробелы в знаниях и работать, друг мой. У тебя хоть раз программа компилировалась с первого раза и без ошибок?
— Да, часто.
О щупальцатый ужас глубин! Как же непросто с этими гениями. Я-то парень простой, у меня даже написанная по памяти змейка не сразу заработала из-за опечатки.
— То, что нас критикуют — это нормально, меня иногда заносит. Смысл в том, что редко получается хорошо с первого раза без доработок. Не отчаиваемся и продолжаем. Например, проблему отступов можно решить добавлением ключевого слова end в конце блока. Или все же фигурными скобками — не тот компромисс, из-за какого я бы страдал, в Си мы к ним привыкли.
Исторически победили как раз варианты Си-подобного синтаксиса… поэтому идея попытаться сделать Джаваскрипт здорового человека, с близким к нему синтаксисом и вкусным сахаром, но с избавлением от родовых болячек вроде пяти вариаций «ничего», у меня отторжения не вызывает. Маленький, скриптовый, с быстрым интерпретатором и заранее заложенной асинхронностью, которая станет востребованной лет хорошо если через десять.
Всю дорогу обратно до Эль-Серрито не то, чтобы спорили — обсуждали варианты. Озвучил Джону идею про сишный синтаксис, но с блэкджеком и перламутровыми пуговицами, и тому понравилось. Не переобулся в противника отступов, но начал находить идеи консерваторов имеющими смысл. И это хорошо!
На работе застали сразу трех красоток в черных трико, будоражащих мужские умы, в нашем с Линдой кабинете. Они в этих нарядах прямо супергероини: Супергёрл, Чудо-женщина и… пусть будет Затанна. Нормальное трио. Хотя, все в черном облегающем… скорее шпионки. Ангелы Чарли! Оригинальный сериал о красавицах из детективного агентства уже отгремел, а до фильмов ещё много лет, но чего бы и не повторить?
— Крис! Потрясающие новости, звонили с телевидения! — обрадовала меня Линда. Ей пришлось постараться, чтобы ее слабый голос всех перекричал.
— Йеп! — подхватила Трейси. — Продюсеры с канала КРОН из Фриско увидели нашу запись и им понравилось! Они сказали, что посмотрели все серии и мы с младшенькой — те лица, которые они ищут.
— И в честь этого вы трое решили одеться одинаково? — не понял я. Понятно, что потребовалось где-то Трейси еще немного отротоскопить, может, какой кадр запорот оказался, но почему бы и не подколоть их слегка.
— Да нет же, дурашка! У нас тут новая анимация с кошечкой получилась, когда она трется об ноги. Это же милота неописуемая, девочки снялись и мне тоже захотелось. Я снова телезвезда. Потрясно же! Смекаешь?
— Гатита терлась об мои ноги, сабэс? — с гордостью пояснила Изабелла.
— И об мои… — тихонько добавила Мэри.
— Этот же канал уже снимал шоу о видеоиграх — Старкейд, — зачастила моя красавица, — мы очень удачно угодили в их запросы.
— И это не Голливуд, поэтому я не пролетаю! — подхватила блондинка.
— Что именно они предложили? — осторожно уточнил я.
— Переснять пилотный эпизод в профессиональной студии, по всем правилам, и показать в подходящем временном слоте, там, где крутили Старкейд, — рассказала Линда. — Если рейтинги канал устроят, выпустить полный сезон, возможно, на всю страну.