Re[2]: Область применения С++
От: Pzz Россия https://github.com/alexpevzner
Дата: 23.06.17 09:28
Оценка: +1 -2 :)))
Здравствуйте, RussianFellow, Вы писали:

RF>Например, при решении математических задач разной степени сложности.


Для решения математических задач разной степени сложности применяется бумага и карандаш.
Re[2]: Область применения С++
От: ksandro Мухосранск  
Дата: 23.06.17 10:01
Оценка: 1 (1) +1
Здравствуйте, Pzz, Вы писали:

Pzz>Здравствуйте, PavelCH, Вы писали:


PCH>>Интересует где на сегодня в производстве коммерческого ПО выгодно применять с++.


Pzz>На мой взгляд, нигде. Но меня не поймут и наставят минусов


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

Например:
* Обработка видео в реальном времени. А пользователи хотят чтоб было fullHD и не лагало.
* Трэйдинг. Трейдеры очень не любят когда они жмут кнопку купить, а поупка происходит по цене, которая сильно отличается от цены, которую они видят на эране. Есть еще алгоритмический трэйдинг, там все намного жестче (там 20 микросекунд это уже медленно).
* Игрушки. Не тетрис на флеше, а настоящие 3D игры. Геймеры любят красивую графику, и не любят когда игра лагает.
Re[3]: Область применения С++
От: Pzz Россия https://github.com/alexpevzner
Дата: 23.06.17 10:40
Оценка: -1 :)
Здравствуйте, ksandro, Вы писали:

K>Например:

K>* Обработка видео в реальном времени. А пользователи хотят чтоб было fullHD и не лагало.

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

K>* Трэйдинг. Трейдеры очень не любят когда они жмут кнопку купить, а поупка происходит по цене, которая сильно отличается от цены, которую они видят на эране. Есть еще алгоритмический трэйдинг, там все намного жестче (там 20 микросекунд это уже медленно).


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

K>* Игрушки. Не тетрис на флеше, а настоящие 3D игры. Геймеры любят красивую графику, и не любят когда игра лагает.


Опять же, не специалист. Но думаю, игра вполне логично разделяется на быструю, и относительно несложную, часть, и медленную, но сложную. При таком разделении удобнее было бы писать на двух разных языках. Но этот подход незаслуженно не пользуется большой популярностью. Скорее из страха, чем из-за реальных сложностей.
Re[4]: Область применения С++
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 23.06.17 10:50
Оценка: +5
Здравствуйте, Pzz, Вы писали:

K>>Например:

K>>* Обработка видео в реальном времени. А пользователи хотят чтоб было fullHD и не лагало.
Pzz>Полагаю, на чистом Си. Сложные абстракции в такой задаче не нужны, и только мешаются.

Пример того же ffmpeg показывает, что такой подход может быть весьма ущербным. Это жуткая штука с ООП на С и утечками памяти. ООП на С! Им нужны абстракции! Но они получились уродскими, потому что язык не может лучше.
С другой стороны, есть OpenCV, который от C API перешёл на С++ API и весь был переписан на С++. При этом НЕ замедлился, а работа с ним заметно упростилась как раз благодаря новым уровням абстракции. Его из плюсов использовать практически так же легко, как и из Питона с его мощными scipy и numpy. Так что тут ты не прав.

K>>* Игрушки. Не тетрис на флеше, а настоящие 3D игры. Геймеры любят красивую графику, и не любят когда игра лагает.

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

Как раз этот подход и пользуется популярностью. Медленную часть пишут на С++, а сценарии на lua (luajit) или Питоне.
Re[2]: Область применения С++
От: alpha21264 СССР  
Дата: 23.06.17 12:08
Оценка: +1
Здравствуйте, Pzz, Вы писали:

Pzz>Здравствуйте, PavelCH, Вы писали:


PCH>>Интересует где на сегодня в производстве коммерческого ПО выгодно применять с++.


Pzz>На мой взгляд, нигде. Но меня не поймут и наставят минусов


Эх! Это тебе ещё не приходилось на Фортране писать!

Течёт вода Кубань-реки куда велят большевики.
Re[3]: Область применения С++
От: Pzz Россия https://github.com/alexpevzner
Дата: 23.06.17 12:08
Оценка:
Здравствуйте, alpha21264, Вы писали:

Pzz>>На мой взгляд, нигде. Но меня не поймут и наставят минусов


A>Эх! Это тебе ещё не приходилось на Фортране писать!


Немного приходилось.
Re[4]: Область применения С++
От: ksandro Мухосранск  
Дата: 23.06.17 12:14
Оценка: +1
Здравствуйте, Pzz, Вы писали:

Pzz>Здравствуйте, ksandro, Вы писали:


K>>Например:

K>>* Обработка видео в реальном времени. А пользователи хотят чтоб было fullHD и не лагало.

Pzz>Полагаю, на чистом Си.

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

