×Закрыть

А вы боитесь С++?

Вопрос касается прежде всего молодых людей (студентов), но и ответы(любая писанина) «старожил» тоже не помешают.

Сам учусь на 5-м курсе на -факе- кибернетики, и как-то так поспрашивал у одногрупников потом у знакомых с других груп : «А ты в какую контору плюсовиком пойдёшь после универа ?»
На что получал похожие ответы : «Ты чё д*ибил какие плюсы, я на PHP\Java\C#\Ruby итп ... буду идти работать»

Потом задавал вопрос чётче: «А почему не С++ это же у нас основная тема»
Ответ(ы) : «А где я ещё бабла зашибу как не на PHP\Java итп ...» «Я чё дурак ещё учить плюсы 5 лет после универа» «С++ слишком огромен, сложен, страшен, мало-кому нужен ибо WEB впереди планеты всей» — примерно до 50-ти человек так ответило из них 3-е хотят посвятить время плюсам (один из моей группы).

Вопрос для молочно-молодых типа меня: Вы не хотите учить плюсы потому что думаете что за него мало платят «бабла» и он сильно сложен ? Или есть ещё что-то?

Вопрос для старожил : Так как люди в упор не хотят видеть С++ и тем более страдать изучением, возможно ли то что в скором времени «плюсовики» станут динозаврами, которых не сыщешь днём с огнём и поддерживать\писать проекты на плюсах будет скоро некому?

P:S В сентябре разверну программу анкетирования где у меня будет максимум данных и максимум опрошенных среди нашего универа. Хотя судя уже с этих данных которые есть понятно, что программу обучения пора давно-давно поменять ...

Лучшие комментарии пропустить

ПАЦАНЫ, Я КОРОЧЕ ШЕЛ СЕГОДНЯ ПО ОФИСУ И УВИДЕЛ ПРОГЕРА В МАЙКЕ «С# IS THE FUTURE», НУ Я ПОДСКОЧИЛ К ЕГО КОМПУ И РЕЗКО НАПИСАЛ «std::cout << std::endl;» И ПОЯСНИЛ ЭТО ОДНОСТРОЧНЫМ КОММЕНТОМ, ПОТОМУ ЧТО Я УГОРЕЛ ПО ПЛЮСАМ, ПАЦАНЫ ДУХ ООП ЖИВЕТ ТОЛЬКО В МНОЖЕСТВЕННОМ НАСЛЕДОВАНИИ, ГДЕ В ПЕРЕГРУЗКЕ ОПЕРАТОРОВ НА ОДИН ПАРАМЕТР МЕНЬШЕ, ГДЕ ЕБАШАТСЯ ПО СТАТИЧЕСКИМ МАССИВАМ, ГДЕ ПАЦАНЫ ЖИВУТ УКАЗАТЕЛЯМИ, ЧИСЛЕННЫМИ ЗНАЧЕНИЯМИ В УСЛОВИЯХ И ЕБУТ СБОРЩИКИ МУСОРА В РОТ! ТОЛЬКО С++, ТОЛЬКО ХАРДКОР!!! СТРАУСТРУП ХАРДКОР С++!!! пацаны ебашьте дельфикодеров, шарперов, пехапешников, жаверов, угорайте на компиляции в машинный код, любите Страуструпа, плюсокодеров и IDE! ГОВОРИТЕ ОТКРЫТО И СМЕЛО ПРЯМО В ЛИЦО! С++!

хотите сказать, что Java нас всех спасет, а С/C++ оставить для глубого backendа :) ?

Это форум сказочных фантазеров!
Я хочу сказать что:
1) Производительность которую дает Ц/ЦПП — очень дорогая, при том что есть значительно более дешевая джава, которая дает в большинстве задач (исключая числодробилки) даже больше производительность.

2) Кроссплатформенность ЦПП — очень условна, в то время как у джавы она 99.999%.

Поэтому в прикладном программировании и даже на «глубоком бек-энде», ЦПП не нужен. Его ниша — это или системное ПО или очень специфическое.

Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Как в С узнать размер массива?

size = sizeof(a)/sizeof(a[0);

Как в Java узнать размер массива?

size = a.length;

Как в C++ узнать размер массива?
template <typename t,="" int="" n="">
int len(T (& a)[N])
{
return N;
}

size = len(a);

Блин, форум для программистов, а код нормально вставить нельзя((

Java & C rules, C++ sucks!

це ніби гумор для джавістів?

Ще одна можлива причина не такої популярності С++, як раніше — це те, що багато людей пішло у веб, де С++ взагалі непотрібен.

А что мешает выучить жаву, питон, пхп или еще что, зная плюсы??? Разве что религия :).

Что-то я всегда опаздываю на такие обсуждения. А жаль. Вот, знатная и известная ветка:

www.sql.ru/...d=16&tid=466654

Хорошо, весело и по полочкам. Мотивирует. Судя по каментам здесь — то обсуждение мало кто читал.

читай останій камент

Наконец-то эту тему все забыли....

ПАЦАНЫ, Я КОРОЧЕ ШЕЛ СЕГОДНЯ ПО ОФИСУ И УВИДЕЛ ПРОГЕРА В МАЙКЕ «С# IS THE FUTURE», НУ Я ПОДСКОЧИЛ К ЕГО КОМПУ И РЕЗКО НАПИСАЛ «std::cout << std::endl;» И ПОЯСНИЛ ЭТО ОДНОСТРОЧНЫМ КОММЕНТОМ, ПОТОМУ ЧТО Я УГОРЕЛ ПО ПЛЮСАМ, ПАЦАНЫ ДУХ ООП ЖИВЕТ ТОЛЬКО В МНОЖЕСТВЕННОМ НАСЛЕДОВАНИИ, ГДЕ В ПЕРЕГРУЗКЕ ОПЕРАТОРОВ НА ОДИН ПАРАМЕТР МЕНЬШЕ, ГДЕ ЕБАШАТСЯ ПО СТАТИЧЕСКИМ МАССИВАМ, ГДЕ ПАЦАНЫ ЖИВУТ УКАЗАТЕЛЯМИ, ЧИСЛЕННЫМИ ЗНАЧЕНИЯМИ В УСЛОВИЯХ И ЕБУТ СБОРЩИКИ МУСОРА В РОТ! ТОЛЬКО С++, ТОЛЬКО ХАРДКОР!!! СТРАУСТРУП ХАРДКОР С++!!! пацаны ебашьте дельфикодеров, шарперов, пехапешников, жаверов, угорайте на компиляции в машинный код, любите Страуструпа, плюсокодеров и IDE! ГОВОРИТЕ ОТКРЫТО И СМЕЛО ПРЯМО В ЛИЦО! С++!

a pure C?

Господа, давайте поднажмем и выведем на главную, это ведь прекрасно.

Пришло время выделить память

в С++ меня больше раздражают не мифические проблемы с улетевшими в нэбо указателями или неосвобожденной памятью (просто научитесь программировать) и не «непостижимо ужасающая сложность STL и темплейтов» (ну смешно ведь), а отсутствие общепринятого стиля, что здорово напрягает при стыковке разношерстных либ : у одних авторов методы возвращают код ошибки (по Сшному), у других результат true/false, третьи exceptionы кидают; string почти все изобретают свой (а если и нет, то unicode с вашим все равно не срастется) и тому подобные мелочи.

Visual C++ - отдельная тема: версии меняются, но их Intellisense (code assistance/completion) стабильно очень, очень плох.

у тебе застаріла інформація, тепер компілятор відстає

stackoverflow.com/...an-the-compiler

одних авторов методы возвращают код ошибки (по Сшному), у других результат true/false

ещё boost::optional возвращать можно:)

Вы либо никогда не использовали С++, либо один раз увидели, испугались и убежали. STL — прекрасна и очень даже логична и последовательна. Неокрепшие умы можно пугать бустом, в частоности штучками вроде MPL. Вот где сама жесть

Тож самое можно сказать про 3rd party libraries. В жава/C# Вы когда используете чужой код всегда уверено видите эксепшены в случае чего? Никогда не встречали проблем с Utf8/Utf16/UtfХренЗнаетСколько в жаве?

не розумію, чим C++ для ARM відрізняється від C++ для х86 (x86-64). поясните?

це питання достойне нового топіку

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

но — с c/c++ сложно найти удаленную неофисную работу , тут пшп впереди всех

После CommonLisp остальные языки унылые, ни тебе макросов, ни мультиметодов, да и s-expressions нету нормальных.

но — с commonlisp тяжело найти любую работу, тут 1с впереди всех.

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

Скобочки это его главная фича

Щас на удаленных дотнетчиков спрос. Так как цена на хостинг приложений сравнима с PHP, а разработка не сильно сложнее и часто (для чего-то большого) даже проще.

Те сложности что внизу люди описали — ***ня, в С++ настоящий хардкор это
перегрузка хитровы*баных операторов, вроде ->* или
автоперегрузка операторов в потомках, метафункции (boost::MPL) и прочие извращения

вроде реализации мультиметодов и каррирования на С++.

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

На мой коммент уже пожаловались, наверное программист С++.

та тут вже така політкоректність, що далі нікуди.

вроде бы 97% посетителей — мужчины, а в мужской компании иногда матерятся, интиллигентов строят из себя, бл**ь.

97% посетителей — мужчины

а якщо геї?
п.с.
Їй бо камєнт випиляють.

Так що читай скоріше.

Хочете матюкатись — матюкайтесь без зірочок.

Их закрашивает вообще-то моча.

:) если человеку не хватает слов, что б выразиться — он начинает материться. Если у человека на столько мал словарный запас — то возникают сомнения о его знаниях вообще. Как правило много матерятся низкоквалифицированные кадры — чернорабочие всякие и тд. Это естественная реакция — для образованного человека — с брезгливостью относиться к мату.
ЗЫ и я не безгрешен — но этим не хвастаюсь :)
ЗЗЫ «интеллигентов строят» — тоже самое, что сказать — умничают. С каких это пор быть умнее и этим гордиться стало зазорным? Уж лучше строить из себя интеллигента, чем сапожника. Нужно тянуться всегда к лучшему.

