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

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

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

Π’ настоящСС врСмя ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎ стоит Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π²ΠΈΠ΄Π° инструмСнтария: Π’ΠΊ, GTK, Qt ΠΈ wxWindows, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ GTK ΠΈ Qt. Для всСх Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… инструмСнтариСв прСдусмотрСны вСрсии для MacOS ΠΈ Windows, поэтому Π² любом случаС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ кроссплатформСнной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Π‘Ρ‚Π°Ρ€Π΅ΠΉΡˆΠΈΠΌ ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнным ΠΈΠ· Π½ΠΈΡ… считаСтся инструмСнтарий Π’ΠΊ. Он являСтся собствСнным инструмСнтариСм для Tel, ΠΈ привязки ΠΊ Π½Π΅ΠΌΡƒ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ вмСстС со стандартной вСрсиСй Python. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для обСспСчСния языковых привязок ΠΊ Π’ΠΊ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, доступны для Π‘ ΠΈ Π‘++. К соТалСнию, стандартный Π½Π°Π±ΠΎΡ€ элСмСнтов управлСния Π’ΠΊ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ ΠΈ довольно ΡƒΡ€ΠΎΠ΄Π»ΠΈΠ². Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, элСмСнт управлСния Canvas (холст) ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ возмоТностями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠ½-струмСнтариях Π΄ΠΎ сих ΠΏΠΎΡ€ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ с Ρ‚Ρ€ΡƒΠ΄ΠΎΠΌ.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ GTK Π²ΠΎΠ·Π½ΠΈΠΊ ΠΊΠ°ΠΊ Π·Π°ΠΌΠ΅Π½Π° для Motif ΠΈ создавался для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ GIMP. Π’ настоящСС врСмя ΠΎΠ½ являСтся ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ инструмСнтариСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° GNOME ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² сотнях GNOME-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. БобствСнным API-интСрфСйсом являСтся Π‘. Доступны привязки для Π‘++, Perl ΠΈ Python, Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² стандартных дистрибутивах языка. GTK являСтся СдинствСнным ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… инструмСнтариСв с СстСствСнной Π‘-привязкой.

Qt β€” инструмСнтарий, связанный с KDE-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ. Он прСдставляСт собой ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π‘++. Доступны привязки для Python ΠΈ Perl, Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ со стандартными ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ. Qt ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΠΈΠ·Π²Π΅ΡΡ‚Π½ΠΎΡΡ‚ΡŒ благодаря Π½Π°Π»ΠΈΡ‡ΠΈΡŽ Ρ…ΠΎΡ€ΠΎΡˆΠΎ спроСктированного ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ API ΠΈΠ· всСх Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… инструмСнтариСв, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΅Π³ΠΎ принятиС Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ стадии Π±Ρ‹Π»ΠΎ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ΠΎ ΠΏΠΎΠ»Π΅ΠΌΠΈΠΊΠΎΠΉ ΠΏΠΎ Ρ€Π°Π½Π½ΠΈΠΌ вСрсиям Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ ΠΈ Π² дальнСйшСм Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΠ»ΠΎΡΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌ созданиСм Π‘-привязки.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ wxWindows Ρ‚Π°ΠΊΠΆΠ΅ являСтся СстСствСнным для Π‘++ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ доступныС привязки Π² Perl ΠΈ Python. Π•Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΈΠ΄Π°ΡŽΡ‚ особоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π³Π»Π°Π²Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ кроссплатформСнной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ Π΅Π΅ ΠΊΠ°ΠΊ Π³Π»Π°Π²Π½ΡƒΡŽ Ρ€Ρ‹Π½ΠΎΡ‡Π½ΡƒΡŽ Ρ†Π΅Π»ΡŒ инструмСнтария. Другая Ρ†Π΅Π»ΡŒ связана с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ wxWindows фактичСски являСтся ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‰ΠΈΠΊΠΎΠΌ для собствСнных (GTK, Windows ΠΈ MacOS 9) элСмСнтов управлСния Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, Π° поэтому прилоТСния, написанныС с Π΅Π³ΠΎ использованиСм, ΠΈΠΌΠ΅ΡŽΡ‚ СстСствСнныС для Π΄Π°Π½Π½Ρ‹Ρ… систСм Π²ΠΈΠ΄ ΠΈ восприятиС.

К сСрСдинС 2003 Π³ΠΎΠ΄Π° Π±Ρ‹Π»ΠΎ описано Π½Π΅ слишком ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… исслСдований, ΠΎΠ΄Π½Π°ΠΊΠΎ Web-поиск Ρ„Ρ€Π°Π·Ρ‹ "X toolkit comparison" ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ справочныС свСдСния. Π’ Ρ‚Π°Π±Π». 14.2 ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π° информация ΠΎ состоянии рассмотрСнной области.

Π’Π°Π±Π»ΠΈΡ†Π° 14.2. Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ характСристики Π₯-инструмСнтариСв

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½

БобствСнный

ΠŸΠΎΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ΡΡ с

ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠΈ

Ρ‚Π°Ρ€ΠΈΠΉ

язык

Π‘

Π‘++

Perl

Tel

Python

Tk

Tel

Tel, Python

+

+

+

+

+

GTK

Π‘

Gnome

+

+

+

+

+

Qt

Π‘++

KDE

+

+

+

+

+

wx Windows

Π‘++

-

-

+

+

+

+

