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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования для UnixΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 102

Автор Π­Ρ€ΠΈΠΊ Π Π΅ΠΉΠΌΠΎΠ½Π΄

Π­Ρ‚ΠΎΡ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ вСсьма ΡƒΠ΄ΠΎΠ±Π΅Π½. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ конструкциям, ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ срСдства, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ (Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ большиС) ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² GNOME ΠΈ KDE. Π§Ρ‚ΠΎ-Ρ‚ΠΎ Π² Π½Π΅ΠΌ притягиваСт. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π΅ слСдуСт Π΄ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ "пСрспСктивС", ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰Π΅ΠΉ ΡΡ‚ΠΎΠ»ΡŒ искусно Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ всС сомнСния. Она ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ Π½Π΅ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ крайностСй отрицания ΠΈΠ»ΠΈ принятия Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Emacs являСтся ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈ большой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ β€” это ΠΈ Π΅ΡΡ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΡ‚ΠΈΠ² ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΠ·ΠΌΠ° Unix. Π§Ρ‚ΠΎ ΠΊΡ€ΠΎΠΌΠ΅ этого ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π°Π½Π°Π»ΠΈΠ· Π²ΠΈΠ΄ΠΎΠ² слоТности? И сущСствуСт Π»ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΡƒΡ€ΠΎΠΊΠΈ сводятся ΠΊ ΠΎΠ±Ρ‰ΠΈΠΌ Π·Π°ΠΊΠΎΠ½Π°ΠΌ?

13.4. НСобходимый Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Для Unix-ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΠΈ использования Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ…, Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… инструмСнтов Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Π° скрытая Π΄Π²ΠΎΠΉΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ; Ρ„ΠΎΠ½ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ нСявный, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Unix-ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‡Π°ΡŽΡ‚ Π΅Π³ΠΎ ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Ρ‡Π°ΡŽΡ‚ Π½Π΅ большС, Ρ‡Π΅ΠΌ Ρ€Ρ‹Π±Π° Π·Π°ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ Π²ΠΎΠ΄Ρƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ»Π°Π²Π°Π΅Ρ‚. Π­Ρ‚ΠΈΠΌ Ρ„ΠΎΠ½ΠΎΠΌ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ структуры ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (frameworks).

НСбольшиС Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ инструмСнты Π² Unix-стилС ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с трудностями ΠΏΡ€ΠΈ совмСстном использовании Π΄Π°Π½Π½Ρ‹Ρ…, Ссли ΠΎΠ½ΠΈ Π½Π΅ находятся Π²Π½ΡƒΡ‚Ρ€ΠΈ структуры, ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‰Π΅ΠΉ ΠΈΡ… взаимодСйствиС. Emacs являСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Ρ‚Π°ΠΊΠΎΠΉ структуры, Π° Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ‰ΠΈΠΌ контСкстом достигаСтся Ρ†Π΅Π½ΠΎΠΉ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ слоТности Emacs. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ влияниС Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΠ³ΠΎ управлСния ΠΎΠ±Ρ‰ΠΈΠΌ контСкстом Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ ΠΎΠ±Ρ€Π΅ΠΌΠ΅Π½Π΅Π½ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ³ΠΎ присваивания ΠΈΠΌΠ΅Π½ ΠΈ управлСния рСсурсами.

Π’ Unix старой ΡˆΠΊΠΎΠ»Ρ‹ СдинствСнной ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ структурой Π±Ρ‹Π»ΠΈ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρ‹, ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ shell. Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ»Π°ΡΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сцСнариСв, Π° ΠΎΠ±Ρ‰ΠΈΠΌ контСкстом Π±Ρ‹Π»Π° (ΠΏΠΎ сущСству) сама файловая систСма. Однако Π½Π° этом Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π½Π΅ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΎΡΡŒ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Emacs объСдинила Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму с мноТСством тСкстовых Π±ΡƒΡ„Π΅Ρ€ΠΎΠ² ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… процСссов, ΠΏΠΎΡ‡Ρ‚ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ оставляя структуру shell ΠΏΠΎΠ·Π°Π΄ΠΈ. Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Wily Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ использованиС Π±ΡƒΡ„Π΅Ρ€ΠΎΠ² ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… процСссов, Π½ΠΎ содСрТит Π² сСбС структуру shell. Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Π΅ срСды ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ GUI-интСрфСйсам структуру для ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ Ρ‚ΠΎΠΆΠ΅ ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ структуру shell ΠΏΠΎΠ·Π°Π΄ΠΈ. КаТдая ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ структура ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ свои ΡΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΈ слабыС стороны. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ стали "ΠΆΠΈΠ»ΠΈΡ‰Π°ΠΌΠΈ" для мноТСства ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… срСдств β€” shell для сцСнариСв, Emacs для Lisp-Ρ€Π΅ΠΆΠΈΠΌΠΎΠ², Π° Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Π΅ срСды для Π³Ρ€ΡƒΠΏΠΏ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² GUI ΠΊΠ°ΠΊ посрСдством Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ "ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ ΠΈ ΠΎΡ‚ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ", Ρ‚Π°ΠΊ ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒ Π±ΠΎΠ»Π΅Π΅ "эзотСричСских" способов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Π΅ Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρ‹.