ЗЗЗЫ :) Жаловался не я.

Голосование уже проводили, рынок сам сказал за себя:
dou.ua/...-rating-1h2012

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

Рискну предположить, что вместе с победоносным шествием Windows 8 и Windows Phone 8 (а победоносным оно будет просто потому что это ж Microsoft :)), значимость С++ снова сильно возрастет т.к. там это, так сказать, нативный язык.

С тем же успехом там можно использовать C# или JS, так что врядли.

значимость С++ снова сильно возрастет т.к. там это, так сказать, нативный язык.

По слухам на виндах «нативным» будет таки Ц№.

по слухам будет и новый низкоуровневый API на C++

По каким таким еще слухам? Не по слухам, WinRT написан на С++, включая XAML. C# и прочие используют обертки над нативным кодом.

По каким таким еще слухам?

По неподтвержденным :) Была тема что под вин8 можно будет писать __только__ на Ц№ (для «хардкора») и ДжС (для «перделок»)

Явно какая-то «левая» тема, давно было известно, что С++ будет нативным в Windows 8.

С++ снова сильно возрастет т.к. там это, так сказать, нативный язык.

Ложь и клевета, С++ был нативным в винде до появления NET, сейчас там С# нативный язык...

вообщето там просто ц всегда был нативным. Хз как сейчас.

Нативный язык — это unmanaged, в терминах .NET.

Про победосное шествие

Windows Phone 8

рассмешил

А вы боитесь Haskell ?

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

Область его применения — напрячь себе мозг.

Не ложится ибо этот язык не каждый осилит

Мне искрене нравятся подобные аргументы аля «все їдиоты».

Вы чтото написали, что ушло в продакшн? поделитесь опытом ?

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

С++ не сложен, он монстрообразен

хахаха!

разработчик с развитым образным мышлением — страшная сила :)

Я так понимаю, что если не разбираться в тех «сложностях» которые есть в C++ и якобы нет в Java или C# то можно на любом более менее проекте насобирать себе неприятностей.

Настоящие сложности это скорее рудименты эволюции всеобщего метаязыка программирования. Результат взросления. А то чем обычно пугают типа указателей или ручного управления ресурсами — без чёткого понимания этих вещей никакая Java не обходится. Java и C# наследуют всё что есть в C++ включая ручное управление всем при большом желании.

Примерно 47 человек из вашего соцопроса поступают, на мой взгляд разумно, ориентируясь при выборе языка на рынок, а не на академичность или крутость. Задачи, решения, результат должны быть важнее инструментов.

Просто надо понимать, что сложность всё-равно достанет. Догонет по мере профессионального роста независимо от того на каком простом и лёгком языке вы пишите. Грубо говоря — сложность C++ просто рядом не стояла со сложностью мало-мальской проработанной предметной области.

И собственно говоря сложность задач которые вы сможете решать и эффективность решения будут определять рыночную стоимость ака ЗП и все остальные плюшки, а не сложность языка. Например проблемы тех же паралельных вычислений лежат вообще вне языка. Это просто сложная предметная область. И она сложнее всех косяков С++ вместе взятых.

Объективно, С++ всё-таки слишком долго не развивается — это объясняется желанием поддерживать обратную совместимость с С, что крайне сложно на мой взгляд.

Первичная причина некоторого упадка С++ сейчас — падение спроса, оттого его и учить не хотят. Было бы достаточно вакансий — полюбили бы.

А суть большинства комментариев это ветки, как я вижу, в том, что некий джун не осилил С++ и теперь С++ плох и ужасен.

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

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

comicsia.ru/...4a/f4-19188.png

govnokod.ru/10922

к сожалению доу не позволяет запостить сюда весь код, вот отрывок

return static_cast<t>(const_cast<qobject *="">(reinterpret_cast<t>(0)->staticMetaObject.cast(const_cast<qobject *="">(object))));

Реальный С++ проект состоит из такого чуть менее чем полностью, этот отрывок — код Qt.

отнюдь не весь С++ код выглядит так

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

>>>достаточно быть плохим программистом
Qt пишут плохие программисты?

я бы не считал программистов QT хорошими программистами только потому, что они пишут Великий QT.

Пусть они будут «средними» программистами. Мое мнение таково, если код, который пишет средний проргаммист, можно назвать «быдлокодом», то это проблема ЯП, но никак не сферического проргаммиста в вакууме.

Код выше скорее всего сгенерен машиной, а не Qt программистом.

На том же сайте полно говнoкода и на других языках. Чего же ты их не запостишь, религия не позволяет?
Вот, например, C#:
govnokod.ru/11560
var priorities = Repository.Get<iincidentpriority>().Query().OrderBy(x => x.Priority)
.Select(x => new InputItem { Id = x.Id.ToString(CultureInfo.InvariantCulture), Value = x.LocalizationValue })
.ToList();
priorities.Add(new InputItem { Id = “-1”, Value = Localizator.Get("X4.Incident.Undefined") });

priorities.Reverse();

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

Продвинутый инструментарий — это ужос.

Любой современный язык располагает «продвинутым инструментарием, позволяющим быдлокоду стать непобедимым в плане дебага». Здесь С++ не одинок.

Редактор полей форума еще больше код подправил — «const_cast<QObject *>» превратилась в

«const_cast<qobject *=»">"

?

Хотел добавить свой С++ код, мне вывались —

«Комментарий содержит недопустимые слова: h*i» // без звездочки

Кто то, из администрации прокомментирует ?

Хотел добавить свой С++ код, мне вывались —
«Комментарий содержит недопустимые слова: h*i» // без звездочки

Кто то, из администрации прокомментирует ?

Если на инглише, это слово имеет какой то сакральный смысл, то научите ваш цензор отличать th*is от h*i...

Дискриминация по языку программирования.

Предлагаю организовать митинг в поддержку равноправия С++ и добавить С++ в региональные языки.

і де ж це ти назбираєш 10% нативних ЦПП?

Можно похапешникам дать по 10$ за поход на митинг :-)

Шутка, без обид.

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

Хоть пехапе, хоть эрланг, и без $10

А что, серйозно чтоли? Этоже тупо...

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

Если честно, то я не уверен, что плюсам нужен RTTL. Но, не язык программирования управляет проектом, а ПМ выбирает язык и флаги компиляции.

С++ программисты имеют дополнительный повод себя уважать — они прошарили действительно сложный язык.

Лучше всего я считаю сравнил С++ и Джаву один из моих знакомых. С++ - это как ручная коробка передач, а Джава — как автоматическая. Ручная коробка нужна только гонщикам:) А нормально спокойно ехать приятнее как — бы на автомате.

то то на формуле 1 роботизироваными коробками пользуются- не знают они что им как гонщикам механика положена :)

А просветите, плиз, неграмотных — роботизированная коробка сама выбирает передачу или просто обеспечивает более удобное переключение (например, кнопками + / - на руле) как альтернативу традиционой кулисе?

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

у формулы 1 — ручной выбор только, обычные гражданские робото коробки типа dsg( на VW ) с двумя сцеплениями могут и ’эмуляцию автомата’+ возможность ручного выбора.

Роботы с одним сцеплением — полный ппц, на королы и джазы некоторые такое ставили. Тупит и тормозит.

Ну може не тре тримати одну ногу на газі, іншу на зчепленні, і віджимаючи зчеплення перемикати передачу, робити перегазовку.

Хоча хз, я в катався тільки на ГАЗоні і на Ниві (там не тре перегазовки) та на Мінську з коляскою (мацацикл такий)

в формульной тачиле две педали, ибо пилоту некогда ногу с педалей переставлять :-)

роботизована коробка — це всього лиш один з видів імплементації абстракції «автоматичної коробки передач». Їх є кілька видів, найбільш розповсюджені це «класичний автомат (гідротрансформатор)», «робот», «варіатор».

всі вони переключають передачі самостійно (у варіатора це ілюзія передач), декотрі можуть дозволяти «ручне втручання» в тій чи іншій мірі.

Автомат еще жрет больше бензина и чаще ломается, та и чувствуешь себя с ним за рулем игрушечной машины. Не всех это устраивает.

asm и с и плюсы очень нравятся. я прям какой-то аморальный неадекват.

Питон попробуйте:)) Просто для себя на досуге:)

зачем? вот доу написан на питоне, тормозит хуже трактора.
тем более в ембедед питону делать нечего. имхо

Ну если вы ембедер, то тогда понятно там С и ассемблер 100% просто аксиоматически подходят и всегда там будут. Вы просто как язык попробуйте, проверьте свои ощущения:)

какой ембеддер, так хоби. я пхпист )

Ну уж извините, тогда вам питон просто прописан или Ruby on Rails, приобщайтесь к прекрасному:)

На C++ мой код работает в 15 раз быстрее, но мне приходится писать на C#. В результате распознавание страницы A4 при 300dpi отжирает до 40 сек на одном ядре Phenom X6 1090T. Хотя клиентов устраивает.

думаете дело в языке или в вас?

Думаю дело в языке, так как
C++ code:
int lWidth = 20000;
int lHeigth = 10000;
BYTE* lBmp = new BYTE[lWidth,lHeigth];

int lticcount = GetTickCount();
for(int x = 0; x < lWidth; x++)
for(int y = 0; y < lHeigth; y++)
lBmp[x,y]++;
lticcount = GetTickCount() - lticcount;

delete [] lBmp;

is working 234 ms

C# code:
int lWidth = 20000;
int lHeigth = 10000;
byte[,] lBmp = new byte[lWidth, lHeigth];

int tcount = System.Environment.TickCount;

for (int x = 0; x < lWidth; x++)
for (int y = 0; y < lHeigth; y++)
lBmp[x, y]++;

tcount = System.Environment.TickCount — tcount;
MessageBox.Show(tcount.ToString() + " ms");
is working 2558 ms

И то и то в релизной компиляции.

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

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

с unsafe работать религия не позволяет?

вообще прирост производительности в 15 раз — это фантастика

unsafe нельзя использовать по корпоративным правилам, потом код еще портируется на Java. А тот хак через «сановский» unsafe модуль тоже использовать нельзя.

unsafe нельзя использовать по корпоративным правилам, потом код еще портируется на Java

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

написать кросс-платформенный код на C++

ага під Вінду з MFC і порт на Лінукс

Кстати, не знаю как в шарпе, но в джаве большой двумерный масив страшная шняга. Заменив его на одномерный (или клас обертку) можно нехило так памяти и времени на инициализации секономить.

20% скорости это даст, но это не особо много. Там есть другие места где можно получить до 300% скорости. Проблема в том, что полностью одинаковый код, без оптимизации, на C++ работает в 11 раз быстрее.

я от нефиг делать запустил на джаве:

public static void main(String[] args) {
int lWidth = 20000;
int lHeigth = 10000;
byte[][] lBmp = new byte[lWidth][lHeigth];
long tcount = System.currentTimeMillis();
for (int x = 0; x < lWidth; x++)
for (int y = 0; y < lHeigth; y++){
lBmp[x][y]++;
}
tcount = System.currentTimeMillis() - tcount;
System.out.println(tcount+" ms ");
}

Результат : 95ms

Конечно другой комп, все такое...

Бтв, уважаемая администрация, тег «коде» работает отвратительно... позор как для девелоперского сайта :-)

позор как для девелоперского сайта :-)

бабло капає, піпл хаває, конкуренти на п"ятки не наступають, нащо паритися?

я, тег «коде» работает отвратительно...

Это же ДОУ, тут нужна особая логика ... используйте тег «pre» вместо «code»

Всеравно иденты и все такое херится...

Всеравно иденты и все такое херится...

Это же ДОУ

Через 2 года пофиксят (отзывы же вернули)

Интересно, а что за JVM и какой процессор?

jvm 1.6.0.30 64битная
проц кор і5 650 (3.2 ггц)

памяті 4гб

У меня 172 мс. Хотя если релизный код запускать без VS, то скорость выполнения на C# всего 343 мс. Не ожидал такой подставы от MS.

Указанный выше код с 2500 мс неправильный, так как запускал с отладкой, совсем заработался.

Указанный выше код с 2500 мс неправильный, так как запускал с отладкой, совсем заработался.

А без отладки сколько?

Без отладки(минимальное время)
Java(x64) — 141 мс
C#(x64) — 296 мс
C++(x64) — 110 мс

Delphi(x32) — 686 мс

PS

Бывает иногда гоню, как с этой скоростью кода в отладчике. И ведь никто кроме Grez-а не поправил.

Java(x64) — 141 мс
C#(x64) — 296 мс

C++(x64) — 110 мс

Я конечно же за джаву, но вы ЦПП с каким уровнем оптимизации компилили (O2?)

да Maximize Speed (/O2)

Ну тада джава ОКуенна!!

Если MSVC 2012, то что будет, если скомпилить по-людски, типа:

/O2 /Qpar /Qpar-report:2 /Qvec-report:2

И вывод компилятора тоже хотелось бы увидеть на этом исходнике, что он сделал с циклом.

Результат : 95ms

Вы бы распечатали потом результат.

Бо если б я был компилятором (житом) я бы похерил ваши циклы, бо из них никто не читает :)

Ну про прогрев и тд эт уже такое.

public static void main(String[] args) {
int lWidth = 20000;
int lHeigth = 10000;
byte[][] lBmp = new byte[lWidth][lHeigth];
long tcount = System.currentTimeMillis();
for (int x = 0; x < lWidth; x++)
for (int y = 0; y < lHeigth; y++){
lBmp[x][y]++;
}
long fillCount = System.currentTimeMillis() - tcount;
long summ = 0;
for (int x = 0; x < lWidth; x++)
for (int y = 0; y < lHeigth; y++){
summ += lBmp[x][y];
}
long allCount = System.currentTimeMillis() - tcount;
System.out.println("summ="+summ+"; FillCount="+fillCount+"ms; АllCount="+allCount+"ms");
}

Результат: summ=200000000; FillCount=95ms; АllCount=199ms

FillCount=95ms;

Отстой эта ваша Джава :)

Помню на подобном тесте, плюсовый компилер (O3) похерил циклы. Подозреваю что если в джаве запустится жит то аналогично будет.

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

Да и мне еще не встречались ситуации чтобы жит гдето чтото херил.

Если бы суммы не было. Просто создания массива заполнение его инкрементом. И все, никаких других ссылок на массив или его элементы.

А если использовать не байты, а qword’ы, и добавлять так IBmp[x, y]+=0×0101010101010101ULL ?

это тестовый код, ни о чем.

Просто там используется много подобного кода и для нахождения углов и для бинаризации и для волнового алгоритма.

www.codenet.ru/...ogr/alg/way.php

Все они подразумевают обход нескольких матриц с различными «окнами». Так вот, обход, даже без оптимизации, на C++ быстрее.

Може комусь цікаво.

Результати на С з різними рівнями оптимізації :

без оптимізації 564 ms
-O1 136 ms
-O2 135 ms

-O3 42 ms

Проц — ноутбучний i5 (2.5 GHz).

Компілятор gcc 4.6.2.

MS VC++ 2008 поддерживает только O2 так что там давало при x64 компиляции 110 мс.

Оцінка у мс — це дуже відносна величина. Все жалежить здебільшого від CPU. Якось буде час, опублікую результати тесту Java, C#.

Код не идентичный. Вы так троллите? )))

Я вообще не сиплюсплюсник. На шарпе пишу. Но насколько я знаю, на плюсах такого фокуса:

lBmp[x,y]++

нет. Эта запись абсолютно идентична lBmp[y]++. А икс там просто для прикола. Работает операция «запятая». Точно также как и

new BYTE[lWidth, lHeigth];

это всего лишь одномерный массив BYTE[lHeigth]

Т.е. во первых код не идентичный. Массивы не так выделяются.

Во вторых тест не очень. Дело в том, что плюсы на такой цикл могут вообще подставить бог весть что (формулу например). Или вывести сразу, чем надо заполнить ячейки. Шарп в этом плане попроще (отражение и всё такое, возможно поэтому не проводит таких оптимизаций).

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

Схожий тест , але вже на GPU середньго класу (Nvidia GT 525M) покає приріст у 200x у порівнянні з аналогічним на C з -O3 на CPU. Одним словом , для кожної задачі є свій інструмент.

Цікаве спостереження.
Ні на одній мові програмування мене не просили виконувати домашні тестові завдання, як на С++ (при всіх інших рівних умовах).

З чим це пов"язано, хтось може пояснити?

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

я про «домашні завдання» для виклику на співбесіду, а не про лаби і курсачі

С везением. У меня предособесам бывали «домашния задания» по жабе вполне себе. Не в «лидеры рынка» вестимо.

Раньше мне тоже дали как — то задание на дом:)))) Но тут лидер рынка распахнул двери... Задание я то до сих пор читаю смеюсь, может заимплеменчу на скала когда — нибудь:)

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

