← All posts tagged C++

reflechant

Статья на хабре про развитие C++ (точнее отчёт о встрече в Оулу, где утвердили черновик стандарта C++17).

Самые заплюсованные комментарии:
"Хочется думать, что рано или поздно у них руки дойдут и до модулей. Серьезно, я готов недополучить всех этих плюшек, да даже ranges и concepts, лишь бы сделали модули. "

"Безобразное усложнение С++ волей-неволей заставляет смотреть в сторону Rust. "

"- К тому же, в упор непонятно, почему это length() — функция, а не свойство строки.
— Потому что в C++ нет свойств? Или я что-то пропустил?"

"Непонятно чем он[комитет] вообще занят. Импортов нет, концептов нет, filesystem нет. Даже pragma once(или ее аналог) не могут в язык внести. "

"- Особенно неоднозначное отношение к string_view — как говорится если раньше было два способа написать функцию работающую со строками, то теперь их три. И каждый из них по-своему плохой.

Впитывая в себя куски из boost'а стандарт становится такой же беспорядочной помойкой — безумно распухшей коллекцией «прикольных фишечек».

— string_view это как раз очень хорошо — но чертовски поздно. Как и array_view. Надеюсь, к 20-му году прикрутят. А должны были вкрутить ещё в самом начале, в крайнем случае в 11-й версии. Но не судьба."

"Потому что стандарт распух до неприличия — а многих действительно важных вещей нет до сих пор. А многих, таких как простого менеджера зависимостей и сборки, не будет никогда.
Поэтому С++ со временем выдавят. На это уйдёт куча времени, но его место займут другие языки. Что забавно, С, думаю, останется сильно дольше — т.к. он гораздо проще."

"Пора рефакторить язык "

"Есть мнение — на собеседованиях вопросов прибавится. Код останется прежним. "

"Шел 2016 год, а я так и не мог написать в программе std::optional; (ага, я в курсе что через пару лет заработает).
Зато постоянно добавляют кучу адовой эзотерики. Если раньше я мог сказать, что знаю С++, то теперь уже точно нет.

Интересно, помогает ли все это это языку? Если 10 лет назад на нем писали почти всё, то теперь он скатывается в нишевые направления — 3D движки, OpenCV, микроконтроллеры и немного десктопного Qt (сужу по заказам на UpWork).
Лично для меня, как стандартный C++/STL был непригодным к использованию 10 лет назад, так он и остается до сих пор (Строки, работа с файлами, сеть, потоки и т.д.). Даже долбаное кросплатформенное приложение с нативным GUI интерфейсом невозможно создать (когда там графический интерфейс появился, в начале 90х?). Утешает только Qt. "

reflechant

Помогите что-ли. Попросили меня помочь с дз на Microsoft Visual C++. У меня стоит VS2015 Community. Я уже смирился, что простое MFC приложение создать невозможно — только с какими-то SDI, DOcument/View и пр. (я даже не очень знаю что это). Надеюсь, что это можно будет удалить потом, потому что мне нужна просто форма.

Сейчас проблема такая: я что-то сделал и когда создаю новое MFC приложение, графический редактор форм не открывается. И я не могу понять как его открыть.

reflechant

Это просто субъективный поток сознания, с привкусом пятиминутки ненависти. Читать не свой страх и риск.

Почему я не люблю C++ (более подробное раскрытие #2774497).
Сразу оговорюсь, что я его никогда специально не изучал, но приходилось видеть код на нём, читать о нём, читать рассуждения тех, кто его использует о том, как правильно на нём писать и т.д. Так что это нелюбовь к блюду, которое не пробовал, но которое стоит рядом и, кажется, плохо пахнет.

Сталкивался я с многими языками: Verilog, Python, C, Javascript, Lua и ни один из них не вызывал у меня с самого начала такого отторжения как C++, которое не проходит со временем.

Итак, попробую нащупать что мне в нём не нравится.
Наверное, C++ один из самых громоздких (по числу конструкций) языков.

Нововведения последних стандартов вызывают недоумение — лямбды, дженерики, for-цикл по коллекции, авто-определение типа возвращаемого значения и др.... C++ ещё статически типизированный или я отстал от жизни?
Попытка скрестить вместе вообще все языки выглядит жалко. Грубо говоря, "C с классами" превращается в какой-то безликий комбайн. А быть универсальным невозможно даже теоретически.

На самом деле язык нифига не высокоуровневый — слишком много бито/указателе/памятевыделятельной магии сквозит наружу, делая возможным сделать одно и то же сотней разных способов, которые будут в разы различаться по производительности и вероятности прострелить ногу.

Язык, на котором можно одновременно писать для микроконтроллеров и алгоритмы для обобщённых типов — considered harmful. Я уверен, что нельзя смешивать настолько разные уровни абстракции. Зачем вообще это делать?

Зачем мне вообще C++? Низкоуровневые вещи пишут на C или даже ассемблере (кстати команда разработчиков Linux рассмотрела возможность использования C++ и отказалась от неё). Для высокоуровневых программ есть много других замечательных языков. На подходе Rust, D и Go. И сдаётся мне, что они начнут медленно, но верно вытеснять этот переусложнённый язык с непонятным назначением.