Pzz>Сложные абстракции в такой задаче не нужны, и только мешаются.

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


K>>* Трэйдинг. Трейдеры очень не любят когда они жмут кнопку купить, а поупка происходит по цене, которая сильно отличается от цены, которую они видят на эране. Есть еще алгоритмический трэйдинг, там все намного жестче (там 20 микросекунд это уже медленно).


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


По разному, есть тупые торговые стратегии где нужна скорость и только скорость (например арбиртаж).
Про Ocaml ничего не знаю, может его и кто-то применяет, но я так понимаю у него есть сборщик мусора, это большой минус. Допустим есть две организации, обе они торгуют одними и теми же акциями на одной и той же бирже (торгуют в том числее и друг с другом). У обеих организаций сервера в одном и том же дата центре. Они обе используют одну и ту же торговую стратегию (один и тот же алгоритм). Но одна из них написала торговую стратегию на Ocaml а вторая на С++. Втоая скорее всего будет отбирать всю прибыль у первой.

K>>* Игрушки. Не тетрис на флеше, а настоящие 3D игры. Геймеры любят красивую графику, и не любят когда игра лагает.


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

Я тоже не специлист, но кажется игры обычно и пишут на двух разных языках. Только вот с чего Вы взяли, что быстрая часть не сложная?
Re[3]: Область применения С++
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 23.06.17 12:32
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Здравствуйте, RussianFellow, Вы писали:


RF>>Например, при решении математических задач разной степени сложности.


Pzz>Для решения математических задач разной степени сложности применяется бумага и карандаш.


Всё, больше разговаривать на тему языка программирования C++ мне не о чем.
1613 г. = 2024 г.
Re[3]: Область применения С++
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 23.06.17 12:34
Оценка:
Здравствуйте, alpha21264, Вы писали:

A>Здравствуйте, Pzz, Вы писали:


Pzz>>Здравствуйте, PavelCH, Вы писали:


PCH>>>Интересует где на сегодня в производстве коммерческого ПО выгодно применять с++.


Pzz>>На мой взгляд, нигде. Но меня не поймут и наставят минусов


A>Эх! Это тебе ещё не приходилось на Фортране писать!


А мне приходилось. На первом курсе вуза, в 1991--1992 годах.

И на работе, где я работаю, до сих пор используются хорошо работающие программы, написанные на Фортране.
1613 г. = 2024 г.
Re: Область применения С++
От: AlexGin Беларусь  
Дата: 23.06.17 20:48
Оценка: 55 (1) +1
Здравствуйте, PavelCH, Вы писали:

PCH>Добрый день!

PCH>Интересует где на сегодня в производстве коммерческого ПО выгодно применять с++. Если есть возможность, опишите область применения и в двух-трех предложениях пример проекта/задачи чтобы она была понятна не только программисту, но и например прожект менеджеру.

a) SCADA системы, где требуется высокая производитльность кода (и тот же IoT);
b) Вычислительные алгоритмы и приложения с ними (для разных областей народного хозяйства);
c) Задачи математического моделирования;
d) Обработка картинки/видео/звука;
e) Системные приложения (и работа с оборудованием вычислительной ситемы/сети);
f) Встроенные (embedded) приложения для микропроцессорных систем и оборудования.

Возможно, есть ещё какие-либо применения...
Re[5]: Область применения С++
От: PavelCH  
Дата: 24.06.17 07:40
Оценка:
V>А что значит язык более высокого уровня? Назовите абстракции, которые нельзя реализовать в С++, ведь именно так это и звучит в оригинале — "высокий уровень абстракции". Лично я думаю, что если один язык программирования позволяет использовать низкоуровневые и высокоуровневые абстракции, а другой только высокоуровневые, то второй не является языком более высокого уровня, чем первый. C++ является языком с избыточной функциональностью, там можно очень даже сильно абстрагироваться. С другой стороны наличие нескольких парадигм программирования, вроде процедурного, функционального, объектно-ориентированного и обобщённого делают программистов на этом языке не похожими друг на друга. Можно даже сказать, что это разные специализации.
Ну я имел ввиду чисто с практической точки зрения. Я понимаю, что на С++ можно сделать аболютно все. Но это можно сделать большими кусками не совсем понятно кода. В то время как конктрукции в других языках позволяют это делать просто и безболезненно.
Нехай щастить
Re[2]: Область применения С++
От: PavelCH  
Дата: 24.06.17 07:42
Оценка:
W>Игрушки
Мне кажется сегодня игрухи делаются на Unity (C#). Год назад пытался попасть в Ubisoft в Киеве, и даже они (насколько я понял) искали человека чтобы он что-то писал на Unity.
Нехай щастить
Re[3]: Область применения С++
От: Dair Россия https://dair.spb.ru
Дата: 24.06.17 07:46
Оценка: -1
Здравствуйте, PavelCH, Вы писали:

W>>Игрушки

PCH>Мне кажется сегодня игрухи делаются на Unity (C#). Год назад пытался попасть в Ubisoft в Киеве, и даже они (насколько я понял) искали человека чтобы он что-то писал на Unity.

"AAA" можно делать на Юнити, да.

Простые вещи делать на Юнити можно, но будет не очень понятно, почему стреляние из рогатки птицами по свиньям весит под гигабайт, запускается минуту и требует 4гб видеопамяти и DirectX11 (утрирую).
Отредактировано 25.07.2017 5:37 Dair . Предыдущая версия .
Re[3]: Область применения С++
От: PavelCH  
Дата: 24.06.17 07:52
Оценка:
K>* Обработка видео в реальном времени. А пользователи хотят чтоб было fullHD и не лагало.
Тут наверно соглашусь. С++ выгоднее.
K>* Трэйдинг. Трейдеры очень не любят когда они жмут кнопку купить, а поупка происходит по цене, которая сильно отличается от цены, которую они видят на эране. Есть еще алгоритмический трэйдинг, там все намного жестче (там 20 микросекунд это уже медленно).
Не согласен. Если брать высоконагруженные системы, такие как amazon, которых единицы в мире, то там возможно. И то, С++ слишком неудобен в синтаксисе. Логику придется писать на каком-то скриптовом языке. Если речь идет об остальных системах, то опять же, есть тот же 1С, Java.
K>* Игрушки. Не тетрис на флеше, а настоящие 3D игры. Геймеры любят красивую графику, и не любят когда игра лагает.
На сегодня игрушки выгодно разрабатывать с Unity. А там C# или JavaScript.
Нехай щастить
Re[4]: Область применения С++
От: PavelCH  
Дата: 24.06.17 07:55
Оценка:
D>Простые вещи делать на Юнити можно, но будет не очень понятно, почему стреляние из рогатки по птицам весит под гигабайт, запускается минуту и требует 4гб видеопамяти и DirectX11 (утрирую).
Зато оно работает в браузере, на айфоне, андроиде, маках и писи.
Нехай щастить
Re[5]: Область применения С++
От: Dair Россия https://dair.spb.ru
Дата: 24.06.17 07:56
Оценка:
Здравствуйте, PavelCH, Вы писали:

D>>Простые вещи делать на Юнити можно, но будет не очень понятно, почему стреляние из рогатки по птицам весит под гигабайт, запускается минуту и требует 4гб видеопамяти и DirectX11 (утрирую).

PCH>Зато оно работает в браузере, на айфоне, андроиде, маках и писи.

Юнити под iOS работает на топовых устройствах нормально, уже на двухлетних лагает довольно ощутимо. Не говоря уже про зоопарк Андроидов.
Re[6]: Область применения С++
От: PavelCH  
Дата: 24.06.17 08:00
Оценка:
D>Юнити под iOS работает на топовых устройствах нормально, уже на двухлетних лагает довольно ощутимо. Не говоря уже про зоопарк Андроидов.
Ну еще плюс Unity это мега редактор плюс мега АПИ заточненный на игры. То есть ты сел и за неделю написал игру, программируя логику, если надо набрав ассетов с маркета.
Нехай щастить
Re[7]: Область применения С++
От: Dair Россия https://dair.spb.ru
Дата: 24.06.17 08:05
Оценка:
Здравствуйте, PavelCH, Вы писали:

D>>Юнити под iOS работает на топовых устройствах нормально, уже на двухлетних лагает довольно ощутимо. Не говоря уже про зоопарк Андроидов.

PCH>Ну еще плюс Unity это мега редактор плюс мега АПИ заточненный на игры. То есть ты сел и за неделю написал игру, программируя логику, если надо набрав ассетов с маркета.

Всё так, но, опять же, это про какие-то "взрослые" игры.

Box2D не зря был сделан, да и десятки фреймворков поменьше.
И, что интересно, они на C++.
Re[2]: Область применения С++
От: PavelCH  
Дата: 24.06.17 08:06
Оценка:
AG>b) Вычислительные алгоритмы и приложения с ними (для разных областей народного хозяйства);
AG>c) Задачи математического моделирования;
Почему в этих пунктах выгодно использовать с++, а не другие языки?
Нехай щастить
Re[8]: Область применения С++
От: PavelCH  
Дата: 24.06.17 08:13
Оценка:
D>Box2D не зря был сделан, да и десятки фреймворков поменьше.
D>И, что интересно, они на C++.
Для себя я тоже играюсь — пишу игры на с++. Но они не конкурентные. Монетизировать их нереально.
То есть тут фактор из серии "исторически так сложилось". И да, мне больше нравиться делать на с++, потому что я по сравнеию с Unity знаю его гораздо лучше.
Но коммерчекое применение с++ в играх очень под большим вопросом.
Нехай щастить
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.