На моей памяти подобные статьи стали массово появляться где-то с 2003-2004 года (когда .NET вырос из коротких штанишек, в C# завезли генерики и реальная альтернатива C++ появилась не только под Unix-ами (там была Java), но и под Windows (там место под солнцем стал отъедать C#)). С тех пор темп несколько снизился, но все каждый год несколько подобных опусов появляется. И, судя по всему, в ближайшие лет 10 ничего не изменится.
Само содержание статьи обсуждать смысла нет, т.к. автор не указал, для какого типа проектов он пытался использовать C++. Может для его целей и любимый автором C# сосет, просто автор не в курсе, что есть другие варианты.
Да, С++ сосет. Но долбанные libclang (в QtCreator и Clion) и C++14 дали стимул и дальше использовать C++. А скоро и C++17 будет c концептами, asio и пр. Плюс Страуструп еще хочет добавить pattern matching и модули. Как теперь жить :(
Само название пункта ничего не говорит, но вообще да. Подпункты правдивы. Кроме неймспейсов. Неймспейсы норм, но хуже, чем модули в хаскелле и питоне и джаваскрипте(require).
It’s a barely portable language
Плюс адын. Не знаю людей, которые пишут правильный кроссплатформенный код, не подразумевающий, что int размером 32 бита, что мы в юниксе, и так далее.
It’s a counterproductive language
Тупое название какое-то, даже читать лень.
STL and Boost suck
Boost - да. Нестабильный, и новые версии медленно попадают в дистрибутивы. А STL сильно меньше стандартных библиотек в других языках, и это плохо.
Каким бы ни был язык, но если под него куча либ и вообще только он поддерживается производителем на платформе X то выбор языка даже не стоит. А если надо чтобы мало память потреблялась? И чтоб жирную VM не тащить.
Короче от задачи зависит, и в большинстве задач лично мне хватает Qt, на МК - использую подмножество C++.
But you can’t create qmake projects if you have a cross compiler or you don’t have a Qt library in that toolchain, and qmake is the only sane way do projects (simple, without complex programming of features in strange languages. But limited and badly documented :( ).
QMake прост, но уже пора бы его выкинуть. Его нет смысла юзать там, где хочется что-то больше одного Qt.
Пусть юзает CMake и не выделывается.
Уровень претензий удивляет. Не осилил выбор рантайма под офтопиком. Не осилил (и «не хочет», лол) CMake, который близок к «стандартному варианту», при этом другие способые сборки ему (внезапно) тоже не нравятся. Претензии к языку ещё смешнее, особенно весело про неймспейсы.
Дальше ещё бредовее. И непонятно зачем он, после всего этого нытья, продолжает кушать кактус.
Boost - да. Нестабильный, и новые версии медленно попадают в дистрибутивы.
Boost можно и самому собрать, если надо. А вот для обновления (в плане фич) стандартной библиотеки приходится новых стандартов ждать, а это ещё менее быстрый процесс.
А скоро и C++17 будет c концептами, asio и пр. Плюс Страуструп еще хочет добавить pattern matching и модули.
OMG.
Новости с фронта: вражеские стратеги из Mozilla решили, что могут попустить приплюснутых, выпустив Rust, который намеренно делал человеческие глаза течь кровью. В ответ на это Страуструп подумал и решил добавить паттерн-матчинг и концепты. Следующий раунд не за горами. Читайте в следующем номере: «ML-семейство: больше не самый уродливый код».
Для нестуденческих — тоже. Единственная проблема и жавы, и шарпа — потребление памяти. Сверхоптимизации, где может сверкнуть C/++, нужны настолько редко, что не нужны совсем.
А ещё про нижние подчёркивания весело. И про буст не помещающийся в голову. Вот зачем его «помещать в голову»? И разумеется, примеров нет так как ему «лень рыться в мусоре». Нафига спрашивается он вообще с бустом, в таком случае, связался?
Мобильные приложения, в основном — замена сайта. Чтобы ело поменьше трафика, не делило память с другими вкладками броузера, хранило какие-никакие данные на диске.
Ни для чего этого JNI не нужен.
C++ используется для кроссплатформы. Приложения, что работают абсолютно одинаково на Windows Phone/Android/iOS, без изменения кода, а на производительность пофиг.
Это касается даже игр. Для простых достаточно биндинга на OpenGL, вот он делается через JNI, вся логика хорошо живет в джаве. Для сложных используются Unity3D — то же самое, только шарп вместо жавы, и UnrealEngine — ну он везде на C++, тут никуда не денешься. Как и говорилось, кроссплатформа.
Единственное, MAPS.ME, оффлайновые карты с поиском маршрута. Разработчики писали, что без натива не хватает производительности. Но это, опять же, неизвестно, думаю, если бы постарались, то могли обойтись и чистой джавой.
А куда деваться? Если язык не развивать, то он бы точно постепенно умер. «Сделать заново» с учётом ошибок тоже не все устроило бы. Опять же, попадалась инфа, что размер спецификации джавы/шарпа вполне сопоставим с плюсовым стандартом. Профы искать лень, но на правду похоже. В любом случае, все живые языки распухают со временем.
Опять же, устаревшие штуки пусть и нельзя (быстро) выкинуть, но постепенно они становятся менее нужными. То есть, обучаясь языку не обязательно охватывать сразу весь стандарт.
олсо, как это часто бывает, документация на уровне :)
Зачем же передёргивать? Это не документация, а «картинка для привлечения внимания». В ридми есть примеры и ссылки на публикации. «Документация» будет когда это предложат включить в стандарт - появится соответствующее предложение. А со временем появится и литература всякая, где совсем доступно разжуют.
Специально для идиотов - он большой только из-за того, что там выписана стандартная библиотека, в том числе и стандартная библиотека С. Попробуй поискать стандарт C# с подробным описанием платформы в виде одного документа. Ты его просто не найдешь,