LINUX.ORG.RU

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

 ,


2

7

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

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

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

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



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

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

Сами по себе не нужны, но в тройке green threads + non-blocking I/O + preemptive multitasking - получается офигенное ядро для распараллеленных систем, будь то сервер базы данных, стриминга аудио/видео или веб сервер.

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

Не съезжай.

Съехал сейчас ты. Ну давай, ламерюшка, в чем конкретно я съехал?

Что ты не можешь в green threads я уже понял.

Ты меня нулина на понт не бери, ты отвейчай, либо обсирайся.

Ладно, с ИО ты обосрался. Давай теперь про green threads.

Зачем нужны green threads и для чего их надо юзать?

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

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

Сами по себе не нужны

Дак ты и считать не умеешь, ты же мне расскажешь какой жопой в твоей параллельной вселенной ненужно+ненужно+ненужно == нужно?

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

green threads

ненужно

non-blocking I/O

ненужно

preemptive multitasking

ненужно

Советую выпить мочи и идти дальше считать факториалы на локалхосте.

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

получается офигенное ядро для распараллеленных систем, будь то сервер базы данных, стриминга аудио/видео или веб сервер.

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

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

Юзаем значительно патченный cowboy - что-то на С переписали, что-то переделали абсолютно. Лично я только их acceptor юзал. Все остальное - на другой кухне в нашей фирме.

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

Рас ты начал кукарекать про вебсервер.

Давай я предложу тебе батл, а то ты убежишь:

Берём то же хттп, сейчас один хрен ничего, кроме гет"а не нужно - минимальная реализация на 5минут. Вомзожно в твоём говноланге он есть готовый.

Берём какую-нибудь лёгкую полезную нагрузку, допустим, как ты и хотел - посчитать sha1/md5, допустим, от тела запроса.

Хочешь другие нагрузки - предлагай. Всякие ИО вне рамы не юзаем, ибо это неизмеримо.

Я юзаю «чистую» сишку безо всяких либ, даже без либц. Ты юзаешь свой говноланг, только без сторонних либ.

Всякие недорассуждения про расспределяйки я не приемлю, кукарекать о них ты можешь только тогда, когда ты снимешь примерно на уровне меня - я даю тебе фору 2раза. Я сомневаюсь, что ты стоишь дороже ноды, хотя даже тыщи баксов много.

Хотя это фронтенд и я так и не понял какой жопой ты сюда впихнёшь распределяйку, но ладно - делай что хочешь.

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

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

Лошара, давай я тебе предложу батл.

Давай, выкладывай сюда отсканированный отчет своей зарплаты. Да так, чтобы название фирмы и телефон начальника был. А я после тебя сюда свой. И посмотрим кто убежит?

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

Дак показывай, что ты меня, шавка, на понт берёшь. Не прокатит.

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

В конце 2005 г. движок «Quake II» был переписан на Java...

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

для си++ есть великолепная либа, которая умеет в green threads (тут они называются fibers, но это не меняет сути дела), асинхронный i/o (в линуксе они используют epol для сокетов, что в других ОС я не копал), умеет в http сервер/клиент, причём это очень и очень удобно сделано и в кучу всякой мелочёвки, типа JSON/gpb и прочая. либо открытая, но сделана была конторой mozy для себя. сейчас их купила EMC, так что доков к либе практически нет. кому интересно - можете поглядеть их презентации на ютьюбе. вместе с тем, что у них там можно собрать doxygen + пара нормальных примеров заинтересованым людям должно хватить. незаинтересованные могут и дальше рассказывать про отсутствие грин тредов и прочих умных слов в плюсах. а, ну и да, мози отличный успешны проэкт, который был не просто так куплен. у них на их этой либе всё собственно и крутится, rest бошка + i/o в сторадж, внутри gpb, собственный логгинг, json для конфигов. это я к тому, что либа проверена практикой.

ссыль: https://github.com/mozy/mordor

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

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

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

пёс твой выблядок.

лицензия при том, что хер тебя поймёшь, что именно тебе не угодило.

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

anonymous
()

ТС уже давно умер зойбанен, а говно всё ещё бурлит.
Почему любое сравнение C++ с любым языком программирования разрастается как минимум в три сотни постов?

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

потому что есть 2 типа языков. Те, которые все ругают, и те, которыми никто не пользуется. (с)

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

разве ты не знаешь о существовании специальной школьной олимпиады «у меня длиннее»?

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

