По рейтингу ЯП — C практически всегда #1. Ну да, за счет мух какой-нибудь Python или JS чисто технически может временно сместить на 2 место, но суть не меняется — по прежнему его нечем заменить.
Вроде бы он просто идеально подходит для низкого уровня чуть выше ассемблера и вроде бы лучше ничего и придумать нельзя. Там прямо все продумано, кратко, удобно, ничего лишнего и все нужно.
Можно ли быть уверенным, что через 50 лет, скажем, он по прежнему будет востребован и ничем его не заменят? Или же новые процессоры, новые архитектуры и постепенно может быть вытеснен чем-то более совершенным. Ну как Rust что-то там пытался заменить собой C++, так и для C что-то попытаются сделать + автоматическая трансляция уже существующих прог в новый язык. Или не возможно?
S>По рейтингу ЯП — C практически всегда #1. Ну да, за счет мух какой-нибудь Python или JS чисто технически может временно сместить на 2 место, но суть не меняется — по прежнему его нечем заменить.
Нет, его нечем заменить. Есть куча бредовых смузихлебных поделий с большой рекламой, но реальной замены так и не появилось. D в теории мог бы, но он помер в младенчестве.
S>Можно ли быть уверенным, что через 50 лет, скажем, он по прежнему будет востребован и ничем его не заменят? Или же новые процессоры, новые архитектуры и постепенно может быть вытеснен чем-то более совершенным. Ну как Rust что-то там пытался заменить собой C++, так и для C что-то попытаются сделать + автоматическая трансляция уже существующих прог в новый язык. Или не возможно?
И С++ тоже на очень долго еще. Но если появятся и займут рынок новые архитектуры компов, то может и будут замененя С и С++.
Здравствуйте, Shmj, Вы писали:
S>Можно ли быть уверенным, что через 50 лет, скажем, он по прежнему будет востребован и ничем его не заменят? Или же новые процессоры, новые архитектуры и постепенно может быть вытеснен чем-то более совершенным. Ну как Rust что-то там пытался заменить собой C++, так и для C что-то попытаются сделать + автоматическая трансляция уже существующих прог в новый язык. Или не возможно?
Основное на C — ядро Linux, в котором слишком много драйверов устройств, чтобы его так просто заменить. Сейчас туда добавляют поддержку драйверов на Rust (но лично я надеюсь что массовым Rust не станет).
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
Здравствуйте, Shmj, Вы писали:
S>Можно ли быть уверенным, что через 50 лет, скажем, он по прежнему будет востребован и ничем его не заменят? Или же новые процессоры, новые архитектуры и постепенно может быть вытеснен чем-то более совершенным. Ну как Rust что-то там пытался заменить собой C++, так и для C что-то попытаются сделать + автоматическая трансляция уже существующих прог в новый язык. Или не возможно?
50 лет — большой срок. Сравнимый со всей историей ИТ. Кто его знает, что оно там будет, через 50 лет?
С другой стороны, какие у тебя шансы, что через 50 лет ты все еще будешь жив и заинтересован в языках программирования? Я бы так далеко не планировал.
Си не умрёт потому, что ничего такого-же простого и переносимого ещё не придумали. Всё что создавалось на замену си было сложным. Обычно те, кто пишут на сях не могут понять и выучить что-то более сложное (для них си и так довольно сложный и сильно высокоуровневый). Думаю, лет 20-30 он ещё точно будет жить.
Здравствуйте, Shmj, Вы писали:
S>Можно ли быть уверенным, что через 50 лет, скажем, он по прежнему будет востребован и ничем его не заменят?
C — это по сути портируемый ассемблер, следовательно в своей сфере применения (как и ассемблер) будет существовать, пока эта сфера существует. Просто не совсем понятно зачем его заменять, за почти 50 лет на нём накоплена огромная кодовая база, и у человека занимающегося например системным программированием, он не вызывает дискомфорта в использовании или сложности в освоении.
Здравствуйте, Vzhyk2, Вы писали:
V>Нет, его нечем заменить. Есть куча бредовых смузихлебных поделий с большой рекламой, но реальной замены так и не появилось. D в теории мог бы, но он помер в младенчестве.
D не помер, но после относительного пика популярности в конце нулевых, сейчас редко применяется. Хотя на офсайте даже поддерживается список с историями успеха: компании, где D применяется для разработки https://dlang.org/orgs-using-d.html Впрочем, был бы он действительно популярен такой список не имел бы смысла.
Но может он еще и взлетит.
Что касается C/C++ то хотя бы как legacy эти языки, скорее всего точно, что еще проживут 50 лет. На них уже столько софта написано, что никаких запасов смузи не хватит переписать на Go и Rust.
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, Shmj, Вы писали:
S>>Можно ли быть уверенным, что через 50 лет, скажем, он по прежнему будет востребован и ничем его не заменят? Или же новые процессоры, новые архитектуры и постепенно может быть вытеснен чем-то более совершенным. Ну как Rust что-то там пытался заменить собой C++, так и для C что-то попытаются сделать + автоматическая трансляция уже существующих прог в новый язык. Или не возможно?
Pzz>50 лет — большой срок. Сравнимый со всей историей ИТ. Кто его знает, что оно там будет, через 50 лет?
С другой стороны, как раз 50 лет назад — эпоха появления и распространения Си и Unix (тесно связанных между собой). Их создателям даже в голову не приходило, что все это будет еще и в 2022-м году популярно. Иначе, как признавались, многое бы по другому спроектировали.
Здравствуйте, Shmj, Вы писали:
S>Можно ли быть уверенным, что через 50 лет, скажем, он по прежнему будет востребован и ничем его не заменят? Или же новые процессоры, новые архитектуры и постепенно может быть вытеснен чем-то более совершенным. Ну как Rust что-то там пытался заменить собой C++, так и для C что-то попытаются сделать + автоматическая трансляция уже существующих прог в новый язык. Или не возможно?
Про 50 лет сказать не могу, но подозреваю, что активно будут развиваться инструменты, позволяющие сделать Си более безопасным. Ведь сам язык прост до безобразия, а значит надёжен, и проблемы возникают, в основном, из-за ручной работы с памятью. Уже сейчас приёмы вроде формальной верификации, symbolic execution, dataflow analysis потихоньку проникают из мира mission critical в mission not so critical. Да и компиляторы начинают добавлять вещи типа foo(size_t n, char data[static n]). Так что, думаю, что будущее это типобезопасность, нуль-безопасность и т.д. А вот С++, думаю, постепенно отомрёт, или повторит судьбу Кобола. Не в том смысле, как умирают языки типа D, а просто будет всё меньше и меньше людей, желающих забивать голову зазубриванием стандарта и пониманием, где там pvalue, а где xvalue, и в каком случае copy ellision не будет работать (а также, с каким компилатором и для какого стандарта).
Здравствуйте, Michael7, Вы писали:
M>Что касается C/C++ то хотя бы как legacy эти языки, скорее всего точно, что еще проживут 50 лет. На них уже столько софта написано, что никаких запасов смузи не хватит переписать на Go и Rust.
Может быть, компиляторы C++ или искуственный интеллект достигнут таких небывалых высот, что перекомпиляцию на другой язык удастся полностью автоматизировать...
Здравствуйте, cppguard, Вы писали:
C>Про 50 лет сказать не могу, но подозреваю, что активно будут развиваться инструменты, позволяющие сделать Си более безопасным. Ведь сам язык прост до безобразия, а значит надёжен, и проблемы возникают, в основном, из-за ручной работы с памятью.
Проблемы там далеко не только из-за ручной работы с памятью, на самом деле язык не такой простой как может показаться — в нем хватает неочевидных особенностей и умолчаний. Например, почитай срач в обсуждении массивов https://www.linux.org.ru/forum/development/16736706 — как видно даже с пониманием, что такое массив в Си есть проблемы. Строки в Си — это вообще больное место. Есть некоторое количество проблем, связанных с нюансами в работе управляющих символов. Отсутствие модульности в языке, которую делают де-факто с применением линковщика, впрочем, кажется в новейших стандартах ее добавляют. Проблемы типизации в ряде случаев, баги из-за препроцессора и т.д и т.п. как говорится.
В общем, как в каком-то интервью признавался Денис Ритчи, если бы они могли вернуться назад, язык бы сильно иначе спроектировали.
C> А вот С++, думаю, постепенно отомрёт, или повторит судьбу Кобола. Не в том смысле, как умирают языки типа D, а просто будет всё меньше и меньше людей, желающих забивать голову зазубриванием стандарта и пониманием, где там pvalue, а где xvalue, и в каком случае copy ellision не будет работать (а также, с каким компилатором и для какого стандарта).
Есть еще вариант, что C++ выродится фактически в отдельное подмножество, а остальное назовут легаси, которое куда-нибудь в угол засунут, может даже deprecated и включаемое отдельными ключами компиляции. Уже сейчас вообще-то C++ в типичных примерах нового кода далеко не тот C++, что был 20 лет назад. А его стандарт так разбух, что не уверен, что сейчас даже Страуструпа нельзя подловить на незнании чего-то в С++.
Язык Си наших дней и язык Си прошлого — два разных языка. Пробегала недавно статья об этом, с цитатами, как реальные Си-разрабы (Линус и ко) ругаются на астронавтов, пишущих компиляторы. То, что memset давно поломали, я только недавно сам узнал.
M>С другой стороны, как раз 50 лет назад — эпоха появления и распространения Си и Unix (тесно связанных между собой). Их создателям даже в голову не приходило, что все это будет еще и в 2022-м году популярно. Иначе, как признавались, многое бы по другому спроектировали.
Нет, не спроектировали бы. Ибо голый факт, что когда-то твое поделие будет еще востребовано, не дает никаких, ну совершенно никаких идей, как и что можно/нужно сейчас сделать по-другому.
Старички забавляются, фантазируя, а ты им веришь
"Больше 100кмч можно ехать на автобане в любом ряду кроме правого крайнего" (c) pik
"В германии земля в частной собственности" (c) pik
"Закрывать школы, при нулевой смертности среди детей и подростков, это верх глупости" (c) Abalak
vsb>Не знаю, где он там популярен. По сути С уже давно умер.
А что, в Казахстане делают что-то, для чего нужен С???
Этот язык востребован в США, Китае, немного в ЗапЕвропе и Индии.
Здравствуйте, ArtDenis, Вы писали:
AD>Си не умрёт потому, что ничего такого-же простого и переносимого ещё не придумали. Всё что создавалось на замену си было сложным.
Zig и Odin вроде достаточно простые. Они как раз и метят на замену Си.