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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.