Цитата:
Сообщение от flopix
Чего там такого в C++ чтобы программист со средним скилом в Java его не мог осилить?
Это не утверждение, а именно мой вопрос, часто пишут что С++ анриал сложно, интересует чем же, даже пусть по сравнению с тем же древним Delphi.
Я сам не есть спецом С++, только изучил основы и писал простые программы. Да там специфическая работа с классами и много нюансов, впрочем и в Java их тоже хватает.
Другой вопрос что в С и С++ очень легко сделать ошибку например при выделении/освобождении памяти, выходом за границы массива, неправильной работы с указателем. При этом программа будет компилироваться, и даже работать и найти ее будет непросто.
|
Если нормально писать на C++, используя его современные возможности (smart pointers, и т п), то проблем с памятью нет. То же самое с выходом за границы массива, есть std::vector, и другие контейнеры.
У С++ есть интересное свойство, люди, которые пишут на нем 1-2 года, зачастую начинают считать себя вполне себе гуру, и это большая ошибка. В нем очень много тонких мест и нюансов, которые чаще всего начинаешь осознавать/понимать только гораздо позже, лет так через 5, и то, после того, как соберешь на своей шкуре достаточное кол-во граблей. Я уже не говорю про грамотную структуру проекта, иерархию классов, и остальное.
Цитата:
Сообщение от Alay
ASM не для простых смертных. Со всем остальным можно справиться)
вопрос лишь в том, сколько времени и денег уйдет на то чтобы сделать что то на С++ или же на java/c# и прочих managed
А вообще думаю что в скором времени managed код встанет в ровень по производительностью с "С" - к примеру разрабатывающийся Rust со сборщиком мусора.
или же С# с возможностью компиляции кода минуя IL напрямую в инструкции конкретного процессора. (NetNative) - пока что только для Win10
|
Не думаю, что managed когда нибудь догонит unmanaged, хотя бы из за GC, да и других причин хватает. Rust плохой пример, потому, что его главный принцип - zero-cost abstractions, большинство вещей он делает на этапе компиляции, и GC в понимании Java программистов в нем нет. Фактически, в нем используется тот же принцип, что и в smart pointer'ах C++.
Цитата:
Сообщение от FaintSmile
Стоимость железа на данныи момент такова, что недостатки производительности Java компенсируются немного бОльшим вливанием денег в железо. А вот вливание в программиста на плюсах гораздо выше (за счет более долгои разработки, к примеру).
Да и когда говорят, что Java медленнее, чем С++, забывают рассказать НАСКОЛЬКО медленнее. А это немаловажныи момент, ведь в конечном счете выходит так, что это незначительная разница для обсуждаемои темы. А вот возможность быстро исправить баг/добавить новыи код - деиствительно важно для игровых серверов.
|
Не все так радужно, можно долго петь дифирамбы Java, но, тем не менее, для примера, практически все браузеры у нас на C/C++, как и 90% прикладного софта.
Попробуйте открыть в Eclipse более менее большой проект, сомнительное удовольствие.