PS

Судя по форуму, школота совсем пугливая пошла, коммитить в репозиторий боится, указателей боится. Вот результат выбора факультетов по принципу «шары». :)

Шара такая приятная шара:)

Любая серьезная бага в С++ чревата ооочень глубоким въездом в структуру процессора и т.д. Системные вещи всегда можно писать на С, который перешагнул порог бессмертия. Я подозреваю что язык типа Google Go в результате таки затмит собой С++, не зря ж его в гугле стали делать.

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

Так вот, язык программирования может быть либо скучным инструментом, типа Джавы, либо доставлять типа Хаскеля:)) С++ достаточно сложен как для утильного инструмента и совершенно не доставляет никакого фана.

Любая серьезная бага в С++ чревата ооочень глубоким въездом в структуру процессора

Не соответствует действительности. Совсем. Вообще.

хорошо знающие матан

Начинаю приходить к такому же выводу. Математика рулит.

Я С++ учил в универе 3 года, и страшно рад что не стал с ним работать. Причины по которым надо остерегаться С++ как аццкого врага:
1) Высокая сложность языка: шаблоны, нормальный С++ начинается так примерно с СТЛ, книги Александреску по шаблонам (читал на досуге) и библиотеки Буст. В С++ все очень и очень сложно, причем сложны даже тривиальные вещи. Да, С тоже корявый, но он проще все-таки на порядок.
2) Очень сложно читать корявый код, с указателями на функции и т.д.
3) ООП-практики тоже кривые, ввиду кривизны языка и множественного наследования.
4) Библиотеки, ДЛЛ-ы, и прочее, все глючит, все кривое.

5) Очень сложный последний стандарт языка.

Ничего сложнее Буста в мире программирования нету.

Даже скомпилировать проект на С++ бывает нетривиальной задачей, причем не по времени, а по сложности линков и т.д.

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

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

Но! В виду того, что каждый день появляется херова гора всяких новых «причуд программистов», написанных на плюсах — их знание плюсов зарешает. На них можно писать под JVM, под ведроид, модуля для ПХП и пятона, написать свой язык без сильного геморроя (С-шники, молчать! :) ), высокопроизводительные и ресурсоэкономные реализации каких то алгоритмов, реалтаймовые «движки» и ещё много интереснейших вещей.

А уж если знать матан, то такие люди ценятся куда выше всяких сраных жабокодеров, решоточников и сайтошлёпателей, с е*ической цифрой в ЗП и весьма интересной работой в каком-нибудь R&D с великолепными перспективами «закордоння» :) Лайв-процессинг видео, дополненная реальность, хттп-сервера, кеширующее ПО, базы данных, дрова — всё это строгается на плюсах. В силу того, что плюсовики по роду работы ещё и нехило в принципах работы железа отстреливают — вдвойне ценятся.

Динозаврами они не станут, просто объявится дефицит. В конце концов, железо щас куда дешевле, потому, джавашный (например) гoвнокод покрывается новым процессором и +16 гб памяти. Но джавашники, в отличие от плюсовиков, свою джэвээм с дженериками и ассертами написать не осилят — в силу скудоумия.

Гордитесь, что вы будете принадлежать к элите программистов! Как говорится, «тяжело в учении — легко в зоне поражения бою», лисн ту ёур хард и донт лисн всяких неосиливших пудь джеддая :)

P.S. Руби — для хипстеров.

Да, мне нравится Руби, самый крутой ООП язык нашего времени ИМХО. Ну, подозреваю что проще будет виртуальную джава-машину реализовать на железе чем поднимать С++. Тем более что есть уже языки компилируемые которые дают не меньший перфоманс чем С++ с гораздо большей легкостью проектирования. те же D, Google Go хотя он и сыроват.

Насчет того что С++ не пропадет — да уж, человек что его осилил вместе со знанием матана и железа естественно не пропадет, но не пропасть можно и затрачивая меньшие усилия.

Поддерживаю только раздел про матан и R&D остальное можно вполне применить не только к плюсам. Тем более что реализации современных компиляторов часто пишутся на функциональных языках типа Ocaml.

Компилятор Perl6 написан на Haskell, например.

В начале года у нас подобный опрос (анкетирование) делал преподаватель с информатики, но там было вопросов 10-ть как-бы (точно не знаю я закосил тогда) но ребята расказывали что примерно так :
1. Ваш основной язык для разработки ПО ?
2. Почему вы хотите работать именно с этой технологией ?
3. Какие ЯП вы ещё знаете\хотите знать ?
4. Какой тип ПО вы хотели разрабатывать ?
5. ля ля ля — короче точно не помнью что там было но первый вопрос точно такой же.
И в конце апреля были результаты скольких групп\студентов он «опросил» я не знаю ну дохрена наверно :
На первый вопрос 62% ответило —Java— потом 24% сказали —ПХП— дальше 5% строго заявило —С++— и 7% людей хотят —C#.NET ... остальные там по мелочи то Руби то ещё какая-то ерунда !

В итоге большенства людей ХОТЯТ только Java !!! Чуть меньше PHP а вот «Си-Шарп» что-то народ вообще не хочет и очень странно почему, он же крут и «вкусней» чем Java ... но с статистикой не поспоришь, Всем Java подавай, как мёдом намазано !

В начале года у нас подобный опрос

У вас это у кого? У матерых гуру или у 1-2-курсников, которые и не знают что оно за Джава такая?

Потому что Джава — это великий язык и великая система, одно из крутейших изобретений в ИТ последнего 20 — ти летия.

Они где то слышали, что «Джава — круто». Или соблазнились + 100$ к зарплате. Сомневаюсь, что у вас в группе много «идейных».

Скорее всего начитались хабра.

А что Хабр? Там вроде новостей так на так.

Наиболее точно проблему с С++ описал бы заголовок: «А вы боитесь ручного управления ресурсами?»

Наиболее точно проблему с С++ описал бы заголовок: «А вы боитесь ручного управления ресурсами?»

— «А вы боитесь шаблонов?»
— «А вы боитесь разницы в архитектуре железа на котором будет выполнятся ПО?»
— «А вы боитесь разницы в библиотеках окружения в котором будет выполнятся ПО?»
— «А вы боитесь ситхов, которые будут протаскивать, по старинке, интовые указатели?»
— «А вы боитесь Ц-джедаев, которые будут вместо (медленных) исключений протаскивать код ошибки 1024 (ну ведь всем сразу понятно что оно значит, особенно в отладчике)?»

— «А вы боитесь сборки (компиляция + линковка) в 3-4 часа?»

— А обобщения?
— А если JVM/CLR не реализован для соотвествующей архитектуры? Кроссплатформенный .NET он такой кроссплатформенный.
— А как же версии сборок? Ведь явно вы не только стандартную библиотеку классов используете.
— ССЗБ. А каких глупостей можно наделать при помощи reflections!
— Нет, больше боимся людей, которые думают, что нужно бросать исключения на каждый чих, вместо того, чтобы вернуть результат операции.
— Конечно. Мы же это делаем перед каждым запуском приложения/загрузкой библиотеки.

Про C/C++ забыли добавить:
#define TRUE FALSE

Для каждой задачи — свой инструмент. Мы сейчас обсуждаем, что лучше — отвертка или молоток.

— А обобщения?

Куда проще. Хотя бы из-за перегрузки операторов.

— А если JVM/CLR не реализован для соотвествующей архитектуры?

А если нима компилятора под платформу?

— А как же версии сборок? Ведь явно вы не только стандартную библиотеку классов используете.

А как же мудаки у которых кастомные либы и они об этом сообщают после того как выносили мозги саппорту 2 недели?

— ССЗБ. А каких глупостей можно наделать при помощи reflections!

Но для этого надо досконально знать рефлекшн, а вот указатели они на поверхности бери и гадь!

— Конечно. Мы же это делаем перед каждым запуском приложения/загрузкой библиотеки.

В режиме отладки, таки да :) Но это уже к удобству разработки.

Тут как в анекдоте: “Копіечка до копіечки”

Ну вроде бы и тот, и другой поддерживают все, что душа пожелает :)

Ну вроде бы и тот, и другой поддерживают все, что душа пожелает :)

Тогда к чему было:

— А если JVM/CLR не реализован для соотвествующей архитектуры?

?

К

А вы боитесь разницы в архитектуре железа на котором будет выполнятся ПО?

Согласен, в случае с C/C++ один раз скомпилировать не получится :)

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

Что также справедливо и для порта JVM.

— “А вы боитесь разницы в архитектуре железа на котором будет выполнятся ПО?”
а в чому-ж та різниця, якщо порівнювати писання під різні архітектури на C++ і, наприклад, Java?
dou.ua/...ic/6090/#230081

а в чому-ж та різниця, якщо порівнювати писання під різні архітектури на C++ і, наприклад, Java?

Первое что пришло в голову: int.
Дальше по мелочи порядок байт, работа со структурами, плавающая точка.

