LINUX.ORG.RU

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

 ,


2

7

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

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

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

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

☆

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

Так я о том же: видел кассовые аппараты с DOS'ом(вроде оно) и виндой эдак 98.

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

Да, показательно, как пример рафинированного UI, достигшего идеала.

И в чем идеал? Оно наконец-то начало работать?

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

Ну и что ты прицепился к кассовым аппаратам? Больше ничего делать не умеешь? Задачка то так себе, совсем не сложная, а ты же типа гений... Там и клава то не всегда есть полноценная, задача сводится к сканированию штрих кодов когда продавец проносит товар мимо аппарата и рассчёту суммы покупки. Ты бы ещё удивился почему у микроволновки гуя нет.

Кстати есть готовые решения для кафе где вообще веб приложение в которое заказы могут официанты добавлять хоть откуда - с планшета, телефона. В мелких магазинах действительно маздай стоит, в сети «магнит» вроде бы linux.

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

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

А ui в ресторанах был всегда, лет последние 15 как минимум, построен на tiles, так что мелкософту с их восьмеркой было у кого поучиться. Естественно, никакими кутями там тоже никогда и не воняло даже.

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

Я обязательно послушаю этот совет сразу после его самоприменении!)

Sharezil ★
()

За упоминание С++ на лоре банят? Хм, мне нравится.

darkenshvein ★★★★★
()

Что за бред вообще? Кого вообще парит, на чем писать, если это все компиллится в машинные коды. Пока нету оверхеда в виде виртуальной машины типа JVM, можно на чем угодно писать быстрее чем на С, если у этого «чего угодно» компиллятор лучше (чем сишный).

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

Кого вообще парит, на чем писать, если это все компиллится в машинные коды.

Это не парит только тех кто от программирования далек и программа для него это только продукт потребления.

Пока нету оверхеда в виде виртуальной машины типа JVM, можно на чем угодно писать быстрее чем на С, если у этого «чего угодно» компиллятор лучше (чем сишный).

Что за однобокий взгляд? Если программист написал тормозное говно, то каким компилятором его не собери, тормозным говном оно быть не перестанет.

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

Это не парит только тех кто от программирования далек и программа для него это только продукт потребления.

Я говорил именно про перформанс.

Если программист написал тормозное говно, то каким компилятором его не собери, тормозным говном оно быть не перестанет.

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

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

Ты лучше сам это почитай до полного просветления. Если «программист» знает только массивы и сортировку пузырьком, то никакая оптимизация не поможет.

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

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

И чем поможет оптимизирующий компилятор, допустим, для сервера который не может держать 2.000 коннектов из-за кривой архитектуры? Он вдруг станет держать 10.000 коннектов?

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

Ты лучше сам это почитай до полного просветления. Если «программист» знает только массивы и сортировку пузырьком, то никакая оптимизация не поможет.

Ты мне не тыкай, школьник. Это ты пишешь свою сортировку пузырьком, а в реальном мире используют готовые библиотеки.

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

пффф...будет мне еще тут какой-то «оптимизирующий» указывать. Даже библиотеку нужно правильно пользовать уметь, дятло. И кривые руки ни один компилятор не вылечит, даже сильно «оптимизирующий», если ты этого не понимаешь ... ну чтож, кукарекалка, это только твои проблемы.

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

слился, кукарекалка? вобщем то ты очередной ящер, который думает, что разработка - это просто «писание кода» и поиск «нужной библиотеки для любого чиха». ты не один такой, таких полная Индия.

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

При чем тут это вообще? Допустим, на Erlang или Haskell можно писать более быстрый код, чем на С++. Да, не во всех случаях, но тенденция есть. Тут смешно то, что говнокодеры, которые кроме C++ ничего не осилили, начинают срать кирпичами, когда показываешь бенчмарки.

В итоге С++ уйдет туда-же куда и ассемблеры.

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

А это знаток сисярпа, он метко вертит софт для продавчих на моньке-девелоп.

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

И много ты программ используешь на своем хашкеле или ирланке?

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

При чем тут это вообще?

При том, что задач, где «решают» оптимизации компилятора не так уж много. Haskell еще не скоро вытеснит C++ с задач где требуется производительность: http://benchmarksgame.alioth.debian.org/u64q/benchmark.php?test=all&lang=...

А С уж тем более:

http://benchmarksgame.alioth.debian.org/u64q/benchmark.php?test=all&lang=...

Мне кажется, что в плане производительности ближайшим конкурентом С++ (и Haskell) будет все-таки OCaml:

vs. Haskell: http://benchmarksgame.alioth.debian.org/u64q/benchmark.php?test=all&lang=...

vs. C++: http://benchmarksgame.alioth.debian.org/u64q/benchmark.php?test=all&lang=...

Разумеется, я говорю конкурентах в лице функциональных языков.

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

Мне кажется, что в плане производительности ближайшим конкурентом С++ (и Haskell) будет все-таки OCaml:

Ну может и так, бенчмарки Эрланга по ссылке удручают. Не суть, я привел его как пример современного функционального языка.

Haskell еще не скоро вытеснит C++ с задач где требуется производительность

Ну из энтерпрайза его уже подвинули Java и C#. В остальных областях - остается ждать, пока компиляторы улучшат.

Вообще ок, по факту С++ уже многих достал, так что не функциональными одними, есть еще Rust (1.0 планируется в этом году) ну и менее популярное типа D.

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

Вообще ок, по факту С++ уже многих достал, так что не функциональными одними, есть еще Rust (1.0 планируется в этом году) ну и менее популярное типа D.

D уже не взлетел и по факту похоронен, у Rust перспективы чуть радужнее, но это отнюдь не С++-заменитель, да и большая популярность ему явно не светит.

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

В остальных областях - остается ждать, пока компиляторы улучшат.

Ты главное не состарься. А то я эту сказку и 10 лет назад слышал.

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

Потому что легаси, который переписывать на хипстерскую поделку никто не будет. Думаешь, мозилла выкинет гекко и поставит серво? Интересно, будешь ли ты жив к тому времени, когда они это наконец сделают.

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

Да, вижу сишники готовы в говно известись, чтобы всем доказать что Rust не нужен. Ты хоть язык сам видел, умник?

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

При чем тут личности? Когда-то было оправдано делать ассеблерные вставки (ну кроме того, что это г**но еще поддерживать потом). Теперь есть мнение, что компиляторы умнее среднестатистического оптимизатора. Время не стоит на месте.

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

КМК, если на C++ начать писать не-говнокод в рамках задач телекоммуникации, то получится нечто, сопоставимое по возможностям с OTP, а в предельном случае - и сам OTP.
В других рамках получится что-то другое. На то он и general purpose language.

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

Теперь есть мнение, что компиляторы умнее среднестатистического оптимизатора. Время не стоит на месте.

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

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

если на C++ начать писать не-говнокод в рамках задач телекоммуникации, то получится нечто, сопоставимое по возможностям с OTP, а в предельном случае - и сам OTP

Ну вот посмотри, допустим, на supervisor. Единственная возможность реализовать его на C++ - это запускать отслеживаемые модули в отдельном процессе. Но, тогда придется изобретать свой протокол IPC для всех модулей. В итоге, пока все пишут «не-говнокод» на С++ и отлаживают его, умные люди юзают то что телекоммуникации создавалось: Erlang/OTP и не парятся.

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

Об этом и речь - пользуются уже написанным.

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