Здравствуйте, Олег К., Вы писали:
ОК>О Дельфи только в СНГ и знают. Потому и умер.
...А мне всегда было интересно узнать те единицы людей, которые в России еще и лицензией владеют на него. На что только абракадабра до сих пор существует?
Здравствуйте, Handie, Вы писали:
V>>-трейдинговые платформы
H>У меня был переход с C++ на Node.js. H>В результате трудоемкость упала раз в пять при сохранении производительности.
а как вы ее, производительность, меряли?
С уважением Denys Valchuk
IMHO чем больше мнений тем оптимальней выбор варианта... :)
Здравствуйте, RSATom, Вы писали:
RSA>Что то у меня складывается ощущение что количество работы связанной с С++ резко уменьшилось в последнее время...
не знаю... меня регулярно бомбят ашеры...
везде где есть слова производительность — используется С++. Обработка звука, видео, изображений, игры, кад системы, трэйдинг системы, встроенные системы — это то о чем пишут hr-ы сейчас. Да, в связке с другими языками, да — не повально. Лично я сейчас работаю с С++ и java. Не могу с вами согласиться, что работы нет.
С уважением Denys Valchuk
IMHO чем больше мнений тем оптимальней выбор варианта... :)
Здравствуйте, volodya777, Вы писали:
V>Здравствуйте, RSATom, Вы писали:
RSA>>Что то у меня складывается ощущение что количество работы связанной с С++ резко уменьшилось в последнее время...
V>есть отрасли где традиционно используется C++, в силу требований по скорости и минималистичному управлению ресурсами (т.е. там где Java и прочие вирт.машины не катят) V>-трейдинговые платформы V>-ембеддед V>-геймдев V>-графика и CAD V>-разработка ядра СУБД V>-системное программирование (правда там больше C)
Еще в поисковики, rtb, системы виртуализации и т.п.
И вообще кажется количество работы на C++ в последнее время только растет, только оно все серверное. Новый GUI конечно уже очень давно не пишут, только Legacy.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
lpc>>>Уже давно многие пишут на Java, в том числе и мы. Если заткнуть GC то производительность мало чем отличается от С++ (если вообше отличается). __>>а как вы это делаете? используете вместо new только предварительно выделенные пулы? какие-то опции виртуальной машины?
lpc>Да, делаем полный pre-allocation и все храним в большом массиве байтов (в реальности массив не один а много, и не только байтов а еще и шортов, интов, лонгов). Чем то похоже на программирование на С, но ООП тоже как ни странно присутствует. Небольшой тюнинг JVM тоже делается. Самое сложное что при таком подходе нельзя использовать никакие (стандартные) библиотеки, даже коллекции, поэтому нам пришлось написать все свое.
lpc>P.S.: для особых случаев можно получить прямой доступ к памяти через sun.misc.Unsafe и разогнаться еше больше.
Посоветуй начальству написать свой язык программирования специально заточенный для ваших задач. Уж вы-то точно уделаете Джаву. Дальше дело останется совсем за малым. Написать свою ОСь. Ну и сделать свое железо заодно.
ОК>>На всякий случай повторюсь что речь о финансовой индустрии.
K>Мне финансы не интересны — есть куда более интересные области
Кто еще может соперничать с финансовой индустрией по зарплатам? Впрочем я тебя ничуть не агитирую. Если тебе нравится какая-то область и платят там чтобы не задумываться о деньгах — то почему бы и нет?
ОК>>Новые проекты на плюсах никто не пишет в финансовой индустрии ибо дорого и хотят как всегда вчера. На плюсах остается только поддержка легаси проектов. Все новые проекты на дот нете и джаве. ОК>>На всякий случай повторюсь что речь о финансовой индустрии.
lpc>Ага, все так, разве что HFT много где на плюсах и называть это легаси пока рановато. Я сам пару лет назад окончательно свалил с плюсов потому что стало невыносимо ковыряться в 10 летнем коде (да еще и убогие плюсовые IDE остались на том же уровне что и 10 лет назад — rename работает правильно лишь через раз).
Первое. ХФТ — очень маленькая ниша. Второе. Вероятно те проекты что на плюсах, были начаты совсем недавно — лет пару назад и самыми упертыми которые считают что плюсы не побить в производительности (но забывают про боттлнек в виде сети). Третье. Сами рекрутеры говорят что плюсов мало и что то что есть, то в основном легаси. Я, вот, легаси не боюсь но просто работ на плюсах самих по себе исчезающе мало.
Впрочем я не понял согласен ты со мной на счет доли плюсах в финансах или нет.
A>>>За весь НЙ не скажу, но у пары очень крупных игроков плюсы никуда не деваются. Чуваки реально тики считают, а сервера торовые ставят за стенкой от найсовских.
ОК>>Да знаю я прекрасно этих игроков. Какое-то нелепое поверье что чем ближе к бирже тем у них больше преимущества. Да, я понимаю что Япониии с ними, конечно же, не соперничать но в пределах Манхеттена уж вряд ли можно говорить о каких либо преимуществах. Ну и сам код тоже г. Только понты одни.
A>И тем не менее. Повторю, код можно и улучшить.
Я не исключаю возможность что где-то есть небольшой проект написанный ориджинал девелопером который его потом же и переписывает. На деле все не так просто.
Это называется не разогнаться еще больше, а придумать собственный новый велосипед. От Java у вас все равно ничего не осталось, тогда можно использовать C++ и не париться.
A>>Чуваки реально тики считают, а сервера торовые ставят за стенкой от найсовских.
SD>Хех. Я как раз недавно на практике замерял. Ethernet-кабель длиной 30 метров на фреймах длиной 128 байт payload (+издержки самого ethernet) идут на 1 мкс длиннее, чем с кабелем 0.3 метра. Так что, чувакам стенку-то пробурить бы
Да чего уж мелочиться. Всем этим биржам надо чарджить огромные бабки за предоставление возможности клиентам ранать их процесы на тех же биржевых серверах где ранаются их собственные процесы, чтобы нетворка избежать. Или вообще загружать динамические библиотеки клиента в свои процесы для еще большего перформанса.
ОК>>>>Твои фантазии.
A>>>Медицинский факт. Лично видел.
ОК>>Ты не в стране эльфов случайно живешь?
A>Ну вон в соседнем сообщении SkyDance даже конкретные цифры привел. А то, что видел, это как человек переписывал работу со строками, умными указателями и вообще с памятью. Порядок выиграл.
Успех торговли это еще не только возможность первым купить, но еще и сама стратегия. Только закладываются почему-то на первое.
А то что ты говоришь — чувак переписал какой-то кусочек код или вообще весь проект? Те проекты над которыми я работал — некоторые даже монстры с начала девяностых — я просто не представляю как их можно переписать. И нужно ли.
Речь тут не о ХФТ, разумеется.
A>>>Сам себе противоречишь этими двумя фразами. Если код — дерьмо, то его есть куда улучшать, ну или переписать накрайняк.
ОК>>Уж не знаю как я себе противоречу. Ты знаешь пословицу "что написанно пером не вырубишь топором?" Если код дерьмо с самого начала, то его не так и просто улучшить. Переписать — это маловероятно т.к. лишние расходы и, самое главное, где гарантия что не получится очередное г.? Иногда-таки переписывают, когда меняется начальство, но обычно результат не лучше существующего. А обычно людям приходится работать в рамках того, что набангалорили их предшественники.
A>Т.е. ты отрицаешь возможность наличия грамотных спецов? Странно. Пепеписывать можно и по частям, а шанс, что получится г-но сильно зависит от уровня человека, подходов желания. Единственное с чем соглашусь, так это с тем, что хороший код последнее время встретить все сложнее.
Ну мы тут все как бы грамотные спецы по умолчанию. Однако я вижу то что вижу. Всем все пофиг как работает и менеджерам и девелоперам. Каждому главное кусок урвать. Побыстрее давай все — менеджерам главное отрепортать своему начальству что работа сделана, а как она сделанна — дело десятое. Ну и про понты не забываем.
Вот меня интервьюировал какое-то время назад чувак. Умные вопросы по плюсам задавал, про оптимизацию говорили, про разницу пре- и пост- инкрементов для итераторов и т.д. и т.п. А как я на код его глянул — так п...ц один. Чувак в tight loop-ах инициализирует гигантские мапы, используют стринги там где можно использовать еньюмы и еще кучи разной гуйни.
lpc>>>Уже давно многие пишут на Java, в том числе и мы. Если заткнуть GC то производительность мало чем отличается от С++ (если вообше отличается). A>>А потом приходят спецы по плюсам и увеличивают производительность на порядок
lpc>Ха-ха, а мы и есть спецы по плюсам, которых попросили сделать на java так же быстро как на плюсах Получилось.
Это потому что боттлнек не в языке а в сети. (имеется в виду что на плюсах в первую очередь не было каких-нибудь откровенных глупостей вроде линейного поиска в гигантском векторе который делается кучу раз — просто гипотетический пример)
ОК>>О Дельфи только в СНГ и знают. Потому и умер.
T>...А мне всегда было интересно узнать те единицы людей, которые в России еще и лицензией владеют на него. На что только абракадабра до сих пор существует?
lpc>>>Уже давно многие пишут на Java, в том числе и мы. Если заткнуть GC то производительность мало чем отличается от С++ (если вообше отличается). __>>а как вы это делаете? используете вместо new только предварительно выделенные пулы? какие-то опции виртуальной машины?
lpc>Да, делаем полный pre-allocation и все храним в большом массиве байтов (в реальности массив не один а много, и не только байтов а еще и шортов, интов, лонгов). Чем то похоже на программирование на С, но ООП тоже как ни странно присутствует. Небольшой тюнинг JVM тоже делается. Самое сложное что при таком подходе нельзя использовать никакие (стандартные) библиотеки, даже коллекции, поэтому нам пришлось написать все свое.
lpc>P.S.: для особых случаев можно получить прямой доступ к памяти через sun.misc.Unsafe и разогнаться еше больше.
Кстати... Вот ты затронул тут чисто технические аспекты. А что там у вас на счет бизнес аспектов? Что с самими стратегиями?
Успех это ведь не только "как можно быстрее передать данные по сети."
lpc>Да, делаем полный pre-allocation и все храним в большом массиве байтов (в реальности массив не один а много, и не только байтов а еще и шортов, интов, лонгов). Чем то похоже на программирование на С, но ООП тоже как ни странно присутствует. Небольшой тюнинг JVM тоже делается. Самое сложное что при таком подходе нельзя использовать никакие (стандартные) библиотеки, даже коллекции, поэтому нам пришлось написать все свое. lpc>P.S.: для особых случаев можно получить прямой доступ к памяти через sun.misc.Unsafe и разогнаться еше больше.
А был смысл так извращаться? Требования делали нежелательными даже minor GC?
Здравствуйте, lpc, Вы писали:
lpc>>>Уже давно многие пишут на Java, в том числе и мы. Если заткнуть GC то производительность мало чем отличается от С++ (если вообше отличается). __>>а как вы это делаете? используете вместо new только предварительно выделенные пулы? какие-то опции виртуальной машины?
lpc>Да, делаем полный pre-allocation и все храним в большом массиве байтов (в реальности массив не один а много, и не только байтов а еще и шортов, интов, лонгов). Чем то похоже на программирование на С, но ООП тоже как ни странно присутствует. Небольшой тюнинг JVM тоже делается. Самое сложное что при таком подходе нельзя использовать никакие (стандартные) библиотеки, даже коллекции, поэтому нам пришлось написать все свое.
lpc>P.S.: для особых случаев можно получить прямой доступ к памяти через sun.misc.Unsafe и разогнаться еше больше.
В мемориз, однозначно.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, lpc, Вы писали:
lpc>да еще и убогие плюсовые IDE остались на том же уровне что и 10 лет назад — rename работает правильно лишь через раз
Это ты про какие?
Нормальная плюсовая IDE это вижуалка + ассист.
Здравствуйте, RSATom, Вы писали:
RSA>Здравствуйте, RSATom, Вы писали:
RSA>>Что то у меня складывается ощущение что количество работы связанной с С++ резко уменьшилось в последнее время... RSA>Да нет, я серьезно, есть чуство что пора профиль менять (точнее что его нужно было менять еще "вчера") — а на что менять придумать не могу, т.к. хочется сложных (и как следствие интересных)задач, а вокруг только "сайтики" да "кнопочки на формах"...
Если хочется надуманных сложностей, можно начать делать сайтики на С++.