Обновить

Куда идет программирование на самом деле?

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели15K
Всего голосов 11: ↑8 и ↓3+5
Комментарии45

Комментарии 45

Y = A * X + B

разве это не декларация намерения

Это (в императивном языке) не декларация намерения, а всего лишь алгоритм вычисления. Разница проявляется, когда есть побочные эффекты (а без них императивное программирование невозможно).

UML стал, пожалуй, одной из самых амбициозных попыток подняться не только над кодом, но и над предметной областью

Вы путаетесь в уровнях абстракции, UML — это инстанс MOF. Невозможно разработать «метаязык», потому что он станет еще одним инстансом AST. А вот MetaAST разработать как раз можно, и я мог бы даже подискутировать, если бы вы показали ваш подход к построению AST (и примеры самого дерева).

Но устанавливать ради этого кривое поделие юродивого Пашеньки я не готов, @ammotion:matrix.org

Половина UML гвоздями прибита к ООП: классы, объекты, наследование, пакеты

Разумеется. Потому что UML — это инстанс MOF для этой предметной области. При этом Хаскель волшебно описывается на FMS, который ничто иное, как неуклюжий потомок FML, который тоже инстанс MOF.

Но это все слишком сложно, тут разработка, а не компутер саенс, так что просто захреначим «метаязык» и будет счастье.

Не припомню таких сокращений

Невозможно разработать «метаязык», потому что он станет еще одним инстансом AST

Смотря, что понимать под мета-языком и про какой именно AST вы говорите, если речь про AST целевых языков, то я скорее говорил о модели, которая описывает систему до выбора конкретных языков и технологий, следовательно независящей от их внутренних представлений.

А если вы говорите про AST самого мета-языка, то мета-уровень здесь достигается не за счет синтаксиса, а за счет семантики, язык описывает структуру и поведение системы: сущности, отношения, ограничения, синтаксис тут вторичен.

я скорее говорил о модели, которая описывает систему до выбора конкретных языков и технологий, следовательно независящей от их внутренних представлений

Это метамодель, а для ваших целей нужна мета-мета-модель.

Код, короче, покажите — я объясню, что с ним не так.

О каком коде вы говорите? BNF грамматика, CST или AST? Или семантический анализ или код на самом мета-языке? Я планирую в следующей статье/статьях рассказать подробнее о языке с примерами кода и конкретными техническими решениями.

Невозможно разработать «метаязык», потому что он станет еще одним инстансом AST.

А не поясните, что такое AST? Abstract syntax tree? Что же Вы имеете в виду?

Ну я же дал ссылку на MOF. Реализация — это инстансы, M⁰. Модель — это классы, M¹, UML — это классы классов, мета-модель, M². MOF — это M³, мета-мета-модель.

Любой язык обречен болтаться на уровне реализации M², а для того, чтобы сделать то, что хочет автор — нужна M³. MetaAST, реализацией которого станут AST (M²), со своими языками — M¹.

Абстрактное синтаксическое дерево для выражения синтаксических деревьев низшего порядка. Никакими «семантиками, структурами и поведениями системы» выразить M³ не получится в принципе, поэтому автор либо лукавит, либо у него есть в голове неплохая идея, как выразить которую — он не имеет ни малейшего представления. Ну поглядим, делов-то. Направление очень верное, но непростое.

Любой язык обречен болтаться на уровне реализации M²

Ну это, если мы принимаем продукцию OMG как нечто незыблемое, на деле же, это не совсем так. Думаю MOF - не предел выразимости.

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

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

функция1 вызывает функцию2

у нас есть отношение вызывает(функция1, функция2), как если бы мы писали на языке вроде Datalog, но для подобных языков нет разницы между субъектом, предикатом и объектом, по сути это просто комбинаторика констант, переставляем их местами (SPO, SOP, PSO ...), строим префиксные боры и делаем запросы, но на практике есть некоторые вполне универсальные свойства отношений, такие как включение, направленность, ассоциативность и так далее, которые в классических логических языках отдельно не представлены, также нет отдельного позиционирования сущностей, если хотим выразить декларацию сущности, пишем что-то типа существует(сущность), также нет разделения на миры (онтологии), что крайне важно для разделения на уровни абстракции и оптимизации вычислений, в общем оcнование крайне мощное, но под те требования, что я перечислил оно не адаптировано. Мой язык является попыткой решения этих проблем, более конкретно о том, как именно он это решает я попытаюсь рассказать в следующей статье/статьях, разумеется я не пытаюсь создать Datalog++, но идейно мне это направление кажется верным.

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

