Лекция 12. С++20 и обозримое будущее

  Рет қаралды 5,609

PVS-Studio Ru

PVS-Studio Ru

Күн бұрын

Пікірлер: 14
@Simo_IT_channel
@Simo_IT_channel 10 ай бұрын
Уважаемый Филипп, прошло 4 года, пора бы уже новый курс сделать , шикарный плейлист, жду нового, с наилучшими пожеланиями!
@noname_2108
@noname_2108 2 ай бұрын
Жду выпусков по новым стандартам, отличный обзор и примеры!
@Budetov
@Budetov 4 жыл бұрын
Спасибо за цикл! Посмотрел с удовольствием!
@user-wu3vd7dd2r
@user-wu3vd7dd2r 3 жыл бұрын
честно говоря, всё жду что Филипп запишет продолжение, по 23 стандарту :)
@kpanat
@kpanat Жыл бұрын
Есть продолжение. Но 23 стандарта там нет. Собственно он уже вышел... Вот
@kpanat
@kpanat Жыл бұрын
Видимо придётся пересмотреть саму идею шаблонов. Потому что главный минут в том как раз что в качестве типа T можно протолкнуть всё что угодно... Но это положено в основу всех шаблонов... А все примочки приводят к усложнению кода тогда как его надо упрощать. Потому что если посмотреть тенденции то уже видно что никто ничего не понимает что там происходит, хотя вначале всё было понятно и просто... И дальше буде ещё хуже. Нужен качественный скачок, а не количественный. Т.е. мы должны придумать нечто новое не шаблоны, а что-то среднее между перегрузкой функций и шаблонами. Основное требований к этому новому 3: чтобы всё это упрощалось и уже на этапе создания мы могли делать только рабочие и валидные экземпляры, а не произвольные. 2 условие это всё должно быть намного проще. И 3-ее чтобы не надо было делать всё в хедерах и инстанцировать а в cpp файлах, компилить и включать в dll а потом из них тащить и не компилить вовсе а просто подгружать. ну или в статические. А пока шаблоны таковы, что их надо инстанцировать каждый раз компилить и пихать туда можно всё что угодно... Степанов конечно молодец что всё это придумал, но пришло время переработать его идею и придумать нечто получше. Идея концептов как раз наводит на эту мысль. Только идти надо не от ограничений а напротив написать некий набор допустимых типов и сразу его задать. И задавать его из подмножеств каких-то, которые надо определить из объединения которых типов которые надо задать изначально. Например числа, целые числа, числа с плавающей точкой, строки символы, булевы типы, массивы символов. Пора бы уже ввести строку как базовый тип как это есть во многих языках и работать с ним наравне с числами. А так же разделить символы и числа... и примочками тут не обойтись. Надо менять основания языка и концепцию шаблонов. Потому что она уже почти зашла в тупик. Любые её усовершенствования делают только хуже. Да просто тупо отказаться от идеи того что все функции глобальные а приравнять. В Паскале к примеру из которого вы стащили идею модулей которая стара как мир и ничё... Там же была изначально внедрена идея вложенных функций. Неплохо было бы отказаться от идеи нуль терминированых строк а перейти на строки с длинной. Они кстати тоже были в Паскале. Если вы стащили оттуда идею модулей, то почему не взять так же и идею строк с длинной?! И идею вложенных функций. Ведь паскаль как бы его не хаяли строго структурно ориентированный язык в отличие от С++. Существование Паскаля доказывает что так можно сделать и это будет работать. Да многие языки умерли по тем или иным причинам часто не имеющим отношения к качеству самого языка его плюсов и минусов а по некоторым левым стечениям обстоятельств, но идеи, положенные в их основу оч даже хорошие и глупо эти все наработк в течение десятилетий сбрасывать со счетов и заново изобретать велосипед... Например был такой ЯП как perl. Он умер потому что умер его создатель Ларри. Всего лишь... И Perl не развивается уже он застыл во времени. Потому что никто не смог поддерживать идеи Ларри слишком они сложны. Были многочисленные попытки и наработки но они не увенчались успехом. А ведь в основу Perl были заложены регулярные выражения. Они туда входят на уровне базового синтаксиса. И там они самые быстрые. И почему нельзя в C++ ввести регулярку на базовом уровне? А да, мы не такие гениальные и умные как Ларри. Это да конечно... так вот я о чём? Человека надо совершенствовать а не инструменты... А мы заботимся именно об иснтрументах а на человека забиваем. А человек не будет развиваться если не давать ему нагрузку на мозг. Если не тренировать мозги то он будет деградировать а потом альцгеймер и усё человек уже и не человек, а растение... А почему? А потому что мозг тренировать нужно. А мы что делаем? А мы убираем человеческий фактор. Нынешнее поколение программистов уже не то что писало код под ХР и тем более не то что писало код под DOS. Я думаю если их заставить это делать ничего не выйдет они не смогут. Там ведь всё продумывалось до мельчайших деталей с полным пониманием того что происходит и код был совершенный. А сейчас всё делают тяп ляп. А вся идеология развития программирования ведёт к этому. И не только... так что надо переделывать шаблоны господа, примочками тут уже не обойтись!!! Понятно? Действуйте! иначе через лет 5 максимум через 10 вы вобще будете писать практически неработающий и оч медленный код... А это будет конец... Он и сейчас уже плохой. А не поймёте, слишком сложный уже чтобы понять и в результате вы его пишете без понятия на обум. Попытки рассказать как это происходит не проясняют всей картины, мы ходим по верхам только, ясности нет. Раньше она была. А в таких условиях написать хороший код практически невозможно, разве что случайно... А главное это хороший качественной код. Всё остальное за нас сделает DevOps. Пусть каждый занимается своим делом а не всем подряд. Так успеха не будет. Нужна специализация. Вот...
@int32h60
@int32h60 3 жыл бұрын
я не могу понять, а по какой причине designated initialization появилась только в c++20, когда в C она была чуть ли не с самого начала? по-моему очень хорошая и удобная функция, а главное - используя ее, читабельность кода повышается главное ее реализовали в c++20, но все же некоторые ее возможности, которые были в C опустили что это: невозможность реализации или особенности синтаксического анализа? очень хотелось бы видеть эту функцию полноценной
@MrDimonsky
@MrDimonsky 3 жыл бұрын
21:35
@igorlevdansky4545
@igorlevdansky4545 5 жыл бұрын
Последняя лекция в цикле или ещё планируется?
@PVSStudioTool
@PVSStudioTool 5 жыл бұрын
в этом цикле последняя
@kep261
@kep261 3 жыл бұрын
@@PVSStudioTool А в чем разница концепта и интерфейса
@noname_2108
@noname_2108 Жыл бұрын
@@kep261концепт это булевое выражение вычислеемое на этапе компиляции (как я понимаю), а интерфейс это способ взаимодействия с объектом, например через базовый класс с каким-то виртуальным методом
@ivanaaa6049
@ivanaaa6049 5 жыл бұрын
Как- то все нечетко и размазано. Сложно зацепиться за мысль.
Лекция 9. Метапрограммирование в С++
1:39:44
So Cute 🥰 who is better?
00:15
dednahype
Рет қаралды 19 МЛН
Что-что Мурсдей говорит? 💭 #симбочка #симба #мурсдей
00:19
Chain Game Strong ⛓️
00:21
Anwar Jibawi
Рет қаралды 41 МЛН
СИНИЙ ИНЕЙ УЖЕ ВЫШЕЛ!❄️
01:01
DO$HIK
Рет қаралды 3,3 МЛН
Лекция 1.  Нововведения стандарта C++11
1:58:15
Лекция 4. Нововведения стандарта С++17
1:35:23
Дмитрий Кожевников - Модули в С++20 - правда или вымысел?
58:52
C++ Russia — Конференция по разработке на Cpp
Рет қаралды 6 М.
Михаил Матросов - Спецификаторы, квалификаторы и шаблоны
58:55
C++ Russia — Конференция по разработке на Cpp
Рет қаралды 15 М.
Лекция 2. Нововведения стандарта C++14
37:04
So Cute 🥰 who is better?
00:15
dednahype
Рет қаралды 19 МЛН