C++20: Reaching for the Aims of C++ - Bjarne Stroustrup - CppCon 2021

Sdílet
Vložit
  • čas přidán 15. 12. 2021
  • cppcon.org/
    github.com/CppCon/CppCon2021
    ---
    Out of necessity C++ has been an evolving language. I outline some early ideals for C++, some techniques for keeping the evolution directed, and show how C++20 comes close to many of those ideals. Specific topics includes type-and-resource safe code, generic programming, modularity, and the elimination of the preprocessor. Naturally, over the years, C++ has acquired many “barnacles” that can become obstacles to developing elegant and efficient code. That has been a recognized problem since the early days of C - Dennis Ritchie and I talked about it - so we must distinguish between what can be done and what should be done. The C++ Core Guidelines is the current best effort in that direction.
    ---
    Bjarne Stroustrup
    C++: history, design, use, standardization, future; performance, reliability; software developer education; distributed systems
    Bio: www.stroustrup.com/bio.html
    ---
    Videos Filmed & Edited by Bash Films: www.BashFilms.com
    Register Now For CppCon 2022: cppcon.org/registration/
  • Věda a technologie

Komentáře • 164

  • @georgesealy4706
    @georgesealy4706 Před 2 lety +67

    The "compiler is your friend," he said. I concluded this many years ago, and I still feel that way. Catching bugs in the compiler is much, much better than trying to deal with runtime errors.

  • @m1t0z
    @m1t0z Před 2 lety +98

    Good as always! Each time i watch talk from Bjarne or Herb I receive a huge boost of motivation to continue work with the C++. Thanks a lot!

    • @CppCon
      @CppCon  Před 2 lety +10

      Great to hear!

  • @FlopsPL
    @FlopsPL Před rokem +2

    Great video. Love C++. Remember when in 2003 colleagues from college where trying to force me to left C++ because will be no work in future in it (they program in C# or Java). Today is 2023 and I have a lot of job offers still.

  • @aqualili
    @aqualili Před 2 lety +16

    He's such a sweet guy, and a brilliant speaker and writer. When I was just starting out with programming I read the K&R and I felt lost when it came to writing bigger applications until I found PP&P. A brilliant book for somebody learning how to code, it takes you from writing fizz buzz and hello world to showing you how a big, full-scale application might function. The way he gets right down to the level of a beginner, writes with humor and humility... that's a true genius. Thank you Bjarne! You made a lifelong programmer out of me!

  • @colinmaharaj
    @colinmaharaj Před 2 lety +23

    28:42 Tell me about it, A consulting group was hired to convert some ASN.1 data to CSV and did it in python. It took 2 mins to convert 1 file. There were thousands of files a day. It took 2 days to convert 1 day of ASN1 data. I redid it in C and took 10 seconds per file.

  • @Marius-vw9hp
    @Marius-vw9hp Před rokem +2

    3rd edition of «A tour of C++» is out. I have read it, and can recommend it to anyone coming from another language to C++ 🎉

  • @StonkeyKong
    @StonkeyKong Před 2 lety +84

    Such a great talk, Bjarne is a phenomenal speaker. Yay CppCon 2021!

  • @vladvesa8296
    @vladvesa8296 Před 2 lety +4

    They invented types because without them it was a mess. Now we have javascript. Great talk, thanks!

  • @yyymlekoxD
    @yyymlekoxD Před 2 lety +9

    Sometimes I wonder why C++ evolves so slow and every modern/popular concept appears in cpp standard much later then in other languages - now I understand what is the idea behind that. Very good talk :)

  • @yuzhushen6505
    @yuzhushen6505 Před 2 lety +8

    Interesting to watch a mastermind talking about some core principles guiding the long journey of improving the C++ language.
    This is inspiring for people designing and developing any complex system.

  • @andmefikri7555
    @andmefikri7555 Před rokem

    C++ have evolved beyond what people have realized. I often encounters thinking of C++ that still stuck in the old fashioned way. This is particularly prevalent with connotation of C++ with object oriented. This talk has proven that C++ is more than that. Just to name a few, functional programming, generic programming, parallel programming, and now with concepts, co-routines, and networking.

  • @jlaustill
    @jlaustill Před 2 lety +3

    My first hello world program was in 1992 in Borland C++ 1.0. I had no idea who Bjarne was at that time, or how much he would influence my life and career. I've since gone through many other languages and am currently doing typescript for a living. Watching this presentation makes me realize how much Bjarne has influenced me and how I'm constantly trying to bring the same concepts to my professional work. Especially separating the allowed from the "good" in the typescript world. I still enjoy my c++ side projects way more, and look forward to my stm32 projects after hours.

  • @maximchetrusca3301
    @maximchetrusca3301 Před 2 lety +1

    He is 71 yet still a brilliant thinker

  • @shavais33
    @shavais33 Před rokem +1

    Omigod! Bjarne agrees with me about #includes! I have felt this way for decades! (Gee, it only took 7 months for me to end up watching this.)
    The thing that bugs me most about included headers is that you can write code in your own program, that should compile and is acceptable C++, but which causes code in some header that you must include (system headers, run time library headers, various external library headers) to break, along with anything and everything that depends on those headers, thus causing a huge cascade of spurious errors related to that breakage that can easily make finding the actual problem a bit like trying to find a needle in a haystack. I'm not sure if the module system can solve this, but if it can.. that would be huge. If it can also substantially reduce compile times, that would be enormous.
    Bjarne's going to eliminate all my reasons for using any other language! =D

  • @VivekNa
    @VivekNa Před 2 lety +8

    Bjarne is someone who can always make you think less emotionally and more pragmatically about languages.
    He's really seen it all

  • @Fetrovsky
    @Fetrovsky Před 2 lety +1

    I love that he used my birthday as a sample date (41:00).

  • @sukivirus
    @sukivirus Před 2 lety +13

    Yay I am so happy Bjarne will be writing the PPP book 3rd edition. I am so excited. Please release it soon :) I want to learn about meta programming & parsing in the new edition so much. :)

    • @devon9374
      @devon9374 Před rokem

      What do you think of the 2nd edition?

    • @talesvinicius598
      @talesvinicius598 Před rokem

      ​@@devon9374 i know is a month later from your question but the second edition of PPP is a great book and you can learn a lot from it

    • @Marius-vw9hp
      @Marius-vw9hp Před rokem

      its out. did you read it yet?

  • @yash1152
    @yash1152 Před rokem +1

    7:04 compatibility (with C?) is hard
    11:41 some of the incompatibilities came from C
    13:18 RAII - hmm, remember this word from the Kate's talk on "Stop teaching C"
    22:34 general rules for D&E (devt & evolution) of cpp
    33:33 'will watch later
    35:17 OO , generic, functional programming
    37:51 what does dynamic dispatch means?

  • @josephnoonan5255
    @josephnoonan5255 Před 2 lety

    I met Bjarne back in 1993. He came to my company and we sat together and I showed him the combined methodology we had created that used a bit of Rumbaugh, Bosch, and Jacobsen. Nice man.

  • @DardanAirlines
    @DardanAirlines Před 2 lety +1

    Back in 2003, it seemed like everyone I knew at the university wrote in Java, which IMO sucked. However, all my professors still accepted C++98 homework solutions. Thank the heavens!

  • @pedromiguelareias
    @pedromiguelareias Před 2 lety +2

    Very lucid and self-conscious presentation. Listening to Bjarne is always a special experience.

  • @madyogi6164
    @madyogi6164 Před 2 lety +2

    Decided to learn C++ in 2005/6 or so. Learned it (bold claim) and became quite fluent in writing own works. Yes, Bjarne made my world quite more interesting. It's 2021 now. I'm glad I know and can handle the code. Still, I have a feeling, I spent last 10 years under the ice. Language evolved!!!
    Preproocessor - that's the thing I got stuck as well. Mostly because of OS dependencies. Great to watch the thing. 2 hours pass by like 20 minutes...
    0:37 Guru meditation...

  • @isakhammer6558
    @isakhammer6558 Před 2 lety +7

    He is talking about so much different abstractions and minor problems. What I really is missing is a good package manager which makes it easy for me to use code other people have written without dying myself compiling and moving bin files around.

    • @askeladden450
      @askeladden450 Před 2 lety +6

      Conan works pretty good for me. ofcourse it would be infinitely better if there was a standardized one.

    • @yuewang8887
      @yuewang8887 Před rokem

      xmake can solve your problem

  • @ohchristusername
    @ohchristusername Před 2 lety +4

    Inspiring as always! Makes one feel good about the future trajectory of the language and community.

  • @Acetyl53
    @Acetyl53 Před 2 lety

    I used his book as a reference while learning C++. Helpful.

  • @NonTwinBrothers
    @NonTwinBrothers Před rokem

    Pretty in-depth talk. You can tell he's a Real Programmer™️

  • @ruadeil_zabelin
    @ruadeil_zabelin Před 2 lety +87

    It is high time to break ABI so that we can finally move forward again.

    • @Xeningem
      @Xeningem Před 2 lety +1

      I'm pretty sure we can move forward without breaking ABI

    • @TNothingFree
      @TNothingFree Před 2 lety +2

      Companies have difficulty to go from C++ 11 to C++ 20. You can't imagine the mountains of legacy code people maintain over the world.
      But I can see a C++ 2.0, maybe it will happen in the future.

    • @casperes0912
      @casperes0912 Před 2 lety +1

      That feels like a bad idea. If we break ABI and you build a shared library with the new version and push that updated shared library as an update, you're going to be bricking everything that links against it

    • @vladimirkraus1438
      @vladimirkraus1438 Před 2 lety

      Breaking ABI? That is not any problem... you just need to recompile. But to get more modern language features, you would have to break the code backward compatibility, which would require all programmers to rewrite their code significantly. Which is very very hard to do. Close to impossible.

    • @XiyueDeng
      @XiyueDeng Před 2 lety +1

      Here's a solution: provide improved facilities using new names :)

  • @JohnDlugosz
    @JohnDlugosz Před 2 lety +2

    20:20 As I recall, dynamic_cast was not available in 1984. It came as part of the feature set of RTTI. I'd like to say that was in Cfront 2.0 (circa 1987?) but I seem to recall that early native compilers on the PC did not have RTTI at first, so I think it was added even later than that.
    Ah: in _The Design and Evolution of C++_ he reports, "These new cast operators were accepted at the San Jose meeting in 1993".
    Now that I think about it, the use of template-like notation means that it must have come after templates were added.
    An aside: before templates were available in the compilers I had to use, I wrote my own text processor that was better than what #define could do, specialized for this purpose. It was basically like a multi-line #define that substituted in the text with parameters, and where that wasn't quite good enough I made special rules to do what I needed. It was only for parametrized types (containers!), nothing like metaprogramming.

  • @AngeloMastroberardino
    @AngeloMastroberardino Před 2 lety

    Fantastic changes. Very exciting times

  • @bruteforce42
    @bruteforce42 Před 2 lety

    Loved the comment about "Echo Delay".

  • @innovationscode9909
    @innovationscode9909 Před 2 lety +1

    Thank you for this...cpp is magical

  • @ares-ju1yy
    @ares-ju1yy Před rokem

    love you Bjarne Stroustrup

  • @borjarojo
    @borjarojo Před 2 lety

    54:30 This is easily the most important property that concepts have which makes them so powerful

  • @vasylshcherban4825
    @vasylshcherban4825 Před 2 lety +2

    Amazing talk! Amazing vision! Keep it going!

    • @CppCon
      @CppCon  Před 2 lety +1

      Thanks so much!

  • @trejohnson7677
    @trejohnson7677 Před 2 lety

    That bit about PhD echelon programming languages was a pretty gnarly jab at Lisp.

  • @MrSparc
    @MrSparc Před 2 lety +2

    I would have liked to have been able to ask Bjarne about support for asynchronous I/O events. C ++11 finally introduces std::thread that unifies the threads use in cross platforms after years of pthreads/winsock/winsock2 saga , but still there is a lot missing in that direction as is the case with I / O events.
    For example, the simple fact of reading an asynchronous TCP socket you have to implement the notification of the handle using select / epoll / overlapped I/O according to the operating system, create an event loop in a thread, etc. . In every single C++ project you have to reinvent the wheel with a huge boilerplate for this task, even using 3rd party libraries like libuv.
    In Rust you have async i/o runtime as Tokio, but in C++ you have you own keyboard and your compiler to write all yourself. I'm working in C++ as software engineer for the last 9 years.

  • @krystianzdziebo2336
    @krystianzdziebo2336 Před rokem

    Looking forward for C23 and C26😄Thank you.

  • @ABaumstumpf
    @ABaumstumpf Před rokem +4

    Sadly C++ seems to got more and more in the direction of the ivory-tower that Bjarne said he wanted to avoid.
    Reading up on why we have consteval, constexpr and is_constant_evaulated and how they interact just results in headache and makes you wonder if the people deciding this are sadistic or just malevolent. Similar when you look at how they have butchered reflection.

    • @SnakeEngine
      @SnakeEngine Před rokem +2

      See it as options, not necessity. If you don't like something, don't use it.

  • @tarasov9794
    @tarasov9794 Před 2 lety

    Wonderful talk.

  • @gongfei
    @gongfei Před 2 lety +27

    I love cppcon! 🤣

  • @10100rsn
    @10100rsn Před 2 lety

    Static reflection is one of the more important things that should be talked about...

  • @abhilekhgautam5963
    @abhilekhgautam5963 Před rokem

    Amazing talk as always

    • @CppCon
      @CppCon  Před rokem

      Glad you think so!

  • @samuelec
    @samuelec Před 2 lety

    Great as usual! except for that shoes which I won't be able to forget 😅

  • @_elkd
    @_elkd Před rokem +1

    And he begins like "So.... Ah, I am going to talk a little bit about C++"

  • @brandonlewis2599
    @brandonlewis2599 Před 2 lety

    I wish I hadn't sold my copy of "D&E CPP". I remeber reading some of this in the late '90s, but it was way over my head. All I remember is the phrase "I find C++ incredibly enjoyable to use", and thinking that, whoever this Bjarne Stroustrup is, he might be the only one who feels that way. But now I think I would be able to understand it. I guess I'd better scare up a recent copy.

  • @gyorgyszekely4769
    @gyorgyszekely4769 Před 2 lety +1

    Bjarne on layered architectures: "The reason I call it the Onion Principle is that each time you peel a layer off you cry more!" 😀

  • @jimwinchester339
    @jimwinchester339 Před 2 lety

    Can't say I agree about ELIMINATING #include (mainly because there are still things that require macros, as well as non-C++ code that make use of the C preprocessor (only, as a stand-alone step): but I'm OK with providing an alternative to it, such as 'import'.

  • @JohnDlugosz
    @JohnDlugosz Před 2 lety

    re "Apologies for the name RAII"
    I've taken to writing it as RAII/RFID which brings equal attention to the _destructors_ which I think is one of C++'s greatest features. Of course, the name RFID is already in use for something else... and nobody complains about it. But what is the difference between RAII and RFID? Is one more poetic or have a nicer cadence? I really don't see what the issue with with RAII, as it's just like any other 4-letter initialism.

  • @gnarfgnarf4004
    @gnarfgnarf4004 Před 2 lety +4

    I have written C++ code since 1995. Most of this stuff is completely over my head. I finally started using STL a few years ago. The problem is I don't understand the benefit of the other, newer features.

    • @pedromiguelareias
      @pedromiguelareias Před 2 lety +3

      You're not alone.

    • @kwanarchive
      @kwanarchive Před 2 lety

      The other new features is to help people write things like the STL but in much simpler - and at the same time, more efficient/performant - ways.

  • @JoeSteele
    @JoeSteele Před 2 lety

    I wish the bobblehead shown was available online! I looked but was unable to find and I could not make it to CppCon 21.

  • @linkernick5379
    @linkernick5379 Před 2 lety +1

    1:26:33 I'd like to notice that Rust was mentioned in this question: "How do you see C++ interacting with other languages - languages like managed languages or language like Rust, will it pickup features, ideas or concepts from the other languages or how is the relationship?"
    Bjarne obviously understood the challenge of integration with Rust's ownership model and knows that C++ currently is not capable to express such things.

  • @kaleygoode1681
    @kaleygoode1681 Před rokem

    Recently retired after a career in nuclear/military C++ now wishing I was starting my career in 2023! 😂
    STL Hazard Pointers and Wait-free containers would be awesome... 😘
    Proof-testing that code is something that should only be done once by humanity! 😂

  • @RishabhRD
    @RishabhRD Před 2 lety +25

    Hey why is not public for all yet

  • @notinlist
    @notinlist Před 2 lety +1

    31:22 What is the source of this graph about "Rough estimate of the number of C++ Users"?

    • @elliott8175
      @elliott8175 Před 2 lety

      That graph seems very misleading. I also imagine that the total number of developers grew a lot during the dot com boom.

  • @Lion_McLionhead
    @Lion_McLionhead Před 2 lety +4

    It feels like it's getting more bloated & slower to attract more users, but unless the compiler forces you to use the latest feature of the week, people are just going to keep writing 1980's style C with it. Lions still call pthread functions & printf in C++ programs.

    • @askeladden450
      @askeladden450 Před 2 lety +4

      I really don't get this argument? how is it getting bloated? if you don't want to use a feature, then it won't cost you anything. and slower? maybe you are one of those people who confuse performance cost of OOP with C++. you can write perfectly good functional or DOD style code that runs just as fast, or faster than C.

  • @TheOnlyAndreySotnikov
    @TheOnlyAndreySotnikov Před 2 lety +1

    37:07 Technically, you cry more not when you peel a layer, but when you cut across a layer.

  • @yunlongliu9726
    @yunlongliu9726 Před 2 lety

    36:31 wise. Especially when you have had some sort of “full stack” experiences.

  • @lexsanderz
    @lexsanderz Před 2 lety

    He's so active.

  • @MR-cp4sj
    @MR-cp4sj Před 2 lety

    It’s funny to see certain things from c# making it way into cpp.

  • @victorzedwings
    @victorzedwings Před 2 lety

    Good book, but surprisingly, when I began to read it, I had already understood most of the underlying internals.

  • @annasofienordstrand3235

    I have moved away from using C++ for the most part (still use it when writing libraries that depend on CUDA), but I appreciate Bjarne's perspective. I hope compiler support for features like modules isn't too far away.

  • @KheraShanu
    @KheraShanu Před 2 lety

    what according to you is the best place to start learning CPP without getting bored?

    • @elliott8175
      @elliott8175 Před 2 lety

      Just solve problems. The tricky bit is getting problems that are a (small) level up, and are nicer to solve using c++ features. I first learnt through uni projects, but the SPOJ website isn't bad.

    • @Ryan-xq3kl
      @Ryan-xq3kl Před rokem

      have a goal, you will not achieve everything you want to in c++ right away. that is ok, as you learn exactly how to build your program implement its smaller features in c++ and slowly you will build up a fast memory slim and safe program that can be even further optimized for safety or performance. it is a marathon not a sprint.

  • @skilz8098
    @skilz8098 Před 2 lety

    At about 37:00 when he begins to talk about the Onion Layers where the deeper you go, the more you tend to cry... "Oh no Assembly". Well, that may be true as an Onion can cause you to tear up, but the juice is oh so sweet... yea, Hardware Intrinsics. At least we didn't have to do binary opcodes manually, then it might turn out to be too bitter.

  • @lepidoptera9337
    @lepidoptera9337 Před rokem

    C++... the language of the stickler. ;-)

  • @yash1152
    @yash1152 Před rokem

    3:39
    > and one of the things i learned was that they had this idea that innovation was
    the combination of invention and development that is it's not enough to
    have an idea you actually have to work on making that into something real and useful

  • @korcanucar5395
    @korcanucar5395 Před 2 lety +2

    it is horrible C++ is evolving towards being everything except c++ . Long live cpp 11 .

  • @FalcoGer
    @FalcoGer Před 11 měsíci

    You say we got coroutines and ranges and all that stuff. But half the compilers don't implement that, and the other half don't implement the other stuff. We "got" format strings in c++20, but yet no compiler library provides them still, 3 years later, even with the fmt reference implementation available. What gives? I don't think it's fair to say that we "got" something, just because the standard specifies what it's supposed to do but nobody actually provides an implementation, or only 1 out of 3 major compilers does. We didn't get anything until we can write it in code and it compiles. We "got" #include in c++23, and yet somehow, I can't include it in neither clang nor gcc, even with -std=c++23. Clearly we didn't "get" it, despite being explicitly listed in the c++23 standard. We should stop lying to each other. You say you use modules, "import std;". That doesn't compile with neither gcc 11.3 nor clang 17 with "import does not name a type" or "Module 'std' not found". So I consider that we don't "have" modules, even with -std=c++23 despite the fact that we "had" them since 2020. I don't know how you managed to compile that, but I'd love to know what compiler you use. So 44:13 we do not have those things. We never had them. I don't have them, and I do use the latest versions of clang available, but I can't install gcc 13 because my system complains, so I use 12, which is still 3 years newer than this talk.

  • @framestomind7548
    @framestomind7548 Před 2 lety +1

    Hi, I am new to programming and wonder some stuff, as we go into a more and more AI based future where small tools and gadgets = hardware are programmed to read and understand our behaviors and patterns I got more interested to program and design AI based tools and devices for future generations and create AI environments in smart cities and smart public areas…
    is C++ the language of choice to program both hardware and such AI tools, devices and gadgets, and perhaps also hack them if needed or for fun?!
    Or is Python and R much better to focus one’s time on learning now?
    Please share serious replies based on work experience and understandings of tech and programming…
    Thanks a lot for anyone taking the time to reply a programmer student struggling with computer science!
    😅🙏🏻

    • @alexeyl22
      @alexeyl22 Před 2 lety

      I started with BASIC language, then Pascal, then C. Use whatever works for you at that moment, and good luck.

    • @dekutree64
      @dekutree64 Před 9 měsíci

      Haven't we known since at least the 60's that the rise of AI would be a disaster? Don't feed your creative energy to it.

  • @zeroxia
    @zeroxia Před 2 lety

    How can I buy that souvenir?

  • @optimizt8555
    @optimizt8555 Před 2 lety +1

    Great talk as always, but now I'm jealous that someone has one of those signed Bjarne bobbleheads.

  • @Fetrovsky
    @Fetrovsky Před 2 lety

    Is there a C++20 version of "The C++ Programming Language"?

    • @mfkman
      @mfkman Před 2 lety

      Yes. Since C++11 there is a new version every 3 years. Next release will be C++23

    • @digitalsapiens1518
      @digitalsapiens1518 Před 2 lety +1

      @@mfkman I think he's referring to the book "The C++ Programing Language".

  • @1aggin_5amurai
    @1aggin_5amurai Před rokem

    What's echo delay?

  • @Daniel_Zhu_a6f
    @Daniel_Zhu_a6f Před 2 lety

    so cpp will become something like rust?

  • @sidsarasvati
    @sidsarasvati Před 2 lety

    ❤️❤️

  • @badasahog
    @badasahog Před 2 lety +1

    The reason I find exceptions to be useful is because you can jump down multiple scopes. I don't understand why there isn't a better way to do that without exceptions

    • @Daniel_Zhu_a6f
      @Daniel_Zhu_a6f Před 2 lety

      i find monadic errors much more explicit and simple, because all possible outcomes are hard-coded into the return type of a function. they are much faster than exceptions. and it is possible to implement scope/call stack propagation with zero runtime overhead.

    • @ivanonyshchenko
      @ivanonyshchenko Před 2 lety

      @@Daniel_Zhu_a6f could you provide any references please

  • @csibesz07
    @csibesz07 Před rokem

    Seems counter intuitive that so many rely on C++ and it's so slow to evolve.

  • @mytech6779
    @mytech6779 Před 2 lety

    I have the swan book, and my main critique is that it should be more concise, it rambles a bit and so I feel like the amount of knowledge gained per unit of reading is insufficient. (I mean 45 pages in before "Hello World"...)
    The author can reasonably assume that someone interested in programming already has some awareness of the role computers play in the world, and so background information should be limited to a quick overview with keywords that are useful for additional research.
    I tend to be partial to more dense and focused instructional materials, as personal preference.
    The book could be smaller, cheaper and less imposing for beginners, who inevitably see this as a hobby and have time constraints; or make it the same size and expand into more intermediate to advanced content.

  • @atlantic_love
    @atlantic_love Před 2 lety

    I never could figure out to write GUI apps in C++. I guess I'm dumb.

    • @xybersurfer
      @xybersurfer Před 2 lety +1

      usually you use a library with predefined controls to simplify things. some IDEs have built in GUI designers. also, compared to console applications, typically the flow changes from always knowing which line you are on, to handing over control to the library (or the OS) and your functions being called only to handle events. i struggled with this change of flow when i first learned about GUIs

  • @gnarfgnarf4004
    @gnarfgnarf4004 Před 2 lety

    Seven-digit (or is it eight?) numbers with no commas (31:50) shows poor judgement.

    • @Ryan-xq3kl
      @Ryan-xq3kl Před rokem

      if you cannot inject your own commas into a small string of numbers visually maybe coding will be too difficult for you. I can help, start from the right side and add a comma after every three numbers you hit going left

  • @dsouflis
    @dsouflis Před 2 lety +1

    Rumors of C++'s demise have been greatly exaggerated

    • @peterisawesomeplease
      @peterisawesomeplease Před 2 lety

      I give it 50 years until no new projects are created in it. But also Rust is clearly better if you don't count the cost of missing libraries, training programmers, and legacy code.

    • @Ryan-xq3kl
      @Ryan-xq3kl Před rokem

      @@peterisawesomeplease rust is not clearly better its clearly easier to write, that is only one level of better.

  • @sirajoomohammed3052
    @sirajoomohammed3052 Před 2 lety

    When you build in silence... they don't know what to attack. 3:45

  • @DingoRunner
    @DingoRunner Před 2 lety

    He was making great jokes, I wasn't people laughing?

  • @victorzedwings
    @victorzedwings Před 2 lety

    34:00 must be *ECO* , not the echo.

  • @waldolemmer
    @waldolemmer Před 2 lety

    Tough crowd

  • @user-sf8mj5wh2n
    @user-sf8mj5wh2n Před rokem

    17:00

  • @dallasclarke
    @dallasclarke Před 2 lety

    40 years on and still known bugs in the system...

  • @kungfooman
    @kungfooman Před 2 lety

    TLDW does it support multimethods and multiple arguments without most ugly template hacking yet?

  • @alexeyl22
    @alexeyl22 Před 2 lety +2

    Great talk. Inspiration for life. C++ should move slow.
    Rust is garbage BTW 😂

    • @Phantom-lr6cs
      @Phantom-lr6cs Před měsícem

      rust is ugly mess like pascal and ada are . both are memory safe yet ugly as hell and both existed before rust yet no one loves them almost cause they are to ugly

  • @laxibkamdi1687
    @laxibkamdi1687 Před 2 lety

    Seems like c++has learned a lot from rust

  • @ReinisLusis
    @ReinisLusis Před 2 lety

    I have a feeling for a while that C++ has become too complex to be usable by regular programmers. I think that problem is with references, r-value references, pointers, std::shared_ptr. Is it possible in C++ to write a function / class that would work well with both direct types, references, r-value references, shared_ptr, regular pointer? As a software developer I should not care (at some level) about my function accepting std::string&& or const std::string& or std::string* or std::string - just string should be enough. At some point this language has lost itself ... it is not moving closer to high level - feels just opposite. But is is just me with my limited experience with C++.

  • @thodono7466
    @thodono7466 Před 2 lety +1

    Seems many people want him to comment on rust

  • @TheNoodlyAppendage
    @TheNoodlyAppendage Před 2 lety

    Honestly as a longtime user of both c and c++ 99 percent of the new features are pretty much useless. The removal of inline assembly was completely bullshit . Intrinsics are not the same as you cannot force a specific encoding that may utilize machine specific behavior.

    • @askeladden450
      @askeladden450 Před 2 lety

      a better statement would be 'useless for ME'. because many of the newer feature are the very reason I still use c++ compared to languages like Rust.

  • @samferrer
    @samferrer Před 2 lety +1

    Yet, I do not see a reason why I should use C++

    • @Ryan-xq3kl
      @Ryan-xq3kl Před rokem

      easy performance optimization, resource safety, zero overhead, no garbage collection, strict type safety, extremely thorough external and standard library support, backwards compatibility, platform portability, and to learn about the machine you are using every day.

  • @Atameow
    @Atameow Před 2 lety

    "look at this code, it's really complicated, you don't understand it, I understand it so I'm smarter than you"
    People who do this in my college classes and work will not succeed in the real world. There's a few of them where I've worked in IT/development and their income reaches a ceiling quite quick. We just use them as (help desk/code) monkeys.

    • @devnull1013
      @devnull1013 Před 2 lety

      This is me, and sadly you are very right.

  • @jphvnet
    @jphvnet Před rokem

    I hate those Ugly_way_of_naming things

  • @tw7522
    @tw7522 Před 2 lety

    modules and coroutines are A DISASTER!

    • @dekutree64
      @dekutree64 Před 9 měsíci

      Yeah, coroutines are useful enough to be the "killer app" for these new C++ standards, but even with experience using other implementations, I can't make heads or tales of the cppreference page about them. It will be hard to educate new people.

  • @qm3ster
    @qm3ster Před 2 lety +2

    Rust

    • @peterisawesomeplease
      @peterisawesomeplease Před 2 lety

      Pretty much. I don't really see c++ and rust as so opposed anymore though. They are heavily borrowing ideas from one another. You can almost just think of Rust as C++ if it did not have to deal with backwards compatibility. The aims of both languages are pretty similar now days. There used to be more adament C++ is still fundamentally better than rust people out there. But they are getting harder to find. Most c++ devs are open to it just don't are constrained by legacy.

    • @richardrouge8736
      @richardrouge8736 Před rokem +1

      @@peterisawesomeplease I tried to find interest in Rust but reading rust code is like contemplating IOCC submissions. No clue about the global picture. Worst part is macros.

  • @DrumMeister
    @DrumMeister Před 2 lety +1

    Looks like most of the things C++20/23 tries to integrate is already part of Rust. Shouldn’t we all try to move to Rust instead of continue building on top of an ancient language full of complex legacy structure? Do we already see a shift in the community towards Rust? What I did miss in this presentation is the tooling (cargo level), something he mentioned maybe once, and far more readable compiler errors, which is really a pain when using composite templates.

    • @askeladden450
      @askeladden450 Před 2 lety +2

      for people to move to a new language, the benifits it provides should be significant enough to warrant the migration. and rust doesn't do that currently. I really like the rust philosophy but the things that make me personally keep to c++ is that rust still lags behind in terms of meta programming and custom memory allocation support is minimal. and to some people, the safety guarantees it gives just gets in their way as opposed to the c++ philosophy of 'do whatever you are capable of doing'. add to this the fact that the c++ library ecosystem is massive and the language is actually progressing at a steady pace at the moment, I don't see rust overtaking c++ within the next decade atleast.

  • @thevinn
    @thevinn Před 2 lety +33

    The Directions Group of which Bjarne is a part, listed networking as an important component of the standard library. But no mention of it in this keynote. Networking TS has now been effectively killed off by Eric Niebler, Kirk Shoop, Lewis Baker, Bryce Lelbach, and nVIDIA. They are in control of what std networking will look like. In my opinion, WG21 no longer represents the C++ community.

    • @bjarnestroustrup7067
      @bjarnestroustrup7067 Před 2 lety +54

      It's not quite that simple. Wait for the Committee fireside chat.

    • @friedkeenan
      @friedkeenan Před 2 lety +32

      It's so strange to see you everywhere regarding C++ voicing your displeasure about sender/receiver stuff. I get that decades of effort have gone into the NetTS + its base of ASIO, but surely there's a more professional, level-headed approach to deal with it than going around throwing a bit of a fit, copy-pasting the same names in several places?

    • @asuasuasu
      @asuasuasu Před 2 lety +5

      what does this have to do with C++20?

    • @cppmsg
      @cppmsg Před 2 lety +6

      Could you please recommend a boost or other networking library that may some day be adopted? For example asio? or is there something more modern, or with a better approach? I want to learn modern c++ networking and am tired of waiting for WG21, but don't want to have to learn one and then have a radical switch when/if WG21 acts.

    • @XiyueDeng
      @XiyueDeng Před 2 lety

      Just to point out it was actually listed on slide 57 (around 1:04:15), though Bjarne didn't actually get to talk about it.