если мы принимаем продукцию OMG как нечто незыблемое, на деле же, это не совсем так. Думаю MOF — не предел выразимости.

[…] на моделях из мира ООП

Боюсь, вы недооценили консорциум. MOF не имеет никакого отношения к миру ООП, ровно наоборот, смысл мета-мета-модели как раз в том, что в проекциях этого измерения одинаково легко выражать ООП, ФП и любое другое П. UML — это просто одна из проекций (инстансов), для ООП (потому что ООП тогда было на коне, она и проработана лучше всего, но это не значит, что FML — и её неуклюжий потомок FMS — как-то вдруг сложно реализуемы).

  1. Принципиальная абстракция: язык должен быть независим от конкретных предметных областей, языков и технологий, но при этом позволять описывать их внутри себя.

Это как? Давайте рассмотрим какие-нибудь примеры. Есть люди, у каждого человека есть фамилия, имя и отчество. (Бывают и особенности — национальные или исторические.) Каждый человек участвует в различных отношениях: здесь он — конечный пользователь системы, вот здесь — контрагент, там — директор фирмы или разработчик, а ещё — пользователь (читатель) библиотеки, и т.д. и т.п. У человека/организации есть адрес, может быть счёт в банке, ИНН, БИК, СНИЛС. И... куча всего!

Где, куда и как абстрагировать?

Это для нас некий набор цифр — это номер телефона. Мы это знаем. Для себя. А для системы — это просто набор цифр и набор действий, которые нужно с этими цифрами делать. Семантика всегда оказывается за пределами рассмотрения, а метаданные — это, как раз, немного другой (более высокий) уровень абстракции. Семантика, всё-равно, от нас так или иначе ускользает.

А что предписывает наука?

Наука предписывает, что у каждой предметной области должен быть свой язык. У такой области, как программные системы то же имеется свой язык — язык представления программных систем. А ещё должен быть и третий язык — язык для перевода (трансляции) первого языка на второй. Вот эта конструкция из трёх языков и есть решение задачи.

Продолжение следует... (с)

Вопрос концептуальный и он очень правильный.

Где, куда и как абстрагировать?

Вы сами отчасти ответили на свой вопрос. Вы начинаете с человека как универсальной абстракции, а потом иерархически спускаетесь по своим уровням абстракции и приходите к константным сущностям, вроде ИНН или СНИЛС.

Наука предписывает, что у каждой предметной области должен быть свой язык. У такой области, как программные системы то же имеется свой язык — язык представления программных систем. А ещё должен быть и третий язык — язык для перевода (трансляции) первого языка на второй. Вот эта конструкция из трёх языков и есть решение задачи.

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

И, ни слова про Форт (Forth) язык или другой конкатенативный! Обидно прям. :)

P.S. А, ведь были же умельцы, статья: Цифровая капсула времени: как я в 2026 запустил свой IDE, написанный в 1998 году на FORTH, что общего между Фортом и 1С, и что скажет о проекте современный ИИ https://infostart.ru/1c/articles/2634967/

На самом деле тут можно представить немного иначе 1 уровень: Абстракция над железом (языки программирования) 2 уровень: Абстрация над над реализацией(протоколы JSON, SQL, XML…) но не столько как сами эти технологии, сколько апи построенное на их базе 3 уровень: по идее это должна быть абстракция над интерфейсом, я не считаю что ИИ как то решает эту проблему, я скорее воспринимаю ИИ как инструмент, например как IDE. А вот тот же neuralink и вполне возможно

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

В работе «Рефлексы головного мозга» он прямо указывает, что мышление имеет физиологическую основу и не сводится к речи. В другой своей работе, «Элементы мысли» он развивает эту идею.

Если упростить: у нас уже есть «механизм мышления», встроенный на уровне физиологии. Язык не создаёт мысль — он лишь оформляет её и делает доступной для передачи.