В джава что-то решили, что-то убрали.

int — в топку.
в Java всюди порядок байт однаковий?

а що з структурами?

int — в топку.

Это как?

в Java всюди порядок байт однаковий?

В джаве да, всю хну берет на себя ДжВМ.

а що з структурами?

Давно это было (уже лет 5+ как не работаю с ЦПП серьезно) :) Там что-то с выравниванием полей, вроде структура из 4 байт реально могла занимать 16, точно не помню. Суть в том что в джаве от этих всех заморочек программиста ограждают.

Это как?

юзати stdint.h

В джаве да, всю хну берет на себя ДжВМ.

тобто, конвертується всюди, де треба і де не треба?

вроде структура из 4 байт реально могла занимать 16

і досі може (так, залежно від архітектури). ніхто не забороняє не заморочуватися так само, як і в Java. а можна і заморочуватися в погоні за ефективністю.

Автор не бросайте С++, вооружитесь Qt, HTML5, CSS, JS и не парьтесь :) .

Сразу скажите — вооружитесь Бустом, вооружитесь шаблонным метапрограммированием, книгами Майерса, Страуструпа, Александреску. Если останетесь живы, вооружитесь еще СТЛ, мне кажется что пора уже уходить с С++.

Плюсы хороший язык и будут жить еще очень долго

+10500

C++ разве что D заменит, но это будет очень нескоро. Не зря ведь за D Александреску взялся :) .

C++ разве что D заменит,
Поддержу дело флаймана:
лол, просто, лол!

Спарк, что ж вы так вбрасываете? Несмотря на то, что Александерску им знимается, я натыкался на его интервью, где он говорил, в вольном переводе «одни проблемы мы убрали, зато другие появились». Найду линк, специально кину.

Несмотря на то, что Александерску им знимается

Он туда, вроде, ушел потому что 60% плюсовиков объявили его еретиком, а еще 30% просто не понимали чего он там говоит.

Не знаю предистории, может быть действительно посыл был, аля прогнали из пеочницы, поэтому: «я сделаю свой С++ с блекджеком и проституками» )

Я же сказал, что замена произойдет очень нескоро. Это как со Scala, говорят что заменит Java, но когда хз.

Я же сказал, что замена произойдет очень нескоро

Это не произойдет, нет ключего преимущества, более вероятно, что Google зафорсит Go на замену С++ и так распиарит, что все потихоньку пойдут по их стопам...

Это как со Scala, говорят что заменит Java, но когда хз.

У вас видимо мало опыта, раз вы так говорите, Scala никогда тоже не заменит Java, в 8ке появится большая половина фишке Scala, которые сейчас доступны через Functional Java библиотеку. Говоря об этих языках стоит думать только о JVM, а что будет над ней Java, Scala, Groovy, Сlojure или что-то еще не суть важно, но скорее всего симбиоз.

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

:) ?

и? есть противоречия?

то Google зафорсит Go на замену С++ и так распиарит, что все потихоньку пойдут по их стопам.

Язык без эксепшнов и шаблонов/генериков — вряд ли покорит индустрию

В том же Шарпе женериков в первой версии тоже не было. Допилят.

А без эксепшнов как жить?

Захотят сделать язык юзабельным — и их допилят.

Так я так понял что они недопиливают из идейных соображений

И в чём же эта идея заключается. Чем провинились исключения?

А погуглить? golang.org/...html#exceptions

А без эксепшнов как жить?

Да легко!
-1
-2

-1024

как по мне, в го довольно удобные exceptions c точки зрения простоты кода

Если ты про panic recover то мне они тоже нравятся, но проблема в том что они не используются в библиотеках, а используются return коды, т.е. в простой программе типа прочитать из вебсокета, записать в БД и файл тебе после каждой строчки кода прийдется писать что то типа, что делает код отстойным:
f, err := os.Open("filename.ext")
if err != nil {
log.Fatal(err)

}

гм. мне єтим же pike не понравился — вроде все есть ... а вроде как не все так просто

Я думаю что полностью не заменит, но активизирует разработку значительно в мире джавы.

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

C++ это просто

std::map<std::basic_string<char, std::char_traits<char="">, std::allocator<char> >,std::basic_string<char, std::char_traits<char="">, std::allocator<char> >,std::less<std::basic_string<char, std::map<std::basic_string<std::map<std::basic_string<char,="" std::char_traits<char="">, std::allocator<char> >,std::basic_string<char, std::char_traits<char="">, std::allocator<char> >,std::less<std::basic_string<char, std::char_traits<char="">, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char="">,std::allocator<char> > const, std::basic_string<char, std::char_traits<char="">,std::allocator<char> > > > >char, std::char_traits<char>, std::allocator<char> >,std::basic_string<char, std::char_traits<char="">, std::allocator<char> >,std::less<std::basic_string<char, std::char_traits<char="">, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char="">,std::allocator<char> > const, std::basic_string<char, std::char_traits<char="">,std::allocator<char> > > > >std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char="">,std::allocator<char> > const, std::basic_string<char, std::char_traits<char="">,std::allocator<char> > > > >

И что? На любом языке можно написать похожий фрагмент :)

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

такие же шутки и про другие языки шутят. в жаве ключевых слов вроде бы побольше — значит и шутки такие шутить проще.

все разговоры о том, что с++ сложнее жавы или с№ - наглая ложь

все разговоры о том, что с++ сложнее жавы или с№ - наглая ложь
Абсолютно согласен !!!!
все разговоры о том, что с++ сложнее жавы или с№ - наглая ложь
 А пруф линк ? :-)

на что?

все разговоры о том, что с++ сложнее жавы или с№ - наглая ложь
Помню первый курс. Еще паскаль. Знаете какая была самая сложная лаба для большинства? Указатели, многие ее просто «мутили», я сделал кроме себя еще 2 человекам и одному переделал (так чтобы она работала). Была еще одна про файлы, некоторые вычитывали весь файл в массив из 1000 элементов (этого «должно было хватить всем»).
Вывод: Управление ресурсами — довольно сложный топик.

В джаве/шарпе оно куда проще чем в ЦПП.

Второй курс. Лабы по Ц сдавали проще (уже на первом узнали что в массив из 1000 элементом не все файлы помещаются)
Но вот контрольная по ЦПП, со всемии этими прайват наследованиями. А вот в джаве/шарпе, какое там наследование? В 100500 раз проще.

Итераторы. В шарпе их умело запрятали поглубже, потом (вроде потом) и в джаве спрятали в форич. А в ЦПП? СТЛ во многом требует (раньше требовал) знания что это такое.

Ах да еще есть «.» и «->», это вдогонку к указателям.

жава и шарп лучше спроектированы. жава проектировалась на ошибках плюсов.

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

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

Не хочу никого обидеть, но тут скорее для «неуча», ибо лямбды это простой то что переменная из блока видна во внутреннем блоке + передача объекта как параметр метода. Логика же разименования указателей и арифметика указателей намного сложнее, как я видел.

в шарпе кстати сейчас есть указатели

Ансейф блоки? Многие шарписты даже не знают о его существовании.

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

habrahabr.ru/post/147681

По мне, так указатели в сто крат хуже лямбд. Но даже в плюсах можно избегать их исползования.

не пользоваться массивами в принципе?

это массивы с проверкой на выхождение за рамки?

Могут быть реализованы на основе std::vector.

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

Они всегда себя так ведут. И превращают банальный выход за пределы массива в шо попало.

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

habrahabr.ru/post/147681

Не хочу вас расстраивать, но это не имеет ни какого отношения к ФП :) Странный билдер, обычное ООП. Кстати, если бы докладчик умел пользоваться итераторами, код бы у него получилсо более понятный и производительный (избежал бы многократных пробегов по коллекции)

И все же что именно не понятного в этом ролике? Если отбросить низкий профессионализм докладчика.

насчёт низкого профессионализма — слишком толсто :) этот человек MVP. если вы называете это обычным ООП — то можно смело говорить, что вы не понимаете что такое функциональное программирование.

для человека, которому приходится читать такой код он будет менее предсказуем, чем указатели

этот человек MVP

Похоже я окончательно разрушу ваш мир, но все же:

МВП — это пустой звук, оно не говорит о профессионализме человека, его могут дать просто «евангелисту».

если вы называете это обычным ООП — то можно смело говорить, что вы не понимаете что такое функциональное программирование.

Ок. Берем простой постулат ФП — «немутабельность».
Чувак мутирует основной обект, при вызове каждого метода, а не создает новый. Это ФП?
В чем именно там ФП, кроме его слов?

Конечно если говорить о ФП как о работе с функцией как с данными, то тогда да. Но такое есть и в ООП, просто понятие «функция» заменено на «объект».

да ну не говорите глупостей :)

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

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

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

Например метод WithXY, которых них не DRY, ибо является суперпозицией ВизПроперти (или как там оно)

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

То есть между вызовами визПроперти нет состояния?

Еще раз:

В чем именно там ФП, кроме его слов?

По пунктам пожалуйста.

я уже писал выше, что это имитация отсутствия состояний.

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