Π­Ρ‚ΠΎ Π²Ρ‹Π΄Π²ΠΈΠ³Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ: Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΉ контСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ трСбуСтся ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ, ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ°Π»Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, насколько ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹. Π’ΠΎ Π΅ΡΡ‚ΡŒ "Ρ‚Π°ΠΊ просто, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ Π½Π΅ ΠΏΡ€ΠΎΡ‰Π΅", Π½ΠΎ основноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС удСляСтся Π²Ρ‹Π±ΠΎΡ€Ρƒ ΠΎΠ±Ρ‰Π΅Π³ΠΎ контСкста. ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ структурам, Π½ΠΎ ΠΈ ΠΊ прилоТСниям ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ систСмам.

Однако ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΎΡˆΠΈΠ±ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΎΠ±Ρ‰Π΅Π³ΠΎ контСкста. Над Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ Π΄ΠΎΠ²Π»Π΅Π΅Ρ‚ сила, выраТСнная Π·Π°ΠΊΠΎΠ½ΠΎΠΌ Завински, - ΡΠΊΠ»ΠΎΠ½Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊ совмСстному использованию контСкста Π² цСлях удобства использования. ВовсС Π½Π΅Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ, Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€, слишком большоС количСство ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ большиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с излишнСй ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ. Π’Π°ΠΊ, URL mailto: (Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 1990-Ρ… Π³ΠΎΠ΄ΠΎΠ²) Π²Ρ‹Π·Π²Π°Π» рост количСства ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², встроСнных Π² Web-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹.

БрСдство исправлСния Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ прямо ΠΈΠ· "свящСнных ΠΊΠ½ΠΈΠ³" Unix β€” ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ экономии: ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ слСдуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° послС дСмонстрации становится ясно, Ρ‡Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π½Π΅ остаСтся, Ρ‚.Π΅. ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ Ρ€Π°ΡΡ‡Π»Π΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π±Ρ‹Π»ΠΈ прСдприняты, Π½ΠΎ ΠΏΠΎΡ‚Π΅Ρ€ΠΏΠ΅Π»ΠΈ Π½Π΅ΡƒΠ΄Π°Ρ‡Ρƒ. Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ строгий скСптицизм Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΈΡ… создания: ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго, слСдуСт ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° основС нСбольшой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Если ΠΎΠ΄Π½Π° нСбольшая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡Ρƒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ инструмСнтарий, состоящий ΠΈΠ· Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ структуры. И Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли ΠΎΠ±Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° оказались Π±Π΅Π·ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΌΠΈ, Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΈ Unix ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠΏΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ (ΠΈΠ»ΠΈ Π½ΠΎΠ²ΡƒΡŽ структуру прилоТСния), Π½Π΅ чувствуя сСбя ΠΏΡ€ΠΈ этом ΠΏΠΎΠ±Π΅ΠΆΠ΄Π΅Π½Π½Ρ‹ΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ.

ΠŸΡ€ΠΈ написании ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ структуры ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ раздСлСния. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбС ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ мСньшС ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π²ΠΎΠΎΠ±Ρ‰Π΅ Π±Π΅Π· ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ. НСобходимо Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ большС повСдСния Π² ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ структуру ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Одним ΠΈΠ· прСимущСств написания ΠΈΠ»ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования структуры являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° позволяСт Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС состоял Π±Ρ‹ ΠΈΠ· ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Ρ… ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ΠΎΠ² ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ, Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Ρ€Π΅ΠΆΠΈΠΌΡ‹ ΠΈΠ»ΠΈ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ срСдства, Ρ‚.Π΅. Π±Π»ΠΎΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ.

Π”Π°Π½Π½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° эмпиричСскиС, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ Π² сСрдцС Unix-Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ нСсколькими Π°ΠΏΡ€ΠΈΠΎΡ€Π½Ρ‹ΠΌΠΈ Ρ€Π΅Ρ†Π΅ΠΏΡ‚Π°ΠΌΠΈ ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ любого Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠžΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π° ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π° гармония ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡ ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ стиля β€” основная Π·Π°Π΄Π°Ρ‡Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Аналогично Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ Π² Дзэн ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠ΅ являСтся Ρ†Π΅Π»ΡŒΡŽ, "просвСтлСния" приходится ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π΄ΠΎΡΡ‚ΠΈΠ³Π°Ρ‚ΡŒ Π·Π°Π½ΠΎΠ²ΠΎ ΠΏΡƒΡ‚Π΅ΠΌ повсСднСвной ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ.

Π§Π°ΡΡ‚ΡŒ III

РСализация

14

Π―Π·Ρ‹ΠΊΠΈ программирования: Π‘ ΠΈΠ»ΠΈ Π½Π΅ Π‘?

Π“Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΌΠΎΠ΅Π³ΠΎ языка β€” Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΌΠΎΠ΅Π³ΠΎ ΠΌΠΈΡ€Π°.

