Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> А пишут ли ещё на Си++? 
:(
    Опции темы
Thunderbolt
Дата 6.2.2013, 10:53 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


DevRel
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 7.11.2007
Где: Тула

Репутация: нет
Всего: 16



Для меня это вопрос странен. Ответ: конечно да, и ещё долго будут писать. Однако время от времени, мне задают этот вопрос на конференциях или при общении на форумах. Я решил дать на него небольшой письменный ответ, чтобы в дальнейшем иметь возможность ответить одной ссылкой. 

Мы разрабатываем инструмент анализа кода PVS-Studio для разработчиков Си/Си++ приложений. Иногда меня спрашивают, почему именно для этих языков, ведь Си/Си++ это старый язык, на котором мало кто пишет. Когда я говорю, что это весьма популярный язык и широко используется, они искренне удивляются.

Причина этого видимо в том, что интернет забит статьями, форумами и новостями о новых языках и их возможностях. Среди всего этого, человек, не использующий в работе Си/Си++, просто не замечает редкие новости об этих языках. Это естественно явление. Нет смысла рекламировать и писать о том, что и так известно и широко используется. В результате складывается впечатление, что язык давно заброшен и используется только для поддержания некоторых старых проектов.

Это не так. Это очень популярный, живой и активно развивающийся язык. Чтобы убедиться в этом, достаточно взглянуть на рейтинг языков программирования. На данный момент это: TIOBE Programming Community Index for January 2013

user posted image

Если просуммировать C, C++ и Objective-C то мы получим 37%. Это в 6 раз больше, чем например у PHP. Не о каком угасании языков семейства Си/Си++ не может речи. 

Вот и ответ на вопрос, почему мы предпочитаем разрабатывать PVS-Studio именно для Си/Си++. Потому, что это наиболее востребованные языки на данный момент. Ну а во-вторых, они сложны, коварны и способствуют большому количеству ошибок. Просто райское место для развития статических анализаторов кода.

Примечание. Не стоит это воспринимать как критику языка Си или Си++. Это плата за гибкость и получение быстрого оптимизированного кода.

Ещё хочется коснуться заблуждения, что Си/Си++ используется только в старых проектах или в микроконтроллерах. Нет, на этих языках пишутся многие современные и известные приложения. Например, Chromium. Этот проект никак нельзя назвать древним.

Вот список известных приложений, написанных на языке Си++: C++ Applications.

И напоследок хочу дать ссылку на обсуждение: Why is C++ still a very popular language in quantitative finance?

P.S. А Вы что думаете по этому поводу?

--------------------
Карпов Андрей, DevRel в PVS-Studio.
PM MAIL WWW   Вверх
Alexeis
Дата 6.2.2013, 13:26 (ссылка) |  (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



Цитата(Thunderbolt @  6.2.2013,  11:53 Найти цитируемый пост)
Мы разрабатываем инструмент анализа кода PVS-Studio для разработчиков Си/Си++ приложений. Иногда меня спрашивают, почему именно для этих языков, ведь Си/Си++ это старый язык, на котором мало кто пишет. Когда я говорю, что это весьма популярный язык и широко используется, они искренне удивляются.

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


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Thunderbolt
Дата 6.2.2013, 15:19 (ссылка)  | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


DevRel
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 7.11.2007
Где: Тула

Репутация: нет
Всего: 16



Цитата(Alexeis @ 6.2.2013,  13:26)
язык сам по себе плох и нуждается в таком специальном инструменте

Я бы не был столь категоричен. Как я понимаю, php или Fortran не лучше. А, например, опечатоки вообще легко можно наделать в любом языке.
--------------------
Карпов Андрей, DevRel в PVS-Studio.
PM MAIL WWW   Вверх
Alexeis
Дата 6.2.2013, 16:39 (ссылка) |  (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



При этом фортран не претендует на роль универсального языка, а в своей нише решает свои задачи эффективно. На счет php не знаю, но C# в случае опечатки не сможет создать такой код, который затрет чужой участок памяти и вызовет труднодиагностируемую ошибку. Получим либо ошибку компиляции или ошибку выхода за границу диапазона. В любом случае программа будет ругаться в момент появления ошибки и сразу же укажет на нее. Поэтому необходимость в стороннем инструменте отсутствует. 
  В одном из холиваров С++ vs Delphi была шутка, что опытный С++ программист с легкостью решит несуществующую в Delphi проблему. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
volatile
Дата 6.2.2013, 18:14 (ссылка) |   (голосов:9) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: нет
Всего: 85



Цитата(Alexeis @  6.2.2013,  16:39 Найти цитируемый пост)
С++ программист с легкостью решит несуществующую в Delphi проблему.  

у дельфей нет проблем?
Хотя да. Нет языка - нет проблем. smile

PM MAIL   Вверх
fish9370
Дата 8.2.2013, 09:32 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: нет
Всего: 1



я бы не стал смешивать языки Си и Си++


--------------------
undefined
PM MAIL WWW ICQ   Вверх
_GRIN_
Дата 8.2.2013, 09:55 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


одинокий падаван
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 18.11.2007
Где: Калуга

Репутация: нет
Всего: 7



ИМХО.
У каждого языка своя приминимость.
Так где критична надёждность и скорость работы кода - будет C/С++ (например авиация - из личного опыта)
Так где более важна скорость разработки - там будет C# или подобные.



--------------------
Дорогу осилит идущий
PM MAIL Skype   Вверх
Alexeis
Дата 8.2.2013, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



>я бы не стал смешивать языки Си и Си++ 
+1

Цитата(_GRIN_ @  8.2.2013,  10:55 Найти цитируемый пост)
Так где критична надёждность и скорость работы кода - будет C/С++ (например авиация - из личного опыта)

Ну скорость еще туда-сюда, а вот надежность спорный вопрос. Там, где действительно нужна надежность, используют язык Ada вместо С++ , а там где скорость Fortran . С++ ни рыба ни мясо. Компромисс в тех ситуациях где он уместен.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
drug007
Дата 8.2.2013, 13:23 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 3.11.2011

Репутация: нет
Всего: 1



Цитата(Alexeis @  8.2.2013,  11:20 Найти цитируемый пост)
Ну скорость еще туда-сюда, а вот надежность спорный вопрос. Там, где действительно нужна надежность, используют язык Ada вместо С++ , а там где скорость Fortran . С++ ни рыба ни мясо. Компромисс в тех ситуациях где он уместен.

Как-то не очень вяжется с тем, что в F-22 американцы использовали именно С/С++. Ни Аду, ни Фортран - именно кресты. ИМХО, конечно, но Ада отомрет помаленьку, а Фортран так и останется нишевым языком, живущим за счет большого числа когда-то написанных библиотек. В принципе, эта участь уготована и С/С++ (да и любому другому успешному языку), вопрос только когда.
PM MAIL   Вверх
Alexeis
Дата 8.2.2013, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



Цитата(drug007 @  8.2.2013,  14:23 Найти цитируемый пост)
Как-то не очень вяжется с тем, что в F-22 американцы использовали именно С/С++. 

  Ну и молодцы что сделали, но это никак не доказывает, что С++ очень надежный язык. При выборе языка для таких систем учитывают множество факторов. Видишь, для товарища Thunderbolt, главным критерием стало распространенность. А я считаю, что именно из-за ненадежности и возникает необходимость в подобного рода затычках. Но так-то существует тестирование. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
xvr
Дата 8.2.2013, 15:54 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: нет
Всего: 223



Цитата(Alexeis @  8.2.2013,  11:20 Найти цитируемый пост)
Там, где действительно нужна надежность, используют язык Ada вместо С++ , 

Увы, даже супер надежные языки (типа Ada) не гарантируют безошибочности программ. Достаточно вспомнить Ariane 5



Самый дорогой феерверк - пол миллиарда евро  smile 


Это сообщение отредактировал(а) xvr - 8.2.2013, 15:56
PM MAIL   Вверх
fish9370
Дата 8.2.2013, 16:03 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: нет
Всего: 1



интересно другое, почему Си до сих пор так популярен?


--------------------
undefined
PM MAIL WWW ICQ   Вверх
volatile
Дата 8.2.2013, 17:12 (ссылка) |   (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: нет
Всего: 85



Цитата(xvr @  8.2.2013,  15:54 Найти цитируемый пост)
даже супер надежные языки (типа Ada) не гарантируют безошибочности программ

Способствуют даже. (ошибочности).
Программеры расслаблены, им навесили науши что язык супер-надежный.
От того что вместо одной строки, нужно написать десять, программа не станет надежней.
Все самые тяжелые ошибки в логике, а не в синтаксисе. И здесь надежных языков нет, и быть не может.


Это сообщение отредактировал(а) volatile - 8.2.2013, 17:19
PM MAIL   Вверх
Alexeis
Дата 8.2.2013, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



Цитата(volatile @  8.2.2013,  18:12 Найти цитируемый пост)
Все самые тяжелые ошибки в логике, а не в синтаксисе. И здесь надежных языков нет, и быть не может.

  Такие ошибки инструмент статистического анализа кода не решает. Тема обсуждения "Язык С++ такой хороший и популярный, поэтому для улучшения качества кода нужно иметь специальные программки"

Цитата(volatile @  8.2.2013,  18:12 Найти цитируемый пост)
Способствуют даже. (ошибочности).
Программеры расслаблены, им навесили науши что язык супер-надежный.

  Так говорить, все равно что - "А давайте дадим повару супер острый нож с кучей зубчиков и торчащих опасных штук. Повар будет бояться порезаться и будет всегда им аккуратно пользоваться". Абсурд!  Почему-то все делают режущие кромки только с той стороны где это нужно для резки. С остальных сторон нож безопасен. 

Цитата(fish9370 @  8.2.2013,  17:03 Найти цитируемый пост)
интересно другое, почему Си до сих пор так популярен? 

  Язык Си сравним с ассемблером. Он всегда будет жить, потому что для компиляции программы на С нужно обеспечить минимум технических средств. Код Си достаточно предсказуемо превращается в машинный код, но при этом избавляет программиста от огромной части рутины ассемблера и непереносимости инструкций.  


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
volatile
Дата 8.2.2013, 23:30 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: нет
Всего: 85



Цитата(Alexeis @  8.2.2013,  18:03 Найти цитируемый пост)
 Так говорить, все равно что - "А давайте дадим повару супер острый нож с кучей зубчиков и торчащих опасных штук. Повар будет бояться порезаться и будет всегда им аккуратно пользоваться

Alexeis, ножи в обоих случаях с кучей зубчиков и торчащих опасных штучек.
Просто в одном случае повара предупредили, а в другом сказали что нечего беспокоицца.

Ошибка стоимостью в пол миллиарда евро, это не просто случайная ошибка.
Это закономерность. Думаю интерес к так называемым"супернадежным языкам" пойдет на спад.

---
Тема перешла в холивар уже.
Удачный маркетинговый ход ТС, надо признать.
А название как удачно подобрано, загляденье... 

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.2100 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.