Почему любое сравнение C++ с любым языком программирования разрастается как минимум в три сотни постов?

потому что программистов С++: хороших, умных, тупых, плохих, разных, количественно больше чем всех остальных вместе взятых программистов других языков

anonymous
()

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

ranka-lee
()

Наверное потому, что на нем проще писать индусский код. Учите D или Rust. Насчет Erlang и других языков ничего сказать не могу, но на D в 2 раза код меньше, чем в С++, даже в Hello World.

anonymous
()

Насчет правильного кода, есть куча анализаторов кода, один из них-PVS Studio. Неужели погромисты, которые писали Chromium, Firefox и Notepad++ и Винду в конце концов о нем не слышали или им лень пользоваться? И при написании программы лучше не использовать bloatware типа Qt и .NET, чтоб не превратить программу в такое же bloatware и тормозное глючное говно.

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

Учите D или Rust

... чтобы быть абсолютно ненужным в реальной жизни.

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

И при написании программы лучше не использовать bloatware типа Qt и .NET, чтоб не превратить программу в такое же bloatware и тормозное глючное говно.

Даешь велосипеды во все поля! Нужно больше велосипедов!

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

C++ не отомрёт так как имеет свою нишу, но ниша эта будет становиться всё уже. Например для гуя вполне реально использовать скриптовые языки уже сейчас. Но для написания DBMS C++ почти единственный адекватный выбор.

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

Что за мода хаять qt? Да он вообще вне конкуренции для написания гуя. Свои кривые tcl/tk поделки «не для гламурных» с дубовым интерфейсом юзайте сами.

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

его век еще долог будет, это я понимаю, чем дольше, тем дороже спецы )

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

Что за мода выдавать гламурные гомосяцкие свистоперделки за гуй?!?

Все профессиональные тулзы на Tk. А на куте только говно для домохозяек.

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

Все профессиональные тулзы на Tk. А на куте только говно для домохозяек.

Интересно посмотреть софт на Tk, перед которым Maya «говно для домохозяек».

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

Интересно посмотреть софт на Tk,

Софт от Xilinx, Cadence и прочих.

перед которым Maya «говно для домохозяек».

Говнорисовалка быдломультиков? Ну да, для домохозяек.

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

Господи!! Да это ж тот самый онанимаус из раздела про джаву!! Вот первый раз слышу эти слова «Xilinix, Cadence» и понятия не имею что это за говно мамонта такое. За то пользуюсь софтом с qt каждый день. Так что у вас онанимусов-маразматиков похоже свой мир, вот и живите в нём, и пользуйтесь сами своими дубовыми tcl/tk. Мысль которую я уже пытался донести в другом разделе - ваш маразм никого не интересует, иди расскажи про tcl/tk и ненужность гуя своему заказчику.

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

Вот первый раз слышу эти слова «Xilinix, Cadence»

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

За то пользуюсь софтом с qt каждый день

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

Так что у вас онанимусов-маразматиков похоже свой мир, вот и живите в нём, и пользуйтесь сами своими дубовыми tcl/tk.

А ничего, что твой процессор, да и все остальное железо в твоем компьютере разработано этими самыми маразматиками, на софте с интерфейсом на Tcl/Tk?

иди расскажи про tcl/tk и ненужность гуя своему заказчику.

Постоянные взвяки про какого-то там нелепого «заказчика» тоже первейший признак школоты.

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

Интересно посмотреть софт на Tk,

Софт от Xilinx

$> readelf -d /opt/Xilinx/14.6/ISE_DS/EDK/bin/lin64/xpsgui

