Удобство разработки на С++ vs Java

Для общего развития и чтоб лучше понимать как работать с памятью решил попробовать писать на C++ при наличии опыта работы на Java и немного на python. Ниже сравню удобство разработки при написания простых алгоритмических задач на Java и С++.

IDE
Java - IntellijIdea.

C++ - CLion

Оба от JetBrains. Фич по рефакторингу и подсказкам в Clion на порядок меньше. Дольше компилирует чем аналогичный объем кода на Java. Говорят, трушные разработчики настраивают vim под себя или используют QT Creator.

Подключение библиотек
Java - maven + maven central. Не буду расписывать, тут все просто.

С++ - Cmake. Надо качать библиотеки руками или через пакетный менеджер. Удобства в виде архетипов как в maven и стандартной структуры проекта - нет. Мне нужна была библиотека для тестирования. В итоге использовал проект https://github.com/bast/gtest-demo. Реализовано скачивание gtest с гита и компиляция(привет golang).

Разработка
Java- у Вас есть интерактивная документация на классы и методы стандартных библиотек в IDE.

C++ - В стандартных библиотеках нет документации в коде. Понять функционал читая исходники - довольно проблемно. Для того чтоб посмотреть как создать динамический список(vector) и добавить в него элементы пришлось читать https://en.cppreference.com/w/cpp/container/vector. Тикет на интерактивную документацию в Clion и вариант с скачиванием стандартных библиотек с документацией https://stackoverflow.com/a/50174559/6793472

Профилирование
Java - visualVm

C++ - valgrind. На macos так и не удалось поставить https://stackoverflow.com/questions/52732036/how-to-install-valgrind-on-macos-mojave10-14-with-homebrew

Итого
Как первый язык С++ я бы не рекомендовал. Считаю что писать код без жестких нефункциональных требование проще на Java.

Summary
I think there is no proper desktop home assistant for mere mortals yet. All market solutions seem beta versions and are very vendor specific. Personally, I will wait till something proper appeared at market and use GA as it is now from a smartphone and a MacBook.

p.s I will appreciate any kind of constructive critics about the article or yours ideas about home assistances in practice.

comments powered by Disqus