Re[2]: Про идеальный ЯП
От: Je suis Mamut  
Дата: 30.07.24 15:58
Оценка:
DM>Я тут недавно на современный Swift смотрел, вот он реально выглядит как такое усреднение с выбором всего хорошего и отбрасыванием плохого. И ООП есть, и традиционные для ФП фишки вроде алгебраических типов, паттерн матчинга, тайпклассов/трейтов, при этом вместо GC встроенный подсчет ссылок. Памяти ест мало, работает быстро. Вполне себе кандидат.

а если в сторону более формальных языков смотреть?
горюю о печальном состоянии Dafny и о том, что ничего сравнимого по дружественности так и не запилили.
или я ошибаюсь?
Re[2]: Про идеальный ЯП
От: Shmj Ниоткуда  
Дата: 30.07.24 16:42
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Я всё равно считаю, что ООП не нужно. Пишу на Java и ООП использую раз в год. Для раза в год можно и ручками сымитировать что надо. Тем более, что в Rust и сахар для виртуальных методов есть, это не C, где надо таблицы забивать указателями вручную.


Во приведенных 4 поп. языках оно есть и активное используется, причем реализовано все примерно одинаково. Так же и в том же C++ есть и активно используется.
Re[4]: Про идеальный ЯП
От: Went  
Дата: 30.07.24 17:45
Оценка:
Здравствуйте, Alekzander, Вы писали:
A>А ещё позже я познакомился с такой точкой зрения, что теория вычислений (включающая в себя программирование) это, по сути, изучений следствий ограничения математики законами физики. (Что вычислимо, а что нет, и пр.) Короче говоря, широко распространённая запись программного кода символами это совсем не случайность.
Да, программирование будущего наверняка не будет записью математической логики, по крайней мере, в большинстве своём. Я, напротив, про более визуальное (если не изобретут нейро-интерфейс и тогда будет "нейральное" восприятие) оформление кода.
Re[11]: Про идеальный ЯП
От: Alekzander  
Дата: 30.07.24 18:58
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

A>>Интерфейсам на vtbl нужно заполнение vtbl. Данные типа, доступные в рантайме, им не нужны. (Конечно, кроме гуида, имени библиотеки, разных флагов и пр. )


ЕМ>Для чего "интерфейсам на vtbl" могло бы потребоваться перечисленное?


Ты теперь и шутки охраняешь?

Перечисленные мною вещи являются условно-полезными. Гуиды можно применить для паттерна "грани" (в терминологии COM — QueryInterface). Имя библиотеки и её автора можно показать юзеру в диалоге "О плагине". Версию можно использовать для борьбы с version hell. Хотя всё это вещи прекрасно обходимые, и решаемые через добавление соответствующих методов.

Но даже на их фоне информация в рантайме о том, что сиплюсплюсный объект, скрывающийся за указателем, был получен в результате наследования от interface, от abstract class или вообще ни от чего, является феноменально бесполезной.
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Re[12]: Про идеальный ЯП
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 31.07.24 13:58
Оценка:
Здравствуйте, Alekzander, Вы писали:

A>Ты теперь и шутки охраняешь?


Если это была шутка, то чересчур тонкая для меня.
Re[12]: Про идеальный ЯП
От: korvin_  
Дата: 31.07.24 14:28
Оценка:
Здравствуйте, Alekzander, Вы писали:

A>Здравствуйте, korvin_, Вы писали:


A>>>В C++ интерфейсы это про vtbl. В C# и Java интерфейсы это про данные типа, доступные в рантайме. Интерфейсам на vtbl нужно заполнение vtbl. Данные типа, доступные в рантайме, им не нужны. (Конечно, кроме гуида, имени библиотеки, разных флагов и пр. )


_>>Какие данные типа.


A>Type.IsInterface.


Где тут данные?
Re[13]: Про идеальный ЯП
От: Alekzander  
Дата: 31.07.24 15:06
Оценка:
Здравствуйте, korvin_, Вы писали:

A>>Type.IsInterface.


_>Где тут данные?


Спроси у того, кто дотнетные сборки дизассемблирует. Я не в курсе, куда эта реализация лазит за ответом.
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Re[8]: Про идеальный ЯП
От: vdimas Россия  
Дата: 31.07.24 18:04
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>И вот нам надо убедиться, что а) реализация корректно реализует заявленную state machine


Эквивалентность двух детерминированных конечных автоматов проверить легко — минимизируешь оба и сравниваешь. ))

Т.е., вот у вас есть формальное описание автомата (можно даже на языке регулярных или расширенных регулярных выражений по Холмскому, не которые Перловые) — порождай из него эталонный минимальный автомат, затем минимизируй пространство состояний и входных/выходных сигналов реализованного автомата и сравнивай с эталоном.

Для сравнения оба автомата должны быть реализованы по одной и той же схеме — Милли или Мура.


S>б) вторая сторона тоже корректно реализует свою часть протокола.


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

Т.е., если речь о ДКА, его всегда можно описать через эквивалентный парсер некоей регулярной грамматики (по Холмскому).

Если поведение алгоритма невозможно описать эквивалентным ДКА, а, скажем, необходим будет более общий автомат, например, с магазинной памятью, то, в зависимости от вида описания состояний, необходимо будет выбрать одну из КС-техник реализации автомата. На сегодня тотально рулят LR(k)-техники, или более общий из них GLR.
Re[5]: Про идеальный ЯП
От: vdimas Россия  
Дата: 31.07.24 18:18
Оценка:
Здравствуйте, novitk, Вы писали:

N>В этом и проблема — в Swift не ХМ, как и в Скале.


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

Скорее, грамотней говорить просто об автовыводе типов через унификацию в некоем наборе правил этой унификации, а не ссылаться на конкретно ХМ.
Re: Про идеальный ЯП
От: elmal  
Дата: 01.08.24 17:24
Оценка: 3 (1) +1
Здравствуйте, Shmj, Вы писали:

S>C++ вроде хорош, но большое легаси. И от легаси не уйти — оно всегда будет просачиваться. Хотя в последние версии добавили и умные указатели и пр. — это уже как бы довесок. Вот если бы они изначально делали язык по этим принципам, не заботясь о совместимости — было бы намного лучше.

Мне вот интересно, что мешает в 2024-м году для плюсов сделать нормальную систему сборки, нормальную модульность, с репозиториями и версиями. И имея эту модульность сделать нормальную УДОБНУЮ библиотеку алгоритмов, пофиг что не совместимую, но чтоб можно было с комфортом писать на этом новые приложения. А то я конечно не сильно слежу, но такое впечатление что с библиотеками и системами сборки все сейчас примерно как 30 лет назад.
Re[2]: Про идеальный ЯП
От: kov_serg Россия  
Дата: 01.08.24 18:02
Оценка:
Здравствуйте, elmal, Вы писали:

E>Мне вот интересно, что мешает в 2024-м году для плюсов сделать нормальную систему сборки, нормальную модульность, с репозиториями и версиями. И имея эту модульность сделать нормальную УДОБНУЮ библиотеку алгоритмов, пофиг что не совместимую, но чтоб можно было с комфортом писать на этом новые приложения. А то я конечно не сильно слежу, но такое впечатление что с библиотеками и системами сборки все сейчас примерно как 30 лет назад.


Бюрократия мешает и искусственно созданные грабли, которые жалко бросить и тяжело поддерживать.
Re[2]: Про идеальный ЯП
От: ononim  
Дата: 01.08.24 18:30
Оценка: :)
S>>C++ вроде хорош, но большое легаси. И от легаси не уйти — оно всегда будет просачиваться. Хотя в последние версии добавили и умные указатели и пр. — это уже как бы довесок. Вот если бы они изначально делали язык по этим принципам, не заботясь о совместимости — было бы намного лучше.
E>Мне вот интересно, что мешает в 2024-м году для плюсов сделать нормальную систему сборки, нормальную модульность, с репозиториями и версиями.
Ох уж эти меньшинства блэт. Вот почему Сшники не приходят на Go-форумы и не орут — уберите ваши гребаные модули, хотим инклудники как как в сишечке! А вот эти вот прут... со своим уставом...
Как много веселых ребят, и все делают велосипед...
Re[2]: Про идеальный ЯП
От: Shmj Ниоткуда  
Дата: 01.08.24 21:48
Оценка:
Здравствуйте, elmal, Вы писали:

E>Мне вот интересно, что мешает в 2024-м году для плюсов сделать нормальную систему сборки, нормальную модульность, с репозиториями и версиями. И имея эту модульность сделать нормальную УДОБНУЮ библиотеку алгоритмов, пофиг что не совместимую, но чтоб можно было с комфортом писать на этом новые приложения. А то я конечно не сильно слежу, но такое впечатление что с библиотеками и системами сборки все сейчас примерно как 30 лет назад.


Ну вот QT-библиотеки вроде норм, но платные иногда.
Re[2]: Про идеальный ЯП
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 03.08.24 11:36
Оценка:
R> про пельмешки, которые по силе мысли должны обкатываться в сметане и прыгать в рот

В кук-бук, блин!
Я слюной истёк, ушел в магазин.
Re[2]: Про идеальный ЯП
От: Alekzander  
Дата: 03.08.24 14:40
Оценка:
Здравствуйте, elmal, Вы писали:

E>И имея эту модульность сделать нормальную УДОБНУЮ библиотеку алгоритмов, пофиг что не совместимую, но чтоб можно было с комфортом писать на этом новые приложения.


Это прекрасно можно сделать и не имея никакую модульность.

А ответ описывается анекдотом: "Нет спроса — нет завоза".

Ровно 16 лет назад состоялся последний релиз https://reason.io/index.htm. Но к тому времени все, кому нужны были удобства, уже разбежались по джавам и дотнетам. Остались мутанты, которым чем страшнее, тем лучше. Чтобы профаны в их коде не могли разобраться. Плюс вот тут выше есть пример, как упёртые сишники не понимают, зачем лямбды. Сам понимаешь, каким спросом у них будет пользоваться суб-библиотека типа LINQ, если её включить в стандарт. (А ведь тоже можно написать без изменений синтаксиса!)

Но лично я, конечно, многое бы отдал, чтобы написанное тобой стало реальностью. Язык хороший, просто около двадцати лет им занимаются очень плохие люди.
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Re: Про идеальный ЯП
От: kov_serg Россия  
Дата: 05.08.24 16:42
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Итого. Идеальный язык мне представляется как


Re[5]: Про идеальный ЯП
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 25.09.24 22:41
Оценка:
Здравствуйте, novitk, Вы писали:

На днях вышел Swift 6.

N>Байндинг к C++?


Что-то точно есть теперь, но в подробности не погружался.

N>собирается в ~static linking ехе? если да, то размер helloworld.exe?


Теперь собирается! Сейчас получилось на линуксе собрать. Если обычный нестатический helloworld занимает 17 КБ (но ссылается на пачку .so), то при сборке с ключом --swift-sdk x86_64-swift-linux-musl получается бинарник, про который ldd говорит "not a dynamic executable", т.е. полностью статический, и он размером... 42 МБ! Пипец, конечно.
Re[2]: Про идеальный ЯП
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 26.09.24 07:09
Оценка:
Здравствуйте, elmal, Вы писали:

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


К нам приходят с большим опытом Питона, подключают для С++ чаще всего Conan (реже vcpkg), используют в своих рамках, не жалуются на особую сложность. Если что-то не работает из коробки — зовут меня. Так что за 30 лет изменения всё таки есть, да.
Re[3]: Про идеальный ЯП
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 26.09.24 07:12
Оценка:
Здравствуйте, vsb, Вы писали:

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


Кстати, сейчас всё чаще используют RAG, когда к нейронке просто подключают внешнюю базу знаний, а также агентов. И контекст всё больше увеличивают. То есть никто не мешает нейросеть сначала чуть дообучить на новом языке, скормить синтаксис языка с примерами в виде промта, потом дать возможность вызова компилятора и анализатора ошибок. Может и сработать
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.