У человека есть потребность делиться мыслями, он удовлетворяет её с помощью речи. Если речь недоступна, вход идёт жестовый язык, как, например, у глухих.

Язык — это инструмент коммуникации, а не сама мысль. Как любой инструмент, он вносит искажения. В языке неизбежно появляется абстракция. Когда мы формулируем мысль словами, мы её упрощаем, отбрасываем детали, подгоняем под существующие конструкции.

То есть теряем точность.

У Никонова есть прекрасный текст:

Образовательный, нравственный, интеллектуальный уровень попов разный, и на один и тот же вопрос они зачастую дают разные ответы.

В итоге Бог в нашем мире ведет себя так, будто его нет.

Но даже если бы Он начал по пятницам выступать по телевизору со своими проповедями и инструкциями по правильному поведению в разных ситуациях, уже через пару недель несчастный Господь увяз бы в поправках, разъяснениях и подпунктах: «Те слова, которые, применительно к ситуации, что я описывал как пример в позапрошлую пятницу, и которые, как выяснилось, не все правильно поняли, в иных ситуациях, о которых я доложу ниже, необходимо понимать с учетом тех поправок, которые будут ясны из следующих примеров…».

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

И вот тут мы возвращаемся к программированию.

Когда кто-то говорит: «Давайте создадим язык, на котором можно программировать почти как думаешь» — в этом заложена ошибка. Думаем мы не на языке. Мысль — это более глубокий процесс, который существовал ещё до появления языка.

Любой язык — будь то Python, SQL или «супер-человеко-понятный DSL» — будет вводить структуру, навязывать свою модель, отбрасывать нюансы.

То есть неизбежно искажать исходную мысль.

Поэтому не будет волшебного языка, который уберёт разрыв между мыслью и кодом.

Поэтому не будет волшебного языка, который уберёт разрыв между мыслью и кодом.

Подождите! У нас же есть свой собственный язык. На котором мы говорим и пишем, и, надеюсь, и думаем. Почему нельзя использовать естественный язык? Разве LLM не есть реализация такого подхода? Разве это не то самое литературное программирование, о котором говорил в своё время Дональд Кнут?

У нас же есть свой собственный язык

У нас есть свой язык. У глухих свой. Да тоже не один. У французов есть слово, обозначающее дерево без листьев, у нас нет. Зато у нас есть слово «спешиться», а у них нет, и они используют: ноги на землю. Серьёзно. У них даже дорожный знак такой есть для велосипедистов, с этими самыми словами.

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

и, надеюсь, и думаем

Мыслить можно и без разговорного языка. Иначе пришлось бы признать, что глухонемые не думают (что очевидно не так), животные не думают (что тоже противоречит наблюдениям), ребёнок до освоения речи не обладает мышлением.

Теперь к идее «почему бы не программировать на естественном языке».

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

То есть он не точен в принципе.

Именно поэтому в программировании появились формальные языки — не потому что люди «не додумались» до естественного, а потому что он плохо подходит для точного описания.

Что касается LLM.

Большие языковые модели — это не исполнение естественного языка, а скорее статистическое угадывание наиболее вероятной интерпретации текста. Исполнение алгоритма: найди мне текст, максимально похожий на ответ вот на этот вопрос (промт).

Они создают иллюзию понимания, но под капотом всё равно требуется формализация, уточнение и снятие неоднозначностей.

Именно поэтому с ними приходится переписывать промпты, уточнять формулировки и бороться с галлюцинациями.

Если бы естественный язык был точным — этого бы не было.

Теперь про Дональда Кнута и про его Литературное программирование.

Там идея немного другая.

Кнут не предлагал заменить код естественным языком. Он предлагал писать программу как текст для человека, где код встроен в объяснение.

То есть язык остаётся формальным, а естественный язык используется для пояснения.

Спасибо за глубокий комментарий. Вы абсолютно правы в том, что естественный язык (и любой линейный синтаксис) вносит искажения при фиксации мысли — это классическая проблема, которую ещё Платон описывал в «Федре».

Но позвольте задать вопрос в развитие вашей мысли: а что, если проблема не в «языке вообще», а в том, что мы до сих пор используем для программирования знаковые системы, оптимизированные под коммуникацию, а не под фиксацию инвариантов деятельности?

Есть направление — СМД-методология (Г.П. Щедровицкий, Анисимов), — которое как раз исходит из того, что:

  1. Мышление — это деятельность, а не просто «процесс в голове»

  2. Знак может быть не только словом, но и схемой, где элементы фиксируют онтологические категории, а не грамматические конструкции

  3. Искажение минимизируется не за счёт «приближения к мысли», а за счёт рефлексивного проектирования самой знаковой системы

В этой рамке «мета-язык третьего перехода» — это не «волшебный язык, на котором думаешь», а искусственная знаковая система, где схема деятельности может быть верифицирована, исполнена и перепроектирована без потери инвариантов.

Если вам интересно копнуть в эту сторону — рекомендую начать с работ О.С. Анисимова по «схематизации» или лекций П.Г. Щедровицкого о промышленных революциях и мета-навыках.

Как вы смотрите на то, что проблема «разрыва мысли и кода» может решаться не через «более человеческий синтаксис», а через иную онтологию знака?

Мне кажется, что философы ещё где-то в первой половине 20-го века заметили, что языки делятся на аналитические, позволяющие хорошо описывать структуры, вложенность одних объектов в другие, то есть — наличное бытие, а есть — синтетические, позволяющие описывать динамическое поведение и создание нового. Всё, с чем мы имеем дело, это суть аналитические языки. Включая и UML. А нужны какие-то новые языки.Ориентированные на процессы. В этом смысле, функциональное программирование предлагает некий подход к решению этой проблемы. Действительно, что такое 1 + 10? Это процесс последовательного увеличения числа не единицу! И так 10 раз!!

Даже научные формулировки — это уже сжатие смысла в термины. Например, «филогенез повторяет онтогенез» — это не сырая мысль, а упаковка сложных теорий в знаковую конструкцию, где каждый термин уже несёт выбор границ и интерпретаций.

Поэтому мы никогда не оперируем мыслью напрямую — только знаками, в которые она заранее сжата.

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

Сам он на своих семинарах мгновенно пресекал неправильно, по его мнению, поставленные вопросы.

Любая программа, включая искусственный интеллект – это, в некотором смысле, противоположная мыследеятельности вещь, так как представляет собой целесообразную деятельность, обособленную от мышления.

удивительно читать свои мысли в чужих формулировках! Хотя я не знал что

Начинать нужно с природы самого мышления.

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

Я больше думал о том как сформулировать что до того как написать решение вычислительной задачи, нужно четко сформулировать саму задачу как вычислимую(!) задачу. Основная проблема программирования в том что мы пытаемся запрограммировать (написать алгоритм вычисления) того что не получается, что называется, посчитать в лоб, в условиях ограничений реального мира, то есть ограниченного времени, памяти, отсутствия должной синхронизации между вычислениями и процессами реального мира (предметной области) с которыми эти вычисления должны взаимодействовать. То есть проблема как раз с абстракциями, НО при формулировке задачи. С абстракциями, которые отбрасывают условия реального мира которые на самом деле необходимо учитывать.

Но это еще если не рассматривать ситуации когда запрограммировать пытаются вообще без более менее сформулированной идеи-мысли, просто по наитию, перебирая варианты, пока, вдруг, не заработает. Как ни странно есть очень много кода который работает не потому что сделали чтобы работало, а потому что случилось чудо - ВДРУГ заработало и никто не знает и не пытается понять почему это стало возможно. Никакой язык тут очевидно не поможет, если изначально нет идеи никакой синтаксис не будет достаточно удобным чтобы волшебным образом выразить то чего нет.

Уровни абстракции: развивая первый пункт, язык должен позволять описывать произвольные уровни абстракции, не смешивая их между собой.

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

Например, есть номер телефона. На уровне базы данных, номер телефона — это набор цифр определённого формата. А на уровне пользовательского интерфейса? По идее, мы должны полностью описать табличное поле на стороне базы данных, но, в действительности, мы воспроизводим в пользовательском интерфейсе тот же самый тип данных, что и в БД. А можно не делать этого? На самом деле, в пользовательском интерфейсе есть просто какое-то поле для ввода, но его функционирование должно брать весь код из БД.

Выразительность: язык должен обладать достаточной выразительной силой, чтобы описывать широкий спектр предметных областей, от инфраструктуры до бизнес-логики.

