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

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

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

НаиболСС ΠΏΠΎΠ»Π½Ρ‹ΠΌ справочником ΠΏΠΎ 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 фактичСски Π²Ρ‹ΡˆΠ΅Π» ΠΈΠ· употрСблСния. Он Π±Ρ‹Π» Π½Π΅ способСн Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π°Ρ€Π°Π²Π½Π΅ с Π½ΠΎΠ²Ρ‹ΠΌΠΈ инструмСнтариями, распространяСмыми Π±Π΅Π· Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹ ΠΈΠ»ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Π»ΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡ€Π΅Π²Π·ΠΎΡˆΠ»ΠΈ ΠΏΠΎ возмоТностям ΠΈ функциям своих ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΠΎΠ² с Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ исходными ΠΊΠΎΠ΄Π°ΠΌΠΈ. Π’ настоящСС врСмя вся конкурСнция сосрСдоточСна Π² Ρ€Π°ΠΌΠΊΠ°Ρ… двиТСния ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ исходного ΠΊΠΎΠ΄Π°.