LINUX.ORG.RU

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

 ,


2

7

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

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

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

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



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

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

С чего мне называть, к примеру, джаву фп? Там даже функций нет

Метод, функция — какая разница?

Лямбды, замыкания это лишь элементы, тот самый сахар, те самые полезные фичи.

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

А там уже есть нормальный полиморфизм, а не то __parodie на него? ООП это не классы, это абстрагирование.

Что не так у питона с полиморфизмом и абстракцией?

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

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

тоесть ты не только добавил гемора всем остальным программистам, но и сделал так, что и железо твой код выполнить не смогло без перепайки (возможно впайки доп. памяти)

Мужик, еба! Смотри токо, кофе предлагать станут - отказывайся. Туда уже наплевали.

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

Потому что ты не будешь пенисом пытаться просверлить отверстие в доске

Ну-ну.

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

Ты исходишь из заведомо ложного предубеждения о превосходстве C++ в производительности.

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

Метод, функция — какая разница?

Метод — член класса, функция же отдельная сущность, такая же как и инстанс того самого класса.

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

Хочу сказать что их наличие не делает язык фп. ФП это манипуляция функциями, в С++ и джаве ими особо не поманипулируешь.

Что не так у питона с полиморфизмом и абстракцией?

Его там нет?

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

Я исхожу из очевидных причин считать что машинный код производительнее эквивалентному байт-коду.

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

что и железо твой код выполнить не смогло без перепайки (возможно впайки доп. памяти)

Ты дебил. То, что меряет железо не соответсвует спецификациям только и всего. п/о его только конфигурирует и комуницирует с тачскрином и делает rpc через tcp.

впайки доп. памяти

в плату с аналоговой электроникой? Мде.. не тот анонимус пошёл, не тот.

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

Что не так у питона с полиморфизмом и абстракцией?

Его там нет?

Чувак, да ты же некомпетентен.

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

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

Метод — член класса, функция же отдельная сущность, такая же как и инстанс того самого класса.

Это всё детали, которые не играют в данном случае особой роли.

ФП это манипуляция функциями, в С++ и джаве ими особо не поманипулируешь.

Но можно ведь, да?

Его там нет?

Кого «его»? Полиморфизма или абстракции? Всё это очень странно, потому что когда я последний раз писал на питоне, они в питоне были.

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

Что не так у питона с полиморфизмом и абстракцией?

Его там нет?

Может ты про инкапсуляцию? попутал чего-то мальца.

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

То, что меряет железо не соответсвует спецификациям только и всего.

Ты дебил.

Потрясающе. Как я мог этого не знать!

в плату с аналоговой электроникой? Мде.. не тот анонимус пошёл, не тот.

А про это вообще даже дети на хабре знают. Все, ты меня опозорил.

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

Суть не в проскилле в питоне или алголе, суть в понимании используемой терминологии и простейших фундаментальных знаниях о языках программирования.

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

Совершенно верно! Эффективно сделать distributed на спп не получиться.

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

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

Никогда не встречал ситуаций, когда шитый код быстрее обычного ассемблера, так как помещается в кеш целиком? Да и кто тебе сказал, что C++ даст лучший машинный код?

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

Полиморфизма или абстракции?

s/полиморфизм/инкапсуляция, сидит у меня в голове полиморфизм из-за одной работы. Но не суть
Я о том что доступ к мемберам там неразгроничен и меня это огорчает.

Это всё детали, которые не играют в данном случае особой роли.

Как жеж! Оперирование функцией как переменной и есть основная черта ФП.

Но можно ведь, да?

Если в C++ можно юзать указатели на функции, и как-то извращаться, передавая все это, организовать операторы для этих указателей и т.п. то да, можно. Что не говорит что С++ фп, а лишь демонстрирует его возможности. Но в java и этого нельзя!

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

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

Ну да, а чо там!

Пишешь на цпп DSL аналог эрланга, только более эффективный, и, опять же, эффективно «делаешь distributed». :)

Можно же это в принципе реализовать? Можно. Нужно? Нах.

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

Можно же это в принципе реализовать? Можно. Нужно?

нужно ли для этого использовать ерланг? да ну нах

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

то это не возможно в принципе?

Так ты про эффективность или про не возможность реализовать в принципе? Ты бы сам уже определился чего ты хочешь. Если ты хочешь быстрой и качественной разработки - ну да, сплюс самое оно! А про „реализовать в принципе“ я тебе уже ответил. Реализовать можно всё.

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

нужно ли для этого использовать ерланг? да ну нах

Вот это аргумент! Он о многом говорит.

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

В возможности продолжать путать инкапсуляцию и полиморфизм, даже после того, как несколько человек переспросили, в непонимании элементарности выражения функции через абстракции, представляемые произвольным языком, поддерживающим ООП («Но в java и этого нельзя!»), в незнакомстве с новыми языковыми конструкциями своего основного инструмента («Если в C++ можно юзать указатели на функции, и как-то извращаться, передавая все это»).

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

тому подтверждение.

char**

C legacy.

std::string

Стандартная строка.

boost::string
boost

В переводе: мы велосипедим то, что станет новым стандартом.

QString

Тоже сложилось исторически.

Так что твой пример показывает ничего.

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

Я о том что доступ к мемберам там неразгроничен и меня это огорчает.

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

Ну и я бы не назвал инкапсуляцию обязательной чертой ООП.

Если в C++ можно юзать указатели на функции, и как-то извращаться, передавая все это, организовать операторы для этих указателей и т.п. то да, можно.

c++11 lambda

Но в java и этого нельзя!

java 8 lambda

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

элементарности выражения функции через абстракции, представляемые произвольным языком, поддерживающим ООП («Но в java и этого нельзя!»)

вот за это я люблю лор

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

s/полиморфизм/инкапсуляция, сидит у меня в голове полиморфизм из-за одной работы.

Я, кстати, подумал, что ты абстракцию с инкапсуляцией попутал.

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

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

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

c++11 lambda
java 8 lambda

and what?

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

Эффективно сделать distributed на спп не получиться

Ну, справедливости ради есть MPI, его вкорячили в буст (Boost.MPI).

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

Какими глазами будет смотреть IT-археолог будущего на обгоревший и восстановленный SSD с очередной реализацией массива на шаблонах? Вот что страшно на самом деле

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

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

А когда на Ruby пишешь, таких мыслей не возникает?

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

Я в свое время уже нагуглился , спасибо - либо не портабельно, либо студенческая поделка-недоделка. Видишь ли, без VM здесь не обойтись, а студентота и индусы в такое не могут. А те кому нужны green threads не выделываются и используют языки где это из коробки. В CAF сделали какое-то подобие Erlang'а, но получилось убого и даже близко не дотягивает до оригинала.

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

Мой пример не пример вообще, а цитата, идейно подходящая в контекст. Реализаций строк до... тысячи их. Каждый второй анонимус^Wстудент делает свою реализацию и каждый второй из них использует ее в будущем. Куча библиотек тащит с собой свои гребаные строки. Гребаные строки — квинтэссенция плюсового велосипедизма.

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

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

либо не портабельно, либо студенческая поделка-недоделка

Плохо гуглил.

Видишь ли, без VM здесь не обойтись, а студентота и индусы в такое не могут. А те кому нужны green threads не выделываются и используют языки где это из коробки. В CAF сделали какое-то подобие Erlang'а, но получилось убого и даже близко не дотягивает до оригинала.

С твоего разрешения я не буду отвечать копипастами с предыдущего треда (тредов).

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