А чем плохо, если у нас будет два языка для двух различных предметных областей и ещё один язык для написания трансляторов с языка одной предметной области на язык на другой?

Если у нас есть уровни, то связь уровней осуществляется через интерфейс, то есть — через посредство отображение сущностей одного уровня на сущности другого.

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

Абстрогируй, абстрогируй но не доабстрагируйся... Какой инженер? Первую абстракцию сделала Ада Лавлейс за 100 лет да него, увидев в аналитической машине Бэббиджа нечто большее чем просто посчитать логарифм

На самом деле останутся только те кто создает смыслы и те кто делает что то руками(пока).

Если 30 лет назад надо было сидеть и программировать месяцами для простого, то сейчас вот вот наступит эра когда можно будет не управлять десятками и сотнями разработчиков и других, а просто ии сказать делай то и то и самому управлять созданием приложения, а не ждать пока руки свои или других разработчиков это сделают. Сейчас пока ещё нужна мощная структура, архитекторы, разработчиков, qa, devops и прочих, а скоро это не надо будет. Хватит одного.

Однажды роботы будут сделаны при относительной доступности столь хорошо, что смогут заменить весь ручной труд. Тогда всё человечество на мороз. Особенно, если они научатся чинить самих себя.

Пока не известно что со смыслами, это не дано ии. А роботы да, коммунизм прям 🤣

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

Конечно не денется, только в моем посте это и есть те кто создают смысл, не шаблоная мебель, а кастом, но большая часть будет написана ии. Разработчикам надо приготовиться выйти на рынок другого туда, как только удовлетвориться спрос с учётом текущей производительности.

Первыми те, кто не умеет / не хочет пользоваться нейронками.

Например сколько было задействовано людей в сельском хозяйстве в 1900м и сейчас, ровно тоже самое в этой теме. Рынок будет изменён до неузнаваемости, причём скорость внедрения будет очень быстрой. Вспомните недавний пример ии фотографии в телефонах. Теперь зеркалка нужна для того, что не умеет телефон, но главный то тут то кто смотрит в видоискатель. Стало проще, гавно фотографов без смысла с рынка вышвырнули.

Первыми те, кто не умеет / не хочет пользоваться нейронками.

Теперь зеркалка нужна для того, что не умеет телефон, но главный то тут то кто смотрит в видоискатель.

Вы не видите тут гигантский logic gap? Джейсоноукладчиков заменят, наверное, да и то не всех. А до решения действительно сложных (даже не сложных, просто новых) задач LLM не дойдет никогда, в силу ограниченности архитектуры. Ян Лекун, например, это понял уже.

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

Любой формальный мета язык провалится в том, что не все может выразить, потонет в исключениях. Это уже проходили много раз. Невозможно формализовать неопределенность, которой является инженерные поиски нового решения. Или вам надо изобрести попутно алгоритм интеллекта сразу. Успехов!

А за статью спасибо, такой взгляд на развитие программирования, моделирования по сути, важен.

Любой формальный мета язык провалится в том, что не все может выразить, потонет в исключениях.

Инфа сотка?

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

Лет 15 назад, когда я ещё учился в институте, я встретился с чем-то подобным тому, что вы описываете: есть множество теорий (фундаментальных и прикладных), в каждой из них развит свой язык, и нет ясных/однозначных переходов из одного в другое. Т.е. так, как будто каждая из теорий и практик растёт от разных корней, а не от одного общего — объективной действительности, которую теории должны метрологически состоятельно описывать так, что-бы на основе этих описаний можно было предсказывать последствия своих действий, избирать возможные для реализации варианты будущего, и в итоге достигать избранного без побочных сопутствующих эффектов.

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

В итоге я встретился с Достаточно Общей Теорией Управления (ДОТУ). Ниже пару цитат для её характеристики (что конечно не заменяет знакомства с полным текстом).

Однако, всякий процесс в Мироздании может быть интерпретирован (представлен, рассмотрен) в качестве процесса управления или самоуправления. (…)

Во всём многообразии процессов (со-бытий) при рассмотрении их в качестве процессов управления или самоуправления можно выявить присущее им всем общее, и соответственно этому общему построить понятийный и терминологический аппарат достаточно общей теории управления. (…)

