back to indexBjarne Stroustrup: Recognizing Beautiful Code

00:00:00.000 | 
So, how do you inspire or ensure that the Einstein level of simplification is reached? 00:00:17.800 | 
If I gave you the code for the Ford F-150 and said, "Here, is this a mess or is this 00:00:31.780 | 
An experienced developer can look at code and see if it smells. 00:00:42.960 | 
The point is that it is hard to generate something that is really obviously clean and can be 00:00:57.760 | 
But you can usually recognize when you haven't reached that point. 00:01:02.680 | 
And so, I've never looked at the F-150 code, so I wouldn't know. 00:01:14.320 | 
I'll be looking for some tricks that correlate with bugs and elsewhere. 00:01:21.240 | 
I have tried to formulate rules for what good code looks like. 00:01:28.120 | 
And the current version of that is called the C++ core guidelines. 00:01:36.280 | 
One thing people should remember is there's what you can do in a language and what you 00:01:43.160 | 
In a language, you have lots of things that is necessary in some context, but not in others. 00:01:50.640 | 
There's things that exist just because there's 30-year-old code out there and you can't get 00:01:57.360 | 
But you can't have rules that says, "When you create it, try and follow these rules." 00:02:03.400 | 
This does not create good programs by themselves, but it limits the damage for mistakes. 00:02:15.500 | 
And basically, we are trying to say, "What is it that a good programmer does?" 00:02:21.480 | 
At the fairly simple level of where you use the language and how you use it. 00:02:26.400 | 
Now, I can put all the rules for chiseling and marble. 00:02:32.280 | 
It doesn't mean that somebody who follows all of those rules can do a masterpiece by 00:02:40.500 | 
That is, there's something else to write a good program, just as there's something else 00:02:50.600 | 
That is, there's some kind of inspiration, understanding, gift. 00:02:57.600 | 
But we can approach the sort of technical, the craftsmanship level of it. 00:03:08.800 | 
The famous painters, the famous sculptors was among other things, superb craftsmen. 00:03:16.400 | 
They could express their ideas using their tools very well. 00:03:22.840 | 
And so, these days, I think what I'm doing, what a lot of people are doing, we are still 00:03:28.380 | 
trying to figure out how it is to use our tools very well. 00:03:33.440 | 
For a really good piece of code, you need a spark of inspiration. 00:03:42.600 | 
You cannot say that, "I'll take a picture only, I'll buy your picture only if you're 00:03:51.240 | 
There are other things you can regulate, but not the inspiration. 00:04:01.480 | 
It is true that there is, as an experienced programmer, when you see code that's inspired, 00:04:10.160 | 
that's like Michelangelo, you know it when you see it. 00:04:16.880 | 
And the opposite of that is code that is messy, code that smells, you know when you see it. 00:04:23.640 | 
And I'm not sure you can describe it in words, except vaguely through guidelines and so on. 00:04:29.120 | 
Yes, it's easier to recognize ugly than to recognize beauty in code. 00:04:36.000 | 
And for the reason is that sometimes beauty comes from something that's innovative and 00:04:42.760 | 
And you have to sometimes think reasonably hard to appreciate that. 00:04:47.600 | 
On the other hand, the messes have things in common.