Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Unix, Π΄Π²Π° Π΄Π΅ΡΡΡΠΊΠ° Π»Π΅Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΡΡ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ΅ΡΠΈΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. Π‘ΡΠ΅Π΄ΡΡΠ²Π°, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΠΠ΄ΠΈΠ½ΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Unix, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π±ΡΠ΄ΡΡ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Unix-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ ΠΈ Π²ΡΡΠ΄ Π»ΠΈ Π½Π΅ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ.
ΠΠ΄Π½Π°ΠΊΠΎ Π½Π΅ Π²ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΡ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ². Π―Π·ΡΠΊ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅; ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½Ρ ΡΡΡΡΠΊΡΡΡΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΠΎΡΠ»ΠΈΡΠΈΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° Unix ΡΠΆΠ΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΠ»Π° ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
17.5.1. ΠΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ ΠΈ Π²ΡΠ±ΠΎΡ ΡΠ·ΡΠΊΠ°
ΠΠ΅ΡΠ²ΡΠΌ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ±ΠΎΡ ΡΠ·ΡΠΊΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ, ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠ΅ Π² Π³Π»Π°Π²Π΅ 14, ΡΠ²Π»ΡΡΡΡΡ Π²ΡΡΠΎΠΊΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΡΠΌΠΈ Π² ΡΠΎΠΌ ΡΠΌΡΡΠ»Π΅, ΡΡΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π½Π° Π²ΡΠ΅Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Unix-ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , Π° Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΈΠ· Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π»Ρ Windows ΠΈ MacOS. ΠΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΠΈ ΡΠ°ΡΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ Π½Π΅ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ , Π° Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΈ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² IPC-ΠΌΠ΅ΡΠΎΠ΄Π°Ρ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Π΄Π»Ρ GUI-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ²).
17.5.1.1. ΠΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ Π‘
ΠΠ°Π·ΠΎΠ²ΡΠΉ ΡΠ·ΡΠΊ Π‘ Π² Π²ΡΡΡΠ΅ΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌ. ΠΠ³ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π² Unix ΡΠ²Π»ΡΠ΅ΡΡΡ GNU C-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΡΠ½ΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Unix-ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π½ΠΎ ΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. GNU Π‘ Π±ΡΠ» ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅Π½ Π½Π° Windows ΠΈ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΡΡ MacOS, Π½ΠΎ Π½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΡΠΈΡ ΡΡΠ΅Π΄ Π½Π΅ ΡΡΠ°Π» ΡΠΈΡΠΎΠΊΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΡΠΏΡΡΡΠ²Π°Π΅Ρ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ Π² ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΡΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ°Ρ ΠΊ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ GUI-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌ Π΄Π°Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ.
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°, ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΈΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΡ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡ Π‘. Π€Π°ΠΉΠ»ΠΎΠ²ΡΠΉ Π²Π²ΠΎΠ΄/Π²ΡΠ²ΠΎΠ΄, ΡΠΈΠ³Π½Π°Π»Ρ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π°ΡΠΈΠ°Π½ΡΠ°ΠΌΠΈ Unix, ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΠΠ΄ΠΈΠ½ΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Unix; Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΡΠΉ C-ΠΊΠΎΠ΄ ΡΠ°ΡΡΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π°Π³ΡΠΎΠΌΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΠ»ΠΎΠ²Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π½Π° Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΠΈ, Π½ΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΠΏΠΎΡΠ²ΠΈΠ²ΡΠΈΠ΅ΡΡ Π΄ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ° POSIX, ΠΈΠ· ΡΡΠ°ΡΡΡ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΡ Unix-ΡΠΈΡΡΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° 2003 Π³ΠΎΠ΄ ΡΡΡΠ°ΡΠ΅Π»ΠΈ ΠΈΠ»ΠΈ Π±Π»ΠΈΠ·ΠΊΠΈ ΠΊ ΡΡΠΎΠΌΡ.
ΠΠΎΠ»Π΅Π΅ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡΡ Π‘ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Π² ΠΎΠ±Π»Π°ΡΡΠΈ IPC, ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ GUI-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ². ΠΠΎΠΏΡΠΎΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΠΈ IPC ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΎΠ±ΡΡΠΆΠ΄Π°Π»ΠΈΡΡ Π² Π³Π»Π°Π²Π΅ 7. Π Π΅Π°Π»ΡΠ½ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠΎΠ·Π΄Π°ΡΡ GUI-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ GUI-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠ°ΠΌΠΈ Unix, Π° ΡΠ°ΠΊΠΆΠ΅ Π² Windows ΠΈ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΡΡ MacOS β Tk, wxWindows, GTK ΠΈ Qt β ΡΠ΅ΡΡΡΠ΅ Ρ ΠΎΡΠΎΡΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ Π²ΠΈΠ΄Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΡΡΡΠ΄Π½ΠΎΠΉ Π½Π°ΠΉΡΠΈ Π² Web. ΠΠ΄Π½Π°ΠΊΠΎ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ Π½Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΠΌΠΈ, ΠΈ (ΠΏΠΎ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΡΠΈΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠΌ, ΡΠ΅ΠΌ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΌ) Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π° Π²ΡΠ΅Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ Π²ΠΈΠ΄ ΠΈ Π²ΠΎΡΠΏΡΠΈΡΡΠΈΠ΅ GUI-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. Π Π³Π»Π°Π²Π΅ 15 Π΄Π°Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ Ρ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ.
ΠΠΎ ΡΠ΅ΠΌΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΠ³ΠΎ C-ΠΊΠΎΠ΄Π° Π½Π°ΠΏΠΈΡΠ°Π½Ρ ΡΠ΅Π»ΡΠ΅ ΡΠΎΠΌΠ°. ΠΡΠ° ΠΊΠ½ΠΈΠ³Π° Π½Π΅ Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΠΈΡ ΡΠΈΡΠ»ΠΎ, ΠΈ Π°Π²ΡΠΎΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡΡ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ·ΡΡΠΈΡΡ "Recommended Π‘ Style and Coding Standards" [11], Π° ΡΠ°ΠΊΠΆΠ΅ Π³Π»Π°Π²Ρ ΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΠΈ ΠΈΠ· ΠΊΠ½ΠΈΠ³ΠΈ "The Practice of Programming" [40].
17.5.1.2. ΠΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ Π‘++
ΠΠ»Ρ Π‘++ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½Ρ ΡΠ΅ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΠΈ, ΡΡΠΎ ΠΈ Π΄Π»Ρ Π‘, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ΄ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ . ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ GNU ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π΄Π»Ρ Π‘++ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΡΡΠ°Π΅Ρ ΠΎΡ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ; ΠΏΠΎΡΡΠΎΠΌΡ ΠΊ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ 2003 Π³ΠΎΠ΄Π° Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»ΠΎ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎ Π²Π½Π΅Π΄ΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ° GNU Π‘, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡ Π΄Π΅-ΡΠ°ΠΊΡΠΎ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² Π‘++ Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ISO-ΡΡΠ°Π½Π΄Π°ΡΡ C++99, Ρ ΠΎΡΡ GNU Π‘++ ΠΏΠΎΠ΄ΠΎΡΠ΅Π» ΠΊ ΡΡΠΎΠΌΡ ΠΎΡΠ΅Π½Ρ Π±Π»ΠΈΠ·ΠΊΠΎ.
17.5.1.3. ΠΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ shell
ΠΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ shell-ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π², ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π½ΠΈΠ·ΠΊΠΎΠΉ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π½Π΅ Π² ΡΠ°ΠΌΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ΅; bash(1) (Bourne Again shell Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ) ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΈΡΠΎΠΊΠΎ, Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΌΠ°Π»ΠΎΡΠ°Π·Π²ΠΈΡΡΠ΅ shell-ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΌΠΎΠ³Π»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠΎΡΡΠΈ Π² Π»ΡΠ±ΠΎΠΉ ΡΡΠ΅Π΄Π΅. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ shell-ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ ΡΠΈΠ»ΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΠΌΠ΅Π½Π΅Π΅ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΡΠΌΠΈ, ΠΈ ΠΈΡ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΈΠ΅ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ Π½ΠΈΠΊΠΎΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅ΡΡΡ.
ΠΠ°Π½Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»Π΅ΡΡ Π³Π΅ΡΠΎΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΡΠΈΠ»ΠΈΡΠΌΠΈ, ΠΊΠ°ΠΊ Π² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Ρ autoconf(1). ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΡΡΠ΄Π½ΠΎ, ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅ΠΉΡΠΈΡ ΡΠ»ΡΡΠ°Π΅Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈΡΡ Π² shell, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΠ»ΠΈΡΡ ΠΊ ΡΠ·ΡΠΊΠ°ΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ, ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Perl, Python ΠΈ Tcl.
17.5.1.4. ΠΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ Perl
Perl ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ Ρ ΠΎΡΠΎΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡΡ. Π ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ ΡΠ·ΡΠΊΠ° Π΄Π°ΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΡΠΉ Π½Π°Π±ΠΎΡ ΠΏΡΠΈΠ²ΡΠ·ΠΎΠΊ ΠΊ Tk-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΡΠ΅ GUI-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π² Unix, MacOS ΠΈ Windows. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎΠΌΡ ΠΌΠ΅ΡΠ°Π΅Ρ ΠΎΠ΄Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. Perl-ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΡΠ°ΡΡΠΎ ΡΡΠ΅Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΎΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈΠ· Π°ΡΡ ΠΈΠ²Π° CPAN (Comprehensive Perl Archive Network β ΠΏΠΎΠ»Π½ΡΠΉ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ Π°ΡΡ ΠΈΠ² Perl), ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π² Π»ΡΠ±ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Perl.
17.5.1.5. ΠΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ Python
Python ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄Π½ΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ. ΠΠ°ΠΊ ΠΈ Perl, ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Python ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΡΠΉ Π½Π°Π±ΠΎΡ ΠΏΡΠΈΠ²ΡΠ·ΠΎΠΊ ΠΊ Tk-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΡΠ΅ GUI-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π² Unix, MacOS ΠΈ Windows.
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Python ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π·Π²ΠΈΡΠΎΠΉ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ, ΡΠ΅ΠΌ Perl ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ° Π°ΡΡ ΠΈΠ²Ρ CPAN, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π²Π°ΠΆΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ Π²ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² Python Π² Ρ ΠΎΠ΄Π΅ Π²ΡΠΏΡΡΠΊΠ° Π²ΡΠΎΡΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΠΉ. ΠΡΠΎ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ β Python ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½ Π²Π»ΠΈΡΠ½ΠΈΡ ΡΡΡΠ΅ΠΊΡΠ° Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. ΠΠ° ΡΡΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ°ΡΠΏΠ»Π°ΡΠΈΠ²Π°ΡΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ Π²ΡΠΎΡΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Python ΠΎΡΡΠ°ΡΡΠΈ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ, ΡΠ΅ΠΌ Π³Π»Π°Π²Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Perl. ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΡΠΎΡ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡ Π±Π»Π°Π³ΠΎΠΏΡΠΈΡΡΡΡΠ²ΡΠ΅Ρ Python.
17.5.1.6. ΠΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ Tcl
Tcl Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ Ρ ΠΎΡΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ Π² ΡΠ΅Π»ΠΎΠΌ, Π½ΠΎ ΠΎΠ½Π° ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ°Π·Π»ΠΈΡΠ°Π΅ΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Tk-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π΄Π»Ρ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ GUI-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ Π΄Π»Ρ Tcl. ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ Python, ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π³Π»Π°Π΄ΠΊΠΎ Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠΎΡΠ° Π²Π΅ΡΡΠΈΠΉ. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Tcl Π΄Π°ΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅, ΡΠ΅ΠΌ Perl, Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΡΠ΅Π΄ΡΡΠ² ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΠ·ΡΠΊΠ°, Π° ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ° CPAN-Π°ΡΡ ΠΈΠ²Π° Π΄Π»Ρ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΄Π»Ρ ΠΌΠ΅Π»ΠΊΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², Π½Π΅ Π·Π°Π²ΠΈΡΡΡΠΈΡ ΠΎΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ, ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ Tcl ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄Π½Π°. ΠΠ΄Π½Π°ΠΊΠΎ ΠΊΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ ΡΠ°ΡΡΠΎ ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°Π²ΠΈΡΡΡ ΠΊΠ°ΠΊ ΠΎΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ, ΡΠ°ΠΊ ΠΈ (ΠΊΠ°ΠΊ Π² ΡΠ»ΡΡΠ°Π΅ Ρ shell-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ) ΠΎΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΡ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΎΡΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π½Π° ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅; ΡΠ°ΡΡΠΎ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ»Π°Π±ΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ.
ΠΠ°ΡΠ°Π΄ΠΎΠΊΡΠ°Π»ΡΠ½ΠΎ, Π½ΠΎ Tcl ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ°Π΄Π°ΡΡ ΠΎΡ ΠΏΡΠΎΡΡΠΎΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π² Π½Π΅Π³ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ. Π ΡΠΎΠΌΡ ΠΌΠΎΠΌΠ΅Π½ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°ΡΡΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π΅Π³ΠΎ Π²Π΅ΡΡΠΈΠΉ. ΠΠ° ΡΠΈΠΌΠΏΠΎΠ·ΠΈΡΠΌΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Tcl/Tk (Tcl/Tk Workshop 1995 Π³ΠΎΠ΄Π°) ΠΠΆΠΎΠ½ ΠΡΡΡΠ΅ΡΡ ΠΎΡΡ (John Ousterhout) ΠΎΠ±ΡΡΡΠ½ΠΈΠ», ΠΏΠΎΡΠ΅ΠΌΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΌ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π΅ Tcl ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΠ-ΡΡΠ΅Π΄ΡΡΠ², ΡΠ°ΠΊ:
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅Π±Π΅ ΠΏΡΡΡ ΠΌΡΠ»Π», ΡΠΈΠ΄ΡΡΠΈΡ Π½Π΅ΠΏΠΎΠ΄Π°Π»Π΅ΠΊΡ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π³ΠΎΠ²ΠΎΡΠΈΡ: "Π£Π±Π΅ΠΉ Π΅Π³ΠΎ, ΠΎΠ½ Π½Π΅Π²Π΅ΡΠ½ΡΠΉ". ΠΡΠ»ΠΈ Π±Ρ Ρ Π²Π½Π΅Π΄ΡΠΈΠ» ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΡΡ ΠΠ-ΡΡ Π΅ΠΌΡ Π² ΡΠ΄ΡΠΎ, ΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ ΡΠΊΠ°Π·Π°Π» Π±Ρ: "ΠΠ»Π°Π³ΠΎΡΠ»ΠΎΠ²Π»ΡΡ ΡΠ΅Π±Ρ, ΡΡΠ½ ΠΌΠΎΠΉ, ΡΡ ΠΌΠΎΠΆΠ΅ΡΡ ΠΏΠΎΡΠ΅Π»ΠΎΠ²Π°ΡΡ ΠΌΠΎΠΉ ΠΏΠ΅ΡΡΡΠ΅Π½Ρ", Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΠ΅ ΡΠΊΠ°Π·Π°Π»ΠΈ Π±Ρ "Π£Π±Π΅ΠΉ Π΅Π³ΠΎ, ΠΎΠ½ Π½Π΅Π²Π΅ΡΠ½ΡΠΉ".
17.5.1.7. ΠΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ Java
ΠΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ Java ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄Π½Π° β Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ΅Π»ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ·ΡΠΊΠ° Π±ΡΠ» Π΄Π΅Π²ΠΈΠ· "Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π²Π΅Π·Π΄Π΅". ΠΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ Java Π½Π΅ ΠΈΠ΄Π΅Π°Π»ΡΠ½Π°. Π’ΡΡΠ΄Π½ΠΎΡΡΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠ²ΡΠ·Π°Π½Ρ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠΎΡΠ° Π²Π΅ΡΡΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ JDK 1.1 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΡΠΌ GUI-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΌ AWT (Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ) ΠΈ JDK 1.2 ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΡΠΌ Swing. ΠΡΠΎ ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π²Π°ΠΆΠ½ΡΠΌΠΈ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌΠΈ.
β’ ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ AWT Sun Π±ΡΠ»Π° Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π½Π΅Π°Π΄Π΅ΠΊΠ²Π°ΡΠ½ΠΎΠΉ, ΡΡΠΎ Π΅Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΠ»ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΌ Swing.
β’ ΠΡΠΊΠ°Π· Microsoft ΠΎΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Java-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° Windows ΠΈ ΠΏΠΎΠΏΡΡΠΊΠ° Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ Π‘#.
β’ Π Π΅ΡΠ΅Π½ΠΈΠ΅ Microsoft ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π°ΠΏΠ»Π΅ΡΠΎΠ² Π² Internet Explorer Π½Π° ΡΡΠΎΠ²Π½Π΅ JDK 1.1.
β’ ΠΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½ΡΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Sun, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»Π°ΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ JDK 1.2 Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π·Π°ΠΌΠ΅Π΄Π»ΡΡ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ° (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΠΌΠΈΡΠ΅ Linux).