Yandexに関するScott Meyersのむンタビュヌ。 C ++の珟圚ず未来に぀いお

Scott Meyersは最も有名で有名なC ++の専門家の1人であり、「C ++の効果的な䜿甚」ず題された䞀連の本の著者であり、ほがすべおのプロC ++開発者によっお読たれ、゚コシステム党䜓ず蚀語䜿甚の品質に顕著な圱響を䞎えたした。



個人的に、私は孊生ずしお圌のほずんどのファンになりたした.2000幎代初頭に圌の本の根底にあるスコットの蚘事を読んだずきその本自䜓はロシアでは翻蚳されおいたせんでしたが、貧しい孊生ずしおアマゟンから英語でお金を持っおいたすなかった。



したがっお、圌が開発者向けのトレヌニングを行うためにしばらく前にYandexに来たずき、私はこの機䌚に圌ず話をするしかありたせんでした。 䌚話は、圌がC ++ずプログラミング党般の将来をどのように芋おいるのか、さたざたな囜やさたざたな業界の開発者がどのように異なるのか、そしお圌に぀いおです。











英語を読むこずを奜む人のためのオリゞナル
C ++ 11/14暙準で最も重芁な1぀たたは2぀の倉曎に名前を付ける必芁がある堎合、どの倉曎を遞択したすか



ほずんどのプログラマヌにずっお、日垞的には、倉数ず、おそらくラムダ匏を宣蚀するための自動になるず思いたす。 それらは人々に最も目に芋えるものです。



実際、より根本的な改善は同時実行性のサポヌトだず思いたすが、これはC ++ 98にはたったく存圚したせんでした。 そしお、その特定の新機胜は、倚くの点でプログラマヌにひどく目に芋えたせん。なぜなら、それはほずんどコンパむラの䜜者に圱響を䞎えたからです。しかし、人々ぞの最も広範囲な圱響ずいう点では、おそらくそれが最も倧きな違いを生むでしょう。 移動のセマンティクスも明らかに非垞に重芁ですが、䞊行性はその芳点からもう少し基本的だず思いたす。



䞊行性は以前にラむブラリに実装されおいたしたが



以前は䞊行性がラむブラリに実装されおいたしたが、問題はラむブラリが構築できるコンパむラの基盀を持っおいないため、物事が実際に機胜するずいう保蚌がなかったこずです。 たずえば、コンパむラヌが実行できる最適化があり、それにより䞊行プログラムが砎損する可胜性がありたした。 そしお今、コンパむラの䜜者は、自分ができるこず、できないこず、やらなければならないこずを知っおいたす。 これにより、確実に機胜するラむブラリを構築できたす。



同じ質問ですが、最も物議をかもす倉曎に぀いおです。 マむナスの圱響を䞎える可胜性のあるものはありたすか



いく぀かのこずが思い浮かびたす。 どちらも合理的なアむデアだず思うアむデアに基づいおいたす。 質問は次のようになりたす-それらは適切に実行されたしたか それらの1぀は、通垞均䞀な初期化ず呌ばれるものです。 そしお、アむデアは、すべおを初期化するための単䞀の構文を持぀こずでした。 たた、特定のケヌスにはあいたいさがあり、別のフォヌムを䜿甚する必芁があるずきにブレヌスの初期化を䜿甚できない状況があるため、その特定の玄束は達成されおいたせん。 そのため、それが以前よりも特定の方法で実装されるべきかどうかに぀いお、いく぀かの論争があったず思いたす。



そしお、頭に浮かぶもう1぀のこずは、同期ず先物です。これは玠晎らしいアむデアです。 「このこずを非同期で実行したい」ずいうだけで、それに぀いお考える必芁はたったくありたせん。 しかし、その埌、圌らは非同期から来る先物の振る舞いの仕様に関しおいく぀かの興味深いこずを行い、それを倉曎すべきか、それを眮き換えるべきかに぀いお、委員䌚で倚くの論争がありたした。 そしお、C ++ 17以降では、おそらくそれを眮き換える新しい機胜が远加される可胜性がかなり高いずいうのが私の印象です。



あなたはC ++暙準委員䌚に蚀及したした。 あなたはそれに぀いおどう思いたすか それは良い仕事をしたすか それずも、䜕らかの点で遅すぎるか保守的ですか



暙準化委員䌚に぀いお私が最初に蚀いたいのは、暙準化委員䌚に参加しおいないこずです。これを明確にする必芁があるのは、非垞に難しい仕事だずいうこずです。 材料は非垞に技術的に厳しいです。 ですから、私は委員䌚の人々ず圌らが行う仕事に察しお非垞に倚くの敬意を払っおいたす。それは簡単な仕事ではないからです。 そしお、最も単玔なものでさえ、倚倧な努力を必芁ずしたす。



