Java

Сильно ли Java проигрывает по производительности С/С++?

Если сравнивать прозводительность Java и плюсов в разных сферах, то сильно ли ява проигрывает плюсам в :
1) программах для вычислений ( например, если бы Mathematica была написана на яве вместо плюсов )
2) играх . Возможно ли писать игры для Windows на яве? ( пусть даже хорошо оптимизированные ) Или чтобы поиграть в такие игры придётся иметь суперкомпьютеры ?
3) в программах для работы с графикой (вроде 3d Max и Photoshop )
4) при написании операционных систем ( извращение, конечно, но чисто теоретически интересно )
5) при написании серверной части
Макс Grinder
Макс Grinder
136
фонтран заткнёт твою си с плюсами и без...
но это же не причина переписывать всё на фортране....

у всякого существующего языка программирование есть своё применение...
вот и используй соответственно...

мне лично пофиг какая производительность у си.
мне деньгу платят за работу с джавой. поэтому она мне более предпочтительна... по крайней мере, до октября следующего года...
VS
Vitalia Stupak
97 662
Лучший ответ
в андроиде и иосе основной фреймворк вообще-то на яве, хотя допускается и разработка на других языках :)
касаемо операционных систем на яве, да их хоть жопой жуй, к примеру мобильники до эры смартфонов на яве работали :)
90% если не выше всего корпоративного софта сейчас пишут либо на яве, либо на языках для среды net (c#, vb.net) :)
Michael Knight
Michael Knight
35 569
Али Саирманов в iOS Java? ничего не перепутали? в официальной IDE Xcode есть хотя бы подсветка синтаксиса для Java? не говоря уж о наличии компиляторов, библиотек
Тумэн Махутов В иоси (если ты про iOS) основной фреймворк таки на С с objective-c api.
На десктопе малость проигрывает всегда, что на ней ни пиши. Хоть хелловорлд. И ОЗУ кушает больше и грузится медленнее. Попробуйте и увидите.
Далась вам эта производительность, гораздо важнее что творится с функционалом - компиляторами, библиотеками. ОС на джаве не напишешь не из-за производительности, а из-за того, что в *.bin не умеет компилироваться, как и в иной формат, загружаемый BIOSом/UEFI и вообще исполняемый без виртуальной машины.
По этой же причине под iOS не пишут на Java - ни IDE, ни компиляторов, ни библиотек, ни возможности выложить в App Store...
Это-то хоть понятно?
По той же причине и под Windows не удобно на Java писать. На C/C++ удобнее, если в Visual Studio, хотя тоже не очень. На C# под Windows удобнее всего. Попробуйте и увидите.
А вот под Android - в основном только на Java и приходится писать, так и железо тамошнее производителям пришлось оптимизировать под то. У моего телефона процессор по частоте быстрее, чем у моего ноутбука.
Сосёт она в большинстве задачь. Но у С++ свои приколы.
1) По быстродействию С обойдет только ассемблер, потом С++.
2) Для Java есть куча игровых движков, почти все так или иначе используют JNI для обращения к С/С++ коду для отрисовки графики.
3) см. п. 2
4) Можно написать эмулятор ОС, но без ассемблера за ОС не возьмешься.
5) Java занимает лидирующее место среди Enterprise. Скорость разработки кода выше чем на C/C++, но только за счет фреймворков (таких как Spring) и долголетней истории в EE.
P.S. JVM (aka Виртуальная машина Java) написана на С/С++ под каждую платформу x86, amd64, arm, arm64. Специфика выполнения тех или иных задач будет зависить не только от самого кода, но и от JVM, на которой запущен этот код + еще процессоры различных архитектур могут быть заточены под разные вещи, Как к примеру есть специальные серверные 16-ти ядерные ARM, которые прекрасно справляются с задачей, зачастую обходя Intel Xeon. Есть процессоры, которые поддерживают выполнение Java byte-кодов, т. е. JVM встроенна хардварно, работал с таким однажды, но особого выиграша не дают, т. к. некоторые команды порезаны.
Тогрул М.
Тогрул М.
3 751
Программирование это не только игры и прикладные программы. То что пишут на Java, c++ не осилит никогда.
А по теме производительно вот http://habrahabr.ru/post/66562/
Серик Корея
Серик Корея
2 930