LINUX.ORG.RU

Зачем используют C++?

 ,


2

7

Обычно, когда говорят о сабже, обычно указывают, что несмотря на его сложность, уродливость, многословность, многочисленные косяки в дизайне... (список продолжается до бесконечности) его существование оправдано тем, что это достаточно низкоуровневый язык, и приложения требовательные к производительности — его ниша. Однако, вот это:

Сравнение Erlang и C++ по производительности

Хотя опытные Erlang-программисты давно заметили, что их программы для тех же задач получаются более краткими по сравнению с другими широко используемыми в промышленности языками программирования, эмпирическое исследование показало, что для изученных телекоммуникационных приложений код на Erlang был на 70-85 % короче, чем на С++, а производительность системы при переписывании кода с С++ на Erlang возросла почти на 100 %[137][138]. Для одного из использованных в исследовании проектов разница была объяснена написанием дополнительного С++-кода в рамках защитного программирования, управления памятью и кода для высокоуровневой коммуникации, то есть возможностями, которые являются частью языка Erlang и библиотек OTP[138].

Как такое возможно? Почему заточенный на производительность ЯП слил высокоуровневому 100%(!)? Может тут ошибка? Может наоборот?



Последнее исправление: beastie (всего исправлений: 2)

Ответ на: комментарий от staseg

Мой пример не пример вообще, а цитата

Т.е. ты прогазифицировал лужицу и убежал. Всё понятно.

студент делает свою реализацию

Студентам это и нужно делать.

каждый второй из них использует ее в будущем

Не вижу пруфов.

Гребаные строки — квинтэссенция плюсового велосипедизма.

Смотри ответ выше по ветке.

Кстати, буст ЕМНИП не реализует строку, а только добавляет алгоритмы к стандартной, хотя я точно не помню.

Тогда какие претензии?

anonymous
()
Ответ на: комментарий от anonymous

Не вижу пруфов.

Не вижу смысла приводить пруфы на общепризнанные вещи. А высмеивание данного факта на гнутом сайте считаете пруфом? Нет? Ну и сиди без еды.

staseg ★★★★★
()
Ответ на: комментарий от umren

Ага, а некоторые ещё Pure C закапывают, уже как 20 лет, а он всё ещё на первом месте и сдавать позиции не собирается.

peregrine ★★★★★
()

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

dizza ★★★★★
()
Последнее исправление: dizza (всего исправлений: 1)
Ответ на: комментарий от NegatiV

Да, если производительность не нужна, то лучше использовать C#, чем C++ или erlang. Писать софт для 1% необязательно.

peregrine ★★★★★
()
Ответ на: комментарий от anonymous

Ну может какие-нибудь говнобиблиотечки, где любая нить может заблокировать шедулер блокирующим вызовом, и есть.

NegatiV
()

ЯП-ы разные нужны, ЯП-ы разные важны.

peregrine ★★★★★
()
Ответ на: комментарий от peregrine

C хорошо для системы и embedded. Линукс программирования еще. Если что то стоит на первом месте не обязательно вы должны писать на этом все подряд.

umren ★★★★★
()

anonimous, напомни как зовут твою маму? Я скажу ей, чтобы она перестала готовить тебе борщ. Он плохо на тебя влияет.

anonymous
()

Зачем используют anonimous?

Обычно, когда говорят о сабже, обычно указывают, что несмотря на его тупость, уродливость, многословность, многочисленные косяки в мышлении... (список продолжается до бесконечности) его существование оправдано тем, что ЛОР достаточно низкоуровневый форум, и пользователи требовательные к клоунаде — его ниша.

anonymous
()
Ответ на: комментарий от NegatiV

С# умеет green threads хотя бы? Изкоробочную распределенку? Если нет, то закопай его.

Он умеет в искоробочную асинхронную сеть. Но идею закопать поддерживаю.

anonymous
()
Ответ на: комментарий от peregrine

Какую букву ты не понял? В C++ недостаточно возможностей для расширения семантики языка и для создания синтаксического сахара.

anonymous
()
Ответ на: комментарий от anonymous

Убогонькие они. Вон, даже банальный pattern matching на них не сделаешь. Я уж молчу про что-то более серьезное, типа linq.

anonymous
()
Ответ на: комментарий от NegatiV

Бредишь. На родине этого языка роутинг и «принятие запросов» (каких?!) написаны сплошь на няшной. На эрланге там управление конфигурациями, супервайзинг задач и ещё некоторые вспомогательные вещи, не требовательные к производительности.

t. E/// employee

anonymous
()

Ну так на Erlang же не дословно переписывали. Там оптимизации, сям оптимизации.

f1xmAn ★★★★★
()
Ответ на: комментарий от peregrine

Только рынок игр на 95% состоит из DirectX.

Нет, рынок игр на 95% состоит из игр на всяких анрилэнджинах, которые умеют как в огл, так и в дх.

Freyr69 ★★★
()
Ответ на: комментарий от comp00

Меня коробит от одной мысли, что другой программист может хоть каким-то образом получить доступ к private полям!

Потому что там лютый треш? или почему?

Debasher ★★★★★
()
Ответ на: комментарий от nanoolinux

Да и вообще, наличие подобных запретов само по себе выглядит странным. Что же не так с stl и boost если их запрещают в космонавтике?