Теория управления была названа «ДОСТАТОЧНО общей», а не просто «общей» потому, что предложенная редакция достаточна для того, чтобы с введёнными в ней понятийными категориями однозначно связать объективные разнокачественности, свойственные всякой отрасли деятельности. Соответственно это позволяет развернуть частную прикладную теорию управления, а на её основе — управленческую практику во всякой отрасли деятельности. При этом по отношению ко всей совокупности отраслей человеческой деятельности достаточно общая теория управления предстаёт в качестве языка междисциплинарного общения.

И вопросы с того времени для меня несколько изменились в сторону освоения ДОТУ, поиска и изучения возможностей применения ДОТУ в области программирования.

Конечно ДОТУ — лишь “ствол дерева познания”, под ним есть ещё методология познания и творчества, определённая философия, подход к жизни в целом.

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

а не от одного общего — объективной действительности, которую теории должны метрологически состоятельно описывать так, что-бы на основе этих описаний можно было предсказывать последствия своих действий

Математика устроена по-другому, с тех пор, как стало ясно, что это не просто средство отъёма зерна у крестьян. Ей плевать на объективную действительность. А теоретическое программирование – это всё-таки раздел математики.

А можно конкретику на чём основан такой вывод?

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

Математика – это просто формальные преобразования одних символов в другие. Если хотите, вы можете использовать эти преобразования для описания мира или перехода от достоверных данных к достоверным выводам, но сами они этого никак не требуют. Можете переходить от недостоверных данных к недостоверным выводам или описывать несуществующий мир с тем же точно успехом.

Однако правила этого формального преобразования были откуда-то взяты. Другими словами в десятичной системе счисления 2+2=4 (а не от 3 до 5 в зависимости от сопутствующих условий либо ваших хотелок).

Конечно можно играться с фикциями по правилам из жизни, можно даже играться с фикциями по вымышленным правилам… вот только живём то мы в мире действительном.

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

Когда 4000 лет назад рассчитывали, сколько зерна отобрать у крестьянина с участка, то тогда абстракции математики появлялись в ответ на потребности людей. Но сейчас математика самодостаточна, и многие её разделы не имеют никакого практического применения, как, например, трансфинитное исчисление. Иногда так бывает, что сначала разрабатывают математическую теорию, а потом находят ей практическое применение, как, например, было с теорией групп или геометрией Лобачевского, но это совсем не обязательно.

Галлюцинации изначально явление человеческой психики (скорее всего любой психики и систем ей подражающих), а не только LLM-ок. Другими словами: субъективизм исследователей является единственным источником новых знаний в культуре человечества. Однако он-же и источник ошибок.

“Оторванные от жизни” разделы математики могут быть либо галлюцинациями и фантазиями учёных, либо описанием некой, ещё не востребованной практики, будь то из-за отсутствия объектов где-бы приминить либо желания (осознанной необходимости).

А если потребности в жизни не возникнет — то зачем разрабатывать? Тратить время и силы впустую?

Пожалуйста, ну пожалуйста не называйте llm и нейросети "искусственным интеллектом" или AI.

Пенроуза же (я уверен) вы читали?

Статья понравилась, спасибо. Немного зашевилилось внутри после прочтения "..язык мышления")

Уже очень давно работаю над темой, которую назвал Универсальный Язык Мышления - это язык программирования для создания синтетически-разумных образов. Он весьма специфичен и не похож на другие языки. Основная фишка - на этом языке можно представлять данные, процессы и связи между ними и точно также как это будет делать компьютер - т.е. по сути он будет думать вашими мыслями и сама программа это отражение Вашего мышления. Если коротко - это сплетённые из мыслей динамические мысле-образы, основанные на специальном ориентированном графе. Сам язык это набор нескольких правил (команд) для построения, чтения и изменения этого графа. Из некоторых особенностей: нет заранее зарезервированных слов или символов, которые используются при написании программ, нет заранее определенного синтаксиса и семантики; программа во время выполнения может переписать себя на 100% если это будет заложено в неё; есть только один тип данных - идея, остальные типы при необходимости выводятся с 0-ля, т.е. нет даже чисел и операций с ними. Еще много чего интересного, так просто всего не перечислишь.

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

Спасибо

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации