Это не я пропустил. Пропустил автор диаграммы Свердлов, за ним Ткачёв, а потом и Вы. Хотя было бы логично исправить ошибку и отметить на диаграмме Форт и Лисп — они же важные и их нельзя пропустить. Не знаю, специально это было сделано или нет.
важно не столько то, что грамматика маленькая, тут чемпионом будут языки BrainFuck и производные, а то, что линия идет вниз.
Да, будь Вирт жив, графики Оберона и BrainFuck когда-нибудь пересеклись бы.
Диаграмма, иллюстрирующая эволюцию языков программирования, взята, полагаю, отсюда: https://informatika-21.ru/princypKalashnikova.htm. Исходную диаграмму С. Свердлова переделали и линии языков продолжили во времени. От этого диаграмма увеличилась вправо и вверх. Есть некоторые вопросы, ответы на которые не знаю, где получить.
Для подсчёта лексем С. Свердлов использовал некое приложение, анализирующее правила языков в РБНФ. Новая версия диаграммы построена с использованием того же приложения? Оно вообще где-то есть? Или оно ушло вместе с С. Сверловым и его сайтом?
Если бы эти языки в диаграмме были, то сразу было бы ясно, что языки Вирта отнюдь не самые лаконичные. Чемпион по минимализму — Форт. Вот где триумф минимализма. Более того, соотношение возможности/простота показало бы превосходство Форта и Лиспа над Обероном.
Сколько раз слышал этот аргумент и отвечал на него так: "Одень костюм с белой рубашкой и галстуком, обуй хорошую классическую обувь, побрейся и причешись - и не одному полицейскому не придёт в голову тебя останавливать".
Как-то ходила история про то, как итальянец ездил на работу на электричке и в дороге за несколько лет натыкал пальцем целую книгу. Вот где безумству можно петь песни.
Всё сломалось гораздо раньше, когда разрешили делать халтуру и не нести за это никакой ответственности. Когда принцип "as is" приобрёл юридическую силу. Но и потребители постарались: если я имею выгоду от использования ПО на 100 рублей и несу убытков на 10, то всё равно я в плюсе, при этом прощаю разработчикам их косяки.
C июня 2023 года для расчета индекса Tiobe используется только поисковая система Google. Поэтому необходимо делать геополитическую поправку на выводы, которые нам показывают.
Есть информация, что в первый день XXI конференции разработчиков свободных программ (03.10) будет бесплатный автобус Москва — Переславль-Залесский. Вопрос: во сколько и откуда будет этот автобус?
Кому мешал этот домен? Одной рукой закрываем якобы лишние домены верхнего уровня, а другой рукой открываем их любым желающим, правда за деньги (например, .yandex). Похоже, что .su надо сделать таким же.
Вы регулярно публикуете результаты проверок проектов с открытым исходным кодом. Не подскажите, можно ли где-то ознакомиться с накопленной статистикой по этим проектам? Интересно увидеть, сколько ошибок на 100 строк кода для разных проектов, ещё интереснее увидеть, какова доля функций/процедур/подпрограмм/методов, содержащих ошибки. Спасибо заранее.
Макросы — это чистые функции, исполняемые во время компиляции. Достаточно иметь в языке функции, чистота которых гарантирована, и это известно во время компиляции. Тогда такие функции, имея константные аргументы, могут быть выполнены во время компиляции. И тогда макросам вообще не нужен специальный синтаксис.
Чтобы продвинуть свой язык, не имея в нём ничего нового, надо быть компанией уровня Microsoft или Google, тогда твоим C# или Go повезёт. Или понравиться Google, как случилось с Kotlin. Или найти уникальную в этот момент нишу, как случилось с PHP. Иначе шансы призрачны. Новые перепевы старых мотивов редко вызывают интерес.
Новые идеи и концепции часто находят применение через новые языки. Например, ООП нашло себе применение сперва через Симулу-67, потом SmallTalk, а потом началось широкое распространение. То же случалось с функциональным программированием или выводом типов. Rust предложил свою концепцию владения, подчистил некоторые огрехи синтаксиса Си (хотя и не все), и в результате пробивает себе дорогу.
Полностью откзазаться от копирования невозможно. Все мы стоим на плечах гигантов. Но копировать надо лучшее, не повторяя ошибок.
Автор статьи делает распространённую ошибку: он не видит разницы между созданием языка и созданием компилятора. Об этом свидетельствуют даже заголовки типа "Создание языка в шесть шагов. Шаг 1: из текста в синтаксическое дерево". А если я пишу компилятор Си и мой первый шаг – это "из текста в синтаксическое дерево", то я создаю язык Си? Или я создаю компилятор? Если, допустим, Вася Пупкин написал компилятор Кобола, то создал ли он язык Кобол? Или его создала Грейс Хоппер?
Создание языка заканчивается описанием его синтаксиса и семантики. Описание может быть формальным (в каком-то документе), формализованным (например, в виде входного файла для генератора компиляторов) или неформальным. А компилятор — это лишь программная реализация этих описаний.
Вы упомянули следующие мотивы для создания нового языка программирования:
Личный творческий порыв
Академический интерес
Поддержка предметной области
Предоставление интерфейса к набору библиотек
Причины коммерческого характера
Безопасность
Производительность
Укрупнение или сужение семантики
Имиджевые причины
Я бы сюда добавил ещё такие пункты:
Проработка новых идей и концепций
Повышение качества ПО, обеспечение его надёжности
Более эффективное использование всё время растущего числа ядер процессоров
Хотя часть этих тем могут скрываться под "академическим интересом", но в том то и дело, что интерес может быть очень даже практический.
Под понятием "производительность" могут скрываться почти противоположные цели. Под этим одни имеют в виду повышение производительности программиста, даже в ущерб скорости работы программ. Другие подразумевают максимальную скорость работы программ, даже если для их разработки потребуются большие трудозатраты.
Личные творческие порывы приводят к разработке собственного ЯП, а далее хочется об этом поведать всему миру. Но поскольку большинство таких языков ничего нового предложить миру не могут, то у читателей статей о новых ЯП накапливается раздражение: "Ну вот, опять". Лично я считаю, что только те языки имеют право на чьё-то внимание, если в них есть какое-то заметное движение вперёд.
Это не я пропустил. Пропустил автор диаграммы Свердлов, за ним Ткачёв, а потом и Вы. Хотя было бы логично исправить ошибку и отметить на диаграмме Форт и Лисп — они же важные и их нельзя пропустить. Не знаю, специально это было сделано или нет.
Да, будь Вирт жив, графики Оберона и BrainFuck когда-нибудь пересеклись бы.
Диаграмма, иллюстрирующая эволюцию языков программирования, взята, полагаю, отсюда: https://informatika-21.ru/princypKalashnikova.htm. Исходную диаграмму С. Свердлова переделали и линии языков продолжили во времени. От этого диаграмма увеличилась вправо и вверх. Есть некоторые вопросы, ответы на которые не знаю, где получить.
Для подсчёта лексем С. Свердлов использовал некое приложение, анализирующее правила языков в РБНФ. Новая версия диаграммы построена с использованием того же приложения? Оно вообще где-то есть? Или оно ушло вместе с С. Сверловым и его сайтом?
На диаграмме все невиртовские языки демонстрируют рост числа правил со временем. На их фоне языки Вирта выглядят минималистичными. Однако в этой диаграмме отсутствуют важные языки: Форт и Лисп. В Форте всего 15 правил (https://compiler.su/arifmetika-sintaksisa-3.php#10), а в Лиспе — 20 (https://compiler.su/arifmetika-sintaksisa-3.php#22).
Если бы эти языки в диаграмме были, то сразу было бы ясно, что языки Вирта отнюдь не самые лаконичные. Чемпион по минимализму — Форт. Вот где триумф минимализма. Более того, соотношение возможности/простота показало бы превосходство Форта и Лиспа над Обероном.
Сколько раз слышал этот аргумент и отвечал на него так: "Одень костюм с белой рубашкой и галстуком, обуй хорошую классическую обувь, побрейся и причешись - и не одному полицейскому не придёт в голову тебя останавливать".
Как-то ходила история про то, как итальянец ездил на работу на электричке и в дороге за несколько лет натыкал пальцем целую книгу. Вот где безумству можно петь песни.
Всё сломалось гораздо раньше, когда разрешили делать халтуру и не нести за это никакой ответственности. Когда принцип "as is" приобрёл юридическую силу. Но и потребители постарались: если я имею выгоду от использования ПО на 100 рублей и несу убытков на 10, то всё равно я в плюсе, при этом прощаю разработчикам их косяки.
C июня 2023 года для расчета индекса Tiobe используется только поисковая система Google. Поэтому необходимо делать геополитическую поправку на выводы, которые нам показывают.
Есть информация, что в первый день XXI конференции разработчиков свободных программ (03.10) будет бесплатный автобус Москва — Переславль-Залесский. Вопрос: во сколько и откуда будет этот автобус?
"Эль-76", "Эль-22" - в названии явно проблема 2000 года.
Вы относите себя к языкам программирования?
Кому мешал этот домен? Одной рукой закрываем якобы лишние домены верхнего уровня, а другой рукой открываем их любым желающим, правда за деньги (например, .yandex). Похоже, что .su надо сделать таким же.
Есть бесплатные форумы. Достаточно погуглить. Например, mybb.ru
Вы регулярно публикуете результаты проверок проектов с открытым исходным кодом. Не подскажите, можно ли где-то ознакомиться с накопленной статистикой по этим проектам? Интересно увидеть, сколько ошибок на 100 строк кода для разных проектов, ещё интереснее увидеть, какова доля функций/процедур/подпрограмм/методов, содержащих ошибки. Спасибо заранее.
Несколько лет назад вынужден был отказаться от FF по причине его тормознутости. Заменил Brave, он больше всего меня устраивает.
Макросы — это чистые функции, исполняемые во время компиляции. Достаточно иметь в языке функции, чистота которых гарантирована, и это известно во время компиляции. Тогда такие функции, имея константные аргументы, могут быть выполнены во время компиляции. И тогда макросам вообще не нужен специальный синтаксис.
Больше, чем 5 секунд, потому что LibreOffice долго загружается.
Чтобы продвинуть свой язык, не имея в нём ничего нового, надо быть компанией уровня Microsoft или Google, тогда твоим C# или Go повезёт. Или понравиться Google, как случилось с Kotlin. Или найти уникальную в этот момент нишу, как случилось с PHP. Иначе шансы призрачны. Новые перепевы старых мотивов редко вызывают интерес.
Новые идеи и концепции часто находят применение через новые языки. Например, ООП нашло себе применение сперва через Симулу-67, потом SmallTalk, а потом началось широкое распространение. То же случалось с функциональным программированием или выводом типов. Rust предложил свою концепцию владения, подчистил некоторые огрехи синтаксиса Си (хотя и не все), и в результате пробивает себе дорогу.
Полностью откзазаться от копирования невозможно. Все мы стоим на плечах гигантов. Но копировать надо лучшее, не повторяя ошибок.
Автор статьи делает распространённую ошибку: он не видит разницы между созданием языка и созданием компилятора. Об этом свидетельствуют даже заголовки типа "Создание языка в шесть шагов. Шаг 1: из текста в синтаксическое дерево". А если я пишу компилятор Си и мой первый шаг – это "из текста в синтаксическое дерево", то я создаю язык Си? Или я создаю компилятор? Если, допустим, Вася Пупкин написал компилятор Кобола, то создал ли он язык Кобол? Или его создала Грейс Хоппер?
Создание языка заканчивается описанием его синтаксиса и семантики. Описание может быть формальным (в каком-то документе), формализованным (например, в виде входного файла для генератора компиляторов) или неформальным. А компилятор — это лишь программная реализация этих описаний.
Вы упомянули следующие мотивы для создания нового языка программирования:
Личный творческий порыв
Академический интерес
Поддержка предметной области
Предоставление интерфейса к набору библиотек
Причины коммерческого характера
Безопасность
Производительность
Укрупнение или сужение семантики
Имиджевые причины
Я бы сюда добавил ещё такие пункты:
Проработка новых идей и концепций
Повышение качества ПО, обеспечение его надёжности
Более эффективное использование всё время растущего числа ядер процессоров
Хотя часть этих тем могут скрываться под "академическим интересом", но в том то и дело, что интерес может быть очень даже практический.
Под понятием "производительность" могут скрываться почти противоположные цели. Под этим одни имеют в виду повышение производительности программиста, даже в ущерб скорости работы программ. Другие подразумевают максимальную скорость работы программ, даже если для их разработки потребуются большие трудозатраты.
Личные творческие порывы приводят к разработке собственного ЯП, а далее хочется об этом поведать всему миру. Но поскольку большинство таких языков ничего нового предложить миру не могут, то у читателей статей о новых ЯП накапливается раздражение: "Ну вот, опять". Лично я считаю, что только те языки имеют право на чьё-то внимание, если в них есть какое-то заметное движение вперёд.
Да ещё кисельные берега...
Пресловутый дефицит айтишников совсем не ранит мою душу. А ранит её дефицит вакансий, на которые хочется устроится.