Bjarne Stroustrup, ΡΡΠ·Π΄Π°ΡΠ΅Π»ΡΡ Π½Π° Π΅Π·ΠΈΠΊΠ° C++, ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π° Π²ΡΠ·ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΡΠ΅ΡΡ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΡΡΠ° Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π° Π½Π° NSA, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° Π½Π° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ Π΄Π° ΡΠ΅ ΠΎΡΠ΄Π°Π»Π΅ΡΠ°Ρ ΠΎΡ Π΅Π·ΠΈΡΠΈΡΠ΅ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ ΠΊΠ°ΡΠΎ C ΠΈ C++, ΠΊΠΎΠΈΡΠΎ ΠΎΡΡΠ°Π²ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, Π² ΠΏΠΎΠ»Π·Π° Π½Π° Π΅Π·ΠΈΡΠΈΡΠ΅ ββΠΊΠ°ΡΠΎ C#, Go, Java, Ruby, Rust ΠΈ Swift, ΠΊΠΎΠΈΡΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈΠ»ΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π·Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅.
Π‘ΠΏΠΎΡΠ΅Π΄ Π‘ΡΡΠ°ΡΡΡΡΡΠΏ Π·Π°ΡΠΈΡΠ΅Π½ΠΈΡΠ΅ Π΅Π·ΠΈΡΠΈ, ΡΠΏΠΎΠΌΠ΅Π½Π°ΡΠΈ Π² Π΄ΠΎΠΊΠ»Π°Π΄Π° Π½Π° NSA, Π²ΡΡΡΠ½ΠΎΡΡ Π½Π΅ ΠΏΡΠ΅Π²ΡΠ·Ρ ΠΎΠΆΠ΄Π°Ρ C++ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ°, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π²Π°ΠΆΠ½ΠΈ ΠΎΡ Π½Π΅Π³ΠΎΠ²Π° Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ°. ΠΠΎ-ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ, ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΠΊΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° C++ (C++ Core Guidelines), ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΠΏΡΠ΅Π· ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ, ΠΎΠ±Ρ Π²Π°ΡΠ°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΡΠ΅Π΄ΠΏΠΈΡΠ²Π°Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠΈΠΏΠΎΠ²Π΅ ΠΈ ΡΠ΅ΡΡΡΡΠΈ. Π’ΠΎΠ²Π° ΠΎΡΡΠ°Π²Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΡΡΡΠΎΠ³ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΠΈ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ, Π΄Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Ρ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΡΠ°ΡΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°.
Π‘ΡΡΠ°ΡΡΡΡΡΠΏ Π²ΡΡΠ²Π°, ΡΠ΅ Π΅Π΄ΠΈΠ½ Π΄ΠΎΠ±ΡΡ ΡΡΠ°ΡΠΈΡΠ΅Π½ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ»Π΅Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ Π½Π°ΡΠΎΠΊΠΈ Π½Π° C++, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΡΠΈΠ³ΡΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΠΈ Π·Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΠ° Π½Π° C++ ΠΊΠΎΠ΄Π° Π½Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎ-Π½ΠΈΡΠΊΠ° ΡΠ΅Π½Π° ΠΎΡ ΠΌΠΈΠ³ΡΠΈΡΠ°Π½Π΅ΡΠΎ ΠΊΡΠΌ Π½ΠΎΠ²ΠΈ Π·Π°ΡΠΈΡΠ΅Π½ΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ Π½Π°ΡΠΎΠΊΠΈ Π²Π΅ΡΠ΅ ΡΠ° Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈ Π² ΡΡΠ°ΡΠΈΡΠ½ΠΈΡ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΈ ΠΏΡΠΎΡΠΈΠ»Π° Π·Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°, Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ Π² Microsoft Visual Studio. ΠΡΠΊΠΎΠΈ ΠΏΡΠ΅ΠΏΠΎΡΡΠΊΠΈ ΡΡΡΠΎ ΡΠ° Π²Π·Π΅ΡΠΈ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ Π² ΡΡΠ°ΡΠΈΡΠ½ΠΈΡ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ Clang tidy.
ΠΠΎΠΊΠ»Π°Π΄ΡΡ Π½Π° NSA ΡΡΡΠΎ Π±Π΅ΡΠ΅ ΠΊΡΠΈΡΠΈΠΊΡΠ²Π°Π½, ΡΠ΅ ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ° ΡΠ°ΠΌΠΎ Π²ΡΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΊΠ°ΡΠΎ ΠΏΡΠΎΠΏΡΡΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅, ΠΊΠΎΠΈΡΠΎ Π·Π°ΡΡΠ³Π°Ρ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° ΠΈ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΡΡΠ°. Straustrup ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° ΠΊΠ°ΡΠΎ ΠΏΠΎ-ΡΠΈΡΠΎΠΊΠ° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ, ΡΠ°Π·Π»ΠΈΡΠ½ΠΈΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΠΈ Π½Π° ΠΊΠΎΡΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΠΎΡΡΠΈΠ³Π½Π°ΡΠΈ ΡΡΠ΅Π· ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΎΡ ΡΡΠΈΠ» Π½Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΡΡΠ°ΡΠΈΡΠ½ΠΈ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΈ. ΠΠ° Π΄Π° ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ° Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π°, ΠΊΠΎΠΈΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠΈΠΏΠΎΠ²Π΅ ΠΈ ΡΠ΅ΡΡΡΡΠΈ, ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π°Π½ΠΎΡΠ°ΡΠΈΠΈ Π² ΠΊΠΎΠ΄Π° ΠΈ ΠΎΠΏΡΠΈΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ°.
Π ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΡΠ΄Π΅ΡΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π΅ ΠΏΠΎ-Π²Π°ΠΆΠ½Π° ΠΎΡ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ°, ΡΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠ΅Π»Π΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Ρ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΡΠ°ΠΌΠΎ ΡΠ°ΠΌ, ΠΊΡΠ΄Π΅ΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ°. ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΡΡΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π°Ρ Π½Π° ΡΠ°ΡΡΠΈ, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π·Π°ΠΏΠΎΡΠ²Π°Π½Π΅ Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΎΠ±Ρ
Π²Π°Ρ ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ Π°Π΄Π°ΠΏΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π° ΠΊΡΠΌ ΠΏΠΎ-ΡΡΡΠΎΠ³ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru