Информация об изменениях

Сообщение Re[2]: Язык C - может ли умереть в обозримом? от 21.01.2022 12:57

Изменено 21.01.2022 13:02 Michael7

Re[2]: Язык C - может ли умереть в обозримом?
Здравствуйте, cppguard, Вы писали:

C>Про 50 лет сказать не могу, но подозреваю, что активно будут развиваться инструменты, позволяющие сделать Си более безопасным. Ведь сам язык прост до безобразия, а значит надёжен, и проблемы возникают, в основном, из-за ручной работы с памятью.


Проблемы там далеко не только из-за ручной работы с памятью, на самом деле язык не такой простой как может показаться — в нем хватает неочевидных особенностей и умолчаний. Например, почитай срач в обсуждении массивов https://www.linux.org.ru/forum/development/16736706 — как видно даже с пониманием, что такое массив в Си есть проблемы. Строки в Си — это вообще больное место. Отсутствие модульности в языке, которую делают де-факто с применением линковщика, впрочем, кажется в новейших стандартах ее добавляют. Проблемы типизации в ряде случаев, баги из-за препроцессора и т.д и т.п. как говорится.

В общем, как в каком-то интервью признавался Денис Ритчи, если бы они могли вернуться назад, язык бы сильно иначе спроектировали.

Есть определенный пласт проблем, связанных с управляющими символами

C> А вот С++, думаю, постепенно отомрёт, или повторит судьбу Кобола. Не в том смысле, как умирают языки типа D, а просто будет всё меньше и меньше людей, желающих забивать голову зазубриванием стандарта и пониманием, где там pvalue, а где xvalue, и в каком случае copy ellision не будет работать (а также, с каким компилатором и для какого стандарта).


Есть еще вариант, что C++ выродится фактически в отдельное подмножество, а остальное назовут легаси, которое куда-нибудь в угол засунут, может даже deprecated и включаемое отдельными ключами компиляции. Уже сейчас вообще-то C++ в типичных примерах нового кода далеко не тот C++, что был 20 лет назад. А его стандарт так разбух, что не уверен, что сейчас даже Страуструпа нельзя подловить на незнании чего-то в С++.
Re[2]: Язык C - может ли умереть в обозримом?
Здравствуйте, cppguard, Вы писали:

C>Про 50 лет сказать не могу, но подозреваю, что активно будут развиваться инструменты, позволяющие сделать Си более безопасным. Ведь сам язык прост до безобразия, а значит надёжен, и проблемы возникают, в основном, из-за ручной работы с памятью.


Проблемы там далеко не только из-за ручной работы с памятью, на самом деле язык не такой простой как может показаться — в нем хватает неочевидных особенностей и умолчаний. Например, почитай срач в обсуждении массивов https://www.linux.org.ru/forum/development/16736706 — как видно даже с пониманием, что такое массив в Си есть проблемы. Строки в Си — это вообще больное место. Есть некоторое количество проблем, связанных с нюансами в работе управляющих символов. Отсутствие модульности в языке, которую делают де-факто с применением линковщика, впрочем, кажется в новейших стандартах ее добавляют. Проблемы типизации в ряде случаев, баги из-за препроцессора и т.д и т.п. как говорится.

В общем, как в каком-то интервью признавался Денис Ритчи, если бы они могли вернуться назад, язык бы сильно иначе спроектировали.

C> А вот С++, думаю, постепенно отомрёт, или повторит судьбу Кобола. Не в том смысле, как умирают языки типа D, а просто будет всё меньше и меньше людей, желающих забивать голову зазубриванием стандарта и пониманием, где там pvalue, а где xvalue, и в каком случае copy ellision не будет работать (а также, с каким компилатором и для какого стандарта).


Есть еще вариант, что C++ выродится фактически в отдельное подмножество, а остальное назовут легаси, которое куда-нибудь в угол засунут, может даже deprecated и включаемое отдельными ключами компиляции. Уже сейчас вообще-то C++ в типичных примерах нового кода далеко не тот C++, что был 20 лет назад. А его стандарт так разбух, что не уверен, что сейчас даже Страуструпа нельзя подловить на незнании чего-то в С++.