Для каких задач Java лучше подходит, чем С++?

Прохожу курс по С++. Имеет ли смысл больше смотреть в сторону java при современных реалиях? Правда ли, что зная С++ можно быстро перейти на любой ооп язык?
Читал, что С++ имеет больше в сравнении с java рычагов управления памятью. За счет этого программы на java выполняются медленнее. Так ли это важно? И если важно, то где? Спасибо
  • Вопрос задан
  • 983 просмотра
Решения вопроса 2
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Стоит ли смотреть в любую сторону - зависит от того, чем вы хотите заниматься. Перейти можно с любого языка на любой, и С++ тут ничем особым не выделяется. У меня есть даже пример, когда команде переход с С++ на Java дался очень плохо.
Да, в С++ вы должны управлять памятью, это отличный способ выстрелить себе в ногу, и поэтому сейчас советуют отходить от сырых указателей к shared/unique/etc_ptr.
В Java сборщик мусора, да, но это давно не проблема в обычных приложениях. Управлять памятью в С++ - сложно.

Методы из java-байткода в рантайме компилируются в платформенный код, это ускоряет очень сильно.
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Правда ли, что зная С++ можно быстро перейти на любой ооп язык?


Относительно быстро, да. В принципе C++ должен дать вам неплохой фундамент.

Читал, что С++ имеет больше в сравнении с java рычагов управления памятью.


В Java код выполняется через JVM, со сборщиками мусора и т.д. То есть получить там seg fault или утечку памяти банально сложнее. Это налагает определенный оверхэд, хотя JIT компиляторы генерируют неплохой и довольно эффективный код, так что если брать среднего девелопера на C++ и среднего девелопера на Java - у последнего просто расход на память будет сильно больше, но в целом же в большинстве случаев особой разницы в производительности вы не увидите. Да и не сильно это важно с учетом скорости разработки (что важнее обычно).
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@odissey_nemo
Программист, ГИС-системы, растры, космоснимки
Для задач, разрабатываемых на одной платформе, а работающих на других. В частности, писал модули (без графики, естественно) для сервера ФМС РФ на винде (JIdea), а работали они, без малейших нареканий, на IBM'овском сервере по Юниксом. Java была 4-й версии)))

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

Войдите, чтобы написать ответ

Похожие вопросы