Задать вопрос
@Pantene742

Насколько сложнее C++ чем Java?

Понимаю что вопрос не совсем корректный так как области применения языков очень широки. Программирование на C++
в определенной области может быть намного легче чем на Java в какой то другой.

Вопрос состоит в том насколько сложнее стать разработчиком на C++ чем на Java, правда ли что работа с памятью на больших проектах это что то сверх сложное ?

Еще C++ ругают на Linux из за того что много неразберихи с плагинами на g++ что не дает нормально собрать собрать программу.

Интересует мнение эмигрировавших или использующих два языка одновременно.
  • Вопрос задан
  • 7709 просмотров
Подписаться 2 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 5
@MadridianFox
Web-программист, многостаночник
Вы не то спрашиваете. Вот зачем вы спрашиваете? Хотите выучить что-то полегче?
На самом деле вы должны ответить на вопрос - какие программы вы хотите писать.
С академической точки зрения плюсы сложнее. Да, не в последнюю очередь из-за ручной работы с памятью. Но после нескольких месяцев практики вы привыкните и это не будет сложным.
Ответ написан
Джава - переносной ящик с инструментами неизвестного производителя. Плюсы - старый советский металлический лего-конструктор с болтиками и шайбами, к каждой из которой приклеен дробовик. Оба работают всюду. Но в плюсах прежде чем забить гвоздь тут нужно вырезать рукоять молотка, выплавить/вырезать боек, слепить все это вместе - а потом забить один-единстенный гвоздь. Или расколоть материк.
А если короче - в джаве автоматизировано 90% того, что в плюсах считается обычным делом пилить вручную. Да, это круче, но в разы дольше в разработке. Хотя, опять же, смотря с какой стороны, ибо Джава с ее BufferedReader reader = new BufferedReader(InputStreamReader(System.in)) тоже хороша.
О себе: начинал с JS -> Java -> C++ -> Python. Сейчас согласен с великой цитатой гугла: "Python - где можем, C++ - где должны".
Ответ написан
@FreeDobby
Свободный Добби
Чистый Си намного проще чем Java, а C++ сложнее чисто из-за метапрограммирования (шаблоны). Да шаблоны - очень мутная и сложная тема имхо. В плюсах (особенно в STL) их пихают везде где можно (даже где не нужно). Плюс всякие копирующие и move семантики тоже добавляют сложности. И да, про память - насколько я знаю (я не плюсовик, но немного знаком) в плюсах не особо много ручной работы с памятью. Там как и в других языках есть коллекции (типа std::vector и пр.) которые избавляют от ручного выделения памяти, а если все-же понадобилось выделять память самому - есть всякие там умные указатели (shared_ptr и т.п.) которые сами ее освобождают.
Ответ написан
tzlom
@tzlom
С++ сложнее джавы в плане метапрограммирования.

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

Метапрограммирование в С++ это уже отдельная тема, там довольно много правил выведения типов, нет отладчика шаблонов и сообщения о простых ошибках могут быть очень многословны.

Еще C++ ругают на Linux

В первый раз слышу что у g++ есть плагины , вообще любая разработка под Linux гораздо проще чем под мастдай, любая библиотека установленная в систему очень легко доступна для ваших проектов, не надо ничего качать, ставить и собирать ручками как в винде, просто используете свой пакетный менеджер для установки пакетов и систему подключения оных в вашей системе сборки.
Ответ написан
devalone
@devalone
̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻

Вопрос состоит в том насколько сложнее стать разработчиком на C++ чем на Java, правда ли что работа с памятью на больших проектах это что то сверх сложное ?

Да нет не сверх сложное, учитывая, что new и delete обычно никто не пишет, а используют смарт поинтеры, просто в C++ есть свои особенности, которые нужно знать, чтоб не отстрелить себе ногу.

Еще C++ ругают на Linux из за того что много неразберихи с плагинами на g++ что не дает нормально собрать собрать программу.

Не знаю о чём вы, ни разу не было необходимости писать плагины для g++, а со сборкой программ никаких проблем нет, только обычно используют не голый g++, а какую-нибудь систему сборки.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
22 дек. 2024, в 20:40
10000 руб./за проект
22 дек. 2024, в 20:34
3000 руб./за проект
22 дек. 2024, в 20:12
10000 руб./за проект