Целых два дня не писал — был занят. Делал сайт копирайтера — на WordPress конечно же. Казалось бы что делать два дня? Переносить контент, если ты забыл что есть экспорт/импорт. Вся процедура по итогу заняла менее часа.
Но не сразу 🙂
Ах да, PHP
Лучшее что случилось с Personal Homepage Processor. Несмотря на монструозные, или легкие, или красивые фреймворки — порядок расставьте сами: Zend, Laravel, Symphony.
Потому что WordPress выполнил предназначение PHP самым правильным по дизайну языка способом. И если кажется что блоги — это не самое сложное что бывает, то да, вы правы.
Это означает что PHP для большего не подходит.
А что тогда?
Ничего.
Хороший язык программирования должен естественно читаться, написание не обязательно. Позволяет ли ООП такое? С большой натяжкой — в случае чистого (и не существующего в практике) ООП. Функциональная парадигма — да ну точно нет (пробовали читать?). Императивная? Вряд ли, потому что перемешаны и объявления, и действия, и ссылки, и чего только нет. Декларативная?
А сам-то кто? Cool Story
Я защищал первый диплом своим языком программирования, а научруком был директор научного института, академик. Я там испыжился и под одну задачу наваял для специализированного языка кучу представлений — и визуальное, или онтологиями, и какой только дичью не маялся.
Потому что я не знал про нейросетки. Ну тогда и они сами ничего не умели.
Вкратце, аксиоматика НОРМАЛЬНОГО язык программирования:
- код обязан читаться естественно, как газета, на русском могучем языке,
- писать можно всё что угодно, хоть фантастический роман — и это должно выполняться, ошибок кроме орфографических — не существует,
- всё что интерпретатору не ясно — в режиме отладки предупреждениями, в режиме выполнения или молча игнорируется — или явно спрашивается,
- у хорошо понимаемых программ может быть структура, но не сложнее бумажек к лекарствам (которые все понимают), вида: [заголовок -> текст] * N,
- Обязательна поддержка двух концептов — интент (намерение) и сущность (entity).
Калькулятор Пользователь вводит символы и выбирает операцию. По завершению ввода отображается результат вычислений.
Пользователь, результат, операция — всё сущности. Намерения — отображать, ввод, выбор.
Это всё похоже на T5 (модель от Google), но она простые действия делает, тут не так.
- Интерпретатор имеет встроенные «типы» и «реакции» — базу — интентов и сущностей,
- Интерпретатор собирает в кучу все интенты со всеми сущностями из кода «программы»,
- Рисует морду и формирует начальный (может пустой) контекст,
- Ждет ввода, и определяет все связанные с этим конкретно вводом интенты, забирает значения сущностей,
- Выполняет интент, обновляет контекст.
Чат-боты так и работают. А там где должно что-то быть чуть сложнее житейской логики — там должна работать математика.
Что если сетка ошибётся?
Ага, а обычные-то программы никогда не ошибаются. В отличие от них сетки умеют говорить насколько они уверены в своём прогнозе. А некоторые даже интерпретацию выдают, как что поняли — отладка не портянкой развернутых шаблонов (привет плюсам), а прям как по азбуке учили.
То есть не жизнь, а сказка. И программы можно хранить открыто. И станет всё бесплатно. И каждый сможет сам себе создать программу не программист. И наступит коммунизм сингулярность падение зарплат в ИТ смерть jQuery.