Обновить

Надежное программирование — часть 6. Неудачники, выросшие и перспективные языки

Уровень сложностиСложный
Время на прочтение8 мин
Охват и читатели12K
Всего голосов 6: ↑5 и ↓1+4
Комментарии31

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

Eiffel Studio разве не под двойной лицензией распространяется gpl для opensource, коммерческая для всего остального?

Вроде все исходники доступны через SVN на Eiffel.com и официальное зеркало на GitHub. На сайтах eiffel.com и eiffel.org я что-то не нашёл, чтобы это было написано, хотя текст gpl можно найти и там, и там, но если заходить со стороны GitHub...

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

Да и полностью открытый под MIT License Gobo Eiffel выпускает релизы по 2-3 раза в год, другое дело что собственно компилятор там не реализует стандарт полностью, и они как один из вариантов предлагают использовать компилятор от Eiffel Studio и их библиотеки (под не вирусной лицензией) и пишут что они какую то часть инструментов языка ZIG для своего релиза позаимствовали.

Ну и да, Liberty Eiffel до прошлогоднего релиза, в который вошли результаты GSoC, действительно не релизился несколько лет, но это третья из открытых реализаций языка, как и GOBO, под лицензией MIT (даром что это официальный проект GNU) ну и нет, это не фронтенд GCC, как и собственный компилятор GOBO генерирует си-код

Eiffel интересен, но сейчас начинать писать на нем мало кто будет.

Почему он не получил развития, непонятно.

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

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

можно конечно это оспорить, но какая разница сколько строк занимает синтаксис если он сгенерирован машиной?

Реализовать то может, а поддержать?

Языки функциональной парадигмы (ФП)

  • Haskell Tiobe 30

  • Erlang Tiobe 100

  • Elixir Tiobe 47

  • Ocaml Tiobe 100

Практически не распространены в реальном, а не академическом мире разработки

Не то что «лидер» Dlang или «заматеревший и достойный разбора» Zig, понимаю.

Go и C# - языки энтерпрайзного говнокодинга

Это точно серьезный разбор языков?

Да, очень странно, дело даже не в упоминании говнокодинга, а в том, что концептуально это сильно разные языки

Концепции разные, область применения - одна.

На Шарпе ещё встречаются какие то утилиты, но нечасто.

Так на шарпе делают десктоп игры сайты, могут серверную часть

Не фанат Go, но на нём написан Kubernetes и инфраструктура вокруг него (операторы, etc), что сейчас весьма востребовано. А ещё Terraform.

НЛО прилетело и опубликовало эту надпись здесь

Подробнее рассматривался в части 3.

Основная область применения, где он хорошо занял позиции это - энтерпрайз.

Доля в обычном вебе на грани погрешности - 3%. Впрочем легаси Asp.Net они отдельно считают, ещё 4%

Гемдев возможен, но в том же Юнити компилируется через С++.

Лагающий нотепад не даст соврать про производительность Гуи =) Нативное УИ под винду это только Винформс.

В общем применения ему много, но связаны с врожденными неудобствами

C#

Лагающий нотепад не даст соврать про производительность Гуи =)

Нативное УИ под винду это только Винформс.

Вот это сейчас прикольно получилось. Кекспертно даже, я бы сказал.

Winforms — это дотнетовская штука. Возможно, вы имели в виду WinAPI (или MFC, упаси ЛЛММ, или ATL/WTL какой).

Конечно, винформс это дотнетовская обертка над вин32 апи контролами. Это называют нативными контролами.

Другие либы на Шарпе, как например ВПФ, рисуют контролы сами.

Мы ж на хабре, вы чего?

Серьёзный разбор был в предыдущих статьях, конкретнее в части 3

В начале части 3 есть оглавление

Про V написано "В минусах надежности - не определен порядок при вызове функций" это что значит?

add(procx(), fny()) - не определено явно, сначала будет вычислено procx() или fny() перед передачей в add()

Пример эксплуатации проблемы f(x++, x)

Возможно, будет определено позже, есть пара issue на эту тему. В настоящий момент реализовано слева направо, но не задокументировано явное поведение в будущем

Насколько я помню, в C это тоже не определено.

И в С++ тоже, из соображений производительности.

В V закрыли тему задокументировав аналогичное поведение.

По мотивам вашей сводной таблицы
В Rust порядок вычисленя аргументов слева на право. Ваш пример f(x++, x) в Rust либо не валиден если x ссылка (невозможно единовременно иметь мутабельную и немутабельную или две мутабельные ссылки на одну переменную) или будет две копии, которые будут вычисляться слева на право, но потом в LLVM их порядок вычисление может быть оптимизирован(если не меняет наблюдаемое поведение программы).

В этой ветке обсуждался Vlang.

В Rust же порядок четко определен, такой проблемы нет. В своей таблице явно поправил, спс.

Выглядит правда это так f({ x += 1; x }, x)

Надёжность языков в embedded:

1) Erlang/Elixir

2) rust, fpc, vhdl, ada

3) Си

Чего вы тут обсуждаете вообще не ясно, вы работали в этом направлении как надёжность в embedded? Какое там нах-н C++, где даже непонятно сколько бит займет int по стандарту, убойный набор конструкторов и пойми что где вызовется в initialization list с такими скобками или с такими, у нас в надёжности принципы DRY, KISS, YAGNI, LL(1), только первому удовлетворяют плюсы, остальные мимо

Речь не только и не столько про эмбеддед.

Часть языков такого тега вообще не удостоена.

Внимательнее надо, а не врываться С шашкой наголо =)

Ну а С++ сложный, его надо учить, и надо смотреть в применении к своей платформе. И более менее все станет понятно.

Что там учить? Если в языке есть приватное наследование, то скорее таких учеников нужно проверять на психическое здоровье

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

Публикации