Про идеальный ЯП
От: Shmj Ниоткуда  
Дата: 29.07.24 13:52
Оценка: :)
Вот взять популярные языки — C#, Java, Dart, TypeScript даже.

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

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

Основной минус этих языков — слишком большое расходование памяти (хотя C# позволяет и управлять памятью напрямую — все библиотеки то построены на GCC).

Rust и ООП

Вроде попытались сделать Rust, который и без легаси и памятью позволяет управлять. Но там нет самого главного, что есть в 4-ке лидеров — полноценного ООП с понятным наследованием и простой реализацией ООП-паттернов. Как-то его можно делать через одно место + макросы (к примеру, чтобы не делать override всех функций а только тех, которые нужны) — но не оно

И убеждать себя или других что ООП не нужно — глупо. Все популярные языки из 4-ки выше его содержат и примерно в одинаковой реализации, концепции те же самые. Нужно, еще как нужно.

C++

В C++ есть ООП можно сказать даже избыточное — есть private, protected и public -наследование, есть множественное наследование. Зато нет ключевых слов для интерфейсов и абстрактных классов, хотя это полезно (в 4-ке лидеров это есть).

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

Итого. Идеальный язык мне представляется как Rust, но с полноценным ООП и отсутствием макросов. Т.е. макросы могут быть, но не системные — т.к. это весьма усложняет. В 4-ке лучших языков нет особенной привязки к макросам или вообще их нет.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.