C++20: C++ at 40 - Bjarne Stroustrup - CppCon 2019

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 ก.ค. 2024
  • CppCon.org
    Discussion & Comments: / cpp
    Presentation Slides, PDFs, Source Code and other presenter materials are available at: github.com/CppCon/CppCon2019
    -
    C++20: C++ at 40
    It is now 40 years since C++ (then called C with Classes) had its first non-research user. It is now 35 years since the first commercial release of C++. It is now 30 years since the start of the standards process.
    So what is C++? I will try to explain what's great about C++, C++20, as a modern language, not treating it as a layer cake of features. Imagine you have never heard of C, C with Classes, or C++11. How do classes, templates, and lambdas fit together? What have constructors and destructors to do with exceptions? What's in the standard library? How can we start using C++?
    Finally, I will make a few comments about how to get from older styles of C++ use to modern C++ and point to areas where we need to improve C++ further.
    -
    Bjarne Stroustrup
    C++: history, design, use, standardization, future; performance, reliability; software developer education;distributed systemsBio: www.stroustrup.com/bio.html
    -
    Videos Filmed & Edited by Bash Films: www.BashFilms.com
    *-----*
    Register Now For CppCon 2022: cppcon.org/registration/
    *-----*
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 55

  • @casperes0912
    @casperes0912 4 ปีที่แล้ว +481

    I study CS at the same university Bjarne studied at. My lecturers know him personally. Hell, one of my professors once phoned him directly to ask a question about C++... Turned out it was a bug and 3 weeks later Bjarne phoned back "Fixed it"

    • @casperes0912
      @casperes0912 4 ปีที่แล้ว +45

      I believe it was fixed for the GNU compiler; No clue what Bjarne actually had his fingers in at that stage, but it's my guess

    • @JohnDlugosz
      @JohnDlugosz 4 ปีที่แล้ว +66

      I've always noted that a large part of the success of C++ is due to Bjarne's personal nurturing of the first generation of users.

    • @JadeWinters02
      @JadeWinters02 3 ปีที่แล้ว +2

      Aarhus University || Cambridge

  • @Rocinante8
    @Rocinante8 4 ปีที่แล้ว +74

    "You want to compose your program from unique parts" so you don't have to solve bugs multiple times. Very succinct and memorable expression of this principle.

  • @AbbeyRoad69147
    @AbbeyRoad69147 4 ปีที่แล้ว +54

    YIKES!! He is far far FAR more practical than I imagined. So impressed!!

  • @thingsiplay
    @thingsiplay 3 ปีที่แล้ว +7

    I am not a cpp programmer and still watch this because of B. Stroustrup.

  • @ryze2663
    @ryze2663 4 ปีที่แล้ว +193

    the man, the myth, the legend

  • @epicalien50
    @epicalien50 4 ปีที่แล้ว +42

    Ellis and Stroustrup's The Annotated C++ Reference Manual textbook that I purchased in 1990 is the best investment I have made to sustain a Computer Systems Engineering career for another 30 years. Dollar sign emoji.

    • @pimpthyride
      @pimpthyride 3 ปีที่แล้ว

      It is a great book and makes a super interesting read.

  • @pierre-lucgagnon4137
    @pierre-lucgagnon4137 4 ปีที่แล้ว +126

    It's difficult to master C++, especially with its extreme added complexity of the last three decades (multiple inheritance, smart pointers, rvalue/movie semantics, template metaprogramming, concepts, etc.). It's also difficult to put all these ideas together in a professional setting. Bjarne convinces me that everything is there for a reason and is worth learning.

    • @NaumRusomarov
      @NaumRusomarov 4 ปีที่แล้ว +34

      use "advanced features" only when necessary. it's right there on the slides. :D

    • @Pianet
      @Pianet 4 ปีที่แล้ว +20

      C++ shouldn't be mastered unless you are interacting with a problem that requires it or you want scott meyers job. Pointers/Smart_Pointers/References/Move_semantics, Vectors/Arrays, and Classes/Structs are more than enough to deal with most problems. Once you have those down (meaning you understand what they mean in terms of hardware) learn only whats necessary to make your codebase more manageable.

    • @xtm8194
      @xtm8194 4 ปีที่แล้ว +25

      C++ was never for the faint of heart. They're working on it to make it simpler but the goal of C++ was always performance.
      "I'm not a great fan of garbage collection. I would like to put it out of business if I can." - Bjarne @32:27

    • @SrIgort
      @SrIgort 4 ปีที่แล้ว +3

      @Ziggi Mon what's the most common problem with these people that make you think that they don't really know c++?

    • @Phroggster
      @Phroggster 3 ปีที่แล้ว +8

      @@SrIgort There's a lot of people that understand the fundamentals of C++ (> hundreds of thousands), quite a bit fewer that understand the implications of those fundamentals (~tens of thousands), and only a select few (tens? hundreds?) that can layer those implications into a rapidly maintainable code base to achieve a predefined goal. All too often, those from the first or second group assert that they belong to the third, while those from the third (typically) assert that they have barely approached the second.

  • @arohChristian
    @arohChristian 8 หลายเดือนก่อน

    Incase you have not as a beginner cpp,
    Bjarne's programming and principles is really the best programming book you can ever get your hands on .
    He is a great teacher and very intellectual, though you can't expect less from a man that created a language like cpp 😊.
    But he pampers learners.

  • @rajakrovvidi4984
    @rajakrovvidi4984 10 หลายเดือนก่อน

    Thank you TH-cam, CppCon and Mr. Stroustrup

  • @crazyjose111
    @crazyjose111 4 ปีที่แล้ว +7

    Great insight, and inspirstion from the legend Bjarne himself! Great listen :)

  • @tjeanneret
    @tjeanneret 4 ปีที่แล้ว +38

    I love the ONION PRINCIPLE. I wish it could be applied by everybody, beginning with philosophers and politicians...

  • @hansvetter8653
    @hansvetter8653 3 ปีที่แล้ว +3

    Back in the 1960ths. the Software Programming world was divided roughly into Cobol for the business, Fortran for engineering and Algol for Research. Today you'll find C++ everywhere ... ! ...
    I'd say that the C++ user community today is in a way simply too big to fail. In general there are only two possible pathes for the evolution of any programming language ... you either start from scratch like Ken Thompson did with GO or you focus on improvements in the space of backwards compatibility like Bjarne Stroustrup did and do with C++ ...
    I think both approaches have their plus & minus points of view, but can perfectly coexist harmonically side by side. Congrats to Bjarne Stroustrup and the C++ user community for this new release of C++20.
    It sounds really promising!

  • @dk19888
    @dk19888 4 ปีที่แล้ว +3

    wow, so fast! thank you for posting the video!)

  • @christianm4906
    @christianm4906 3 ปีที่แล้ว +1

    Excellent talk.

  • @marianobeltran7387
    @marianobeltran7387 4 ปีที่แล้ว +6

    you are awesome!!

  • @glazfe8112
    @glazfe8112 2 ปีที่แล้ว +1

    Bjarne's blue book, while focusing on c++11, is still a valuable book to read. He uses OO in a simple yet powerful way.

  • @gabrielporto7179
    @gabrielporto7179 4 ปีที่แล้ว +7

    Nice!

  • @fd2824
    @fd2824 2 ปีที่แล้ว +9

    The more I learn, the dumber I feel.

    • @MikaelMurstam
      @MikaelMurstam 2 ปีที่แล้ว +2

      That's the dunning Kruger effect

  • @cevikmetalcovers
    @cevikmetalcovers 4 ปีที่แล้ว +8

    35:11 Yesssss

  • @janteubel7075
    @janteubel7075 4 ปีที่แล้ว +20

    I am the first! YES!!! :-) I love C++ :-) Thank you for uploading Bjarne's presentation!

  • @sephirostoy
    @sephirostoy 4 ปีที่แล้ว +18

    My wishlist for next standard:
    - UFCS or sort of: having the possibility to extend an existing closed class with new methods are the most common usage and is autocompletion friendly so a junior dev can see what methods are available.
    - Single statement lambda: something like: [] (a, b) => a < b expanded to something like [] (auto&& a, auto&& b) -> auto&& { return a < b; }.
    Just to make simple things simpler and less verbose.

    • @JohnDlugosz
      @JohnDlugosz 4 ปีที่แล้ว +2

      Your first point is handled, I think, by unified calling syntax. If obj.foo(x) is the same thing as foo(obj,x) then writing a non-member function can then be called as if it were a member. This has been discussed for many years but never voted in.

    • @p39483
      @p39483 2 ปีที่แล้ว +1

      @@JohnDlugosz x.f() -> f(x) mirrors a[i] -> i[a] commutation. You can write x.f().g() instead of g(f(x)) and you can write i[a][b] instead of b[a[i]]. I think it's a good idea. Even removing the dot and making function calls commutative across ( like array access is across [ would eliminate a lot of nesting.

  • @cpptoronto8473
    @cpptoronto8473 4 ปีที่แล้ว +8

    Great talk!

  • @moderncpp
    @moderncpp ปีที่แล้ว +2

    Bjourne stroustrup is a giant

  • @huangjun8576
    @huangjun8576 2 ปีที่แล้ว

    Nice talk, for using c++ almost 12years, i know c++ is much bigger than i thought before, and it move fast, i 'm still learning c++11.

    • @CppCon
      @CppCon  2 ปีที่แล้ว

      Thanks for sharing!

  • @gyohngpersonal
    @gyohngpersonal 2 ปีที่แล้ว +7

    How about adding convenient string manipulation functions that every other language has?

    • @JaapVersteegh
      @JaapVersteegh ปีที่แล้ว +1

      What string manipulation are you missing?

  • @andy5003
    @andy5003 3 ปีที่แล้ว +1

    i really look forwaard to the nekworking library not gonna lie

  • @ParadoxBassCube
    @ParadoxBassCube 4 ปีที่แล้ว +4

    1:01:39 shouldn't it be
    if (!pred(v)) co_yield v;
    ?

    • @user-cf1oo3pn3c
      @user-cf1oo3pn3c 4 ปีที่แล้ว +3

      very late reply, but just in case: the comment "Filter out (skip) !pred elements" could be rephrased as "Keep elements for which pred(elem) is true", which is what the code below it does. as an aside, `filter` in all languages (that i'm aware of) usually sticks with that convention.

  • @desertshadow72
    @desertshadow72 ปีที่แล้ว

    Does C++ have an equivalent to Python's conditional list comprehension?

  • @wettmarley
    @wettmarley 2 ปีที่แล้ว +3

    Where are all the web developers who think they are great LOL

  • @mprokgaming5854
    @mprokgaming5854 4 ปีที่แล้ว

    Wow

  • @samljer
    @samljer 2 ปีที่แล้ว +2

    C++ REALLLLY needs a proper library for GUI.
    .. I know what I just said... lol

    • @JohnWasinger
      @JohnWasinger 2 ปีที่แล้ว +6

      Look into the QT GUI framework

    • @MikaelMurstam
      @MikaelMurstam 2 ปีที่แล้ว +2

      That doesn't make any sense since a gui is platform specific and C++ is platform specific. So there can't be a general library

  • @Kashifiqbal60
    @Kashifiqbal60 3 ปีที่แล้ว +1

    Sir kindly teach me i will give you 100% of time for c++

  • @0cramoi
    @0cramoi 2 ปีที่แล้ว +13

    Bjarne says trans rights, nice!

    • @tommorello3871
      @tommorello3871 11 หลายเดือนก่อน +2

      why does this comment show up last