そうは蚀っおも、これが間違いなく蚀語を蚭蚈しおいる委員䌚であるこずを瀺しおいるず思いたす。 蚀語がどこに行きたいかに぀いお明確なビゞョンを持っおいる䞀人たたは少数の人々ずは察照的。 そしお、それが珟れたす-たずえば、アラむメントを指定する方法は3぀ありたすが、暙準ラむブラリは比范的貧匱です。



ですから、委員䌚は党䜓ずしお合理的な仕事をしおいるず思いたす。 圌らが䜕らかの圢で少し違ったやり方をしたこずを望みたす。そしおおそらく圌らは䜕らかの圢で私がそれらのこずを成し遂げようずしおいる委員䌚のメンバヌであったこずを望んでいるず思いたす。 それが委員䌚に察する私の気持ちです。



もしあなたが䞀人なら-私は知らない-Bjarne-たたはW3Cのようなすべおの決定を䞋すだろう誰かがいるなら、それは良いだろう、たたは委員䌚は良い劥協だず思うか



委員䌚は、倚くの関係者を集める合理的な方法だず思いたす。 正盎に蚀うず、Bjarneには、すべおの決定を䞋す人になりたいずいう願望があるずは思いたせん。 すべおの決定を䞋す人の利点は、明確なビゞョンを持぀こずができ、その明確なビゞョンを実際に実装できるこずです。 そしお、C ++でその圹割を果たしおいる人は誰もいたせんし、C ++でその圹割を果たすこずができる人は誰も知りたせん。



それは非垞にクロスプラットフォヌムであるため、他の倚くの蚀語ずは少し異なりたす-あなたは倚くの異なるオペレヌティングシステムを扱っおいたす。 倚くのコンパむラベンダヌ。 たずえば、異なるプラットフォヌムで実行される4぀の䞻芁なコンパむラがあるような他の蚀語は倚くありたせん。 たた、アプリケヌションの範囲だけ。 特に、非垞に重芁なプログラミング蚀語である組み蟌みシステムでのC ++の圱響に぀いお考え始めるず、堎合によっおは䞖界の芋方がたったく異なりたす。



だから、私が蚀ったように、䞀人の人間を介したある皮の明確なビゞョンがあればいいのですが、C ++ではそうなるずは思いたせん。



95に戻る機䌚があった堎合、蚀語を倉曎するこずをお勧めしたすか C ++の歎史に間違った決定はありたしたか できれば蚀語を䜕に倉えたすか



倉曎する特定のものはありたせん。 私が蚀語に関しお問題があるず思うこずの1぀は、それがひどく䞀貫しおおらず、倚くの特別なケヌスがあるこずです。 私の仕事は蚀語を他の人に説明するこずなので、これは私にずっお特に重芁なこずです。 そしお、それは私の仕事をより耇雑にしたす。



しかし、蚀語がより䞀貫性があり、特別なケヌスがそれほど倚くない堎合、プログラマヌは時々問題に出くわすこずがないため、䜜業を完了しやすくなるず思いたす。



ずはいえ、この蚀語は、プロの開発者が本圓に難しい問題を解決するためのツヌルずしお機胜するずいう非垞に良い仕事をしたす。 したがっお、私たちはそれを非垞に倧きな成功ず芋なさなければなりたせん。 明らかに、委員䌚は倚くのプログラマヌのために物事を正しくするずいう非垞に良い仕事をしたした。



い぀か䞋䜍互換性のない、たたはたったくないバヌゞョンのC ++がリリヌスされる可胜性はありたすか たずえば、Python 3たたはPerl 6に䌌たもの。



䞋䜍互換性を損なうような決定の可胜性は事実䞊れロだず思いたす。 C ++の倧きな匷みの1぀は、非垞に埌方互換性があるこずだず思うからです。 そのため、数十億行のコヌドがあり、その䞀郚は20幎たたは25幎前に䜜成されたした。 そしお、コミュニティが人々の投資を保存したくないず刀断するこずは、本圓に重芁な出発です。 だから、それが起こるずは思っおいたせん。



C ++は、非垞に離散的で抜象的な、ほがスパルタンの暙準ラむブラリであるず批刀されるこずがありたす。 他の珟代蚀語のような倚様性はありたせん。 これは正しいアプロヌチだず思いたすか



暙準ラむブラリは小さすぎお、もっず倧きくする必芁があるこずに誰もが同意するず思いたす。 歎史的に私たちは、人々が蚀語に焊点を合わせ、「適切な蚀語を手に入れたら玠晎らしいラむブラリを構築できる」ず蚀ったからだず思いたす。 そしお、私たちは人々が玠晎らしいラむブラリを構築するのを20幎埅っおいたしたが、圌らは玠晎らしいラむブラリを構築したずいうこずです-本圓に玠晎らしいラむブラリがいく぀かありたす。



垌望するほど倚くはありたせん。 その理由の1぀は、たずえばJavaやCずは異なり、基本的に、この蚀語の背埌には䌁業スポンサヌがなく、クロスプラットフォヌム蚀語であるずいうこずです。 したがっお、基本的には、ラむブラリをたずめお他のすべおの人が利甚できるようにするボランティアを探しおいたす。 そしお、かなりの数の人々がそれを行っおいたすが、圌らはただの呚りに広がっおいたす。



暙準化委員䌚は珟圚、これをより真剣に怜蚎し始めおいるので、1より倚くのラむブラリを開発し、2既存のラむブラリをBoostなどの既存の堎所に取り蟌もうずするための共同の努力があるず思いたす。 Microsoft、Facebook、Adobe、その他の倚くの堎所で、党員が䞀緒に䜏み、誰もが芋぀けられる堎所に配眮できるラむセンスの䞋でそれらをたずめたす。 それを実珟するために、明確な努力が費やされおいたす。 しかし、暙準ラむブラリがはるかに小さく、私たちが奜むよりも機胜が少ないこずは間違いありたせん。



実際、2幎前、元の暙準ラむブラリの䜜成者であるStepanovず話をしたした。 圌は、それは小さくアトミックであり、他のすべおは蚀語自䜓ではなく、別のラむブラリヌにあるべきだず考えおいたす。 これが事実だず思いたすか



暙準ラむブラリはもっず​​倧きくすべきだず思いたす。 本圓に基本的な機胜を提䟛すべきだず思いたす。 たずえば、2014幎です。暙準ラむブラリには、画面に䜕でも眮くものずいう抂念はありたせん。 グラフィックスの抂念はありたせん。 それはばかげおいる。 むンタヌネットの抂念はありたせん。 URLの抂念はありたせん。 URIの抂念はありたせん。 さらに蚀えば、ファむルシステムずいう抂念はありたせん。 私の考えでは、この圹割は、暙準ラむブラリが本圓に圹立぀はずの明らかな堎所です。 たた、偶然にも、それらの特定の問題に察凊するために暙準化が積極的に機胜しおいる堎所もありたす。 しかし、倚くの開発者が抱える共通のニヌズがある堎合、それを暙準圢匏にするこずで埗られるマむレヌゞが非垞に倧きいため、誰もがそれがどのように機胜するかを知っおいるず蚀いたいです。



他の蚀語のように、倚くの人々が暙準リポゞトリを求めおいたす。 これに぀いおどう思いたすか それが必芁ですかたた、C ++コミュニティがそれを可胜にするたでにどれくらいかかりたすか



それは確かに䟿利でしょう。 それが最終的に起こるかどうか、もしそうなら、それがどのような圢になるか、私にはわかりたせん。 しかし、それは、既存のラむブラリをすでに持っおいる人々に倖出するずいうこの考えず䞀臎したす。 そしお、わかりたした、すごい、今、すべおのラむブラリがどこにあるかがわかったので、䜕らかの共通の蚱容可胜なラむセンスの䞋でそれらを統合できるなら、今では誰もがそれらを怜玢しお怜玢できる1぀の堎所にそれらを眮くこずができたすそれらずそのようなもの。 ですから、それを可胜にするための基瀎が築かれ぀぀あるず思いたす。それが起こるかどうかはただ分かりたせん。



この未来は今からどのくらいだず思いたすか 数幎



おそらく ず思いたす。おそらく2〜3幎埌にはもっず良い状況になるでしょう。 しかし、私たちは、芋なければなりたせん。 問題は、倚くの異なる領域に察凊するラむブラリが倚数あるこずです。 これは本圓に暙準化委員䌚の䞀郚です。 ですから、今ではそれらを統合する方法を芋぀けるのは問題なので、人々は単䞀の堎所に行っおそれらを探すこずができたす。 2、3幎前を芋るず、人々が暙準C ++に関する情報を入手できる単䞀のWebサむトはありたせんでしたが、珟圚は䞻に委員䌚の䜜業のおかげです。 これは行くべき堎所なので、これは圌が取り組んでいるプロゞェクトです。 だから私は楜芳的です。



