|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|
Почему С++ отстой до 2020 года07.03.2016, 11:58. Показов 9316. Ответов 55
Метки нет (Все метки)
Это не холиварная тема, здесь мы не спорим, какой язык лучше!
Ну что, недавно собирался комитет стандартизации, который обсуждал будущее - С++17. И в итоге? Что же будет добавлено в столь долгожданный стандарт после релиза С++14, который был минорым и лишь доводил до ума фичи С++11? 1) Параллелизм (STL) 2) Файловая система 3) ... Вы думали, что будет еще что-то? Да нет, из фич, которые как-то заметно влияют на разработку, это все. Это все, Карл! Концепты - пфф, нам и так хорошо - родные и уродливые длинные сообщения об ошибках в шаблонах, а также безобразная магия enable_if в SFINAE, - чего еще желать? Диапазоны? Можно расслабиться, они без концептов не работают. И Слава Богу, а то пришлось бы осиливать столь сложную вещь! Модули? Ну ребят, у нас и так все быстро компилируется, особенно если буст подключить. Не зажируем ли? И да, cmake куда лучше пакетного менеджера! Конкурентность? Дык кто не пишет на низкоуровневых примитивах, тот неосилятор! Сети, корутины? Кого волнует, идите-ка вы на ...буст. Рефлексия, контракты? Да зачем? Без них куда проще жить, юзать нечитабельные либы и писать велосипеды! В общем, С++17 я бы точно не назвал мажорной версией стандарта, поскольку НЕ ВИЖУ, КАКИЕ РЕАЛЬНО НАСУЩНЫЕ ПРОБЛЕМЫ ОН РЕШАЕТ. А сколько шуму-то было после С++11/14! И это печально, потому что следующего шага после С++11 приходится ждать 10 лет, а конкуренты не дремлют. Почему так получилось? Ну потому что С++ слишком сложен, а поэтому добавление или исправление вещей, которые реально нужны и важны занимают слишком много времени и усилий. На рынке С++ по-прежнему будет скатываться в свои ниши - в ниши, где производительность критична. А С++ разработчики по-прежнему будут жить с С++ без удовольствия, частенько похаживая на сторону к другим языкам. У меня все. Если кто-то хочет меня дополнить, исправить, или просто выразить свое мнение и послать в дальние места - велкам!
1
|
|
| 07.03.2016, 11:58 | |
|
Ответы с готовыми решениями:
55
По введенному года с 1950 до 2020 вывести на экран название соответствующего названия года по восточному календарю (1 - мышь, 2 - бык, 3 - тигр, 4 - к
Гусеницы - отстой? |
|
50 / 31 / 4
Регистрация: 25.04.2013
Сообщений: 366
|
|
| 07.03.2016, 12:13 | |
|
с чего вы взяли что вам что то должны?
0
|
|
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
||
| 07.03.2016, 12:27 [ТС] | ||
|
0
|
||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 07.03.2016, 12:52 | |
|
ct0r, Откуда информация, что конкретно точно войдет в С++17 и что не войдет?
0
|
|
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|
| 07.03.2016, 12:54 [ТС] | |
|
4
|
|
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
| 07.03.2016, 13:11 | |
|
ct0r, тема слабости! Не сдавайтесь! Боритесь! Всегда были конкуренты - так почему не ушли к ним давно? А то, что вам что-то должны тоже согласен - нужно больше ссылок на реквесты, что вы писали для С++17 и которые не одобрили. Ах, да - вы ничего не писали, но хотите лучшего. Как-то так)
1
|
|
|
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
|
|
| 07.03.2016, 13:26 | |
|
Да, ожидал от C++17 большего количества нововведений. А почему столько предложений решили отбросить или отложить не пишут?
Не по теме: ct0r, вы оптимист. Надо было тему назвать ...как минимум до 2020 года :D
1
|
|
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|||||
| 07.03.2016, 13:36 [ТС] | |||||
|
Еще по корутинам: http://www.open-std.org/jtc1/s... 158r0.html По концептам: http://honermann.net/blog/?p=3 Ну и вот тут можно в целом ознакомиться с текущим состоянием: http://meetingcpp.com/index.ph... r-c17.html http://meetingcpp.com/index.ph... tions.html
3
|
|||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 08.03.2016, 10:02 | |
|
ct0r, Что ж. Действительно печально. Будем ждать следующего за С++17 стандарта...
0
|
|
|
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
|
| 08.03.2016, 10:39 | |
|
Что-то концепты всё откладывают и откладывают. Да и вообще, похоже, груз обратной совместимости давит всё сильнее. К тому же, ещё начиная с 11 стандарта, в языке стали появляться какие-то странные, чтобы не сказать стрёмные, вещи.
0
|
|
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|
| 08.03.2016, 12:18 [ТС] | |
|
Обидно, особенно в свете статьи Страуструпа от апреля 2015, и на основе которой я в прошлом году и создал тему про С++17.
Тут сейчас чел прошелся по ней и все расписал, мне добавить нечего: https://www.reddit.com/r/cpp/c... ook_march/ У меня нет никаких претензий к людям, которые имплементят фичи - они молодцы! (многие это делают добровольно, бесплатно, в одиночку, в свободное время!!). Но Intel, Google, Microsoft, etc - стыд и срам! Где помощь, где материальная поддержка??
0
|
|
|
Мой лучший друг-отладчик!
|
|
| 08.03.2016, 15:51 | |
|
ct0r, мне кажется, что с какого-то момента будут просто вынуждены кидать обратную совместимость с Си. Иначе всё очень сложно
0
|
|
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
||
| 08.03.2016, 17:55 | ||
|
Дальше ИМХО, учитывая что за ситуацией последние года три я слабо слежу. Компилятор и стандартную библиотеку пилят в основном команды из Силанг и гцц. А на стандарт больше всего влияют Страусята, у которых взгляд на развитие языка немного свой, но напористости не отнимать. Вот комитет и решил, что все хотелки Страусят реально делать будут, мягко говоря, без большого энтузиазма и очень долго.
1
|
||
|
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
||
| 08.03.2016, 18:12 | ||
|
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 08.03.2016, 18:14 | |
|
0
|
|
|
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
||
| 08.03.2016, 18:46 | ||
|
- final и override - "идентификаторы со специальным значением", а не ключевые слова; - в initializer_list допустимо размещать только значения одинаковых типов, и именно initializer_list порождается из независимых фигурных скобок (а по-хорошему, в язык надо было вводить tuple вместе с литералами на уровне core); - ещё одна завязка языковой конструкции на библиотеку: range-based for зависит от std::begin() и std::end(); - заточенность STL на итераторы и индуцированное распространение этой концепции по проектам ещё долго не позволит полноценно перейти на диапазоны; - откровенно корявая схема именования в стандартной библиотеке (сейчас уже не моден kernigan_and_ritchie_name_style, нынче народ всё больше в camelCase творит); - ситуация с препроцессором: макросы, инклюды, вот эти все вне-языковые штуки так просто разгрести и перейти на модули не выйдет; - наследие Си (сырые указатели, malloc/free, форматированный ввод-вывод с variadic-аргументами, C-style cast), которые ещё к тому же и записываются лаконичнее, да ещё и могут перехлёстываться с вещами из C++ - сколько новичков пыталось удалить выделенный через new указатель функцией free; - метапрограммирование, осуществляемое через побочные эффекты, Карл! И SFINAE ещё весьма умеренный пример, наверняка кто-то из присутствующих тоже видел тот мозгоразрывающий хтонический ужас, который позволял благодаря перегрузкам хранить в compile-time состояние. А ведь поддержка того же SFINAE внедряется в стандартную библиотеку, пишутся всякие mpl... Структура-метафункция считается чем-то нормальным. Называйте меня капризным, но метапрограммирование должно быть явным и интенциональным. А если его не удаётся сделать таковым, то кого нам надо поблагодарить? Обратную совместимость.
3
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||||
| 08.03.2016, 19:14 | ||||||||||
|
в чем "костыльность", причем здесь "легаси", и чем таким "идентификаторы со специальным значением" принципиально отличаются от "ключевых слов". ? в чем "костыльность", причем здесь "легаси" ? любой пользовательский тип, который определил функции-члены begin/end может быть участником данной конструкции. собственно, привязка к этим функциям-членам для того и была нужна, что бы единообразным способом организовать такую возможность. очевидно, что здесь нет места ни костылям, ни тем более легаси. что означает символ "диапазоны" в данном контексте. очевидно, что субъективные оценки не имеет ни малейшего отношения ни к костылям, ни к легаси. реализовать которую виндузятному компилятору не помешали ни инклюды, ни макросы. следовательно ваш тезис ошибочный. который изначально проектировался с прицелом их поддерживать: обратная совместимость с сишкой, и эффективность, что означает сочетание экономичности и быстродействия? видимо вы не отдаете отчета в том, какую глупость сморозили. взгляните на язык "D": глупость в действии. вопрос с легаси остается открытым: приведите конкретный пример, который иллюстрирует, как требование обратной совместимости с языком си мешает дальнейшему развитию языка с++ перспективы были оценены и узаконены. в настоящий момент метапрограмминг развивается, как в рамках функциональной парадигмы (std::enable_if, концепты с++17, и тп), так и в рамках императивной парадигмы. (constexpr) 1. в чем "костыльность", 2. причем здесь "легаси", меня интересуют объективные оценки и факты.
1
|
||||||||||
|
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
||||||||||
| 08.03.2016, 19:56 | ||||||||||
|
Готов принять ваши извинения за несправедливое обвинение во лжи. По поводу метапрограммирования через побочные эффекты: Да, метапрограммирование развивается, но "загогулины"-то до сих пор остались, и когда их переведут в явное описание и переведут ли вообще... Тот самый enable_if, который попросту обёртка над уродливой SFINAE, эту уродливость прячет лишь отчасти. В общем, примеры влияния легаси (а сюда входит совместимость не только с Си, но и с кодовой базой разной степени устарелости, которая по-прежнему должна компилироваться, и совместимость с уже принятыми ранее решениями, на которых уже кодовая база наработана и которые нельзя так просто взять и отменить) я привёл в достаточном количестве. Чтобы у читающих эти слова не возникло недопонимания, хочу подчеркнуть, что это не ворчание-бурчание впустую, и даже не критика C++. Я не утверждаю, что описанные моменты были ошибочными решениями. Это просто перечисление объективно возникших особенностей, продиктованных сложившейся ситуацией - необходимостью сохранять совместимость, огромную важность которой отрицать нельзя. Но нельзя и закрывать глаза на существующие трудности и уверять себя, что их попросту не существует. Так что не надо по прочтении этого текста набрасываться на меня как на врага, C++ не нуждается в том, чтобы его от меня защищали.
3
|
||||||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||||||||||||||||||||||||||||||||||||
| 08.03.2016, 21:25 | |||||||||||||||||||||||||||||||||||||||||
|
вы считаете, что for костыльный, потому что нельзя создавать переменный с такими именами? или что override костыль, потому что можно? http://rextester.com/NMTF25067
при чем здесь легаси? в чем костыльность? http://rextester.com/QCJ68826
библиотечные функции не нужны. как это разруливает компилятор - монопенисуальный фактор. мне не понятно, что такое "вне-языковые конструкции". это какой то бред. любая валидная с точки зрения языка конструкция является "языковой" по отношению к нему. 2. утрируя про виндузятную прагму я акцентрировал ваше внимание на принципе их реализации, а не на дизайне. дизайн там будет вполне себе типичный для модулей: #import bla bla bla мы прекрасно живем с препроцессором сегодня. я специально привел виндузятную прагму что бы проиллюстрировать вам: модулям он так же не помеха. виндузятная прагма - это факт, который на практике иллюстрирует момент. позвольте я объясню вам весь "ужас" препроцессорного легаси: среди настоящих ценителей искусства данный ужасс имеет название "не шаблонный шаблон" а по научному "нарушение ODR" для иллюстрации достаточно иметь проект из 3х файлов:
тем не менее применяют на практике, что бы достичь эффекта "как шаблон, только не шаблон". и это работает. просто потому, что компиляторы тупо забивают болт на все возможные эффекты. вот точно так же они забьют болт и случае с модулями. упоролся на макросах? ну сам себе злобный буратино. препроцессор - не помеха модулям. я даже не знаю, как можно объяснять такие очевидные вещи. гляньте область применения плюсов сегодня. ему всякие там шарпики/жавы в спину дышат. и почему это все таки выбирают плюсы? ключевой момент "не менее эффективные". с++ развивается, и предлагает не менее эффективные, но более развитые решения. что весьма красноречиво опровергает ваш тезис, что якобы мифическое легаси и костыли не дают языку развиваться. мои тезисы справедливы независимо от меня, и моего мнения. я понятия не имею кто такой Брайт. и понятия не имею, на кой черт вы сюда сейчас Александресску припахали. которую исповедуют классические шаблоны. исключительно у ребят, которые не осилили функциональную парадигму. здесь можно сколько угодно ругать "громоздкость" дизайна классических шаблонов, однако, ни один из хейтеров пока ещё не смог предложить более годный дизайн, который обладал бы такими же возможностями, и так же гармонично сочетался бы с другими императивно-оопнутыми частями языка. (все фантазии на эту тему в итоге приводили к пресловутой функциональщине, и громоздкости) однако не существует технических препятствий для внедрения каких то альтернативных технологий. например декларативный стиль: https://msdn.microsoft.com/ru-... y9xh3.aspx либо императивный: см. развитие технологии constexpr, и вывода типов: auto foo(auto) препроцессор и шаблоны. причем все очень в общих чертах. причем ни то, ни другое никак не мешают развиваться языку. фразы вида: ------------------------------------------------------------------------------------------- вот таким мог бы быть грамотный пример костыльного-легаси: локали/фасетки стандартной библиотеки . костыль: потому что из-за ограничений в архитектуре не способны обеспечить полноценную работу с текстом на разных языках проблема в том, что локаль торчит от фасеток, а фасетки - от трейтов. трейты оперируют отдельным символом. однако во многих языках одна буква может состоять из нескольких символов (немецкий, например) либо иметь ещё какие бы то ни было заморочки. правильно было бы оперировать понятием "строка" (нормализованная/ненормализованная), а не "символ". но из-за легаси исправить ситуацию уже не представляется возможным. слишком колоссальный пласт стандартной библиотеки пришлось бы править. слишком много клиентского кода при этом бы сломалось. вот и приходится пользоваться сторонними инструментами.
2
|
|||||||||||||||||||||||||||||||||||||||||
|
Вездепух
12930 / 6798 / 1820
Регистрация: 18.10.2014
Сообщений: 17,208
|
||
| 08.03.2016, 22:15 | ||
|
Но сейчас это явление достигло такого гигантского размаха, что все уже понятно: язык С++ осознанно и целенаправленно стирает границу между свойствами ядра языка (core language) и свойствами стандартной библиотеки. Я не буду говорить, что это плохо. Просто язык становится все менее и менее "честным", т.е. он приобретает большое количество интегрированного библиотечного поведения, навязанного свыше, а не создаваемого пользователем. Эта деталь - фундаментальное расхождение в дизайне языков С и С++.
1
|
||
| 08.03.2016, 22:15 | |
|
Помогаю со студенческими работами здесь
20
КВН - полный отстой? Круто это либо отстой? Ваш язык программирования - отстой Программа вычисления високосного года, сезона года по месяцу, количеству дней от начала года Обожаю фреймворк Qt, а продукция Microsoft - отстой Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Old Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|