Выбрать книгу по жанру
Фантастика и фэнтези
- Боевая фантастика
- Героическая фантастика
- Городское фэнтези
- Готический роман
- Детективная фантастика
- Ироническая фантастика
- Ироническое фэнтези
- Историческое фэнтези
- Киберпанк
- Космическая фантастика
- Космоопера
- ЛитРПГ
- Мистика
- Научная фантастика
- Ненаучная фантастика
- Попаданцы
- Постапокалипсис
- Сказочная фантастика
- Социально-философская фантастика
- Стимпанк
- Технофэнтези
- Ужасы и мистика
- Фантастика: прочее
- Фэнтези
- Эпическая фантастика
- Юмористическая фантастика
- Юмористическое фэнтези
- Альтернативная история
Детективы и триллеры
- Боевики
- Дамский детективный роман
- Иронические детективы
- Исторические детективы
- Классические детективы
- Криминальные детективы
- Крутой детектив
- Маньяки
- Медицинский триллер
- Политические детективы
- Полицейские детективы
- Прочие Детективы
- Триллеры
- Шпионские детективы
Проза
- Афоризмы
- Военная проза
- Историческая проза
- Классическая проза
- Контркультура
- Магический реализм
- Новелла
- Повесть
- Проза прочее
- Рассказ
- Роман
- Русская классическая проза
- Семейный роман/Семейная сага
- Сентиментальная проза
- Советская классическая проза
- Современная проза
- Эпистолярная проза
- Эссе, очерк, этюд, набросок
- Феерия
Любовные романы
- Исторические любовные романы
- Короткие любовные романы
- Любовно-фантастические романы
- Остросюжетные любовные романы
- Порно
- Прочие любовные романы
- Слеш
- Современные любовные романы
- Эротика
- Фемслеш
Приключения
- Вестерны
- Исторические приключения
- Морские приключения
- Приключения про индейцев
- Природа и животные
- Прочие приключения
- Путешествия и география
Детские
- Детская образовательная литература
- Детская проза
- Детская фантастика
- Детские остросюжетные
- Детские приключения
- Детские стихи
- Детский фольклор
- Книга-игра
- Прочая детская литература
- Сказки
Поэзия и драматургия
- Басни
- Верлибры
- Визуальная поэзия
- В стихах
- Драматургия
- Лирика
- Палиндромы
- Песенная поэзия
- Поэзия
- Экспериментальная поэзия
- Эпическая поэзия
Старинная литература
- Античная литература
- Древневосточная литература
- Древнерусская литература
- Европейская старинная литература
- Мифы. Легенды. Эпос
- Прочая старинная литература
Научно-образовательная
- Альтернативная медицина
- Астрономия и космос
- Биология
- Биофизика
- Биохимия
- Ботаника
- Ветеринария
- Военная история
- Геология и география
- Государство и право
- Детская психология
- Зоология
- Иностранные языки
- История
- Культурология
- Литературоведение
- Математика
- Медицина
- Обществознание
- Органическая химия
- Педагогика
- Политика
- Прочая научная литература
- Психология
- Психотерапия и консультирование
- Религиоведение
- Рефераты
- Секс и семейная психология
- Технические науки
- Учебники
- Физика
- Физическая химия
- Философия
- Химия
- Шпаргалки
- Экология
- Юриспруденция
- Языкознание
- Аналитическая химия
Компьютеры и интернет
- Базы данных
- Интернет
- Компьютерное «железо»
- ОС и сети
- Программирование
- Программное обеспечение
- Прочая компьютерная литература
Справочная литература
Документальная литература
- Биографии и мемуары
- Военная документалистика
- Искусство и Дизайн
- Критика
- Научпоп
- Прочая документальная литература
- Публицистика
Религия и духовность
- Астрология
- Индуизм
- Православие
- Протестантизм
- Прочая религиозная литература
- Религия
- Самосовершенствование
- Христианство
- Эзотерика
- Язычество
- Хиромантия
Юмор
Дом и семья
- Домашние животные
- Здоровье и красота
- Кулинария
- Прочее домоводство
- Развлечения
- Сад и огород
- Сделай сам
- Спорт
- Хобби и ремесла
- Эротика и секс
Деловая литература
- Банковское дело
- Внешнеэкономическая деятельность
- Деловая литература
- Делопроизводство
- Корпоративная культура
- Личные финансы
- Малый бизнес
- Маркетинг, PR, реклама
- О бизнесе популярно
- Поиск работы, карьера
- Торговля
- Управление, подбор персонала
- Ценные бумаги, инвестиции
- Экономика
Жанр не определен
Техника
Прочее
Драматургия
Фольклор
Военное дело
Ретро Бит 9 (СИ) - "Seva Soth" - Страница 16
— Мистер Канн, я готов дать вам кредит на тиражирование дискет, из числа моих роялти Сьерры, — после кратких моральных терзаний решил я, — но при условии, что вы мне поможете с другим проектом. Недавно я отправил в Вашингтон авторскую заявку на новый язык программирования, полностью бесплатный и открытый сам по себе. Нет, это не коммунизм, а та же стратегия охвата рынка, что и у вас, только более глобальная. Вот, посмотрите, у меня есть расписанные спецификации того, что хочу получить.
(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-144', c: 4, b: 144})— Приятель, ты опять занимаешься благотворительностью, — обреченно проворчал батька, — зачем отдавать бесплатно то, за что можно брать деньги?
— Кен, мы это уже обсуждали… итак, позвольте вам представить мой новый язык — Джулай Скрипт! Сокращенно JS. Эти же буквы мы используем для расширений исполняемых файлов. У меня есть полностью расписанная спецификация того, каким я хочу видеть язык на старте. А в голове — дорожная карта его развития на десять лет вперед.
— А почему Джулайскрипт? — спросила миссис Уильямс и у меня на этот вопрос хороший, причем даже правдивый ответ имелся.
— Жюйе Скрипт! Жюйе — это июль, мон ами! Летний язык, теплый, как Ницца в июле! — воскликнул месье Канн.
— Официально потому, что я писал эту спецификацию в июле. А на самом деле в честь плаката с мисс Июль 81-го, который висел у нас в трейлере в Лос-Анджелесе. Затянувшаяся шутка.
Как основу нового языка я взял нежно любимый мной Питон, приправил тайпскриптом, добавил щепотку Го и капельку Раст. Копировать один из них целиком не стал, попытался соединить сильные стороны всех доноров и убрать слабые.
За идею отказа от операторных скобок и использования вместо них отступов следовало бы поставить памятник. Увы, не помню, кому именно. Кто-то предложил так делать еще в 60-х и лишь в 90-х Гвидо Ван Россум, отец Питона, ее популяризировал.
В качестве единственного валидного отступа я выбрал два пробела. В зародыше решил задушить спор между любителями пробела и табуляции. Но! Текстовый редактор научим по нажатию на Таб эти пробелы ставить и по бекспейсу их стирать, как единый символ. Четыре тоже окажутся валидны, но в моду войдут в будущем, когда экраны станут пошире. Решение, которым я, можно сказать, предотвратил раскол цивилизации на два лагеря. Но это не точно.
Синтаксис я утащил у змеиного языка почти целиком. И написать на Джулайскрипт нечитаемую кашу, втиснутую в одну строчку, физически невозможно.
Точки с запятой — на мороз! Полностью и без исключений, дозволенных оригинальным питоном. Кто-то станет вообще о них жалеть? Вот не думаю. Уверен, каждый программист их ненавидит, а особенно русскоязычные, так как в кириллической раскладке точка с запятой находится не там же, где и в английской. Не знаю, та ли эта несправедливость, которую стоит браться исправлять. Букву «Ж» с клавиатуры так запросто не выкинуть.
Типизация строгая. В непрекращающемся холиваре между сторонниками динамической и статической типизации я стою над спором, находя темные и светлые стороны в обоих подходах. Но карамба! У нас 1983-й год и засилье процессоров в один мегагерц! Тратить ресурсы компьютера и драгоценные такты на приведение типов рано! А вот автоматический вывод типов сделать стоит. Если кто-то инициализировал переменную значением 42, то это не только ответ на главный вопрос жизни, вселенной и всего такого, но и целое число и в явном виде тип разрешить не указывать.
Вот лет через десять кто-нибудь наверняка возьмет мою открытую спецификацию и создаст свой JS с блэкджеком и необязательными типами переменных.
С ключевыми словаи не перебарщиваем, не больше тридцати. Глобальные переменные запрещены. Всего один оператор проверки на равенство — «двойное равно». А присваивание — через одинарное. И никакого моржового оператора «двоеточие и равно» — самой раздражающей меня части в целом приятного Паскаля.
От Джаваскрипта берем его самую крутую часть: концепцию того, что каждая функция — это объект и ее можно положить в переменную, передать в качестве аргумента. Плюс объявление списков и словарей прямо в синтаксисе, без лишних кавычек. Это единственное место, где я оставил фигурные скобки, чтобы валидный в прежнем времени JSON оставался таковым и в наши доисторические времена. Расшифровка аббревиатуры у нас теперь, естественно, иная — Джулай Скрипт Обджект Нотейшн. Еще от современного JS — деление на переменные и константы, по умолчанию неизменяемые, как сделано и в «Раст», но наоборот.
От Раста — синтаксический сахар с проверками на null через вопросик и два вопросика. Подумывал и вовсе его отменить, но слишком большой разрыв шаблона всем программистам. Зато никаких отдельных null и undefined.
Еще мне нравится «Сборщик мусора», как концепция, не требующая думать о том, где что в памяти потерялось, но пока нерационально. Вместо него описал концепцию владения памятью снова из Раст. Не уверен, насколько это окажется реально без глубокого погружения в теоретическую базу. И ошибок, как мы помним, не существует! Если функция отработала с ошибкой, она ее и вернет, а не уронит все в панике.
И зачатки асинхронности через асинх/эвейт, без которых мы получим настоящий ад обратных вызовов и меня все проклянут.
И сахар! Много-много синтаксического сахара, ради которого программисты к нами и придут: f-строки, то есть подстановка в шаблон именованных значений, срезы и отрицательные индексы в массивах, множественные присваивания и распаковка, именованные аргументы в функциях, цепочки сравнений, ветвления через матч-кейз, перебор коллекций и диапазонов через цикл «for in», двойные и одинарные кавычки для обычных строк и тройные для многострочных, числа с неплавающей запятой, стрелочные функции. Куча-куча всяких хотелок, в общем. Всё, что смог припомнить выглядящего технически реализуемым с моей колокольни. Всё, что люди придумывали через красные от слез и кофе глаза неспящих долгими ночами разрабов.
Вот как-то так неидеально, но постарался закрыть самые больные места. Язык общего назначения, который может в зависимости от ситуации и компилироваться, и использоваться как скриптовый, внутри интерпретатора. И это всё я подарю человечеству во имя Омниссии. И даже не по лицензии Каналья, а просто так, без обязанности открывать свои исходники, иначе взрыв популярности не произойдет. Рантайм скриптов максимально компактный, чтобы и в табличный процессор включить не зазорно, и в бухгалтерскую программу, похожую на 1С, и в игру для описания логики НПС.
А далее главное — красиво ворваться. И разберемся, к чему это приведет. Если кто-то по-настоящему умный, вроде Томпсона или ван Россума, на моем фундаменте создаст язык будущего, удобный всем, я только скупую слезу пущу и профинансирую его крупным грантом. Ревновать не стану.
Главная цель создания скриптового языка, конечно — сделать его дефолтным в будущих браузерах. Я сам эту дорожку всем покажу, собственным примером в будущем «Каналья Эксплорере»… нет, неудачный нейминг. «Каналья Навигаторе»? Но всё потом, не сейчас.
И Кен, и месье Филипп читали предложенный мной документ с примерами возможных синтаксических конструкций, каждый со своего экземпляра — с запасом напечатал. Я замер, ожидая их реакции. Батька уже пару раз проявлял себя лютым консерватором, не принимающим новое.
Удивил Джон — он взял отдельную копию распечатки, уселся за свой компьютер и начал бодро стучать по клавишам. Он же не напишет мне сейчас готовый интерпретатор за десять минут? Я тогда неполноценным себя почувствую.
— Ох, мон дьё, тут написаны прекрасные мечты о чудесном языке и я бы хотел создать его компилятор для вас… но мой лучший разработчик, датчанин из Копенгагена, полностью занят Турбо Паскалем. За первой версией последует вторая… третья… а вести много проектов одновременно — верный путь провалить их все. Всё, что могу пообещать вам — консультации от Андерса, так его зовут… Вы, Кристоф, и вы, Джон, очень талантливые программисты, я верю, что вы справитесь сами и окажу всю возможную поддержку, мон ами.
(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-145', c: 4, b: 145})- Предыдущая
- 16/54
- Следующая