Dynamic section at offset 0x485d8 contains 44 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libGui_Clip.so]
 0x0000000000000001 (NEEDED)             Shared library: [libPortability.so]
 0x0000000000000001 (NEEDED)             Shared library: [libThread.so]
 0x0000000000000001 (NEEDED)             Shared library: [libboost_regex-gcc41-mt-p-1_38.so.1.38.0]
 0x0000000000000001 (NEEDED)             Shared library: [libQt_Gui.so]
 0x0000000000000001 (NEEDED)             Shared library: [libQt_Xml.so]
 0x0000000000000001 (NEEDED)             Shared library: [libQt_Core.so]
 0x0000000000000001 (NEEDED)             Shared library: [libQt_Solutions4.so]
 0x0000000000000001 (NEEDED)             Shared library: [libPort_Std.so]
 0x0000000000000001 (NEEDED)             Shared library: [libZlib.so]
 0x0000000000000001 (NEEDED)             Shared library: [libMiniZip.so]
 0x0000000000000001 (NEEDED)             Shared library: [libboost_filesystem-gcc41-mt-p-1_38.so.1.38.0]
 0x0000000000000001 (NEEDED)             Shared library: [libboost_system-gcc41-mt-p-1_38.so.1.38.0]
 0x0000000000000001 (NEEDED)             Shared library: [libboost_iostreams-gcc41-mt-p-1_38.so.1.38.0]
 0x0000000000000001 (NEEDED)             Shared library: [libisl_iostreams.so]
 0x0000000000000001 (NEEDED)             Shared library: [libstlport.so.5.1]
 0x0000000000000001 (NEEDED)             Shared library: [libboost_bzip2-gcc41-mt-p-1_38.so.1.38.0]
 0x0000000000000001 (NEEDED)             Shared library: [libboost_thread-gcc41-mt-p-1_38.so.1.38.0]
 0x0000000000000001 (NEEDED)             Shared library: [libboost_date_time-gcc41-mt-p-1_38.so.1.38.0]
 0x0000000000000001 (NEEDED)             Shared library: [libstdc++.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libm.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libgcc_s.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libpthread.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000f (RPATH)              Library rpath: [/usr/X11R6/lib:/usr/X11R6/lib64]
 0x000000000000000c (INIT)               0x419060
 0x000000000000000d (FINI)               0x43c8a4
 0x0000000000000004 (HASH)               0x400240
 0x0000000000000005 (STRTAB)             0x408ad0
 0x0000000000000006 (SYMTAB)             0x402398
 0x000000000000000a (STRSZ)              46775 (bytes)
 0x000000000000000b (SYMENT)             24 (bytes)
 0x0000000000000015 (DEBUG)              0x0
 0x0000000000000003 (PLTGOT)             0x648b00
 0x0000000000000002 (PLTRELSZ)           14712 (bytes)
 0x0000000000000014 (PLTREL)             RELA
 0x0000000000000017 (JMPREL)             0x4156e8
 0x0000000000000007 (RELA)               0x414a88
 0x0000000000000008 (RELASZ)             3168 (bytes)
 0x0000000000000009 (RELAENT)            24 (bytes)
 0x000000006ffffffe (VERNEED)            0x414a28
 0x000000006fffffff (VERNEEDNUM)         3
 0x000000006ffffff0 (VERSYM)             0x414188
 0x0000000000000000 (NULL)               0x0

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

Все профессиональные тулзы на Tk. А на куте только говно для домохозяек.

Аффтар, жги еще.

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

Автор прав. C++ не зачем использовать.

не зачем

Нет уж, сначала в школу, а потом на ЛОР. Не наоборот.

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

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

Хахаха! Не надо превращать IT в самоцель и сакральное искусство избранных, по крайней мере до тех пор пока ты не разработал AI который подчинил всех людей себе и рассматривает тебя как своего господина. До тех пор ты персонал обслуживающий людей которым не интересна вся твоя компьютерная херня и которые хотят от тебя одного - упрощения своей работы которая приносит прибыль компании. Их работа, не твои влажные маразматические мечты о дубовых xilinux'ах. И им нравится qt, прикинь, иди скажи заказчику что он тупой.

Не нравится слово «заказчик»? А кто тебе должен платить за твои чудо контроллёры? Ты горбатишься всю жизнь на какого то дядю, пусть и за большие деньги. Мы ж фрилансеры нищеброды все по сравнению с тобой. Только вот не стоят никакие деньги всей моей жизни. Я свободен, работаю когда хочу, остальное время волен делать что хочу. А ты променял свою жизнь на деньги которые никогда не сможешь потратить, разве что на свои помпезные похороны. Иди лижи джопу своему боссу и тролль на форумах что бы разрядиться. Мне жизнь дороже твоих жалких ничтожных бумажек за которые ты всю свою просидишь по офисам.

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

И поверь мне, у меня есть абсолютно всё что я когда либо хотел. Твои деньги не дают ничего!!! Это самообман, очкастый жирный тролль!!

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

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

А про «нравится qt» ты бы не вонял. Найди кассовый аппарат с UI на Qt. А это как раз тот случай, где надо, чтобы все просто работало и не мешало.

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