30초 요약
Bjarne Stroustrup recounts how C++ came to be standardized under ISO rules after industry pressure in 1989, and how an open, consensus-driven committee decides the language's future. He explains why the long ten-year cycle led to slips and last-minute feature rushes, and why a three-year train model now gives compiler and library implementers a predictable target.
- 1Standardization began when engineers from IBM and HP told Stroustrup in 1989 that their organizations could not depend on a language owned by one company.
- 2The ISO process is open to anyone who pays a modest fee, with three one-week meetings a year and one vote per organization so that no single company can dominate.
- 3The committee works by consensus rather than a bare majority, because a 60-40 result would leave dissenters and produce dialects.
- 4C++0x was supposed to take six or seven years but took 13, a classic second-system effect where ambition grew once the team knew how to do it.
- 5On a long cycle, someone always has a bright idea just before shipping. The STL succeeded this way and saved C++, but later attempts took longer and longer.
- 6Shipping every three years means a slip costs about one or two years instead of ten, and gives compiler vendors a predictable target.
챕터별 전체 원고 읽기
Industry pressure pushed C++ into an open ISO standardization process
Stroustrup says the idea of standardizing C++ came from outside: in early 1989 two people, one from IBM and one from HP, turned up in his office. He objected that the language was not finished, but they replied that their organizations depended on C++ and could not rely on something owned by another corporation that might be a competitor. They also warned him that if he did not take part, they would do it themselves.
After what he jokingly calls a mix of arm-twisting and flattery, the work began with a meeting in Washington in late 1989, then under the American national standards body, ANSI. About 25 people attended, which he says was apparently a record for that kind of meeting, and some veterans from the C standardization effort were there to lend expertise. A couple of years later the effort became international.
A committee of individuals, one vote per organization and consensus decide the language
The process is open: anyone can sign up for a modest fee that Stroustrup puts at roughly a thousand dollars or a little more. The committee holds three one-week meetings a year, which worked better than the two a year they tried briefly. People hold technical discussions and then bring proposals forward for votes, with one vote per organization so that a firm like IBM cannot bring ten people and dominate.
Stroustrup concedes that standardization is not pleasant and bureaucracies have their critics, but he quotes Churchill's line that democracy is the worst system except for all the others. He considers it better than having the language decided by him or by a single organization. Active national bodies number around 15 to 20 countries, with another 15 to 20 watching and voting.
The committee aims for consensus, not a narrow majority, because a 60-40 vote would leave opponents and risk dialects. The first standard was voted out in 1998 with all countries in favor, and he mentions that he would be in Cologne the following week to vote out the C++20 committee draft. That draft goes to national bodies for comments before a second round of votes.
Long cycles caused slips, so C++ now ships on a predictable three-year train
ISO standards traditionally take about ten years, and the first C++ standard took eight. Flush with confidence, the team expected the next to take six, seven or eight years and nicknamed it C++0x in the hope of finishing within the decade. It took 13 years and became C++11. Stroustrup calls this a second-system effect: having learned how to do it, they grew more ambitious.
He adds that on a ten-year cycle somebody always has a bright idea just before shipping. That worked spectacularly with the STL, which he believes saved C++, but later attempts to add big features at the last minute were less dramatic and took longer and longer. After C++11, which he describes as a huge improvement and what most people use today, the committee decided never to repeat that.
The fix is to ship more often. With a roughly three-year cycle, a slip costs one or two years rather than a decade, since the delay between feature freeze and shipping is short. C++14 and C++17 shipped on time and he expects C++20 to do so too. The predictability helps compiler and library implementers: C++11 took about two years for most compilers to support well, whereas nearly everyone is shipping most of C++20 already in 2019.
같은 채널의 다른 글
3:36:56EN
5:15:51EN
3:12:58EN
3:46:18EN
3:51:47EN
2:53:42EN