я уже писал выше, что это имитация отсутствия состояний.

Слабенькая имитация. Если в параллельных потоках запустить визПроперти с одинаковым проперти, разными генераторами (объектами-генераторами) и на одном инстансе. Что произойдет? Очень немутабельно и детерминировано.

вы описываете то, что должно получиться на выходе.

Ну это скорее к декларативности чем к ФП, но ладно. Чем тогда ООПешный билдер не подходит?

Снова же если бы он дела все ближе к концепции ФП, то использовал бы ленивые вычисления (тем самым не бегая несколько раз по списку) и тогда бы не было

дублирования кода в визХУ.

Да в конце концев, он использует цикл (!). Это типа ФП (цикл по индексу, даже не итератору)?

Смотрите на мир критичнее то что человек говорит шас будет ФП, не значит что оно там быдет.

Тот код что я увидел — это простой (не очень хороший) ООП код.

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

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

Согласен! Я так же за «чистоту рядов»! ЦПП — прекрасный инструмент для отсеивания «случайных людей»!
Но суть не в этом. Есть 2 инструмента которые дают соизмеримое качество результата, но один значительно сложнее другого. Очевидно что в большинстве случае возьмут то что проще.

Проблема ЦПП в том что при написании/прочтении каждой строки вам надо переключаться между разными уровнями: только что вы думали про сущность «документ» и «записи» в нем, и сразу же надо переключится на ячейки в памяти в которых лежат ссылки на другие ячейки памяти. Данахнадо!

Но есть же auto_ptr, boost::shared_ptr и другие реализации умных указателей. Но все равно, согласен, в некоторых случаях придется копаться в более низкоуровневых абстракциях. Хотя, в случае хорошо спроектированной сферической архитектурыв вакууме, можно все разделить на уровни.

А пацаны то заколачивают синьйорские ЗП, и не знают...

Это не ложь, С++ как язык намного сложнее джавы.

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

вы хотите привести аргументы в пользу этого мифа?

Приведу аргументы, естественно.
1) Отсутствие управления ресурсами, то есть сборщика мусора.
2) Наличие указателей вообще как таковых, то есть указателей на функции и т.д.
3) Шаблоны и особенно подход к метапрограммированию, основанный на шаблонах (Александреску). Когда шаблон в 20 строк разворачивает иерархию классов и непонятно какую, так как надо дебажить вывод макропроцессора.
4) Сложный стандарт языка, много вещей собственно в самом языке. Есть и полезные вещи типа функций которые не меняют состояние объекта, но в целом возможностей напортачить куда больше.

5) Близость к операционке соответственно всякие ДДли и т.д.

1 и 2 скорее усложняет работу с этим языком, чем изучение (то-есть надо говорить, что он неудобный, а не сложный. как например лопата по сравнению с экскаватором неудобная, а не сложная)
3) генерики есть и в жаве и в c#
4) сравните интереса ради количество ключевых слов в с++ с жавой и с№

5) да ладно

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

Сравнивать сложность языков по количеству ключевых слов — умора.

Вы успели поработать нормально с двумя языкамы, или только лабы в универе ?

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

с удовольствием выслушаю

Время и глубина напряга мозга так сказать:) Количество парадигм, глубина абстракций.

это вы какими-то абстракциями заговорили.
в глубине абстракций современные языки шагнули далеко по отношению к с++.

в любом случае, если вы используете эти абстракции — то в языке они представлены в виде ключевых слов

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

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

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

да что за глупости вы говорите?
обыкновенные такие указатели, которые стоит использовать, когда не страшно за последствия.

более того не сильно понимаю при чем тут вообще с++ длли. их можно использовать и так

вы вцепились за эти указатели, а там ведь концепция простая как пять копеек.

Концепция то простая, но сколько гемора! Нужен нехилый ментальный напряг, чтобы помнить где какой указатель куда поинтит, где память выделяется, а где можна высвобождать. Тем немение незаметные баги всеравно прокрадываются. А для нубов/студентов это вообще «ужас», где можг у студента вроде алгоритмически и соображает, но ничерта неработает...

Разве в C++, если программировать на нем именно как на C++, а не «С с классами», сейчас кто-то работает напрямую с указателями (за исключением кусков с критичной производительностью)?

Мне почему-то казалось, что все давно уже пользуются обертками наподобие auto_ptr, что, по сути, делает работу с указателями не сложнее, чем со ссылочными типами в C#.

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

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

А плюсы я не боюсь, плюсы я люблю:)

да, если синтаксис и пунктуация хромают, то лучше податься туда, где не надо писать :)

Мне кажется кресты уже достигли своего плинтуса и ниже не упадут.

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

Если нужно скорость и кроссплатформенность тогда берут С/С++. Сейчас наблюдается рост связки javascript и html5.

Если нужно скорость и кроссплатформенность тогда берут С/С++
Ну в году так 1997 может быть.

а в 2012 ?

Тут dou.ua/...sts/digest-114 пишут:

О готовящемся переходе Facebook с PHP на JVM;

Вздор, когда JVM в video/images processing обгонит по скорости С/C++ вот тогда да.

Как взаимосвязаны кросс-платформенность, со скоростными качествами?

Так или иначе, если у тебя прога под x86 на С++, под ARM ее нужно серьезно переделывать или под Sparc. Джава подразумевает, что будет работать медленно и везде, возможно даже с ошибками, т.к не оптимизировано под целевую платформу, но будет, с меньшими временными затратами.

C/С++ живет в мире real-time с большой нагрузкой, остро критические системы, тесно связанные с hardware, a high-load обработку запросов java уже тянет, чем фейсбук и хочет воспользоваться.

Вздор

То есть у вас есть инфа, о том что фейсбук не планирует переход на ДжВМ?

video/images processing

Ну їй богу, як діти! ©
Вот посмотрите на вакансии, хотя бы, сколько из них на мульимедиа, а сколько на бизнес приложения или “перделки” для айТелефончиков?
Ц/ЦПП — дает преимущества по скорости, только в числодробилках. В реальных задачах производительности ДжВМ хватает с запасом, да чего там хватает и питончега.

Кросплатформеность. Ваш код может и будет кросплатформенным, но вот будут ли библиотеки которые вы используете переносимыми? А то что под ДжВМ таки переносимо.

Кстати да, это один из плюсов, если вдруг появляется новая архитектура процессора, проще написать JVM под нее, чем заставлять каждую фирму переписывать под целевую платформу свои приложения, на что они «как обычно» благополучно забьют.

хотите сказать, что Java нас всех спасет, а С/C++ оставить для глубого backendа :) ?

хотите сказать, что Java нас всех спасет, а С/C++ оставить для глубого backendа :) ?

Это форум сказочных фантазеров!
Я хочу сказать что:
1) Производительность которую дает Ц/ЦПП — очень дорогая, при том что есть значительно более дешевая джава, которая дает в большинстве задач (исключая числодробилки) даже больше производительность.

2) Кроссплатформенность ЦПП — очень условна, в то время как у джавы она 99.999%.

Поэтому в прикладном программировании и даже на «глубоком бек-энде», ЦПП не нужен. Его ниша — это или системное ПО или очень специфическое.

Любопытно, тогда почему связку Qt и C++ до сих пор довольно охотно выбирают для десктопных приложений (особенно, кросс-платформенных)?

тогда почему связку Qt и C++ до сих пор довольно охотно выбирают для десктопных приложений (особенно, кросс-платформенных)?

В моем уютном мире таких практически нету :)

Это вы про какие приложения? Убитая Опера?

  1. Nokia Suite, например (но это не очень показательный пример, у Nokia давние связи с Qt)
  2. Any Video Converter
  3. Calibre 2
  4. DjVu Libre

В любом случае, а каковы альтернативы? Использовать .NET или Java для потребительских десктопных приложений далеко не всегда удобно и возможно, MFC жив, скорее, только формально... Разве что WxWidgets остаются, но они, если мне не изменяет склероз, не кросс-платформенные.

В любом случае, а каковы альтернативы?

Кор на чем угодно (хоть на том же ЦПП).

УИ — нативный. То есть под винду — дотНет, под Мак — Кокоа, под Линукс — никто не разрабатывает.

Nokia Suite

От только я там версию только под винду увидел. То есть там КуТ только как УИ либа.

Calibre 2

DjVu Libre

На зачет. Опенсорс гуано 5 летней давности.

Any Video Converter

Такой www.apple.com/finalcutpro например?

Или вы снова же про опенсорс перделку?

На зачет. Опенсорс гуано 5 летней давности.

А что калибре уже есть альтернатива ?

УИ — нативный. То есть под винду — дотНет

доНет — нативный под винду? Тогда все понятно, дальнейшая дискуссия не имеет смысла.

доНет — нативный под винду? Тогда все понятно, дальнейшая дискуссия не имеет смысла.

В моем мире да. Если нет, то что? Вин32АПИ?

Строго говоря, да — Win32 API и, с выходом Windows 8 -WinRT+Metro UI.

