Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π–ΡƒΡ€Π½Π°Π» Β«ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ€Π°Β» β„– 8 ΠΎΡ‚ 27 фСвраля 2007 Π³ΠΎΠ΄Π°Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 11

Автор ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ€Π°

Π’Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡƒΡ€Π°Ρ†ΠΊΠΈΡ… скобок [Lot of silly parenthesis β€” Β«ΠΊΡƒΡ‡Π° Π³Π»ΡƒΠΏΡ‹Ρ… скобок» β€” старинная ΡˆΡƒΡ‚ΠΎΡ‡Π½Π°Ρ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠ° названия языка Lisp]

Lisp (1958) построСн Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΈΠ΄Π΅ΠΈ «всё Π΅ΡΡ‚ΡŒ список». Всё β€” здСсь Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ всё, Π² Ρ‚ΠΎΠΌ числС ΠΈ сама ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°: Lisp Π·Π°Π»ΠΎΠΆΠΈΠ» основы восприятия ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠ°ΠΊ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сама ΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. ΠžΡ‚ΡΡŽΠ΄Π° β€” бСсконСчно Π³ΠΈΠ±ΠΊΠΈΠΉ синтаксис, ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ Π²ΠΎ Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ синтаксичСских макросов, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΏΠΎΡ€ΠΎΠ΄ΠΈΠ²ΡˆΠΈΠΉ идСю «языков Π²Π½ΡƒΡ‚Ρ€ΠΈ языка» (ΡƒΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡) ΠΈ ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ Ρƒ лиспСров взгляда свысока β€” Β«Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ваш язык программирования, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π° макросах Π½Π΅ сдСлаСм?Β». ΠžΡ‚ΡΡŽΠ΄Π° ΠΆΠ΅, ΠΈΠ· Лиспа, тянСтся Π½ΠΈΡ‚ΠΎΡ‡ΠΊΠ° (Ρ†Π΅Π»Ρ‹ΠΉ ΠΊΠ°Π½Π°Ρ‚) ΠΊ идСям Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования (см. Π½ΠΈΠΆΠ΅).

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ΄Π΅ΠΈ ΠΈ Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Лиспа способствовало ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ многочислСнного сообщСства Β«Ρ„Π°Π½Π°Ρ‚ΠΎΠ²Β», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π²ΡˆΠΈΡ… Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΉ язык Π³Π΄Π΅ Π½ΠΈ попадя. Π’ качСствС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ макроязыка разновидности Lisp встроСны Π² Emacs ΠΈ AutoCAD; ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (viaweb) Π±Ρ‹Π»ΠΎ написано Π½Π° Π½Π΅ΠΌ. Π—Π° сорок Π»Π΅Ρ‚ споры ΠΎ дСталях ΠΈ особСнностях, практичности ΠΈ чистотС ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ ΠΊ появлСнию бСсчислСнного мноТСства Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ΠΎΠ², Π³Π»Π°Π²Π½Ρ‹Π΅ β€” Scheme (Π±ΠΎΠ»Π΅Π΅ изящный, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² основном Π² ΡƒΡ‡Π΅Π±Π΅ [Π”ΠΎ Π½Π΅Π΄Π°Π²Π½Π΅Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π½Π°ΠΌΠ΅Π½ΠΈΡ‚Ρ‹ΠΉ курс MIT Β«Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΈ интСрпрСтация ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΒ» использовал ΠΈΠΌΠ΅Π½Π½ΠΎ Scheme. ΠœΠ΅ΡΡΡ† Π½Π°Π·Π°Π΄ Scheme Π²Ρ€ΠΎΠ΄Π΅ Π±Ρ‹ Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π½Π° Python. Times, they are changing]) ΠΈ Common Lisp (Π² ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ смыслС Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ‹ΠΉ, Π½ΠΎ ΠΈ ΠΌΠ΅Π½Π΅Π΅ стройный), Π΅ΡΡ‚ΡŒ ΠΈ Β«Π±ΠΎΠ»Π΅Π΅ экстрСмистскиС», Π²Ρ€ΠΎΠ΄Π΅ малСнького-ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½ΠΎΠ³ΠΎ newLISP ΠΈΠ»ΠΈ свСрх-ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ-чистого Qi.