Π›ΠΎΠ³ΠΈΠΊΠΎ-философский Ρ‚Ρ€Π°ΠΊΡ‚Π°Ρ‚ (Tractatus Logico-Philosophicus 5.6, 1918) β€”Π›ΡŽΠ΄Π²ΠΈΠ³ Π’ΠΈΡ‚Ρ‚Π³Π΅Π½ΡˆΡ‚Π΅ΠΉΠ½ (Ludwig Wittgenstein).

14.1. ΠœΠ½ΠΎΠ³ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ языков Π² Unix

Π’ Unix поддСрТиваСтся Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ языков ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ программирования. ЀактичСски Unix способна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ большС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языков, Ρ‡Π΅ΠΌ всС вмСстС взятыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы Π² истории Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ[117].

БущСствуСт ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ Π΄Π²Π΅ вСсомыС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ ΡΡ‚ΠΎΠ»ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ разнообразия. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ использованиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Unix ΠΊΠ°ΠΊ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΈ ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰Π΅ΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ (Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠΉ для Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… программистов) являСтся Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄Π±ΠΎΡ€ подходящСго языка (ΠΈΠ»ΠΈ языков) для конструкции прилоТСния ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΌ различиям Π² продуктивности программиста. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Unix-Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΡƒΠ·ΠΊΠΎΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… языков (ΠΊΠ°ΠΊ Π±Ρ‹Π»ΠΎ сказано Π² Π³Π»Π°Π²Π°Ρ… 7 ΠΈ 9) ΠΈ языков, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² настоящСС врСмя ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ языками сцСнариСв, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для связывания ΠΌΠ΅ΠΆΠ΄Ρƒ собой Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… срСдств.

ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ "язык сцСнариСв" (scripting language), вСроятно, происходит ΠΎΡ‚ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° "сцСнарий" (script), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ примСнялся ΠΊ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΌΡƒ Π²Π²ΠΎΠ΄Ρƒ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, Π² частности, sh ΠΈΠ»ΠΈ ed β€” Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ умСстный Ρ‚Π΅Ρ€ΠΌΠΈΠ½, Ρ‡Π΅ΠΌ "runcom", унаслСдованный Unix ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΊΠ°, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы CTSS. Π‘Π»ΠΎΠ²ΠΎ "script" появляСтся Π² руководствС для систСмы V7 (1979). Π― Π½Π΅ помню, ΠΊΡ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π» это Π½Π°Π·Π²Π°Π½ΠΈΠ΅.

Π”ΡƒΠ³ ΠœΠ°ΠΊΠΈΠ»Ρ€ΠΎΠΉ.

Π’ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ "язык сцСнариСв" нСсколько Π½Π΅ΡƒΠ΄ΠΎΠ±Π΅Π½. МногиС ΠΈΠ· основных языков, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ описываСмых ΠΊΠ°ΠΊ языки сцСнариСв (Perl, Tcl, Python ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅), ΡƒΠΆΠ΅ пСрСросли ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ создания сцСнариСв ΠΈ Π² настоящСС врСмя ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ языками программирования Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ мощности. Π”Π°Π½Π½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ склонСн ΡΡ€Ρ‹Π²Π°Ρ‚ΡŒ сильноС сходство Π² стилС с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ языками, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ ΠΊ этой Π³Ρ€ΡƒΠΏΠΏΠ΅, особСнно с Lisp ΠΈ Java. ЕдинствСнным Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ, ΠΎΠΏΡ€Π°Π²Π΄Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ Π½Ρ‹Π½Π΅ΡˆΠ½Π΅Π΅ использованиС Π΄Π°Π½Π½ΠΎΠ³ΠΎ понятия, являСтся Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° Π΅Ρ‰Π΅ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π».

Частично ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ языки ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π² Π³Ρ€ΡƒΠΏΠΏΡƒ "языков сцСнариСв" являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ всС ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΠ½Ρ‚ΠΎΠ³Π΅Π½Π΅Π·. НаличиС динамичСской срСды для ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ управлСния динамичСской ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. Автоматизация управлСния динамичСской ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ использования ссылок (Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹Ρ… для понимания адрСсов памяти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π΅ Π² состоянии Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ) вмСсто распространСния ΠΊΠΎΠΏΠΈΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ явных ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ. ИспользованиС ссылок Π΄Π΅Π»Π°Π΅Ρ‚ динамичСский ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ ΠΈ ОО-ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ простым этапом.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ эффСктивно ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„ΠΈΠ»ΠΎΡΠΎΡ„ΠΈΡŽ Unix, инструмСнтарий программиста Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π‘. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρƒ потрСбуСтся ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ использованиС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… языков Π² Unix (особСнно языков сцСнариСв), Π° Ρ‚Π°ΠΊΠΆΠ΅ способы ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ сочСтания Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… языков, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ³Ρ€Π°Π΅Ρ‚ ΠΎΡΠΎΠ±ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… систСмах.