АрхитСктурно всС Π΄Π°Π½Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ написаны Π½Π° ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ ΡƒΡ€ΠΎΠ²Π½Π΅ абстракции. Π’ GTK ΠΈ Π² Qt ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Ρ‹ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ событий, Ρ‡Ρ‚ΠΎ пСрСнос ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ рассматриваСтся ΠΊΠ°ΠΊ ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ. Π’Ρ‹Π±ΠΎΡ€ инструмСнтария, вСроятно, Π±ΡƒΠ΄Π΅Ρ‚ большС обусловлСн Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒΡŽ привязок ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌΡƒ языку Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‡Π΅ΠΌ Π»ΡŽΠ±Ρ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ„Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ.

15 Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ срСдства: тактичСскиС ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°

Unix друТСствСнна ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, Π½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Ρ€Π΅Π΄Π»ΠΈΠ²Π° Π² Π²Ρ‹Π±ΠΎΡ€Π΅ Π΄Ρ€ΡƒΠ·Π΅ΠΉ. —Аноним

15.1. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма, друТСствСнная ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ

Π—Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой Unix Π΄Π°Π²Π½ΠΎ Π·Π°ΠΊΡ€Π΅ΠΏΠΈΠ»Π°ΡΡŒ рСпутация Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ срСды для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Она Ρ…ΠΎΡ€ΠΎΡˆΠΎ оснащСна инструмСнтами, написанными программистами для программистов. Π”Π°Π½Π½Ρ‹Π΅ инструмСнты Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΎΡ‚Π²Π»Π΅ΠΊΠ°Π»ΠΈ Π±Ρ‹ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ программиста ΠΎΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ (ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ) аспСкта Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” ΠΎΡ‚ проСктирования.

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² Unix Π΅ΡΡ‚ΡŒ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ инструмСнты ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½, ΠΎΠ½ΠΈ Π½Π΅ связаны с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (Integrated Development Environment β€” IDE). Π˜Ρ… поиск ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ Π² ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΠΉ потрСбностям Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, всСгда Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… усилий.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ, ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΡˆΠ΅ΠΌΡƒ ΠΊ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ IDE-срСдС (GUI-управляСмой ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π°, компилятора ΠΈ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°, которая Π² наши Π΄Π½ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ распространСна Π² систСмах Macintosh ΠΈ Windows), принятый Π² Unix ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ бСссистСмным, Ρ‚ΡƒΠΌΠ°Π½Π½Ρ‹ΠΌ ΠΈ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌ. Однако Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ½ достаточно систСматизирован.

ИспользованиС IDE ΠΈΠΌΠ΅Π΅Ρ‚ смысл для одноязыкового программирования Π² слабо оснащСнной инструмСнтами срСдС. Если Ρ€Π°Π±ΠΎΡ‚Π° программиста ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° ΠΎΡ‚Ρ‚Π°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΊΠΎΠ΄Π° Π½Π° Π‘ ΠΈΠ»ΠΈ Π‘++, Ρ‚ΠΎ IDE-срСды вСсьма цСлСсообразны. Однако Π² Unix Π²Ρ‹Π±ΠΎΡ€ языков ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Π΅Π΅, Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° использования Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΊΠΎΠ΄Π°, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… стандартных ΠΈ нСстандартных инструмСнтов являСтся общСпринятой.

Π’ Unix Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ IDE-срСды (имССтся нСсколько Ρ‚Π°ΠΊΠΈΡ… срСд с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ исходными ΠΊΠΎΠ΄Π°ΠΌΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ эмуляции основных IDE Macintosh ΠΈ Windows). Однако с ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ мноТСство ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… срСдств, ΠΈ поэтому IDE-срСды ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ нСчасто. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма Unix ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΉ ΡΡ‚ΠΈΠ»ΡŒ, Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ являСтся ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ†ΠΈΠΊΠ» Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅/компиляция/ΠΎΡ‚Π»Π°Π΄ΠΊΠ°.

Π’ Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ тактичСскиС ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² Unix β€” созданиС ΠΊΠΎΠ΄Π°, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ, ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΎΡ‚Π»Π°Π΄ΠΊΠ°, Π° Ρ‚Π°ΠΊΠΆΠ΅ автоматизация большого количСства ΠΌΠΎΠ½ΠΎΡ‚ΠΎΠ½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹, связанной с этими Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ, с Ρ‚Π΅ΠΌ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠ³ ΡΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… аспСктах. Как ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, ΠΏΡ€ΠΈ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° основноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π² большСй стСпСни ΡƒΠ΄Π΅Π»Π΅Π½ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π΅, Ρ‡Π΅ΠΌ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹ΠΌ инструкциям. Если ΠΆΠ΅ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ интСрСсуСтся ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹ΠΌΠΈ дСталями, Ρ‚ΠΎ рСкомСндуСтся ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΊΠ½ΠΈΠ³Π΅ "Programming with GNU Software" [50], Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ описываСтся Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ инструмСнтов, рассмотрСнных Π² Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅.

МногиС ΠΈΠ· описываСмых инструмСнтов Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ программист Π² состоянии Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, хотя ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΈ с большим количСством ошибок. ΠžΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½Ρ‹Π΅ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° Ρ†ΠΈΠΊΠ» обучСния сполна окупятся ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΠΎΠ»Π΅Π΅ эффСктивно ΠΈ ΡƒΠ΄Π΅Π»ΡΡ‚ΡŒ мСньшС внимания Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΌ дСталям ΠΈ большС конструкции Π² Ρ†Π΅Π»ΠΎΠΌ.

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

15.2. Π’Ρ‹Π±ΠΎΡ€ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ ΠΈ самым основным инструмСнтом Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ являСтся тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, подходящий для ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.