Smalltalk

Π‘Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π°ΠΊ: сначала Ρ‚Ρ‹ «снаруТи», Π²ΠΎΠΊΡ€ΡƒΠ³ всС ΠΎΡ‡Π΅Π½ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅, ΠΎΡ‡Π΅Π½ΡŒ Π·Π½Π°ΠΊΠΎΠΌΠΎΠ΅ ΠΈ скучноС. А ΠΏΠΎΡ‚ΠΎΠΌ ΠΌΠΈΠΌΠΎ проносится Π‘Π΅Π»Ρ‹ΠΉ ΠšΡ€ΠΎΠ»ΠΈΠΊ, ΠΏΡ€ΠΈ часах ΠΈ ΠΏΡ€ΠΈ ΠΆΠΈΠ»Π΅Ρ‚Π΅. Π”Π°Π»ΡŒΡˆΠ΅ извСстно Ρ‡Ρ‚ΠΎ: погоня, нСсколько ΠΌΠΈΠ½ΡƒΡ‚ свободного падСния Π²Π½ΠΈΠ· ΠΏΠΎ ΠΊΡ€ΠΎΠ»ΠΈΡ‡ΡŒΠ΅ΠΉ Π½ΠΎΡ€Π΅ β€” ΠΈ Ρ‚Ρ‹ ΡƒΠΆΠ΅ Β«Π²Π½ΡƒΡ‚Ρ€ΠΈΒ», Π° ΠΈΠ· ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ΠΈ Π·Π½Π°ΠΊΠΎΠΌΠΎΠ³ΠΎ остался Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Ρ‹ сам, Π΄Π° ΠΈ это Π½Π΅Π½Π°Π΄ΠΎΠ»Π³ΠΎ. Π’Π°ΠΊΠΈΠ΅ пСрСТивания β€” ΠΊΠΎΠ³Π΄Π° Π·Π° ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ΠΎΠΌ Π²Π΄Ρ€ΡƒΠ³ распахиваСтся Ρ†Π΅Π»Ρ‹ΠΉ Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠΈΡ€ β€” ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ссли Π½Π΅ смысл ΠΆΠΈΠ·Π½ΠΈ, Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ Ρ‚ΠΎΠ³ΠΎ.

Π’Ρ€ΠΈ Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ Ρƒ мСня Π±Ρ‹Π»ΠΎ ΠΎΡ‰ΡƒΡ‰Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Ρ€Π°Π΄ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² области Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО ΠΌΠ½Π΅ ΡƒΠΆΠ΅ Π½Π΅ откроСтся, Π° ΠΌΠ΅Ρ‡Ρ‚Π° ΠΎ Π³ΠΈΠ±ΠΊΠΎΠΉ, ΠΆΠΈΠ²ΠΎΠΉ ΠΈ ΠΌΠΎΡ‰Π½ΠΎΠΉ срСдС программирования… Π§Ρ‚ΠΎ ΠΆ, Π½Π° Ρ‚ΠΎ ΠΎΠ½Π° ΠΈ ΠΌΠ΅Ρ‡Ρ‚Π°.

ΠŸΠΎΡ‚ΠΎΠΌ ΡΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ я смСнил мСсто ΠΆΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²Π°, Π° с Π½ΠΈΠΌ ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π’Π°ΠΌ, Π³Π΄Π΅ я оказался, Smalltalk β€” Π½Π΅ просто инструмСнт, Π° ТизнСнная позиция, ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ поклонСния. НСсколько нСдСль Ρƒ мСня ΡƒΡˆΠ»ΠΎ Π½Π° ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Π½ΠΈΠ΅ собствСнных прСдрассудков. Π― считал, Ρ‡Ρ‚ΠΎ сборка мусора нСсовмСстима с Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ характСристиками, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ β€” Π° Ρ‚ΡƒΡ‚ Ρƒ мСня Π½Π° Π³Π»Π°Π·Π°Ρ… ядро Π°Π²ΠΈΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ‚Ρ€Π΅Π½Π°ΠΆΠ΅Ρ€Π° Π±ΠΎΠ΄Ρ€ΠΎ ΠΊΡ€ΡƒΡ‚ΠΈΠ»ΠΎ Ρ†ΠΈΠΊΠ» расчСтов сорок Ρ€Π°Π· Π² сСкунду.

Π’Ρ€ΡƒΠ΄Π½Π΅Π΅ всСго оказалось Π²ΠΎΡΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ отсутствиС Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ инструмСнтами ΠΈ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ. «А Π²Π΄Ρ€ΡƒΠ³, β€” рассуТдал я, β€” создаваСмая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сдСлаСт Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π½Π΅ Ρ‚Π°ΠΊ? Π’Π΅Π΄ΡŒ Ρ‚ΠΎΠ³Π΄Π° Ρ€ΡƒΡ…Π½Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½Π°, Π½ΠΎ ΠΈ срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ!Β» На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ всС оказалось Π½Π΅ Ρ‚Π°ΠΊ ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎ. Π’ частности, всС измСнСния ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΆΡƒΡ€Π½Π°Π» (change file), ΠΎΡ‚ΠΊΡƒΠ΄Π° Π² случаС Π°Π²Π°Ρ€ΠΈΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π»Π΅Π³ΠΊΠΎ Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ.

ΠŸΠΎΡΡ‚Π΅ΠΏΠ΅Π½Π½ΠΎ я стал ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ отсутствиС Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ инструмСнтом ΠΈ созидаСмым ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ β€” это Ρ‡ΡƒΡ‚ΡŒ Π»ΠΈ Π½Π΅ Π³Π»Π°Π²Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² Π‘ΠΌΠΎΠ»Ρ‚ΠΎΠΊΠ΅. Π’ΠΎΠΊΡ€ΡƒΠ³ мСста, Π³Π΄Π΅ Π½Π΅ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ эта Π³Ρ€Π°Π½ΠΈΡ†Π°, ΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π²Π΅Ρ‰ΠΈ, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Π΄ΡƒΡ… ΠΈ Π΄ΡƒΡˆΡƒ Smalltalk-систСмы.

НаписаниС ΠΊΠΎΠ΄Π° Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅ β€” Π½Π΅ эффСктный ΠΊΡƒΠ½ΡˆΡ‚ΡŽΠΊ, Π° ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ‹ΠΉ способ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΆΠΈΠ²ΡƒΡŽ ΠΏΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΈΠ· ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π² приостановлСнном вычислСнии ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π° Π½Π΅ Π²ΡΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ ΠΌΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΊΠ°ΠΊ называСтся Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈ Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Ρ‚Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² β€” Π½Π΅ просто полСзная ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ, Π° ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΈΠ½ΠΎΠΌΡƒ способу Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ графичСском интСрфСйсС, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ систСмы способСн Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ с Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ Π½Π° спСцифичСском Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚Π΅ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ языка (ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ€ΠΎΠ»ΠΈ графичСского интСрфСйса, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π² Smalltalk-76 ΠΈ Π² Fabrik, Π±Ρ‹Π»ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ; Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ возвращаСмся ΠΊ сходным взглядам Π½Π° Π½ΠΎΠ²ΠΎΠΌ Π²ΠΈΡ‚ΠΊΠ΅ спирали Π² Ρ‚Π°ΠΊΠΈΡ… срСдах, ΠΊΠ°ΠΊ Morphic ΠΈ Oberon/Bluebottle).

Π‘Π°ΠΌΠΎΠ΅ ΠΆΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅ Π² Π‘ΠΌΠΎΠ»Ρ‚ΠΎΠΊΠ΅ β€” это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‡Π΅Ρ€Π΅Π· Π½Π΅Π³ΠΎ программисты Π½Π΅ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΠΎ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ Π»ΡƒΡ‡ΡˆΠ΅ΠΌΡƒ. МоТно ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ…ΠΎΡ‚ΡŒ Π½Π° ассСмблСрС, Ρ…ΠΎΡ‚ΡŒ Π½Π° VBA, Π½ΠΎ это Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ассСмблСр ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ VBA. Π—Π½Π°Π½ΠΈΠ΅ Π‘ΠΌΠΎΠ»Ρ‚ΠΎΠΊΠ° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ восприятия. НСобходимо, Π½ΠΎ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π΅ достаточно, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π΅Ρ‰Π΅ Haskell ΠΈ Erlang, OCaml ΠΈ Oz, ΠΈ Scheme, ΠΈ Π΅Ρ‰Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡƒΡ‚Π΅ΠΉ Π²Π½ΠΈΠ· ΠΏΠΎ ΠΊΡ€ΠΎΠ»ΠΈΡ‡ΡŒΠ΅ΠΉ Π½ΠΎΡ€Π΅, прямиком Π² Π‘Ρ‚Ρ€Π°Π½Ρƒ ЧудСс.

Борис Π‘Π΅Ρ€ΠΊΠ³Π°ΡƒΡ‚, компания «Вранзас» (Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³), ΠΎΡ‚Π΄Π΅Π» ПО Π°Π²ΠΈΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ‚Ρ€Π΅Π½Π°ΠΆΠ΅Ρ€ΠΎΠ²

ДСкларация нСзависимости

АкадСмичСскоС стрСмлСниС ΠΈΠΌΠ΅Ρ‚ΡŒ матСматичСски стройныС срСдства программирования (ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π±Ρ‹Π»ΠΈ Π±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ матСматичСскиС ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π°, пороТдСния ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π°) ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ ΠΊ созданию ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ программирования β€” идСологичСски стройного описания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ «выполняСтся» Π½Π΅ΠΊΠΈΠΌ ΡƒΠΌΠ½Ρ‹ΠΌ компилятором-"Π΄ΡƒΠΌΠ°Ρ‚Π΅Π»Π΅ΠΌ" [Π‘ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ Π΅ΡΡ‚ΡŒ нСкоторая ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Π°. Π―Π·Ρ‹ΠΊΠΈ описания Ρ‡Π΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΌΠΈ «языками программирования» (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, HTML/XML), Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ]. Разновидности (сущСствСнно Ρ€Π°Π·Π½Ρ‹Π΅): Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° описываСтся ΠΊΠ°ΠΊ матСматичСская функция, зависящая ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… матСматичСских Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π·Π°Ρ‚Π΅ΠΌ вычисляСтся; логичСскоС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” задаСтся Π½Π°Π±ΠΎΡ€ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΎΠ²-ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ, Π·Π°Ρ‚Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выводится ΠΈΠ· этих ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΎΠ²; ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ограничСниях (constraint programming) β€” Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ограничСния Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Π° компилятор вычисляСт всС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ этим ограничСниям.

Из Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… разновидностСй лишь Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΎΠΏΠ»ΠΎΡ‚ΠΈΠ»ΠΎΡΡŒ Π² ΡˆΠΈΡ€ΠΎΠΊΡƒΡŽ сСмью языков (языки-ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ Β«ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎΒ» ML, максимально «идСологичСски чистый» Haskell, странный REFAL, ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ‹ΠΉ Erlang ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ [Lisp ΠΈ Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ постфактум Ρ‚ΠΎΠΆΠ΅ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ]) ΠΈ собрало ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ сообщСство Β«Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΡ‰ΠΈΠΊΠΎΠ²Β». БСгодня Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Β«Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅Β» опрСдСляСт ΠΊΠ°ΠΊ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°-ΠΊΠ°ΠΊ-вычислСниС-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ), Ρ‚Π°ΠΊ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ (Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ· Π½ΠΈΡ… Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ свойством Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… языков, Π½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² этой срСдС): Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠ°ΠΊ Π΄Π°Π½Π½Ρ‹Π΅, Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, продолТСния (continuations), сопоставлСниС с ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠΌ (pattern matching) ΠΈ Ρ‚. ΠΏ.