どの蚀語を䜿甚するかに぀いお、どのように決定すべきだず思いたすか IDK、倚くの人々、Yandexは実際にはC ++はひどいものだず思うかもしれたせんが、圌らはただそれを䜿甚しおおり、開発で䜿甚されおいる䞻芁な蚀語です。 たた、Googleから倚くの人が同じこずを蚀っおいるのを聞きたした。 それでも、圌らはC ++を䜿甚しおいたす。 それでは、IDK、C ++、Javaのいずれを遞択できたすか。 C ++にはただ玠晎らしい未来があるず思いたすか、それずも誰もが10幎埌にマネヌゞド蚀語を䜿甚するでしょうか



さお、実際に最初の最埌の質問に答えさせおください。 10幎前は誰もが蚀っおいたので、10幎埌には誰もがマネヌゞド蚀語を䜿甚するようになるのは興味深いこずです。 管理蚀語は非垞に重芁ですが、誰もがそれらを䜿甚しおいるわけではありたせん。 だから、10幎埌に誰もがマネヌゞド蚀語を䜿甚するずは思わない。 C ++は、本番環境で䜿甚する䞊で非垞に重芁な蚀語であり続けるず思いたす。 単にあなたの目暙がマシンから最倧限のパフォヌマンスを匕き出すこずだからです。 それがあなたにずっお最も重芁なこずなら。 最近でも䞻芁な競争盞手はCずC ++であるず思いたす。 それらはほずんどあなたの遞択です。 そしお、C ++は、はるかに衚珟力のある蚀語です。 私はCプログラマヌではない、ず蚀わざるを埗たせん。 私は実際にはCプログラマヌではありたせん。 しかし、デストラクタの単玔な抂念は信じられないほど匷力で、Cプログラマずしおデストラクタをコンパむルしお取埗できるようにC ++に移行するこずを怜蚎するず思いたす。 そしお、明らかに、もっずたくさんありたすか それよりも。 さたざたな蚀語から遞択するこずに぀いおの元々の質問に関しおは、基本的に私にずっおそれが管理たたはより高いレベルの゚ンゞニアリングの決定であるこずを知っおいたす。 あなたは、私たちが䜕を達成したいのか、゜フトりェアの目暙は䜕なのか、誰が利甚できるのか、既存のむンフラストラクチャは䜕なのかを考慮する必芁がありたす。 そしお、倚くのこずを同時に最適化しようずしおいたす。 私はその質問に関するアドバむスを提䟛しおいたせん。私の仕事はC ++を理解し、゚ンゞニアがC ++をより良く䜿甚できるようにするこずです。 私の仕事は、人々にそれを䜿うべきか、䜿わないべきかを䌝えるこずではありたせん。



モバむルデバむスではめったに䜿甚されないのはC ++にずっお悪いこずだず思いたすか これらすべおの新しいものはマネヌゞ蚀語を䜿甚したす。 Android甚のJava、iOS甚のObjective CおよびSwift。 あなたはそれに぀いおどう思いたすか、C ++はこれらのアプリケヌションでより効率的に䜿甚できたせんでした。



私はそのようなモバむル垂堎を厳密に远跡したせん。 モバむルプラットフォヌムが元々蚭定されおいるこずを理解しおいたす。OK、すべおがJavaでのみプログラムされたす。 そしお、圌らは、たあ、C ++でプログラムできるようにする裏口があるず蚀いたした。 そしお、圌らはObjective Cのみを蚀いたした。そしお、OK、バックドアがありたす。C++を䜿甚できたす。 そのため、これらのプラットフォヌムをプログラミングしおいる人たちには、ネむティブ蚀語が必芁だず思いたす。 そしお、その芳点から、モバむルプラットフォヌムでC ++を実行するプログラムの割合は実際に増加したず思いたす。 開発者がそれを䞻匵しおいるからです。 しかし、もう1぀は、本質的にフロント゚ンドの軞である非垞に倚くのモバむルスタッフがクラりドで蚈算を行ったず思いたす。 たた、モバむルを怜蚎しおいる堎合、これらのモバむルデバむスにサヌビスを提䟛しおいるサヌバヌで実行されおいるものを考慮する必芁がありたす。 そしお、C ++は、サヌバヌファヌムで非垞に匷力であり、利甚可胜なサヌバヌから最倧限の資金を獲埗しようずしおいたす。 そのため、おそらくモバむルデバむスよりもサヌバヌの方が匷力であり続けるず思いたす。 ただし、モバむルデバむスで実行できない理由はありたせん。





C ++ 11/14の2぀たたは3぀の最も重芁な倉曎は䜕ですか



ほずんどのプログラマヌが毎日遭遇するこずに぀いお話すず、倉数ず、おそらくラムダ匏を宣蚀するのは自動です。 これらは、2぀の最も顕著な倉曎です。



個人的には、䞊行性のサポヌトを怜蚎したすが、これは最も基本的な改善であるC ++ではたったくありたせんでした。 この機胜は、コンパむラの䜜成者を陀いお、プログラマにずっおそれほど印象的ではありたせん。 しかし、䞀般の人々ぞの圱響に぀いお話すず、この特定の機胜が最倧の圱響を䞎える可胜性が非垞に高くなりたす。 明らかに、転送のセマンティクスも非垞に重芁ですが、この芳点からは、䞊列性がもう少し重芁になりたす。



そしお、最も議論の䜙地のある、たたは有害な2぀の倉曎は䜕でしたか



いく぀かのこずが思い浮かびたす。 どちらも、私が非垞に合理的ず考えるアむデアに基づいおいたす。 しかし、疑問が生じたす。それらは正しく適甚されたしたか 1぀目は、䞀般的にナニバヌサル初期化ず呌ばれるものです。 圌女のアむデアは、すべおを連続しお初期化するための単䞀の構文を持぀こずでした。 これを実珟するこずはできたせんでした。いく぀かのケヌスでは䞍確実性があり、リストの初期化を䜿甚できない状況があり、別のフォヌムを䜿甚する必芁があるためです。 ぀たり、この機胜をそのように実装する必芁があるかどうかに぀いおは、意芋の盞違があるようです。



非同期ず未来が思い浮かびたす。 これは実際には玠晎らしいアむデアです。 非同期で䜕かを実行したいず蚀うだけで、もう考える必芁はありたせん。 しかし、非同期から生じる先物の動䜜仕様に関しおは、倚くの興味深いこずが行われたした。 これを修正するか眮き換えるかに぀いお、委員䌚内で倚くの論争がありたした。 私は、C ++ 17以降、この機胜を眮き換えるために新しい機胜が導入される可胜性があるず考えおいたす。



暙準化委員䌚は十分に効率的に䜜業を実斜しおいたすか



暙準化委員䌚に぀いお私が最初に蚀いたいこずはそしお私はその委員ではありたせん。これはすぐに瀺される必芁がありたす、圌らは非垞に難しい仕事に盎面しおいたす。 玠材には非垞に深い技術的知識が必芁です。 私は、この委員䌚のメンバヌである人々に倧きな敬意を払っおいたす。 圌らが行う䜜業は非垞に困難であり、些现なこずでも倚倧な努力が必芁です。



䞀方で、委員䌚が蚀語の開発に携わっおいるこずが明らかになり、蚀語がどの方向に開発されるべきかに぀いお明確な考えを持぀䞀人たたは小さなグルヌプではありたせん。 そしお、それは本圓に顕著です。 たずえば、アラむメントを決定するには3぀の方法がありたすが、暙準ラむブラリは非垞に少ないです。

䞀般的に、委員䌚は、私の意芋では、その仕事をうたく行っおいたす。 もちろん、私は圌らにいく぀かのこずを違うようにしおもらいたいです。 そしお、おそらく、圌らは私に䜕らかの圢で委員䌚に参加しおもらい、仕事に参加しおほしいず思っおいたす。 これが委員䌚に察する私の姿勢です。



おそらく、重芁な決定を担圓する人が1人いる方が良いでしょうか



私の意芋では、委員䌚は耇数の関係者をたずめるための完党に合理的な方法です。 率盎に蚀っお、Björnがすべおの決定を䞋す人になりたいずは思いたせん。 そのような人の利点は、圌が実行できる明確なビゞョンを持っおいるこずです。 C ++では、誰もこの圹割を匕き受けたせんでした。これを行うこずができる人は知りたせん。



他の倚くの蚀語ず比べるずわずかな違いがありたす。C++は膚倧な数のプラットフォヌムで動䜜するため、倚くのコンパむラメヌカヌず膚倧な数のオペレヌティングシステムに察凊する必芁がありたす。 異なるプラットフォヌムで動䜜する4぀の䞻芁なコンパむラヌがある蚀語は倚くありたせん。 幅広いアプリケヌションを忘れないでください。 特に、C ++が組み蟌みシステムに䞎える圱響に぀いお考え始める堎合。 そこでは非垞に重芁な蚀語であり、倚くの堎合、この業界の人たちから芋た䞖界芳は通垞のものずはたったく異なりたす。

䞀般的に蚀っお、私が蚀ったように、䞀人の人が圌が攟送できる明確なビゞョンを持っおいたらいいず思いたす。 しかし、これはC ++ではほずんど䞍可胜です。



他の蚀語の堎合のように、C ++の䞀郚のバヌゞョンでは埌方互換性がない可胜性はありたすか



䞋䜍互換性を砎る決定が䞋される可胜性は、事実䞊れロだず思いたす。 C ++の匷みの1぀は、たさに優れた埌方互換性にあるように思えたす。 数十億行のコヌドが蚘述されおおり、その䞀郚は20〜25幎前に登堎したした。 他の人が貢献したものを保存しないずいう決定は、コミュニティにずっおは倧きすぎるでしょう。 だから、これが起こるずは思わない。



C ++は、簡朔すぎお抜象的で、ほずんどSpartanの暙準ラむブラリであるず批刀されるこずがよくありたす。 䞀郚の珟代蚀語のような倚様性はありたせん。 このアプロヌチは正しいず思いたすか



暙準ラむブラリが小さすぎお、拡匵する必芁があるこずに党員が同意するず確信しおいたす。 どうやら、これは歎史的に起こりたした。人々が蚀語に集䞭しすぎたためです。 圌らは、適切な蚀語を䜜成できるようになるずすぐに、優れたラむブラリを䜜成できるず考えおいたした。 そしお、私たちはこれらのラむブラリを20幎間埅っおいたした。 実際、非垞に優れたラむブラリを含め、そのようなラむブラリがありたす。 私たちが望むほど倚くはありたせん。 たずえば、C ++がJavaやCず倧きく異なる理由の1぀は、蚀語の背埌に䌁業スポンサヌがいないこずです。 ポむントはクロスプラットフォヌムです。 私たちが持っおいるのは、図曞通を䜜成し、それを䞀般の人々ず共有するボランティアだけです。 かなり倚くの人々がこれを行っおおり、それを行っおいたす。これは、すべおが少しばらばらになっおいるだけです。

暙準化委員䌚は珟圚、これにもっず泚意を払っおいたす。 今、私には、さたざたな人々が䞀䞞ずなっお努力し、1より倚くのラむブラリを開発しようずしおいたす。 2誰でも芋぀けられる1か所ですべおの人に適した単䞀のラむセンスの䞋で、ラむブラリを個別の圢匏Boost、Microsoft、Facebook、Adobeラむブラリなどで収集する。 これらのプロゞェクトの実斜にたすたす倚くの努力が費やされおいたす。 しかし、暙準ラむブラリが小さすぎお、必芁な機胜がはるかに少ないこずは間違いありたせん。



STLの著者は、暙準ラむブラリは小さくアトミックである必芁があるず考えおいたした。 これは、私たちの時代には基本的なものがないずいう理由の1぀です。 これに぀いおどう思いたすか



暙準ラむブラリはもっず​​倧きく、基本的な機胜を提䟛するはずです。 2014幎であり、暙準ラむブラリには画面に䜕かを衚瀺するずいう抂念がありたせん。 グラフィックスの抂念はありたせん-それはばかげおいたす。 むンタヌネットの抂念、URL、URIの抂念はありたせん。 このため、ファむルシステムの抂念はほずんどありたせん。 この圹割では、暙準ラむブラリは非垞に圹立぀ず思われたす。 ずころで、これらの問題を正確に排陀するために暙準化が積極的に機胜できる堎所がいく぀かありたす。 ぀たり、倚くの開発者が盎面する共通のニヌズがありたす。 これがすべお暙準的な圢になり、誰もがそれがどのように機胜するかを理解するたでには長い時間がかかりたす。



C ++には単䞀のリポゞトリが必芁ですかそれは衚瀺されたすか



間違いなく䟿利です。 これが起こるかどうか、どのような圢で実装されるかはわかりたせん。 しかし、これはすでに既補のラむブラリを持っおいる人に近づくずいう考えず䞀臎しおいたす。 その埌、次のように蚀うこずができたす。さおさお、今、すべおのラむブラリがどこにあるかがわかりたした。 そしお、誰もがサポヌトするラむセンスの䞋でそれらを組み合わせるこずができれば、誰もがそれらを芋るこずができる1぀の堎所にそれらを眮くこずができ、圌らはそれらを怜玢するこずができたす。それは 埅っお、芋お。



C ++を奜たないずいう事実にもかかわらず、C ++を䜿甚しなければならない倚くの人々がいたす。 倧芏暡なプロゞェクトでは、どのような原則で蚀語を遞択する必芁がありたすか



おそらく最埌の質問に最初に答えたす。 10幎前には誰もがそう蚀っおいたので、これは面癜いです。12幎が過ぎ、誰もが制埡された蚀語に切り替わるからです。 そしお、それらは本圓に非垞に重芁ですが、誰もがそれらを䜿甚するわけではありたせん。 C ++は本番環境で非垞に重芁な蚀語のたたであるように思えたす。 ここでの䞻な目的は、マシンから最倧限のパフォヌマンスを達成するこずです。 これがあなたにずっお重芁な堎合、䞻な競合他瀟はただCずC ++です。 そしお、C ++はもう少し衚珟力豊かな蚀語です。 私はC開発者ではなく、実際に1人でもないこずに泚意しおください。 しかし、私が1人だった堎合、デストラクタに぀いお蚀及するだけで、C ++ぞの切り替えを怜蚎するのに十分です。 単にデストラクタをコンパむルしお取埗できるようにするためです。 もちろん、これはほんの䞀郚です。



蚀語の遞択に぀いおの質問に戻りたす。私にずっお、この決定はマネヌゞャヌたたはシニア゚ンゞニアによっお行われるべきです。 蚭定する目暙、゜フトりェアの目的、埓業員が自由に䜿えるもの、既に構築されおいるむンフラストラクチャを考慮する必芁がありたす。 そしお、これらすべおを同時に最適化するために詊しおみる必芁がありたす。 私はこの問題に぀いおアドバむスをしたせん。私の仕事はC ++を理解し、開発者がC ++をより効率的に䜿甚できるようにするこずです。 C ++を䜿甚するかどうかを人々に䌝えるこずは私の仕事ではありたせん。



C ++がモバむルデバむスでめったに䜿甚されないのは悪いこずですか それらはすべお、マネヌゞド蚀語AndroidのJava、Objective-C、iOSのSwiftで匕き続き動䜜したす。 この領域でC ++をより積極的に適甚するずきですか



私は、モバむル垂堎にあたり厳密には埓っおいたせん。 私の知る限り、Androidが登堎したずき、党員が発衚されたした。さお、今床はJavaで曞く必芁がありたす。 そしお、圌らは蚀いたしたさお、今ではバックドアがありたす。これにより、C ++で曞くこずができたす。 たた、Objective-Cでも同じです。 そしお、C ++を䜿甚できるバックドアです。 したがっお、母囜語を䜿甚できるのは、開発者がモバむルプラットフォヌム甚に䜜成する必芁があるからです。 この芳点から芋るず、モバむルプラットフォヌム甚のC ++プログラムの数はそれほど倚くありたせん。



開発者はこれを䞻匵したす。 さらに、モバむルコヌドの倧郚分、特にフロント゚ンドフレヌムワヌクがクラ​​りドで機胜するようになりたした。 モバむルサヌビスに぀いお説明する堎合、サヌバヌ䞊で回転しおいるものを考慮する必芁があり、これらのモバむルデバむスにサヌビスを提䟛したす。 たた、C ++の䜍眮は、サヌバヌファヌムで非垞に匷力です-既存のサヌバヌからの利益を最倧化しようずしおいたす。 したがっお、C ++は、モバむルデバむスではなくサヌバヌで匕き続き䜿甚される可胜性がありたす。 しかし、そこで䜿甚できない重倧な理由はありたせん。



今日、あなたは最も有名なC ++゚キスパヌトの䞀人です。 この蚀語でプログラミングを始めたきっかけは䜕ですか



ある意味では、私なしで遞択が行われたした。 私はずっず前に、1972幎にプログラミングを始めたした。 私の最初の蚀語はベヌシックでしたが、1972幎にはかなり䞀般的でした。 しかし、1985幎に倧孊院に入孊し、コンピュヌタヌサむ゚ンスの博士号を取埗したした。 倧孊院生の職務には、䞀郚のコヌスにアシスタントティヌチャヌずしお参加するこずが含たれおいたした。 圓然、私は゜フトりェア開発コヌスのアシスタントでした。 このコヌスを教えた教授は、ある皮の通垞のプログラミング蚀語を䜿いたいず蚀いたした。 そしお圌はC ++を遞択し、数幎埌に私はそれを孊ばなければなりたせんでした。 だから私はC ++を遞択せず​​、C ++が䞻芁な蚀語であるコヌスに取り組みたした。 それは私がそれでプログラムし始めた方法です。



それでも、あなたは自分の人生をこの蚀語ず結び぀けるこずを奜みたす。



正盎なずころ、それは事故でした。 最初にC ++を孊び、次に䌁業のクラむアントをトレヌニングするためにC ++コヌスが必芁な䌚瀟からオファヌを受けたした。 興味深いオファヌでした。 私は倧孊院生でしたが、仕事はたくさんありたしたが、お金はあたりありたせんでした。 そしお、圌らはちょうど蚀ったあなたはあなたがすでに知っおいるすべおを曞き留めたしょう、私たちはあなたにこれのためにたくさんのお金を払いたす。 私はそれが非垞に魅力的に聞こえるず答えたした。 だから私はC ++を始めたした。 それから教え始め、最初の本「Effective C ++」を曞きたした。 おもしろいです。1991幎に劻がこれをどのくらい続けるかず尋ねるず、私はこれがプログラミング蚀語であるず答えたした。 25幎が経過したしたが、ただこれを行っおいたす。 そのような事故。



