Re: Никогда не недооценивайте силу по умолчанию
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 12.09.22 10:46
Оценка:
Здравствуйте, Caracrist, Вы писали:

C>Допустим, вы создавали / выбирали бы сегодня новый язык програмирования. В этом языке есть переменные, структуры данных и функции.

C>Все как у всех.

C>Однако, иногда нужны были бы модификаторы. Вопрос такой, какое поведение вы выбрали по умолчанию, а какое с модификатором из следующих категорий?


C>Константность:

C>
C>const / mutable
C>


В идеале — вообще просто разные слова (let/var, например). Вот для чего-то вроде параметров функций — или те же слова, или таки mutable.

C>Асинхронность:

C>
C>sync / async
C>


Крайне сложно выбрать, зависит от домена.

C>Виртуальность:

C>
C>virtual / direct
C>


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

C>Передача:

C>
C>ref / value
C>


Учитывая, что в языках типа Java/C#/Python/etc. реально происходит передача _ссылки_ _по значению_, или вопрос некорректный, или надо его расширить. Чистое по ссылке — это, простите, старый Фортран, где сказав call foo(5) можно было получить, что 5 в памяти стало 6 для всех участников, потому что область константы была модифицирована
А вот для объектов, если не введена явная политика тотальной иммутабельности, передача ссылки по значению это таки нормальный вариант.

C>Видимость:

C>
C>public / private / ...
C>


Умолчание — [обновлено] лучше всего package-internal (если есть пакеты), за ним по полезности private. Только так. Легче потом отдельные элементы "расшарить", чем бороться с тем, что тебя поюзали и без согласования с 20 соседними департаментами ты это не ограничишь.

C>Из моего опыта по умолчанию должно быть примерно так:


C>

Опыт сильно напоминает улучшенный JS. Это всё-таки перекос в одну конкретную сторону.

C>
Какой язык мне посоветуете?
C>

Тот, что подходит под твой домен задач.

Вообще подобный опросник в варианте скрестили ужа с ежом, то есть C с JS и накрыли хаскелем, мягко говоря, смущает
The God is real, unless declared integer.
Отредактировано 13.09.2022 5:22 netch80 . Предыдущая версия . Еще …
Отредактировано 12.09.2022 19:49 netch80 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.