Π§Ρ‚ΠΎ Π΄ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… способов программирования, Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ, Ρ‚ΠΎ ΠΎΠ½ΠΈ оказались Π±ΠΎΠ»Π΅Π΅ ΡƒΠ·ΠΊΠΎΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΈΠ· языков ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ логичСским являСтся Ρ€Π°Π·Π²Π΅ Ρ‡Ρ‚ΠΎ Prolog; Π·Π°Ρ‚ΠΎ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ логичСского программирования (ΠΈ программирования Π² ограничСниях) «окопались» Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… областях Π² Ρ„ΠΎΡ€ΠΌΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ языкам ΠΈ спСциализированных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Haskell

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Β«ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹Ρ…Β» срСдств Π² язык Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ Π±Π»ΠΈΠΆΠ΅ ΠΈ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Π΅Π΅ простому ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, Π½ΠΎ Π½Π΅ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅. Π’Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ языка, Ρ‡Π΅ΠΌ Haskell, я Π½Π΅ встрСчал. Π”ΠΎ Π½Π΅Π΄Π°Π²Π½ΠΈΡ… ΠΏΠΎΡ€ Ρƒ Π₯аскСлла Π±Ρ‹Π»Π° стратСгия Β«avoid success at all costsΒ», Π° Π’ΠΎΠ½ΠΈ Π₯ΠΎΠ°Ρ€ ΠΏΠ΅Ρ‡Π°Π»ΡŒΠ½ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»: Β«I fear that Haskell is doomed to succeedΒ»; это язык, созданный geek’ами ΠΎΡ‚ Computer Science для geek’ов. И поэтому я, ΠΏΡ€ΠΈ всСй любви ΠΊ Π₯аскСллу, Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π½Π΅Π³ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ β€” Π±Π΅Π· понимания тСорСтичСских основ CS я Π±ΡƒΠ΄Ρƒ Π·Π½Π°Ρ‚ΡŒ язык Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ посрСдствСнно. Бколько Π±Ρ‹ популяризаторы Π½ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π₯аскСллом Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠ΅ познания Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅, слСдуСт ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π» языка Π±ΡƒΠ΄Π΅Ρ‚ использован Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ; Π΄ΠΈΠ·Π°ΠΉΠ½ языка ΠΈ Π΅Π³ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΡ€ΠΎΠΏΠΈΡ‚Π°Π½ Ρ‚Π΅ΠΎΡ€ΠΈΠ΅ΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ ΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΉ Π°Π»Π³Π΅Π±Ρ€ΠΎΠΉ.

Π“Π»Π΅Π± АлСксССв,

компаниЯ Zoral (КиСв)

Одним ΠΈΠ· ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅Π² ΠΎΡ†Π΅Π½ΠΊΠΈ языка для мСня являСтся Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°. Haskell β€” нСвСроятно Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ элСгантный язык. Дистанция ΠΌΠ΅ΠΆΠ΄Ρƒ спСцификациСй Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Π΅Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ сильно сокращСна. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ порядка, частичноС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, алгСбраичСскиС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ сравнСниС с ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΠΈ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±Π»ΠΈΠ·ΠΊΠΎ ΠΊ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Ρƒ. Помимо этого Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΊΡƒΡ‡Ρƒ бонусов, Π΄Π΅Π»Π°ΡŽΡ‰ΠΈΡ… Тизнь приятной, β€” Π»Π΅Π½ΠΈΠ²ΠΎΡΡ‚ΡŒ, строгая типизация Π±Π΅Π· ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ², ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ. Помню восторг, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я испытал, ΡƒΠ²ΠΈΠ΄Π΅Π², Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° послС ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΆΠ΅ компиляции Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° Π±Π΅Π· ошибок. Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ нСвСроятно! ПозТС я ΡΠ»Ρ‹ΡˆΠ°Π» ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ признания ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ…. TANSTAAFL [ Β«There Ain’t No Such Thing As A Free LunchΒ», Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ «НичСго Π½Π΅ Π±Ρ‹Π²Π°Π΅Ρ‚ бСсплатно». β€” Π’.Π¨.]. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° Haskell, приходится ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ. ЧСрСсчур Β«Π΄Ρ€ΡƒΠ³ΠΎΠΉΒ» язык. Много Π½ΠΎΠ²ΠΎΠ³ΠΎ. Π‘ΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΈΠ½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ ΠΎΠ±Ρ‹Π΄Π΅Π½Π½Ρ‹ΠΌ Π²Π΅Ρ‰Π°ΠΌ. Π­Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΏΡ€ΠΈΡ‡ΠΈΠ½ Π΅Π³ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΠΈΠ·ΠΊΠΎΠΉ распространСнности. К соТалСнию, вряд Π»ΠΈ здСсь Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ измСнится.

Π”ΠΌΠΈΡ‚Ρ€ΠΈΠΉ ΠΠ½Ρ‚ΠΎΠ½ΡŽΠΊ, Paragon Software Group