РоÑеÑедной Ñаз Ñвидел на ХабÑе ÑÑаÑÑÑ Ð¿Ñо Ñложное дело под названием «пÑогÑаммиÑование». Ð Ñо, ÑÑо пÑогÑаммиÑование дейÑÑвиÑелÑно ÑвлÑеÑÑÑ Ð´ÐµÐ»Ð¾Ð¼ не пÑоÑÑÑм воÑпÑинимаеÑÑÑ ÐºÐ°Ðº ÑÐ°ÐºÑ Ð¸ обÑÑно не ÑÑебÑÐµÑ ÐºÐ°ÐºÐ¾Ð³Ð¾ либо подÑвеÑждениÑ.
Ðо понÑÑие «ÑложноÑÑÑ» ÑÑодни ÑеÑÐ¼Ð¸Ð½Ñ Â«ÐºÑÑа». ÐÐ»Ñ ÐºÐ¾Ð³Ð¾-Ñо и пÑÑÑ ÐºÐ¾ÐºÐ¾Ñов ÑÑо не кÑÑа, а кого-Ñо ÑÑел один и «болÑÑе не Ñ Ð¾ÑеÑÑÑ» â знаÑÐ¸Ñ Ð´Ð»Ñ Ð½ÐµÐ³Ð¾ и единÑÑвенного кокоÑа бÑÐ´ÐµÑ Ð¼Ð½Ð¾Ð³Ð¾.
Так и Ñо ÑложноÑÑÑÑ ÐÐ. ÐÑоде Ð±Ñ ÑвелиÑение ÑложноÑÑи ÑвлÑеÑÑÑ Ð´Ð»Ñ Ð²ÑÐµÑ Ð¾ÑевиднÑм и наблÑдаеÑÑÑ Ð²Ð¾ вÑÐµÑ ÑÑеÑÐ°Ñ Ð¿ÑÐ¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ IT ÑÐµÑ Ð½Ð¾Ð»Ð¾Ð³Ð¸Ð¹, да и Ñами ÑзÑки пÑогÑаммиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ меÑе Ñвоего ÑазвиÑÐ¸Ñ ÑÑановÑÑÑÑ Ð²Ñе Ñложнее, а Ð²Ð¾Ñ Ð¾ÑениваÑÑ Â«ÑложноÑÑÑ» Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑиÑленнÑÑ Ð¼ÐµÑÑик â дело заведомо неблагодаÑное, но и «нелÑÐ·Ñ ÑпÑавлÑÑÑ Ñем, ÑÑо невозможно измеÑиÑÑ ...».
ÐбÑÑно ÑазговоÑÑ Ð¾ «ÑложноÑÑи» вклÑÑаÑÑ Ð² ÑÐµÐ±Ñ ÑолÑко оÑеноÑнÑе ÑÑÐ¶Ð´ÐµÐ½Ð¸Ñ Ð±ÐµÐ· какой либо ÑиÑленной оÑенки. Ð Ñак как лиÑно Ð¼ÐµÐ½Ñ Ð¸Ð½ÑеÑеÑÑÐµÑ Ð²Ð¾Ð¿ÑÐ¾Ñ ÑложноÑÑи ÑзÑков пÑогÑаммиÑованиÑ, Ñо Ñ ÑеÑил поÑÑиÑаÑÑ ÑложноÑÑÑ ÑеализаÑии компилÑÑоÑа gcc в ÐºÐ°ÐºÐ¸Ñ Ð½Ð¸Ð±ÑÐ´Ñ ÑÑловнÑÑ Ð¿Ð¾Ð¿ÑгаÑÑ . ÐдÑÑг можно бÑÐ´ÐµÑ ÑвидеÑÑ ÐºÐ°ÐºÐ¸Ðµ нибÑÐ´Ñ Ð·Ð°ÐºÐ¾Ð½Ð¾Ð¼ÐµÑноÑÑи?
ÐÑÐ±Ð¾Ñ Â«Ð¿Ð¾Ð¿Ñгаев» Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÑениÑ
Я не ÑÑал пÑидÑмÑваÑÑ Ñвои или вÑÑиÑлÑÑÑ ÑмпиÑиÑеÑкие меÑÑики пÑогÑаммного кода, и в каÑеÑÑве «попÑгаÑ» ÑеÑил взÑÑÑ ÑамÑÑ Ð¿ÑоÑÑÑÑ Ð¼ÐµÑÑÐ¸ÐºÑ SLOC (англ. Source Lines of Code) â колиÑеÑÑво ÑÑÑок иÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ ÑекÑÑа компилÑÑоÑа, коÑоÑÐ°Ñ Ð¾ÑÐµÐ½Ñ Ð»ÐµÐ³ÐºÐ¾ вÑÑиÑлÑеÑÑÑ.
ÐÑавда, Ñ ÐµÑ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ бÑÐ´ÐµÑ Ð¾ÑениваÑÑ ÑложноÑÑÑ ÑзÑка ÑолÑко пÑи ÑледÑÑÑем допÑÑении â ÑложноÑÑÑ ÑзÑка должна Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑÑ Ð² пÑÑмой завиÑимоÑÑи Ð¾Ñ ÑложноÑÑи его ÑеализаÑии, еÑли Ð´Ð»Ñ Ð¿ÑоÑÑÑÑ ÑинÑакÑиÑеÑÐºÐ¸Ñ ÐºÐ¾Ð½ÑÑÑÑкÑий бÑÐ´ÐµÑ ÑÑебоваÑÑ Ð¼ÐµÐ½ÑÑе кода, Ñем Ð´Ð»Ñ Ð±Ð¾Ð»ÐµÐµ ÑложнÑÑ .
ÐонеÑно, иÑполÑзование меÑÑики «колиÑеÑÑво ÑÑÑок иÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ кода» Ð¸Ð¼ÐµÐµÑ Ð¸ Ñвои недоÑÑаÑки, Ñ.к. она ÑилÑно завиÑÐ¸Ñ Ð¾Ñ Ð¸ÑполÑзÑемого ÑзÑка пÑогÑаммиÑованиÑ, ÑÑÐ¸Ð»Ñ Ð¾ÑоÑÐ¼Ð»ÐµÐ½Ð¸Ñ Ð¸ÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ кода и в обÑем ÑлÑÑае не позволÑÐµÑ ÑÑавниваÑÑ Ð½ÐµÑколÑко ÑазнÑÑ Ð¿ÑоекÑов Ð¼ÐµÐ¶Ð´Ñ Ñобой.
Ðо Ð´Ð»Ñ ÑиÑленной оÑенки ÑложноÑÑи кода в ÑÐ°Ð¼ÐºÐ°Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ пÑоекÑа, меÑÑика SLOC Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð¸Ñ Ñ Ð¾ÑоÑо.
ÐеÑодика подÑÑеÑа SLOC
ÐзнаÑалÑно попÑобовал иÑполÑзоваÑÑ Ð¿ÑоÑÑой bash ÑкÑÐ¸Ð¿Ñ Ñ Ð¿Ð¾Ð¸Ñком по маÑке и подÑÑеÑом ÑиÑла ÑÑÑок в ÑÐ°Ð¹Ð»Ð°Ñ Ð¸ÑÑ Ð¾Ð´Ð½Ð¸ÐºÐ° ÑеÑез «wc -l». Ðо ÑеÑез некоÑоÑое вÑÐµÐ¼Ñ ÑÑало понÑÑно, ÑÑо пÑÐ¸Ñ Ð¾Ð´Ð¸ÑÑÑ Ð¸Ð·Ð¾Ð±ÑеÑаÑÑ Ð¾ÑеÑедной велоÑипед.
ÐÑ Ð²Ñ Ð¿Ð¾Ð½Ñли:
ÐоÑÑÐ¾Ð¼Ñ ÑеÑил взÑÑÑ Ñже гоÑовÑй. ÐоÑле бÑÑÑÑого поиÑка оÑÑановилÑÑ Ð½Ð° ÑÑилиÑе SLOCCount, коÑоÑÐ°Ñ ÑÐ¼ÐµÐµÑ Ð°Ð½Ð°Ð»Ð¸Ð·Ð¸ÑоваÑÑ Ð¿Ð¾ÑÑи ÑÑи деÑÑÑка Ñипов иÑÑ Ð¾Ð´Ð½Ð¸ÐºÐ¾Ð².
СпиÑок Ñипов Ñайлов Ð´Ð»Ñ Ð°Ð²ÑомаÑиÑеÑкого анализа
1. Ada (.ada, .ads, .adb)
2. Assembly (.s, .S, .asm)
3. awk (.awk)
4. Bourne shell and variants (.sh)
5. C (.c)
6. C++ (.C, .cpp, .cxx, .cc)
7. C shell (.csh)
8. COBOL (.cob, .cbl) as of version 2.10
9. C# (.cs) as of version 2.11
10. Expect (.exp)
11. Fortran (.f)
12. Haskell (.hs) as of version 2.11
13. Java (.java)
14. lex/flex (.l)
15. LISP/Scheme (.el, .scm, .lsp, .jl)
16. Makefile (makefile) â not normally shown.
17. Modula-3 (.m3, .i3) as of version 2.07
18. Objective-C (.m)
19. Pascal (.p, .pas)
20. Perl (.pl, .pm, .perl)
21. PHP (.php, .php[3456], .inc) as of version 2.05
22. Python (.py)
23. Ruby (.rb) as of version 2.09
24. sed (.sed)
25. SQL (.sql) â not normally shown.
26. TCL (.tcl, .tk, .itk)
27. Yacc/Bison (.y)
ÐÑиÑем, ÑÑиÑÐ°ÐµÑ Ð½Ðµ пÑоÑÑо колиÑеÑÑво ÑÑÑок иÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ ÑекÑÑа, но и ÑÐ¼ÐµÐµÑ Ð¸Ð³Ð½Ð¾ÑиÑоваÑÑ ÐºÐ¾Ð¼Ð¼ÐµÐ½ÑаÑии, иÑклÑÑÐ°ÐµÑ Ð¸Ð· подÑÑеÑа дÑбли Ñайлов (ÑÑÐ°Ð²Ð½Ð¸Ð²Ð°ÐµÑ Ð¸Ñ Ñ ÐµÑ ÑÑммÑ), а Ñакже вÑÐ²Ð¾Ð´Ð¸Ñ ÑаÑÑеÑнÑÑ ÑÑÑдоемкоÑÑÑ, пÑимеÑнÑÑ Ð¾ÑÐµÐ½ÐºÑ ÑÑоимоÑÑи ÑазÑабоÑки анализиÑÑемого пÑоекÑа и дÑÑгие Ñ Ð°ÑакÑеÑиÑÑики.
ÐÐµÐ½Ñ Ð¸Ð·Ð½Ð°ÑалÑно инÑеÑеÑовал обÑем иÑÑ Ð¾Ð´Ð½Ð¸ÐºÐ¾Ð² на С/С++ и Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÐµÑе на ÐÑÑемблеÑе, еÑли ÑÐ°ÐºÐ¸Ñ Ñайлов окажеÑÑÑ Ð´Ð¾ÑÑаÑоÑно много. Ðо поÑле наÑала ÑабоÑÑ Ð¾ÑÐµÐ½Ñ Ð¾Ð±ÑадовалÑÑ, ÑÑо не ÑÑал изобÑеÑаÑÑ Ð²ÐµÐ»Ð¾Ñипед, а взÑл гоÑовÑÑ ÑÑлзÑ, Ñ.к. она оÑделÑно ÑÑиÑала ÑÑаÑиÑÑÐ¸ÐºÑ Ð¸ÑÑ Ð¾Ð´Ð½ÑÑ Ñайлов ÑинÑакÑиÑеÑкого анализаÑоÑа Yacc/Bison (.y), коÑоÑÑй и опÑеделÑÐµÑ ÑакÑиÑеÑкÑÑ ÑложноÑÑÑ Ð¿Ð°ÑÑеÑа (ÑиÑай ÑложноÑÑÑ ÑинÑакÑиÑа ÑзÑка пÑогÑаммиÑованиÑ).
СÑаÑÑе иÑÑ Ð¾Ð´Ð½Ð¸ÐºÐ¸ gcc бÑал Ñ gcc.gnu.org/mirrors.html, но пеÑед запÑÑком анализаÑоÑа Ñдалил каÑалоги дÑÑÐ³Ð¸Ñ ÐºÐ¾Ð¼Ð¿Ð¸Ð»ÑÑоÑов (ada, fortran, java и Ñ.д.), ÑÑÐ¾Ð±Ñ Ð¾Ð½Ð¸ не попадали в иÑоговÑÑ ÑÑаÑиÑÑикÑ.
РезÑлÑÑаÑÑ Ð² попÑгаÑÑ .
ТаблиÑа
ÐбÑем кода ÑинÑакÑиÑеÑкого анализаÑоÑа Yacc/Bison
ÐбÑем обÑей коÑоÑой Ð±Ð°Ð·Ñ GCC (ÑолÑко Ð´Ð»Ñ ÑзÑков C и C++)
ÐÑводÑ
Ð ÑожалениÑ, ÑинÑакÑиÑеÑкий анализаÑÐ¾Ñ Yacc/Bison иÑполÑзовалÑÑ ÑолÑко до 3 веÑÑии, а поÑле его иÑполÑзование ÑвелоÑÑ Ð½Ð° неÑ. ÐоÑÑÐ¾Ð¼Ñ Ð¾ÑениÑÑ ÑложноÑÑÑ ÑинÑакÑиÑа С/С++ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¾Ð±Ñема кода паÑÑеÑа можно лиÑÑ Ð¿ÑимеÑно до 1996-98 года, поÑле Ñего его ÑÑали поÑÑепенно вÑпиливаÑÑ, Ñ.е. ÑÑÑÑ Ð¼ÐµÐ½ÐµÐµ, Ñем за деÑÑÑÑ Ð»ÐµÑ. Ðо даже за ÑÑÐ¾Ñ Ð¿ÐµÑиод обÑем кодовой Ð±Ð°Ð·Ñ ÑинÑакÑиÑеÑкого анализаÑоÑа вÑÑÐ¾Ñ Ð´Ð²ÑкÑаÑно, ÑÑо пÑимеÑно ÑооÑвеÑÑÑвÑÐµÑ Ð¿Ð¾ вÑемени ÑеализаÑии ÑÑандаÑÑа C99.
Ðо даже еÑли не ÑÑиÑÑваÑÑ ÐºÐ¾Ð´ ÑинÑакÑиÑеÑкого анализаÑоÑа, Ñо обÑем обÑей кодовой Ð±Ð°Ð·Ñ Ñак же коÑÑелиÑÑÐµÑ Ñ Ð²Ð½ÐµÐ´Ñением новÑÑ ÑÑандаÑÑов C++: C99, С11 и C14.
Ðа гÑаÑике не видно вÑÑаженного пика Ð´Ð»Ñ Ð¡+17 и ÑледÑÑÑÐ¸Ñ Ð²ÐµÑÑий, но пÑедполагаÑ, ÑÑо пÑи ÑекÑÑем обÑеме кодой Ð±Ð°Ð·Ñ (более 4 миллионов ÑÑÑок ÑолÑко С и С++ кода), неÑколÑко ÑÑÑÑÑ ÑÑÑок, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼ÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð´Ð´ÐµÑжки ÑинÑакÑиÑеÑÐºÐ¸Ñ ÐºÐ¾Ð½ÑÑÑÑкÑий новÑÑ ÑÑандаÑÑов пÑоÑÑо незамеÑно.
ÐÑвод пеÑвÑй â оÑевиднÑй. РоÑÑ ÑложноÑÑи инÑÑÑÑменÑов ÑазÑабоÑки
ФакÑиÑеÑки на пÑимеÑе пÑоекÑа GCC можно видеÑÑ Ð¿Ð¾ÑÑоÑннÑй и неоÑвÑаÑимÑй ÑоÑÑ ÑложноÑÑи ÑабоÑÐ¸Ñ Ð¸Ð½ÑÑÑÑменÑов пÑогÑаммиÑÑов.
Ркак Ð±Ñ Ð½Ðµ говоÑили о дегÑадаÑии ÑазÑабоÑки в ÑÑаÑÑе «ХоÑоÑие вÑемена ÑождаÑÑ Ñлабаков», о ÑиÑÑемном кÑизиÑе пÑогÑаммного обеÑпеÑениÑ, коÑоÑÑй ноÑÐ¸Ñ Ð¿Ð¾ÐºÐ¾Ð»ÐµÐ½ÑеÑком Ñ Ð°ÑакÑеÑ, но мне кажеÑÑÑ ÑÑÑ Ð´ÐµÐ»Ð¾ немного в дÑÑгом.
Ðбновление пеÑÑонала и как ÑледÑÑвие â Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑÑ Ð¾Ð±ÑÑÐµÐ½Ð¸Ñ Ð½Ð¾Ð²ÑÑ ÑоÑÑÑдников ÑÑаÑÑм наÑабоÑкам, ÑÑÑ Ð´ÐµÐ»Ð¾ не ÑколÑко в пеÑедаÑе знаний, ÑколÑко в возможноÑÑи ÑÑи Ð·Ð½Ð°Ð½Ð¸Ñ ÑÑваиваÑÑ.
ÐÑиÑем возможноÑÑÑ ÑÑÐ²Ð¾ÐµÐ½Ð¸Ñ Ð·Ð½Ð°Ð½Ð¸Ð¹ Ð´Ð»Ñ ÑазнÑÑ Ð¿Ð¾ÐºÐ¾Ð»ÐµÐ½Ð¸Ð¹ бÑÐ´ÐµÑ ÑазнаÑ, но не из-за Ñого, ÑÑо пÑедÑдÑÑее поколение бÑло Ñмнее, а Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ð¿Ð¾ÐºÐ¾Ð»ÐµÐ½Ð¸Ñ Ð½Ðµ Ñ Ð²Ð°ÑÐ°ÐµÑ ÑÐ¾Ð»ÐºÑ Ð² ÑÑом ÑазобÑаÑÑ. ÐÑоÑÑо изменÑеÑÑÑ Ð¾ÐºÑÑжение и ÑÑложнÑÑÑÑÑ ÑабоÑие инÑÑÑÑменÑÑ, по ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ñ Ñеми, коÑоÑÑе бÑли в Ñ Ð¾Ð´Ñ Ñ Ð¿ÑедÑдÑÑего поколениÑ.
ÐÑвод вÑоÑой â поÑог Ð²Ñ Ð¾Ð´Ð°
ÐÑедÑÑавÑÑе, ÑÑо нÑжно «ÑделаÑÑ Ñвой ÑайÑ». ÐÑÑеÑÑвенно нÑжно опÑеделиÑÑ, какÑÑ CMS Ð´Ð»Ñ Ð½ÐµÐ³Ð¾ иÑполÑзоваÑÑ Ð¸ какой бÑаÑÑ Ñ Ð¾ÑÑинг. РеÑли Ñ Ñ Ð¾ÑÑингом вопÑÐ¾Ñ ÑеÑаеÑÑÑ Ð¾ÑÐµÐ½Ñ Ð¿ÑоÑÑо, конеÑно же в TimeWeb, да еÑе и Ñ Ð±Ð¾Ð½ÑÑом по ÑÑÑлке, Ñо пÑи вÑбоÑе CMS пÑÐ¸Ñ Ð¾Ð´Ð¸ÑÑÑ Ð¿Ð¾Ð´ÑмаÑÑ.
РеÑли Ð´Ð»Ñ Ð¿ÑоÑÑÑÑ ÑайÑов ÑÑÑеÑÑвÑÑÑ Ð¸ пÑоÑÑÑе ÑеÑениÑ, Ñо Ð´Ð»Ñ ÑÐµÑ , кÑо не иÑÐµÑ Ð»ÐµÐ³ÐºÐ¸Ñ Ð¿ÑÑей ÑÑÑеÑÑвÑÐµÑ CMS Drupal, коÑоÑÑй пÑимеÑаÑелен Ñем, ÑÑо Ð¸Ð¼ÐµÐµÑ ÑанÑаÑÑиÑеÑки вÑÑокий поÑог Ð²Ñ Ð¾Ð´Ð° Ð´Ð»Ñ Ð½Ð°Ñала иÑполÑзованиÑ.
ÐÑо Ñ Ðº ÑемÑ? ÐÑи иÑполÑзовании лÑбого инÑÑÑÑменÑа, как и ÑзÑка пÑогÑаммиÑованиÑ, ÑÑÑеÑÑвÑÐµÑ Ð½ÐµÐºÐ¸Ð¹ минималÑнÑй ÑÑÐ¾Ð²ÐµÐ½Ñ ÐºÐ¾Ð¼ÑоÑÑного иÑполÑзованиÑ. ÐÑиÑем ÑÑÐ¾Ñ ÑÑÐ¾Ð²ÐµÐ½Ñ Ð¿ÑÑмо пÑопоÑÑионалÑно ÑвÑзан Ñ ÑазмеÑом Ñой Ñелевой аÑдиÑоÑии, Ð´Ð»Ñ ÐºÐ¾ÑоÑой он пÑедназнаÑен. ТоÑнее, ÑÐ°Ð·Ð¼ÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ð¹ аÑдиÑоÑии опÑеделÑеÑÑÑ Ð² Ñом ÑиÑле и ÑÑебованиÑми к ÑÑÐ¾Ð²Ð½Ñ Ð½Ð°ÑалÑнÑÑ Ð·Ð½Ð°Ð½Ð¸Ð¹ и квалиÑикаÑии поÑенÑиалÑного полÑзоваÑелÑ.
ÐÑоговÑй вÑвод â не ÑÑеÑиÑелÑнÑй
ÐÑли ÑаÑÑмаÑÑиваÑÑ ÑвелиÑение ÑложноÑÑи ÑолÑко Ñамого ÐÐ, Ñо ÑÑо одно дело. ÐÐ¾Ñ Ðº пÑимеÑÑ:
СÑаÑиÑÑика ÑдÑа Linux Ñ Ð²Ð¸ÐºÐ¸
17 ÑенÑÑбÑÑ 1991: Linux веÑÑии 0.01 (10 239 ÑÑÑок кода).
14 маÑÑа 1994: Linux веÑÑии 1.0.0 (176 250 ÑÑÑок кода).
ÐаÑÑ 1995: Linux веÑÑии 1.2.0 (310 950 ÑÑÑок кода).
9 иÑÐ½Ñ 1996: Linux веÑÑии 2.0.0 (777 956 ÑÑÑок кода).
25 ÑнваÑÑ 1999: Linux веÑÑии 2.2.0, изнаÑалÑно доволÑно недоÑабоÑаннÑй (1 800 847 ÑÑÑок кода).
4 ÑнваÑÑ 2001: Linux веÑÑии 2.4.0 (3 377 902 ÑÑÑоки кода).
18 декабÑÑ 2003: Linux веÑÑии 2.6.0 (5 929 913 ÑÑÑок кода).
23 маÑÑа 2009: Linux веÑÑии 2.6.29, вÑеменнÑй Ñимвол Linux â ÑаÑманÑкий дÑÑвол Tuz (11 010 647 ÑÑÑок кода).
22 иÑÐ»Ñ 2011: Ñелиз Linux 3.0 (14,6 млн ÑÑÑок кода).
24 окÑÑбÑÑ 2011: Ñелиз Linux 3.1.
15 ÑнваÑÑ 2012: Ñелиз Linux 3.3 пÑеодолел оÑмеÑÐºÑ Ð² 15 млн ÑÑÑок кода.
23 ÑевÑÐ°Ð»Ñ 2015: пеÑвÑй Ñелиз-ÐºÐ°Ð½Ð´Ð¸Ð´Ð°Ñ Linux 4.0 (более 19 млн ÑÑÑок кода).
7 ÑнваÑÑ 2019: пеÑвÑй Ñелиз-ÐºÐ°Ð½Ð´Ð¸Ð´Ð°Ñ Linux 5.0 (более 26 млн ÑÑÑок кода).
Ð ÑÑо делаÑÑ, еÑли ÑложноÑÑÑ Ð¿ÑогÑаммного обеÑпеÑÐµÐ½Ð¸Ñ Ð½Ð°ÐºÐ»Ð°Ð´ÑваеÑÑÑ Ð½Ð° ÑенденÑÐ¸Ñ Ð¿Ð¾ÑÑоÑнного ÑÑÐ»Ð¾Ð¶Ð½ÐµÐ½Ð¸Ñ ÑÐ°Ð¼Ð¸Ñ ÑабоÑÐ¸Ñ Ð¸Ð½ÑÑÑÑменÑов? ÐÐµÐ´Ñ Ð¿Ð¾ÑÑоÑнное ÑазвиÑие ÑзÑков пÑогÑаммиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð½ÐµÐ¸Ð·Ð±ÐµÐ¶Ð½Ð¾ повÑÑÐ°ÐµÑ Ð¿Ð¾Ñог Ð²Ñ Ð¾Ð´Ð° Ð´Ð»Ñ Ð²ÑÐµÑ Ð½Ð°ÑинаÑÑÐ¸Ñ Ð¸ ÑолÑко ÑÑÑгÑблÑÐµÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ ÑложноÑÑи ÑазÑабоÑки ÐÐ.
ÐÑÑгими Ñловами, не завиÑимо Ð¾Ñ Ñого, как Ñ Ð¾ÑоÑо докÑменÑиÑован код и как полно он покÑÑÑ ÑеÑÑами, ÑеÑез некоÑоÑое вÑÐµÐ¼Ñ ÑÑÑаÑеваÑÑ Ð¸ÑполÑзÑемÑе инÑÑÑÑменÑÑ, завеÑÑаÑÑÑÑ Ð¶Ð¸Ð·Ð½ÐµÐ½Ð½Ñе ÑÐ¸ÐºÐ»Ñ Ð²Ð½ÐµÑÐ½Ð¸Ñ Ð·Ð°Ð²Ð¸ÑимоÑÑей, и Ñамое главное, пÑÐ¸Ñ Ð¾Ð´ÑÑ Ð½Ð¾Ð²Ñе лÑди взамен ÑÐµÑ , кÑо ÑазÑабоÑал или ÑÑмел ÑазобÑаÑÑÑÑ Ð² ÑиÑÑеме.
Ð Ñ Ð½Ð¾Ð²ÑÑ Ð»Ñдей Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÐµÑ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑÑ ÑазбиÑаÑÑÑÑ Ð² ÑиÑÑеме Ñ Ñамого наÑала, но в дÑÑÐ³Ð¸Ñ Ð½Ð°ÑалÑнÑÑ ÑÑловиÑÑ . Риз-за ÑÑого, ÑложноÑÑÑ Ð¸Ð·ÑÑÐµÐ½Ð¸Ñ ÑиÑÑÐµÐ¼Ñ Ð´Ð»Ñ Ð²ÑÐµÑ Ð½Ð¾Ð²ÑÑ Ð»Ñдей бÑÐ´ÐµÑ Ð²ÑÑе пÑоÑÑо по ÑакÑÑ Ñого, ÑÑо изменилиÑÑ Ð²Ð½ÐµÑние ÑÑÐ»Ð¾Ð²Ð¸Ñ Ð¸ ÑÑложнилиÑÑ ÑабоÑие инÑÑÑÑменÑÑ, коÑоÑÑми пÑÐ¸Ñ Ð¾Ð´Ð¸ÑÑÑ Ð¸ÑполÑзоваÑÑ Ð½Ð¾Ð²Ñм ÑоÑÑÑдникам.
ÐонÑÑно, ÑÑо Ñем далÑÑе, Ñем пÑоÑе Ñже не бÑдеÑ. ÐÐµÐ´Ñ Ð¾Ð±Ð»Ð°ÑÑÑ IT, ÑÑо ÑÑеда Ñ Ñамой вÑÑокой конкÑÑенÑией. Ркак Ñж ÑÑÑ Ð½Ðµ вÑпомниÑÑ ÐÑÑиÑа ÐÑÑÑола, ÑÑо его кÑÑлаÑое вÑÑажение
ÐÑжно бежаÑÑ Ñо вÑÐµÑ Ð½Ð¾Ð³, ÑÑÐ¾Ð±Ñ ÑолÑко оÑÑаваÑÑÑÑ Ð½Ð° меÑÑе, а ÑÑÐ¾Ð±Ñ ÐºÑда-Ñо попаÑÑÑ, надо бежаÑÑ ÐºÐ°Ðº минимÑм вдвое бÑÑÑÑее!ÐÐµÐ´Ñ ÑÑо оÑноÑиÑÑÑ Ð½Ðµ ÑолÑко к ÐлиÑе в ÑÑÑане ÑÑдеÑ, но и ко вÑем инÑоÑмаÑионнÑм ÑÐµÑ Ð½Ð¾Ð»Ð¾Ð³Ð¸Ñм в Ñелом!