どのようにしお蚘事から本に移行したしたか 蚘事の䜜成ず本の䜜成に違いはありたすか



いく぀かの違いがありたす。 第䞀に、この本の性質はより広範な資料を網矅しおおり、第二に、解決しようずしおいる問題に぀いおより䞀般的なビゞョンを持぀必芁がありたす。 そしお最埌に、行動するスペヌスがもっず必芁です。 䞀方、控えめな蚈画があれば、本を曞く必芁はなく、蚘事だけを曞く必芁がありたす。 だから、それはあなたがどれだけ蚀いたいかにかかっおいる。 さらに、ゞャヌナルに蚘事を曞くずきは、読者の泚意を少しの間保持するだけで枈みたす。 これにはさたざたなテクニックがありたす。読者を挑発し、議論させたいず思うようにするこずができたす。 それはたるであなたがスヌパヌマヌケットで䞊んでいる人ず話しおいるかのようです。 これは短い䌚話であり、ここには非垞に小さなトリックがありたす。 本は、読者ずのより長い接觊を意味したす。 飛行機に乗っおいる隣人ずこの䌚話をしたいず思いたす。 あなたは、あなたず矛盟し、あなたず議論し、6時間のフラむトであなたを挑発する人の隣に座りたくないでしょう。 私は2冊目の本を曞き盎さなければならなかった-私はそれが雑誌の蚘事に䌌すぎおいるず感じた。 この50ペヌゞを読んだ埌、あなたは倢䞭になり始めたす、これをすべお曞いた人を憎みたす。 だから、2぀のこずが頭に浮かぶストヌリヌの範囲を広げ、トヌンを䞊げる。



異なる郜垂の芖聎者に違いはありたすか どのタむプのオヌディ゚ンスに䌚ったこずがありたすか



各囜間の文化の違いは顕著です。 どこかで、圌らは話者ず議論しお質問するこずを党く恐れおいたせん。 私はアメリカ、むギリス、ドむツでこれに䌚った。 そこでは、人々は蚀うこずを恥ずかしがり屋ではありたせん。埅っお、䜕らかの間違いがありたす。 そしお、私は議論、正圓化を䞎えなければなりたせん。 他の囜では、人々は問題を匕き起こさないように努め、䜕ずかあなたを怒らせたくありたせん。 ずころで、私の経隓では、人を積極的に巻き蟌もうずするず、これを打砎するこずもできたす。 あなたが圌らず2、3日以䞊過ごすなら、これは特に簡単です-圌らはあなたに慣れたす。 リスナヌはしばしば自分の意志で私のパフォヌマンスに来たす。 圌らが圌らに手を差し䌞べるこずができたら、圌らは非垞に賢く、圌らの考えは興味深いこずがわかりたす。 そのため、開発者の考え方、玠材の認識、質問の仕方に倧きな違いは芋られたせん。 どこぞ行っおも、本圓に面癜い仕事をしおいる非垞に賢い人たちずコミュニケヌションを取らなければならないこずをずおもうれしく思いたす。 圌らに远い぀くこずは、私にずっお挑戊でもあり喜びでもありたす。



今、コヌドを曞いおいたすか



いいえ、それほどではありたせん。 䜕幎も前、私は自分が開発者ではないず刀断したした。 私はか぀お゜フトりェアを開発し、倧孊院にいたずきに倚くのコヌドを曞きたした。 私はこれを恥ずかしく思っおいたした。プログラミングに぀いおみんなに話しおください。 しかし、これは私の仕事ではありたせん。 開発者の仕事は補品を生産するこずだず私には思えたす。 これを行うには、ツヌル、APIを習埗し、最終的に生産的な䜕かをする必芁がありたす。 圌らは忙しすぎお、開発ずC ++の䞖界で起こるすべおを远跡できたせん。 しかし、私のタスクは、発生するすべおを远跡し、それを蚘事、曞籍、スピヌチに倉えるこずです。これにより、開発者は比范的短時間ですべおを実行できたす。 だから私はもはや開発者ではなく、プログラミングにあたり時間を割きたせんが、恥ずかしがり屋ではなくなりたした。 私も自分の仕事が完璧に理にかなっおいるず思いたした。



All Articles