просто если применять STL&boost не по назначению, то C++ становится «уродливым и многословным». Впрочем, как любая либа к C/C++ и любой высокоуровневый ЯП, например erlang. К сожалению, многие говнокодеры этого не понимают, приходится запрещать.

вот наглядный пример такого говнокода на(якобы) C++: Зачем используют C++? (комментарий)

emulek
()
Ответ на: комментарий от nanoolinux

про засилье ub

это всё рукожопие. UB возникает в случаях, если руки из жопы. Например говнокодер не может попасть индексом в массив. Другой пример: говнокодер решил сделать своё распределение памяти(сборку мусора), но не осилил. А причём тут ЯП? Таким пограммистам место на PHP.

emulek
()
Ответ на: комментарий от queen3

C++ используют потому, что это простой язык, и любой на нём может писать

4.2

если ты про хороший код.

emulek
()
Ответ на: комментарий от aedeph_

Симптоматично кстати, что жаба, что плюсы головного мозга чаще всего идут совместно с крайне слабым владением предметом флейма.

erlang головного мозга, и ФП головного мозга идут _всегда_ при полном отсутствии понимания C/C++. Т.е. поциент пишет (как он думает)на C++, и потом сравнивает этот свой говнокод с erlang'ом.

emulek
()
Ответ на: комментарий от anonymous

Сделай приличный pattern matching, хотя бы

Какой еще матчинг-шматчинг? Вы вообще не понимаете что такое С++

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

Инкапсуляция, наследование, полиморфизм, классы, метапрограммирование на шаблонах - вот та база, киты на которых стоят современные качественные и высокопроизводительные программы

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

Хотя, сегодня понимать что такое свобода могут не все. Вернее, понимать могут не только лишь все, мало кто может это делать

Как говорил один из великих (к сожалению, забыл фамилию): «Они [программисты на С++] взяли IT-индустрию с vi, TeX, тетрисом и hangman, и всего через каких-то 30 лет отдали нам с OpenOffice, Крузисом и драйверами принтеров hewlett packard»

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

Вот что важно на самом деле, а не какой-то там pattern matching

anonymous
()
Ответ на: комментарий от anonymous

Ты про fiber? Главный минус: ExitThread(или как оно там называется) останавливает тред на котором выполняются другие fiber'ы. Но с этим ничего не поделать - либо городить VM, либо жрать кактус.

NegatiV
()
Ответ на: комментарий от anonymous

Брат анонимус хорошо сказал. Тред закрыт.

anonymous
()
Ответ на: комментарий от anonymous

Я и говорю о наличии огромного количества низкоуровневых функций которые позволяют лезть руками туда куда не надо.

NegatiV
()
Ответ на: комментарий от anonymous

Какая в задницу свобода, если даже банальный pattern matching не сделать? Не метапрограммирование, а позорище убогое. Не свобода, а убожество, bondage and discipline, не многим лучше жабки. Вот Ди - это свобода.

anonymous
()
Ответ на: комментарий от anonymous

Знаешь, как это выглядит со стороны? Представь ситуацию. Господа в смокингах и цилиндрах сидят в обедне, пьют чай и ведут жаркие дискуссии про преимущества Lisp-2 перед Lisp-1. Тут к ним вползает пьяный вдрызг кучер Ванька. Отплевывая лошадиный навоз, он ссыт под себя, одновременно блюя на пол несвежим портвешком. Затем достает задроченный томик Страуструпа, найденный на помойке. «Инкапсуляция, наследование, шаблоны - вот где мыслЯ, блеать, вот где красота и свежесть!». Смеясь, господа растегивают ширинки и мочатся быдлу в рот. Зовут дворника Ваську - местного D-задрота, он спускает крестуха с лестницы. Он делает это с удовольствием - хоть зачем-то сгодился элите. Поднимаясь за похвалой, он начинает зациклено бормотать про скобки. Господа для острастки ссут на него, после чего возвращаются к своим светским беседам.

anonymous
()
Ответ на: комментарий от NegatiV

так и запишем

эрланг — это реализация зелёных потоков для быдлокодеров, которым нельзя доверить прямые вызовы libc

anonymous
()
Ответ на: так и запишем от anonymous

Записывай. Для виндовых потоков только запиши что это реализация зеленых потоков для быдлокодеров, у которых эти самые треды могут свалить всю программу или заблочить поток-шедулер в блокирующей операции. Все записал?

NegatiV
()
Ответ на: так и запишем от anonymous

почему только зелёных потоков? там все на такой концепции построено

anonymous
()
Ответ на: комментарий от anonymous

зачем вы дискредитируете буйно помешанных на Эрланге?? у них сейчас случится истерика

anonymous
()

Некорректно сравнивать - на плюсах можно писать всякие дополнения, поддерживающие нативные ноды, наоборот значительно реже.

Посмотри проекты: mochiweb, ejabberd, rabbitmq и исходники OTP.

Каждый инструмент хорошо для своего.

anonymous
()
Ответ на: можно и всю машину от anonymous

https://www.google.ru/?gws_rd=ssl#newwindow=1&q=c с++ program hang

Результатов: примерно 82 000 000 (0,53 сек.)

И что дальше? Все также будешь ссылаться на ошибки в VM? Сделай ошибку в libc/gcc и кричи о ненужности С.

NegatiV
()
Последнее исправление: NegatiV (всего исправлений: 1)
Ответ на: комментарий от NegatiV

ну ты же ссылаешься на *потенциальные* ошибки, которые *можно* допустить в сишном коде...

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.