Менее строго — плюс библиотеки наподобие MFC, WTL, WxWidgets, которые обеспечивают более удобную обертку над Win32 API в нативном коде.

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

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

В остальных ситуациях, прав Богдан, даже Бейсик/Java/Подставь свой обеспечивает нужную производительность для «очередного» документооборота или е-коммерца, с низким порогом вхождения программистов -> экономически целесообразно.

Хм, доля правды в ваших словах есть. Раз продвигаться все дальше вглубь С/C++ (Qt) нет смысла, тогда что взять (Java, JavaScript, HTML/CSS, ваш вариант) для multimedia processing (desktop) и web ?

Почему нет смысла? Если multimedia processing требует самым важным фактором, производительность в логике, то С++ нужен. Qt это уже GUI это другой разговор, он как раз обеспечивает кроссплатформенность, хотя б фронтэнда.

Можно написать фронтэнд и на Java, и на HTML5/CSS/JS, а бекэнд быть на С++.

Выбор зависит от архитектуры приложения, я видел томограф и систему image processing-a написанную на с и ocaml, а для вывода интерфейса glut, но это было лет 5 назад и таких томографов было 20 штук с четко установленными на них linux и никто не собирался переходить на другую платформу.

Почему нет смысла? Если multimedia processing требует самым важным фактором, производительность в логике, то С++ нужен. Qt это уже GUI это другой разговор, он как раз обеспечивает кроссплатформенность, хотя б фронтэнда.

То что я и хотел сказать в самом начале. Для серьезных задач самое оно.

Можно написать фронтэнд и на Java, и на HTML5/CSS/JS, а бекэнд быть на С++.

Так сейчас и будут делать: frontend на HTML5/CSS/JS, а backend — С/C++

Для серьезных задач самое оно.

Кто ж серьезность определяет то? Я ж привел выше пример, когда ocaml справляется с задачей производительности С++, просто его редко используют. Есть задачи в которых Haskell лучше С или С++, но его не используют по разным причинам.

Так сейчас и будут делать: frontend на HTML5/CSS/JS, а backend — С/C++

Вы будете делать?

Из опыта: Если это high-load сервис то все пишут на Java/Scala бекэнд для обработки запросов, в котором могут быть отдельные модули через JNI к С++ библиотеке.

И фронэнд как вы сказали.

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

Вы будете делать?

MS, Qt, Adobe и другие.

Кто ж серьезность определяет то? Я ж привел выше пример, когда ocaml справляется с задачей производительности С++, просто его редко используют. Есть задачи в которых Haskell лучше С или С++, но его не используют по разным причинам.

я просто пытаюсь сказать, что С++ еще весьма хорош во многих областях и хоронить/отказываться от него пока еще рано.

Есть инсайдерская информация?

Завтра поменяется политика внутри компании MS и все начнуть на F# писать. Google ограничивает сотрудников 4мя языками.

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

Да он хорош в определенных областях и его теснят там где, нужно уменьшить порог вхождения.

Его никто не закапывает, столько легаси кода написано за 30 лет, что еще на 30 лет работы хватит. Тем более с обновленным стандартом, он стал поприличнее выглядеть.

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

а як же надійність?

и надежность =)

Мне всегда нравиться когда говорят «С/С++» как будто «С» и «С++» это одно целое :-)

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

Не, это СНГ шная hr привычка. Так говорить нельзя, несмотря на схожесть по структуре, там миллион различий и стандарты по 1000 страниц каждый. В том же геймдеве пишут на С++ и никто нихрена не знает С. Наборот с «драйверопейсателями», просто на С++ они пишут в С-стиле, что не комильфо.

С++ далеко не кроссплатформенный, я вообще на С++ видел проекты живые только легаси в сфере телекоммуникации, нового софта на нем даже не начинали. И софт был далеко не для веба (телекоммуникация), я впервые слышу, а работаю и с вебом тоже не первый год, что С++ пошел в веб. В вебе используются Джава/ПХП/Питон/Руби/НодеЖС, все, больше там практически ничего на индустриальном уровне не используется на серверной стороне, о каком С++ в вебе вы говорите?

С++ прекрасен в варианте «Си с классами». Остальное очень страшно и очень сложно.

С++ не прекрасен ни в каком варианте ИМХО, впрочем как и С. Для меня чем в языке выше уровень абстракции, чем он более высокоуровневый — тем он прекраснее.

И тем тормознутие. Во всём надо знать меру.

Haskell более высокоуровневый и быстрый чем этот ваш шарп.

Haskell более высокоуровневый и быстрый чем этот ваш шарп.

Реквестирую банчмарк.

бенчмарк на высокоуровневость?

А, извините, не рассмотрел слово «быстрый»

бенчмарк на высокоуровневость?

Ну да, количество кода который нужно написать для той же задачи отличный бенчмарк на высокоуровневость: shootout.alioth.debian.org/...hc&lang2=csharp

Как видно хаскель кроме одного теста либо столько же кнопкодавства требует либо даже больше чем цРешетка

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

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

Настоящие джигиты пишут на С

Жи есть братуха, программист краусчик.

Даже в геймдеве с++ гонят ссаными тряпками при первой же возможности.

Не согласен, смотрим вакансии геймдевов, и чешем затылок!

«С++ слишком огромен, сложен, страшен, мало-кому нужен ибо WEB впереди планеты всей»

Распостранённая ошибка. С++ с библиотеками не сильно больше Шарпа и Джавы. Он не на много сложнее тех же Шарпа и Джавы, пока не лезешь в дебри, а это, часто, противопоказанно. Насчёт страшен — к ручному управлению памятью привыкаешь быстро, а сомнительным возможностям типа множественного наследования, френдов или макросов всегда есть ответ — не использовать, ибо не необходимы.

Так как люди в упор не хотят видеть С++ и тем более страдать изучением, возможно ли то что в скором времени «плюсовики» станут динозаврами, которых не сыщешь днём с огнём и поддерживать\писать проекты на плюсах будет скоро некому ?

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

PS: Я начинал программировать как раз с C++.

Но полностью этот клас никогда не вымрет, у крестов есть своя ниша.

КОБОЛ аналогично. Вот только сейчас очень мало кто захочет начать развиваться в этом направлении. А в стране аутсорса (коей является Украина) тем более.

Кобол устаревший, многословный, корявый. ООП на нём появилось, по мойму, только 10 лет назад. И самое главное, а что на нём можно сделать такого, что нельзя было бы сделать с меньшими затратами на более развитом языке?

И самое главное, а что на нём можно сделать такого, что нельзя было бы сделать с меньшими затратами на более развитом языке?

Вот я и говорю:

КОБОЛ аналогично.

Ну а на чём графику писать то, как не на С++? Тот же XNA — отличная штука, но он даёт примерно 15% потери FPS (из статистики годичной давности), то то на нём в основниом инди сидят. Вроде бы Автодеск перевели все свои продукты на .net, но я думаю, что там анменеджит с С++ длл.

Ну а на чём графику писать то, как не на С++?

Ц? Есть оригиналы на Лиспе. Тот же ЦПП с тру смысле (Александреску) не такая уж и производительная штука.

С — процедурный, то есть — не ООП, что в больших проектах — печально. Лисп — функциональный, что для многих печально само по себе (а (ещё (от (его (синтаксиса) может) начаться) морская) болезнь). Не альтернативы. Кроме того, можно использовать С++ как Си с классами. Не тру, но удобно.

можна забацати ООП і на С, було б бажання

можна забацати ООП і на С, було б бажання

Если еще не видели: developer.gnome.org/...gobject/stable

С — процедурный, то есть — не ООП

Ну эт как посмотреть: developer.gnome.org/...gobject/stable

Лисп — функциональный

CLOS?

для многих печально само по себе (а (ещё (от (его (синтаксиса) может) начаться) морская) болезнь).

Для многих и {} печально. И шо?

Кроме того, можно использовать С++ как Си с классами.

То есть классы используются просто как «модули». Так вот в Ц модули это не проблема.

Поэтому вполне себе альтернативы (Ц для нормальных людей, Лисп — для особенных)

Ну эт как посмотреть: developer.gnome.org/....gobject/stable

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

кроме того, что многие крутые игровые движки на крестах.

Это факт, а не аргумент. Вернемся к заезженному коболу: Много финансового софта на КОБОЛе.

Ну написали так. Смысл переписывать с ЦПП на Ц?

Раз написали так, значит были основания. Вот у Кобола в своё время не было годной альтернативы. А С++ - старше и С, и ЛИСПа.

А С++ - старше и С, и ЛИСПа.

С++ старіше С?

я правильно прочитав?

я тоже в универе познакомился плотно с С++. Проблема еще в том, что среднего уровня плюсовик столкнется обычно с проектом на С++ где применяли все сложности С++ и который писали ситхи вроде Дарта Тираннуса:))) Я такое наблюдал в реальной жизни, парень бегал неделями разбирался с С++ проектом где была реализована машина состояний в чистом виде на шаблонах, причем парень совсем не глупый, и джаву знает и С++.

