ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΡΠΌ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΏΠΎ Emacs Lisp ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ "The GNU Emacs Lisp Reference Manual", ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ "info-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ²", Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ Π² Emacs. ΠΠ°Π½Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Ρ FTP-ΡΠ·Π»Π° FSF <ftp://ftp.gnu.org/pxib/gnu>. ΠΡΠ»ΠΈ ΠΎΠ½ΠΎ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΌΠ°Π»ΠΎΠΏΠΎΠ½ΡΡΠ½ΡΠΌ, ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ ΠΊΠ½ΠΈΠ³Π° "Writing GNU Emacs Extensions" [30].
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Emacs Lisp ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΠΌΠΈ. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Emacs Π΄ΠΎΡΡΡΠΏΠ½Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ Unix-ΡΠΈΡΡΠ΅ΠΌ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ Microsoft ΠΈ MacOS.
ΠΡΠ²ΠΎΠ΄Ρ: Π½Π°ΠΈΠ»ΡΡΡΠΈΠΌ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΠΌ Emacs Lisp ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΎΠ½ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΡΠ΅Ρ ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΠ·ΡΠΊ Lisp Ρ ΠΌΠΎΡΠ½ΡΠΌΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π°ΠΌΠΈ Π΄Π»Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΉ Ρ ΡΠ΅ΠΊΡΡΠΎΠΌ; Ρ ΡΠ΄ΡΠΈΠΌ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΠΌ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π³ΠΎ ΡΠ»Π°Π±Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΡΡΡΠ΄Π½ΠΎΡΡΠΈ ΠΏΡΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Π΄Π°Π½Π½ΡΠΌΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠ°ΡΠ°ΡΡΠ°ΡΡΡ Emacs, ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ "ΠΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ Emacs" ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π³Π»Π°Π²Ρ.
14.5. Π’Π΅Π½Π΄Π΅Π½ΡΠΈΠΈ Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ
Π ΡΠ°Π±Π»ΠΈΡΠ΅ 14.1 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ·ΡΠΊΠΎΠ². ΠΠ°Π½Π½ΡΠ΅ Π²Π·ΡΡΡ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² SourceForge93 ΠΈ Freshmeat", Π΄Π²ΡΡ Π²Π°ΠΆΠ½Π΅ΠΉΡΠΈΡ ΡΠ°ΠΉΡΠΎΠ² Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΏΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° ΠΌΠ°ΡΡ 2003 Π³ΠΎΠ΄Π°.
ΠΠ°Π½Π½ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° SourceForge Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ³Π»Π°ΠΆΠ΅Π½Ρ ΠΏΠΎ ΡΡΠ΄Ρ ΠΏΡΠΈΡΠΈΠ½: ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π°ΠΏΡΠΎΡΠ° Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌ ΠΈ ΡΠ·ΡΠΊΠ°ΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΠΈΡΠ΅Π» ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ MacOS- ΠΈ Windows-ΠΏΡΠΎΠ΅ΠΊΡΡ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠ΅ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π‘++ ΠΈ Java. ΠΠ΄Π½Π°ΠΊΠΎ Unix-ΠΏΡΠΎΠ΅ΠΊΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠ΅ΠΎΠ±Π»Π°Π΄Π°ΡΡ (Π² ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΠΎ 3:1), ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ², Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΈΡΠΊΠ°ΠΆΠ΅Π½Ρ.
ΠΠ°Π½Π½ΡΠ΅ Freshmeat ΠΌΠ΅Π½ΡΡΠ΅, Π½ΠΎ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ ΡΠ°ΠΉΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Unix-Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈ ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π° Π½Π΅ Π±Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ½ΠΎΠ΅ Π½Π°Π³ΡΠΎΠΌΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈΡΡΠ΅Π·Π½ΡΠ²ΡΠΈΡ ΠΈ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² SourceForge. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡΡΡΠ°ΡΡ ΠΎΡ Π΄Π°Π½Π½ΡΡ SourceForge ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π² ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ 1:2, ΠΊΡΠΎΠΌΠ΅ ΡΠ»ΡΡΠ°Π΅Π² (Π‘++ ΠΈ Java), Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΡ ΠΎΡ ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΈ Π²Π²ΠΈΠ΄Ρ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ Windows-ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΡΠ΅ΡΠ½ΠΎΠ²ΠΈΠΊ Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Ρ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ Π±ΡΠ» Π½Π°ΠΏΠΈΡΠ°Π½ Π² 1997 Π³ΠΎΠ΄Ρ; Π² ΡΠ²Π΅Ρ ΠΊΠ½ΠΈΠ³Π° Π²ΡΡΠ»Π° Π² 2003 Π³ΠΎΠ΄Ρ. Π’ΠΎ Π΅ΡΡΡ ΠΏΡΠΎΡΠ»ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΡΠΎΠ±Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ Π²ΡΡΠ΅ ΡΠ·ΡΠΊΠΎΠ² ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈΡΡ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈ ΠΎΡΡΠ°Π·ΠΈΠ»ΠΈΡΡ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΠΈ Π²ΡΠ±ΠΎΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΡΠΈ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΠΈ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π±ΡΠ΄ΡΡΠ΅Π΅ ΡΠ·ΡΠΊΠΎΠ² Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠΈΠΌ.
Π ΡΠ΅Π»ΠΎΠΌ, ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π‘, Π‘++ ΠΈ Emacs Lisp ΠΎΡΡΠ°Π²Π°Π»ΠΈΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΌΠΈ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ 1997-2003 Π³ΠΎΠ΄ΠΎΠ². ΠΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΡΠ·ΡΠΊΠ° Π‘ ΡΠΎΡΠ»ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π·Π° ΡΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½ΠΈΡ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ FORTRAN. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π‘++ ΡΡΡΠ°ΡΠΈΠ» Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΡΡΡ ΠΏΠΎΠΊΠ»ΠΎΠ½Π½ΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ»ΠΈ ΡΠ·ΡΠΊ Java.
ΠΡΠΈΠ»ΠΈΡΠ½ΠΎ Π²ΠΎΠ·ΡΠΎΡΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Perl, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΡΠ·ΡΠΊΠ° ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ. ΠΠ½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Perl ΠΏΠ΅ΡΠ°Π»ΡΠ½ΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ ΡΠ²ΠΎΠ΅ΠΉ Π½Π΅ΡΡΡΠ»ΠΈΠ²ΠΎΡΡΡΡ. ΠΠ΅ΡΠΎΠΌΠ½Π΅Π½Π½ΠΎ, ΡΠΆΠ΅ Π΄Π°Π²Π½ΠΎ ΠΏΠΎΡΠ° ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π°. ΠΡΠ°Π²Π΄Π°, ΠΎΠ΄Π½Π° ΡΠ°ΠΊΠ°Ρ ΠΏΠΎΠΏΡΡΠΊΠ°, ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΡΡΠ°Ρ Π² 1999 Π³ΠΎΠ΄Ρ, ΠΏΡΠΎΠ²Π°Π»ΠΈΠ»Π°ΡΡ, Π° Π΄ΡΡΠ³Π°Ρ ΠΏΠΎΠΊΠ°, Π²ΠΈΠ΄ΠΈΠΌΠΎ, ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Perl ΠΎΡΡΠ°Π΅ΡΡΡ Π²Π΅Π΄ΡΡΠΈΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΠΈ ΠΏΡΠ΅ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π² Web-ΡΡΠ΅Π½Π°ΡΠΈΡΡ ΠΈ CGI.
Π―Π·ΡΠΊ Tel ΠΏΠ΅ΡΠ΅ΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠΈΠΎΠ΄ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΠ°Π΄Π°. Π 1996 Π³ΠΎΠ΄Ρ ΡΠΈΡΠΎΠΊΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½Π°Ρ ΠΈ ΠΏΡΠ°Π²Π΄ΠΎΠΏΠΎΠ΄ΠΎΠ±Π½Π°Ρ ΠΎΡΠ΅Π½ΠΊΠ° ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° ΡΠΊΠ°Π·ΡΠ²Π°Π»Π° Π½Π° ΡΠΎ, ΡΡΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Python-Ρ Π°ΠΊΠ΅ΡΠ° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΡΡ Tcl-Ρ Π°ΠΊΠ΅ΡΠΎΠ² ΠΈ Π΄Π²Π΅Π½Π°Π΄ΡΠ°ΡΡ Π Π΅Π³1-Ρ Π°ΠΊΠ΅ΡΠΎΠ². ΠΠΎ Π΄Π°Π½Π½ΡΠΌ SourceForge, Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°Π²Π½ΠΎ 3:1:7. ΠΠ΄Π½Π°ΠΊΠΎ Tel ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π²Π΅ΡΡΠΌΠ° ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Π΄Π»Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΎΡΡΠ°ΡΠ»ΡΡ ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΠΎΡΡΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½ΠΈΠΊΠΈ, ΡΠ°Π΄ΠΈΠΎ ΠΈ ΡΠ΅Π»Π΅Π²Π΅ΡΠ°Π½ΠΈΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠΈΠ½ΠΎΠΈΠ½Π΄ΡΡΡΡΠΈΡ.
Π’Π°Π±Π»ΠΈΡΠ° 14.1. ΠΡΠ±ΠΎΡ ΡΠ·ΡΠΊΠΎΠ²
Π―Π·ΡΠΊ
SourceForge
Freshmeat
ΠΌΠ°ΡΡ 2003
ΠΌΠ°ΡΡ 2004
ΠΌΠ°ΡΡ 2003
ΠΌΠ°ΡΡ 2004
Π‘
10296
13479
4845
6191
Π‘++
9880
13570
2098
2922
Shell
1058
1473
487
620
Perl
4394
5560
2508
3031
Tel
649
811
328
377
Python
2222
3267
948
1459
Java
8032
12126
1900
2977
Emacs Lisp
?
?
31
37
Π ΠΎΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΠΈ Python Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΠΆΠ΅ ΡΡΡΠ΅ΠΌΠΈΡΠ΅Π»Π΅Π½, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ΅ΠΌΠΈΡΠ΅Π»Π΅Π½ ΡΠΏΠ°Π΄ Tel. Π₯ΠΎΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡ Perl-ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π²Π΄Π²ΠΎΠ΅ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ ΡΠΈΡΠ»Π΅Π½Π½ΠΎΡΡΡ ΠΏΠΎΠΊΠ»ΠΎΠ½Π½ΠΈΠΊΠΎΠ² Python, Π²ΠΈΠ΄ΠΈΠΌΠ°Ρ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΡΠ°Π»Π°Π½ΡΠ»ΠΈΠ²Π΅ΠΉΡΠΈΡ Π Π΅Π³1-Ρ Π°ΠΊΠ΅ΡΠΎΠ² ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Python ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ³ΡΠΎΠΆΠ°ΡΡΠ΅ΠΉ Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ, ΡΡΠΈΡΡΠ²Π°Ρ ΡΠΎ, ΡΡΠΎ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Π² ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ. Π―Π·ΡΠΊ Java ΡΡΠ°Π» ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΡΠ΅Ρ ΠΌΠ΅ΡΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ ΠΎΡ Π²Π°ΡΠ΅Π½Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ Sun Microsystems, ΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎ Π²Π½Π΅Π΄ΡΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ΅Π±Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π² ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π΄Π»Ρ ΡΡΡΠ΄Π΅Π½ΡΠΎΠ² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ. ΠΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ΅ΠΌ Π² Π΄ΡΡΠ³ΠΈΡ ΠΎΠ±Π»Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΌΠ°Π»ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½, ΡΠ΅ΠΌ ΡΡΠΎ Π½Π°Π±Π»ΡΠ΄Π°Π»ΠΎΡΡ Π² 1997 Π³ΠΎΠ΄Ρ. Π‘ΡΡΠ΅ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠΈ Sun ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΡΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π»ΠΈΡΠ΅Π½Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΠ»ΠΎ Π³Π»Π°Π²Π½ΡΠΉ ΡΠΎΡΡ, ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Π½Π°Π±Π»ΡΠ΄Π°ΡΠ΅Π»ΡΠΌΠΈ. Π ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π΅ Linux ΠΈ Π² Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠΎΠΊΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΡΠ·ΡΠΊ Java Π½Π΅ ΡΠΎΠΏΠ΅ΡΠ½ΠΈΡΠ°Π΅Ρ Ρ Π‘, ΠΊΠ°ΠΊ Π² Π΄ΡΡΠ³ΠΈΡ ΠΊΡΠ»ΡΡΡΡΠ°Ρ .
ΠΠ° Π²Π΅ΡΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ Π½Π΅ ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠ³ Π±Ρ ΡΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΠΌ Π·Π΄Π΅ΡΡ ΡΠ·ΡΠΊΠ°ΠΌ. Π ΠΠ Π²ΡΠΎΡΠ³Π°Π΅ΡΡΡ Π² Web-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ, Π²ΡΡΠ΅ΡΠ½ΡΡ Perl CGI-ΡΡΠ΅Π½Π°ΡΠΈΠΈ (ΠΊΠ°ΠΊ ΠΈ ASP ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠ΅ Java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ), ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ ΠΏΠΎΡΡΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ΅-Emacs-Π΄ΠΈΠ°Π»Π΅ΠΊΡΡ Lisp, ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π½Π°Ρ Π² ΡΠ²ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΠ±Π»Π°ΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ, ΠΊΠ°Π·Π°Π»ΠΎΡΡ, Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΠ»Π° Π²ΠΎΠ·ΡΠΎΠ΄ΠΈΡΡΡΡ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ 1990-Ρ Π³ΠΎΠ΄ΠΎΠ², ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΡΠ΄Π°Π²Π°ΡΡ ΡΠ²ΠΎΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ. ΠΠ΅Π΄Π°Π²Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ruby (Π³ΠΈΠ±ΡΠΈΠ΄ Python-Perl-Smalltalk, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ Π² Π―ΠΏΠΎΠ½ΠΈΠΈ) ΠΈ Squeak (Π²Π°ΡΠΈΠ°Π½Ρ Smalltalk Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ), Π²ΡΠ³Π»ΡΠ΄ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΎΠ±Π΅ΡΠ°ΡΡΠΈΠΌΠΈ, Π½ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ»ΠΈ Ρ Π°ΠΊΠ΅ΡΠΎΠ² ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ² ΠΈ Π½Π΅ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ "Π½Π΅ΠΎΡΠ»Π°Π±Π΅Π²Π°ΡΡΠ΅ΠΉ ΡΠΈΠ»Ρ".
14.6. ΠΡΠ±ΠΎΡ Π₯-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
ΠΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ Ρ Π²ΡΠ±ΠΎΡΠΎΠΌ ΡΠ·ΡΠΊΠ°, ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ±ΠΎΡ Π₯-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π΄Π»Ρ GUI-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ΄Π΅ΡΡ ΡΠΌΠ΅ΡΡΠ½ΠΎ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ Π·Π°ΡΡΠΎΠ½ΡΡΡΡ Π² Π³Π»Π°Π²Π΅ 1 ΡΠ΅ΠΌΡ ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ ΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ X.
ΠΡΠ±ΠΎΡ Π₯-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΠ²ΡΠ·Π°Π½ Ρ Π²ΡΠ±ΠΎΡΠΎΠΌ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΏΠΎ Π΄Π²ΡΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ: Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΎΠΉ ΠΊ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, Π° Π²ΠΎ-Π²ΡΠΎΡΡΡ , ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΈΠ΄Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠΌΡ Π½Π°Π±ΠΎΡΡ ΡΠ·ΡΠΊΠΎΠ².
ΠΠ΅ΡΠΎΠΌΠ½Π΅Π½Π½ΠΎ, ΡΠ·ΡΠΊ Java ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌΠΈ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½-Π½ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ AWT (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ Π²Π΅Π·Π΄Π΅) ΠΈ Swing (Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡΠ½ΡΠΌ, Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌ, ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌ ΠΈ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΡΡΠ°Π²Π΅ ΠΏΠ°ΠΊΠ΅ΡΠ° JDK 1.2/Java 2). Π ΠΎΡΡΠ°Π²ΡΠ΅ΠΉΡΡ ΡΠ°ΡΡΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ΄Π΅Π»Π΅Π½ΠΎ Π΄ΡΡΠ³ΠΈΠΌ ΡΠΆΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠΌ ΡΠ·ΡΠΊΠ°ΠΌ. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Tel Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈ Π’ΠΊ. ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ Π² ΠΎΡΠ΅Π½ΠΊΠ΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ².
ΠΠ΅ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Motif ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΡΠ΅Π» ΠΈΠ· ΡΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ. ΠΠ½ Π±ΡΠ» Π½Π΅ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Π΄Π΅ΡΠΆΠ°ΡΡΡΡ Π½Π°ΡΠ°Π²Π½Π΅ Ρ Π½ΠΎΠ²ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ, ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΠΌΡΠΌΠΈ Π±Π΅Π· Π»ΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ»Π°ΡΡ ΠΈΠ»ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°Π»ΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡΠ΅Π²Π·ΠΎΡΠ»ΠΈ ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌ ΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌ ΡΠ²ΠΎΠΈΡ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΈΠΊΠΎΠ² Ρ Π·Π°ΠΊΡΡΡΡΠΌΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌΠΈ ΠΊΠΎΠ΄Π°ΠΌΠΈ. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π²ΡΡ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΡ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠ΅Π½Π° Π² ΡΠ°ΠΌΠΊΠ°Ρ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.