A technical interview with the creator of C++, Bjarne Stroustrup

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
i'm piano stonestop i'm the designer and original implementer of c plus plus hey everyone james murphy here this is a joint interview that i did with tom from context free we're interviewing bjarna strausstrup creator of c plus plus i can tell that bjarna deeply cares about the language and about the people who use it so please enjoy his perspective once you finish this video don't forget to check out tom's channel context free where you can find the other half of the interview even back in say like 2014 you're already talking about things like concepts and modules and ranges which are only now being implemented in c plus 20 and in 23. so my question is for today what are those things that you're thinking about for you know c plus plus 32 okay uh 32 is probably a bit far in the future for me but uh let me just point out one thing i have to start talking to convince people that certain things are important even today um there's lots of people that don't quite see the step that concepts give to the user templates and similarly today i'm having a lot of trouble getting people to understand the code machines really are not just cool and such they are also important and one of the things that i hope for c plus plus 23 is to get better standard library support for core teams to make it easier to use them currently they're sort of an expert level uh entity and that's not what they're meant to do it's very easy to write with code teams for the things where you really need a stream of data generated or pipelined it's much easier to write coaching code than it is to write it with you managing the state and saving it restoring it again it's a simplification apart from that it runs faster but people have to learn that and they're not going to learn it till they get the uh support from the library that they deserve okay then i end up talking about things for many years before it happens um and i can tell about what i'm thinking about now but this is by definition half bit please remember that of course of course um so i would very much like to see uh static reflection that is reflection is a dynamic reflection is basically your code walks or a graph structure and does something and you you lose essentially all type shaking you you lose the ability to understand the code because it's it's basically running a little interpreter in the background and if there's bugs in what you're doing where there's bugs in what you're doing it's not not strongly typed so i would like to get the effect of that without the runtime aspect moving that kind of runtime stuff through compile time so basically i want to say i have a program here generate for me json reader and writer for these three times and um there's been work going on about that it seems have stopped a bit just now we have to remember there's a pandemic going on and it's it's hard to meet it's hard to talk uh the design of major features to support new ways of thinking and new ways of writing code is you you need you need face to face in my opinion and i'm still dreaming of building these distributed systems that's probably what you're when when you say 36 that's probably where we're going with that maybe i can build the system i was trying to build back in 79 in a decade yeah let me just add one thing modules is one of the major features of c plot plus 20 and the standard library has not been modularized this must happen so that it becomes easier to use i mean i have run things that compiles ten fifty times faster using modules and again you need some support in the build systems and some standards for it to get the benefits from that and the other thing that we are going to see in the relatively near future maybe not 23 but maybe 26 is a general model of concurrency which again will build up towards the the aim of dealing with more distributed uh things now of course c plus is a very complicated language right now you can do a lot of different paradigms which is why i find the c plus plus core guidelines very fascinating i find that it it simplifies and focuses a view of the language i'm curious how the community views that as a whole and also uh what's the state of like automated um uh verification of like compliance to c plus plus core guidelines uh the core guidelines came along because i realized that you cannot simplify the language if you make a small incompatible change you can annoy a couple of hundred thousand people so why don't we make a set of rules for what we think modern c plus plus is what about for people that are maybe um more novice they're just getting into c plus plus maybe they don't know c plus plus at all but they're thinking of learning how would you recommend for those people looking to get into c plus plus get started the way i think about it is this true such well at least two such groups there's a large group of people who have programmed for a while sometimes in c sometimes in c plus plus sometimes in other languages that wants to know sort of the fundamentals of c plus plus you can't put them through a standard textbook because it's boring and they don't really need a chapter to be told how to write a forum this is my answer to that question two of c plus plus i i realized that you have to have something that you can read over a weekend and tell you what is in c plus plus people come in and they don't know that there's templates for instance uh or they come in and they they say oh you have concurrency support or there's a library for regular expressions i've never heard of that stuff this is what this one is for over the weekend on a transcontinental flight that's that that's the kind of book now i also got a job some years ago as a professor to teach freshmen and that's a different group at the time they either half didn't know anything about programming and the other half weren't particularly good at it even though they thought that some of them thought they were absolute geniuses these are sort of natural freshmen right these days more people have programmed before but they have no clue why they're doing it or what they're doing it they just want to build a game or something like that and what's the quickest way of throwing things together so i i had to write i had to make a course and then i decided i had to write a textbook so i i've run many thousands of students through it that's how i'm reasonably confident that it works and other professors have not done the same so i'm reasonably confident it's not just me and by the way i did not put my books on the side because i was being interviewed they're sitting the side of my desk because i keep getting questions about it where the answers are in the book this is this thing here um with swanson and you don't do that over a weekend this is meant for a student to be able to do in about three months taking a four four course thing and there is a third group that i care a lot about and i think a lot about and i don't have a good solution and those are the expert in other things that happens or want to use c plus plus that is a biologist that wants to be a biologist doesn't want to be a c plus plus expert sometimes they they use some scripting language or let's see python javascript and such and they can get something to to run or math lab and then they notice that it's running 50 times slower than it should and they would like to get on board and do a little bit of tuning to to get it to run somewhat faster and i don't have a really good answer for how you help those because the biologist thinks different from the physicists and so on but if somebody has an idea they should run with it so you talked about the committee what is the process like of being on um a committee meeting what do you guys do what do you talk about how does it how does it work the first thing to understand is that the standards committee is enormous it is unbelievably large last meeting in prague when we voted out c plus 20 those 250 people there there are more people because not everybody turns up so my guess is about 350 members how on earth do you have a rational process with that many people without a management i mean the way you run a company with 350 employees is that you have rewards and your penalties these are two things we don't have and can't have in the standards committee these are volunteers these are enthusiasts they are there to do good and not everybody's idea of good is the same so we have meetings in between the meetings and there's a lot of email discussions there's a lot of papers being written these are the ones we discuss and then it goes through a process before we would and the way the process works is we split up in many many groups the two evolution groups are discussing what should go into the language and when they have decided and voted it should go in they pass it over to groups that try to integrate the text with the standard text we have the standards committee meeting where the technical people vote and agree to something it is then given to the iso that has the nation's vote on it and as this happens the implementers work so we get better feedback and by that time the final vote comes the first compilers start coming out so uh when it comes to these kinds of interviews or ask me anything you do is there any question you wish people would ask you but they haven't asked you know that's a standard question that a lot of people ask me i usually for these very technical interviews try and drift a little bit into some social issues a lot of people are in a desperate hurry they want to get their current job or their current ideas done immediately and i'm saying wait a minute this is life it's uh it's not a sprint it's a it's a long distance run make sure you don't burn out make sure you uh do other things then programming and system building um sometimes take care of the family go see something and also spend some time learning new stuff foundational stuff instead of getting more and more specialized a lot of weaknesses i find the students is in communication a lot of the best programmers are classical geeks but it doesn't matter how smart you are if you can't communicate your ideas to others then you could just as well do sudoku or something you have to get the ideas across somehow and that involves communication it means writing it means speaking um i mean there's people that are too busy to write tutorials too busy to write comments to too busy to to do anything but getting the code and then they expect us to pick up the code and understand what it's for and why we should use it no you have to explain you have to be careful you have to help your users i was just reading something who said it but basically education is about what and why and training is about how i'm mostly interested in education though of course i can't avoid telling people how sometimes why did you choose say not to use similarly directly when you started c plus plus and so on um i was a young researcher just just arrived at billabson i realized by looking at what people
Info
Channel: mCoding
Views: 4,057
Rating: undefined out of 5
Keywords: C++
Id: wafpbewQZGg
Channel Id: undefined
Length: 14min 45sec (885 seconds)
Published: Mon Dec 20 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.