Подозреваю, это был либо boost statecharts, либо boost fsm.
Скорее всего парень достаточно глуп.
Прочтя документацию, с этими библиотеками сложно не разобраться, даже не имея визуализации машины состояний (её достаточно легко нарисовать по исходному коду).

наверное вы правы...

Лично был знаком только с двумя конторами, которые писали на крестах. Обе писали на них вирусы. Не хотеть.

продуктовые или аутсорс?)

Обе продуктовые и ориентированые на отъем денег у западного, хм, «клиента».

вот это нам, плюсовикам, тяжко-то без работы... =/

ужос! одна дорога — вирусы, а потом в кресты...

Сам учусь на 5-м курсе на -факе- кибернетики

буду идти работать

Эт типа на 5 курсе и еще не работает??

примерно до 50-ти человек так ответило из них 3-е хотят посвятить время плюсам (один из моей группы).

Сколько из них уже работают и на каких технологиях? Зачастую первая работа определяет язык, а не наоборот.

Лет 5 назад найти нормальную работу джуну на плюсах было очень сложно. ПХП — там -все джуны- очень просто найти работу. Джава — сейчас джуну просто найти работу (раньше сложнее, но не сравнить с плюсами).

хотят посвятить время плюсам

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

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

Несколько лет назад я думал что сервер сайд на js — это нонсенс. Увы, нет.

Несколько лет назад я думал что сервер сайд на js — это нонсенс. Увы, нет.
Несколько — это сколько? Реальные серверные движки для ДжС существуют уже лет 10+ и их таки используют.
А решения для веба под ЦПП? Да есть какое-то от только его __реально__ никто не использует. Про решения для низкоуровневого программирования на пхп я не слышал (даже созданных чисто для фана)

www.webtoolkit.eu/wt

Да есть какое-то от только его __реально__ никто не использует.

Или использует? Кто (ваш бложек не считаем)?

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

Оффтопик:

Чего ж вы едкий такой? «ваш бложек»... Это традиция такая на ДОУ — язвить? Просто привел пример.

Оффтопик:

Чего ж вы едкий такой? «ваш бложек»... Это традиция такая на ДОУ — язвить? Просто привел пример.

Это традиция всея интернетов

Что касается этого фреймворка, то они нишевой, как AllegroСL для Lispа (фирма Franz), т.е есть несколько фирм, которые по историческим причинам его сделали и поддерживают в первую очередь для своих продуктов. Тут всплывает вопрос мейнстримности и маргинальности...))

Что касается этого фреймворка, то они нишевой,

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

Оффтопик:

Это традиция всея интернетов

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

Тут всплывает вопрос мейнстримности и маргинальности

Мэйнстрим... Очень сложный вопрос. Все движется к тому, что разработчики начинают думать, что то, насколько язык или фреймворк «модный», определяет успех проекта. А, ну еще его нужно «стартапом» называть. Тогда точно взлетит. (Это не довод в пользу использования Wt, просто наблюдение).

Верно, а в итоге единственный объективный фактор прибыль фирмы, и плевать, что у меня приложение написано на Basic, если оно приносит отличный доход.

Это традиция такая на ДОУ — язвить?

Нет, на ДОУ есть традиция НЕ читать:

Да есть какое-то от только его реально никто не использует.

Поиграться, может emweb сами на нем что-то сделают, конечному заказчику обычно пох на чем оно сделано.

Но наличие 1 маргинального (у них даже нет раздела «Это используют в ...») фреймворка ниочем не говорит.

А как определить жив пациент или мертв?

По наличию свежих релизов.

А мо таки по наличию живых проектов?

Есть небольшой спрос -> Разработчикам приходят баг-репорты и запросы на новый функционал -> Фреймворк жив, хотя используются только узким кругом людей. Не?

Не понимаю, что вы пытаетесь доказать? Что веб-проекты на С++ - это не самая лучшая идея? Так это я и так знаю. Что мало библиотек, позволяющих разрабатывать на С++ для веб — это мне тоже известно. Я никого не пытаюсь убедить в том, что нужно использовать С++. Просто скинул ссылку с примером фреймворка.

Не понимаю, что вы пытаетесь доказать?

Что перед тем как кидать заезженную ссылку, надо убедится в ее целесообразности. Где-то валялась ссылка, парень на руби запрограммировал мигание лампочек на плате. Такая ссылка является подтверждением того что на руби можно клепать эмбеддед?

Кстати, хотел еще потроллить на тему их форума. Но он уже открывается несколько минут. Когда откроется посмотрим.

Что мало библиотек, позволяющих разрабатывать на С++ для веб — это мне тоже известно.

Мало? Ну тогда хоть вторую назовите.

Что перед тем как кидать заезженную ссылку, надо убедится в ее целесообразности. Где-то валялась ссылка, парень на руби запрограммировал мигание лампочек на плате. Такая ссылка является подтверждением того что на руби можно клепать эмбеддед?

Можно != целесообразно. (встречал подобную статью, на самом деле оказалось, что под программированием на Python подразумевалась передача команд прошивке МК, которая их выполняла, если вы об этом).

Мало? Ну тогда хоть вторую назовите.

Зачем? Я ничего не доказываю никому.

Кстати, хотел еще потроллить на тему их форума. Но он уже открывается несколько минут. Когда откроется посмотрим.

Ну так их и тролльте :)

P.S. Попытайтесь потроллить кого-нибудь другого.

Мало? Ну тогда хоть вторую назовите.
Простите был не прав:
github.com/d5/node.native

Аж 2 фреймворка для веба!

Можно != целесообразно.

Вот и я об этом же:

А решения для веба под ЦПП? Да есть какое-то от только его __реально__ никто не использует.

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

может быть это кома? :)

при грамотном написании код на плюсах прост и лаконичен. Сервер-сайд для веба на плюсах — просто и эффективно. Библиотек для этого не меньше чем для ПХП.

при грамотном написании код на плюсах прост и лаконичен.
Эт до первого ситха, который применит 100500 шаблонов и будет передавать интовые указатели.
Сервер-сайд для веба на плюсах — просто и эффективно. Библиотек для этого не меньше чем для ПХП.
Ссылки в студию! Надо ОРМ, шаблонизатор, какая-то оболочка для удобной работы через РЕСТ и по мелочи утилиты для ЦСС/ДжС.

UPD. Самое важное — коммюнити (возможность быстро получить ответ на вопрос).

А есть например ОРМ для плюсов?

Лично я напротив стал учить С++ так как НЕ люблю WEB и хотел быть по дальше от него но не сложилось ибо он и правда :

слишком огромен, сложен, страшен, мало-кому нужен

Поддержу на счёт того что

НЕ люблю WEB

мне нравиться C# но в 90% случаях в конторах заставляют «кнопочки рисовать» в ASP.NET хотел писать под Windows Phone так она не взлетела, а так куда не кинься везде WEB UI и это сейчас типа классно и абалденно +денежно, Java — это что-то вообще с другой планеты, сам язык может и выучишь за пол года но потом потратишь в двое больше времени на изучения сторонних технологий, фреймворков и всякой ху*еты которая всёравно будет глючить ! С «плюсами» хоть можно в GameDev пройти если очень сильно постараться или просто писать какую-либо хрень которая по дальше от ВЕБ !

Ах да, я забыл дописать по теме :
Я боюсь С++, что не потяну, хрен устроюсь или попаду на 30-ти летний проект в котором пару десятков миллионов кода где хрен поймёшь что, где, когда. Но всё что я пробовал мне не нравиться(кроме того что не взлетело) остаются «плюсы», по этому забросил всё и учу не отрываясь и будь что будет, хотя порой хочется вернуться на «Шарп» !!!

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

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

Поищите вакансии с WPF, там можно вместо веб формочек на xHTML клёпать десктоп формочки на XAML.

Как бы мне хотелось бы с вами поспорить, и доказать что работа с ВЕБ г*овно, но тут вы абсолютно правы !

компьютер будущего — тонкий клиент

Почему ВЕБ отстой ? Интересно ваше мнение ... поделитесь им.

в геймдеве говорят платят мало. да и на виндофоне всё-равно те же кнопочки

от веба сейчас не спрячешься. но можно спрятаться от фронтенда. и это круто.

есть еще мобайл и сервер-сайд

є ще лінакс і телеком

лінакс — да, но его не такуж и много.

телеком — тотже сервер-сайд

але С++, як такого мізер і його доля зменшується,
як не парадоксально, але зара тре вчити АРІ соціалок (хоча б для того, щоб підняти стартовий капітал, а потім займатись більш високими матеріями)

а в мобайл Джава, Обджектів С, задавлють С++.

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

Якщо брати чистий ембедед — то ні гірше ні краще.

Ну якщо рахувати що мобайл — це ембедед, то не пагано.

Ну какой же это эмбедед, если там почти полнеценная жаба :-)

А хто його знає?

Бач як за три роки все повернулось. Представ що буде ще через три. Три роки тому про ведроїд мало хто чув, а зара — майже мейнстрім.

Подписаться на комментарии