четверг, 21 мая 2020 г.

Язык Python

- Так, господа студенты! Я решил, что в этом учебном году, мы с вами разработаем интерпретатор нового языка программирования!
- Отлично, учитель! ВАУ! Господин, Ван Россум, это будет прекрасным дополнением к нашей прошлой курсовой работе, к ОС "Амёба"! А каким будет наш новый язык программирования?

- Прежде всего, уважаемые студенты, он будет скриптовым и интерпретируемым. Почему, надеюсь, вам понятно? Я хочу, чтобы его было просто реализовать, чтобы на нём было просто писать программы... э-э-ээ... Ну, даже таким, как вы, индиивидумам, э-э-э... просто. Но чтобы и что-то серьёзное можно было писать, а не только фигню в 2 строки про инверсию цифр в числе!
- Отлично, учитель!!! Это гениальная идея! Мы берёмся! А этот язык будет же Объектно-Ориентированным?
- Конечно, друзья! Он обязательно будет Объектно-Ориентированным, как же иначе?

- Но, учитель! Ведь объектно-ориентированная парадигма программирования, ведь - это же прошлый век! Сейчас в моде функциональные языки!
- Ну, так наш новый язык программирования будет ещё и функциональным! Почему нет?
- Но, учитель, ведь ещё знаменитые Кнут и Дейкстра писали про пользу от читабельности структурного программирования в императивном стиле?!
- Так я разве против? Наш новый язык будет и структурным, и императивным. Ну и функциональным. И объектно-ориентированным. И декларативным ещё, ну только совсем немножечко... А чего там ещё нужно добавить?

- Но Учитель?! Ведь один и тот же язык программирования не может же быть одновременно и объектно-ориентированным, и функциональным, и императивным, и декларативным? Ведь так не бывает?!
- Да, и ты тоже совершенно прав, мой ученик...

- А ещё в старом Фортране-77 и в Коболе-59 были такие классные операторы форматирования строк вывода побуквенными бумажными шаблонами! Прямо на ведомостях матричными принтерами через копирку печатали... Ой... Я что-то не то сказала? Только не говорите, про мой возраст, пожалуйста,  это по отношению к женщине несколько неприлично...
- Фигасе! А ведь это, кажется, тоже отличная идея! Вот прямо матричным принтером, через копирку, да прямо по клеточкам ведомости? То самое, что нужно!

- Ну а постфиксная польская запись?
- Нет, ну постфиксная запись, это уже явно не атрибут нормального языка высокого уровня, увольте! Это же какие-то микрокалькуляторы получаются?
- Но списки, Учитель!!! Самое главное, списки! Никаких адресных переменных в языке делать  никак нельзя!!! Надо только чистейшие списки! Прямо, как в языке LISP. Знаете такой?
- Почему именно списки? Ну а массивы-то вам чем не угодили?!
- Массивы?! Так это позапрошлый же век! Нет. ну.... индексы в квадратных скобках можно на первый случай (до середины 1990-х) и оставить... Но, вот, с четвёртой версии нашего общего ЯЗЫКА, мы и все индексы из массивов обязательно уберём! Только чистые списки!
К чему вообще нужны эти допотопные, аппаратно-ориентированные, массивы?! Ведь есть же свободные, контекстно-независимые, чистые списки со сборкой мусора? For-in-range!? Чем не универсальная на все случаи жизни структура?
- Эээ. А как же кортежи?
- Кто? Кортежи? А кто это? Ах, да... Оставим кортежи в контексте строк. Пусть будут, не жалко же, да?
- Отлично, мои друзья! Именно так мы всё это и сделаем!

- (тихонько, шёпотом): Учитель, вы ещё забыли про прерывания, про исключительные ситуации, про файловый ввод/вывод в последовательном и в произвольном режиме доступа к внешним устройствам ,а ещё про...
- Гениально! Мы именно так прямо сегодня и сделаем! И исключения, и файлы, и...
Что? Это я тут что-то "забыл"?! Так! Стоп! Вы мне тут ещё про оконный графический интерфейс начните болтать!
На сегодня урок закончен! На сегодня... Закончен... Так понятно?!

...

- Милый! Ты сегодня так поздно?
- Да, дорогая. весь день придумывал со студентами новый язык программирования. Такой, чтобы и для обучения подходил и чтобы скрипты в любых системах можно было писать, и чтобы в сети web-сайты конфигурировать.
- Ээээ... Что? Что такое ""WEB"?  А что такое "сайты"? В какой "сети"?
- А? Что? Да, это не важно, моя дорогая! В первой половине 1990-х годов это всё ещё не важно. Главное - я пришёл домой.
- Тогда, у меня всё готово. Вот постель! Я тебя жду!
- Кого ты хочешь? Мальчика или девочку?
- Я хочу ещё одного мальчика...

(распахивается дверь, заглядывает сын)
- А мне, а для меня, а от вас, родители, ещё кроме этого нового мальчика, мне нужны сабля, водяной пистолет и велосипед с моторчиком! Да, ещё и коньки роликовые не забудьте!
- Ну, будет тебе и сабля, и велосипед с моторчиком! Только дверь закрой!!! С той стороны, пожалуйста...

- Милый?
(раскрывается дверь)
- Ему, значит, велосипед, да? А мне тогда нужно куклу! Большую, розовую, чтобы сама глаза открывала и закрывала! И чтобы "ма-ма" сама говорила, когда её качаешь, вот!
Ой, а ещё мне нужно шоколадку! Такую, плоскую, в красненькой обёртке, помните?
- Будет тебе кукла, доченька. Большая, розовая, говорящая. И шоколадка тоже. Только дверь закрой....

- Милый?
- Так, об чём я? Новый язык программирования?
Так, что там было? Объектно-ориентированность? Сабля? Лямбда-исчисление? Или пистолет? Функциональная парадигма? Велосипед с моторчиком? Списки? Или кортежи? Да чёрт их разберёт! Ах, да, ещё обязательно нужны строки! Эти строки будут ни в каком случае не изменяемые.
Да потому, что все списки - изменяемые, а должно же в этом языке быть хоть что-то неизменяемое?! Вот пусть строки и будут никому и никогда в этом нашем языке не изменять!
Ах да! Чуть не забыл, ещё надо обязательно  розовую куклу, самоговорящую "ма-ма", в новый язык добавить. И ещё утром букет роз для жены, точно... Чего-то там про сеть было? Впрочем не помню.
Ой, а про шарики-то  я забыл? Или нет, там кажется было не про шарики, а про ролики? Ах, ещё кажется что-то про шоколадку было...
О, вспомнил! Главное - чтобы язык был ПРОСТОЙ и сразу всем понятный! Так, ясно! Значит точку с запятой и всякие там разные Begin-End-ы нужно из синтаксиса обязательно убрать, пробелов всем хватит. Или символов табуляций... Ой, ещё тогда символ двоеточия придётся оставить, иначе нечего будет внутрь квадратных скобочек запихивать... Да, и обработку исключений не забыть...

- Милый? Как мы ЕГО назовём? Нашего мальчика?
- А каким он будет, дорогая?
- Наверняка он вырастет большим, сильным, стройным, ловким!
- Ну, ты прямо какого-то удава изобразила...
- Фууу!!! Что, других, кроме удава, ассоциаций с силой и ловкостью у тебя нет?
- Нууу... Почему нет? Есть. Например, давай, назовём его PYTHON

Комментариев нет:

Отправить комментарий