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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π–ΡƒΡ€Π½Π°Π» Β«ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ€Π°Β» β„– 8 ΠΎΡ‚ 27 фСвраля 2007 Π³ΠΎΠ΄Π°Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 14

Автор ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ€Π°

ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ ruby on rails

ΠžΡ‡Π΅Ρ€Π΅Π΄Π½Π°Ρ Β«Π΄Ρ‹Ρ€ΠΊΠ° Π² Π·Π°Π±ΠΎΡ€Π΅Β» мэйнстрима β€” ΠΊΠ°ΠΊ Π½ΠΈ странно, Microsoft. Π¨Π°Ρ‚ΠΊΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΊΠ°ΠΊ-Π±Ρ‹-Π»ΠΈΠ΄Π΅Ρ€Π° β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈ успСвай ΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒΡΡ, ΠΈ Π”ΠΆΠ°Π²Ρƒ Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ΠΆΠ°Π²ΠΈΡ‚ΡŒ, ΠΈ с ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΌΠΈ Π³ΠΎΠ»ΠΎΠ²Ρƒ скриптами ΡΠΎΠ²Π»Π°Π΄Π°Ρ‚ΡŒ, ΠΈ Π“ΡƒΠ³Π»Ρƒ Π½Π°ΡΡ‚ΡƒΡ‡Π°Ρ‚ΡŒ, ΠΈ Π’ΠΈΠ½Π΄ΠΎΠ² побольшС ΠΏΡ€ΠΎΠ΄Π°Ρ‚ΡŒ β€” ΠΏΠΎΠ½Π΅Π²ΠΎΠ»Π΅ Π²Ρ‹Π½ΡƒΠΆΠ΄Π°Π΅Ρ‚ ΠΊ инновационности ΠΈ нос-ΠΏΠΎ-Π²Π΅Ρ‚Ρ€Ρƒ. ΠžΡ‚ΡΡŽΠ΄Π° β€” появлСниС Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ вСрсии C# Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Ρ… Π΄Π΅Π»Π΅Π³Π°Ρ‚ΠΎΠ² (ΠΎΠ½ΠΈ ΠΆΠ΅ β€” ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ) ΠΈ связанных с этим элСмСнтов Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования; ΠΎΡ‚ΡΡŽΠ΄Π° ΠΆΠ΅ β€” ΠΏΠΎΠ΄ΡŠΡΠ·Ρ‹ΠΊ LINQ, вводящий Π² C# 3.0 Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ SQL.

Но Π²Π°ΠΆΠ½Π΅Π΅ Π΄Π°ΠΆΠ΅ Π½Π΅ это, Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΠ·Ρ‹Ρ‡Π½ΠΎΡΡ‚ΡŒ .Net’а ΠΈ, соотвСтствСнно, поощряСмыС ΠΈ привСтствуСмыС ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ языки Π½Π° ΠΌΠΈΠΊΡ€ΠΎΡΠΎΡ„Ρ‚ΠΎΠ²ΡΠΊΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π½ΠΎΠ²Ρ‹Π΅, Π½Π΅Π²ΠΈΠ΄Π°Π½Π½Ρ‹Π΅, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ. Π­Ρ„Ρ„Π΅ΠΊΡ‚ симбиоза Π½ΠΎΠ²ΠΎ-старых языковых ΠΈΠ΄Π΅ΠΉ ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠ³ΠΎ качСства понятСн: для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π²Ρ‹Π³ΠΎΠ΄Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π°ΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ инструмСнты программистам ΠΈ «импортируСтся» сообщСство ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ языка; для самого языка становятся доступными Π±ΠΎΠ³Π°Ρ‚Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ .Net’а (особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ для языков с привкусом «акадСмичности», Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ ΡΡ‚Ρ€Π°Π΄Π°ΡŽΡ‰ΠΈΡ… ΠΎΡ‚ отсутствия элСмСнтарных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для ΠΈΠ½Π΄ΡƒΡΡ‚Ρ€ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡) ΠΈ β€” ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ [ВсС эти Π²Ρ‹ΠΊΠ»Π°Π΄ΠΊΠΈ Π² большой стСпСни относятся ΠΈ ΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Java. ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π±Ρ‹Π»Π° «одноязычной», Π½ΠΎ сСйчас (Π½Π΅ Π² послСднюю ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ β€” Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Β«Π³ΠΎΠ½ΠΊΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΒ» с Microsoft) Sun удСляСт ΠΌΠ½ΠΎΠ³ΠΎ внимания Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков Π½Π° своСй ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅].

Одной ΠΈΠ· Ρ†Π΅Π»Π΅ΠΉ .Net’а Π±Ρ‹Π»ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, многоязычныС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π½Π° этой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Π±ΠΎΠ»Π΅Π΅ распространСны, ΠΈ тСорСтичСски ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π° C#, алгоритмичСски ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Haskell.Net ΠΈΠ»ΠΈ F# (ML-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ язык), Π° Ρ€Π°Π·Π½Ρ‹Π΅ быстрыС тСсты ΠΈ слуТСбныС Π·Π°Π΄Π°Ρ‡ΠΈ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ «быстрого ΠΈ грязного» ΠΊΠΎΠ΄Π°, Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π½Π° IronPython.

ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‡Π΅ΠΌ дальшС отстоит ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ язык ΠΎΡ‚ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ…, Ρ‚Π΅ΠΌ слоТнСС Π΅Π³ΠΎ бСсшовная интСграция с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ языками ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. ΠžΡ‚ΡΡŽΠ΄Π° β€” Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ интСрСсныС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ (для мэйнстрима) ΠΈΠ΄Π΅ΠΈ ΡΠΊΡ€Π΅Ρ‰ΠΈΠ²Π°ΡŽΡ‚ с СстСствСнной ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ модСлью ΠΈ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹ΠΌ синтаксисом ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ Java/.Net. Π’Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΡƒΠΆΠ΅ Π½Π΅ΠΌΠ°Π»ΠΎ: ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, для .Net’а β€” ΠΏΠΈΡ‚ΠΎΠ½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹ΠΉ Boo ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Nemerle, ΡΠΎΠ²ΠΌΠ΅Ρ‰Π°ΡŽΡ‰ΠΈΠΉ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ОО-ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ возмоТностями ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Ρ‚ΠΈΠΏΠΎΠ² Π² Π΄ΡƒΡ…Π΅ ML ΠΈ синтаксичСскими макросами Π²Ρ€ΠΎΠ΄Π΅ Lisp’овых [Из Π½Π΅-Lisp’образных языков Nemerle, каТСтся, СдинствСнный, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ срСдства Ρ‚Π°ΠΊΠΎΠ³ΠΎ уровня]; для Java β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π³ΠΈΠ±Ρ€ΠΈΠ΄ Scala ΠΈ Ruby-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Groovy [Π­Ρ‚ΠΎ Π½Π΅ считая ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… языков, ΡΠ²Π»ΡΡŽΡ‰ΠΈΡ…ΡΡ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ-надмноТСствами C# ΠΈ Java (C-omega, Pizza/PJ) ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ…ΡΡ Π² основном для ΠΎΠ±ΠΊΠ°Ρ‚ΠΊΠΈ ΠΈΠ΄Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ впослСдствии Π²ΠΎΠΉΠ΄ΡƒΡ‚ (ΠΈΠ»ΠΈ Π½Π΅ Π²ΠΎΠΉΠ΄ΡƒΡ‚) Π² основной язык].

О ΡˆΠΈΡ€ΠΎΠΊΠΎΠΉ извСстности ΠΈ примСнимости Ρ‚Π°ΠΊΠΈΡ… языков Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π½ΠΎ, Π½ΠΎ ΠΊΠΎΠ΅-ΠΊΠ°ΠΊΠΈΠ΅ прСдполоТСния ΠΎΠ± ΠΈΡ… ΡΡƒΠ΄ΡŒΠ±Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ.

Π―Π·Ρ‹ΠΊΠΈ Ρ€ΠΎΠ΄Π° Boo ΠΈ Groovy, Ρ‡ΡŒΠΈ Π°Π²Ρ‚ΠΎΡ€Ρ‹ стоят Π½Π° позициях «скриптовых» (Π² смыслС лаконичности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Π±ΠΎΠ³Π°Ρ‚ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° Β«Ρ„Π΅Π½Π΅Ρ‡Π΅ΠΊΒ»), Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ «скриптов Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹Β» ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈ мСтят. Π˜Ρ… Ρ€ΠΎΠ»ΡŒ β€” Π±Ρ‹Ρ‚ΡŒ Β«ΠΊΠ»Π΅Π΅ΠΌΒ» ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, инструмСнтом для «условно ΠΎΠ΄Π½ΠΎΡ€Π°Π·ΠΎΠ²Ρ‹Ρ…Β» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (тСстов для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π½Π° Β«ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ…Β» языках) ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ инструмСнтом для Β«Π³ΠΈΠ±ΠΊΠΈΡ…Β» ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ². Π’ этом контСкстС ΠΈΡ… Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅ видится ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±Π΅Π·ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΌ, ΠΊΠ°ΠΊ ΠΈ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅ Β«ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ…Β» IronPython/Jython, JRuby/RubyCLR.

Nemerle ΠΈ Scala β€” это совсСм Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠ»Π΅Π½ΠΊΠΎΡ€, Β«ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·ΠΌ Π² ΠΌΠΈΠ½ΠΈΠ°Ρ‚ΡŽΡ€Π΅Β». Π‘ ΠΈΡ… Β«ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΌΠΈΒ» идСями связаны Ρ‚Π΅ ΠΆΠ΅ Π½Π°Π΄Π΅ΠΆΠ΄Ρ‹ ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΠ³Π΄Π° Π±Ρ‹Π»ΠΈ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ для Haskell, Lisp, Smalltalk β€” Β«Π²Ρ€ΠΎΠ΄Π΅ ΠΈ ΠΊΡ€ΡƒΡ‚ΠΎ, Π½ΠΎ больно Ρ…ΠΈΡ‚Ρ€ΠΎΒ». МоТно ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈ ΡΡƒΠ΄ΡŒΠ±Π° «больно Ρ…ΠΈΡ‚Ρ€Ρ‹Ρ…Β» языков слоТится ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈ ΠΎΠ½ΠΈ станут Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ ΠΈΠ΄Π΅ΠΉ для C#/Java ΠΈ ΠΏΡ€ΠΈΠ±Π΅ΠΆΠΈΡ‰Π΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΡ… Β«ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΡ…Β». Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, расстояниС ΠΎΡ‚ этого Β«ΠΌΠΈΠ½ΠΈ-ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·ΠΌΠ°Β» Π΄ΠΎ мэйнстрима Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ Π²Π΅Π»ΠΈΠΊΠΎ, Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ мСньшС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° взаимодСйствиС разноязыковых ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ; Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Β«ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅Β» языки ΠΌΠΎΠΆΠ΅Ρ‚ ΠΆΠ΄Π°Ρ‚ΡŒ ΠΈ Π±ΠΎΠ»Π΅Π΅ счастливая ΡΡƒΠ΄ΡŒΠ±Π°. ΠžΡΡ‚Π°Π΅Ρ‚ΡΡ ΠΏΠΎΠΆΠ΅Π»Π°Ρ‚ΡŒ ΠΈΠΌ ΡƒΠ΄Π°Ρ‡ΠΈ.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Haskell

Π‘Π°ΠΉΠΌΠΎΠ½ ΠŸΠ΅ΠΉΡ‚ΠΎΠ½ ДТонс (Simon Peyton Jones), ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Haskell, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€ Glas-gow Haskell Compiler (GHC); КСйл Π“ΠΈΠ±Π±Π°Ρ€Π΄ (Cale Gibbard), популяризатор Haskell, Π°Π²Ρ‚ΠΎΡ€ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… руководств.

О цСлях ΠΈ пСрспСктивах

Π“ΠΈΠ±Π±Π°Ρ€Π΄: Haskell всСгда Π±Ρ‹Π» ΠΈ остаСтся ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ языком. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ студСнтов ΠΈ ΡƒΡ‡Π΅Π½Ρ‹Ρ… Π΄ΡƒΠΌΠ°ΡŽΡ‚ ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΡ… языка ΠΈ Π½ΠΎΠ²Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ…, Π½Π° основС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΡƒΡ‡Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ прогрСсс ΠΈΠ΄Π΅Ρ‚ довольно быстро, ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ‚Π°ΠΊ ΠΆΠ΅ слоТны ΠΈ красивы, ΠΊΠ°ΠΊ сам язык.

ДТонс: Π‘ практичСской Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния, Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Haskell ΠΈΠ΄Π΅Ρ‚ ΠΏΡƒΡ‚Π΅ΠΌ воплощСния ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй Π² Ρ€Π°Π·Π½Ρ‹Ρ… компиляторах.

Иногда сообщСство хаскСлистов садится ΠΈ собираСт эти анархичСскиС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π² Π΅Π΄ΠΈΠ½Ρ‹Π΅ стройныС ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ. БСйчас ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π½Π°Π΄ Π½ΠΎΠ²ΠΎΠΉ вСрсиСй β€” Haskell Prime, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ «эта ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° написана Π½Π° Haskell PrimeΒ» вмСсто "эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ GHC 6.8.

Π“ΠΈΠ±Π±Π°Ρ€Π΄: ΠœΡ‹ рассматриваСм ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠ²Ρ‹Π΅ мСста ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ стандарта [Haskell β€˜98] ΠΈ ΠΈΠ·ΡƒΡ‡Π°Π΅ΠΌ, ΠΊΠ°ΠΊ люди ΠΆΠΈΠ»ΠΈ с Π½ΠΈΠΌΠΈ послСдниС нСсколько Π»Π΅Ρ‚.

Об использовании ΠΈ распространСнии

Π“ΠΈΠ±Π±Π°Ρ€Π΄: Один ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², ΠΌΠ΅ΡˆΠ°ΡŽΡ‰ΠΈΡ… популярности Haskell, β€” инСрция. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Ρ‚ΠΎΠΆΠ΅ понадобилось Π»Π΅Ρ‚ Π΄Π²Π°Π΄Ρ†Π°Ρ‚ΡŒ-Ρ‚Ρ€ΠΈΠ΄Ρ†Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π²ΠΎΠ΅Π²Π°Ρ‚ΡŒ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ. Haskell ΡΡ‚Π°Ρ€ΡˆΠ΅ Java β€” ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΆΠ΅ ΠΎΠ½ Π΄ΠΎ сих ΠΏΠΎΡ€ Π½Π΅ добился Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… успСхов Π² своСм распространСнии? Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Haskell β€” Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Β«ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΉΒ», Ρ‡Π΅ΠΌ Java/C++ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Python ΠΈ Ruby. Для программистов, Π·Π½Π°ΡŽΡ‰ΠΈΡ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΈ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, β€” это Π²Ρ€ΠΎΠ΄Π΅ ΠΊΠ°ΠΊ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π½ΠΎΠ²ΠΎ. Другая ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° β€” Π΄ΠΎΠ»Π³ΠΎΠ΅ врСмя Π₯аскСллу ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π»ΠΎ всяких ΡˆΡ‚ΡƒΠΊ, Π½ΡƒΠΆΠ½Ρ‹Ρ… для практичСского программирования. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, качСство ΠΈ количСство Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π² послСднСС врСмя сильно возросло. Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° β€” нСдостаточная ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… языков, Π½ΠΎ Π² ΡΠ΅Π³ΠΎΠ΄Π½ΡΡˆΠ½ΠΈΡ… условиях это скорСС ΠΌΠΈΡ„.

ДТонс: Π§Π΅ΠΌ большС люди Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒΡΡ написаниСм Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, особСнно с использованиСм ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ популярны Π±ΡƒΠ΄ΡƒΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ языки. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, хотя истоки Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹ β€” Π² акадСмичСском сообщСствС, Ρ‚Π°ΠΊΠΈΠ΅ языки становятся всС Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ‹ΠΌΠΈ.

ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Π½Π°Ρ€ΠΎΠ΄Ρƒ

ДТонс: ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅! Π”Π°ΠΆΠ΅ Ссли Π²Ρ‹ Π½Π΅ Π½Π°Ρ‡Π½Π΅Ρ‚Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, вашС прСдставлСниС ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ сущСствСнно измСнится.

Π“ΠΈΠ±Π±Π°Ρ€Π΄: ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅ΠΌΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌΡƒ программисту я Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒΡΡ со списками β€” это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ замСняСт Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈΠ· ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ программирования. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², ΠΊΠ°ΠΊΠΈΠΌ Π±Ρ‹ ΠΏΡƒΠ³Π°ΡŽΡ‰ΠΈΠΌ Π½ΠΈ казался Haskell ΠΏΠΎΠ½Π°Ρ‡Π°Π»Ρƒ, Π½Π° самом Π΄Π΅Π»Π΅ Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ всС ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎ β€” стоит Π²Π·ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ руководство ΠΈ просто ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ. Оно Ρ‚ΠΎΠ³ΠΎ стоит.

БСсСдовал Π”ΠΌΠΈΡ‚Ρ€ΠΈΠΉ ΠΠ½Ρ‚ΠΎΠ½ΡŽΠΊ

...И Π΄Ρ€ΡƒΠ³ΠΈΠ΅

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

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠΊΡΡ‚Ρ€Π΅ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ «постмодСрнистскиС» систСмы; самая извСстная ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½Π°Ρ ΠΈΠ· Π½ΠΈΡ…, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, Erlang. Π―Π·Ρ‹ΠΊ/ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° (ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ сразу ΠΎΡ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… языков программирования ΠΈ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ), созданная суровыми швСдскими ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌΠΈ ΠΈΠ· Ρ„ΠΈΡ€ΠΌΡ‹ Ericsson для Π½ΡƒΠΆΠ΄ Ρ‚Π΅Π»Π΅ΠΊΠΎΠΌΠ°, β€” Erlang Π½Π΅ Ρ‚ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ пробиваСтся Π² мэйнстрим, Π½ΠΎ Π² своСй области (написаниС распрСдСлСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΌΠΈ трСбованиями ΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ устойчивости) чувствуСт сСбя вСсьма ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎ. Π’ΠΎΠΎΠ±Ρ‰Π΅, Π² области распрСдСлСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π² тСлСкоммуникациях ΠΈ смСТных областях совмСщСниС красивой тСорСтичСской ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ ΠΌΠΎΡ‰Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ β€” Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π½Π°Π±ΠΈΡ€Π°ΡŽΡ‰Π΅Π΅ вСс. Помимо Erlang, Π½Π° ΠΏΠΎΡ…ΠΎΠΆΠΈΡ… позициях стоят Oz/Mozart ΠΈ с-ΠΏΡ‹Π»Ρƒ-с-ΠΆΠ°Ρ€Ρƒ Π½ΠΎΠ²Ρ‹ΠΉ язык Corn (Ρ‚Π°ΠΊΠΆΠ΅ Ρ€ΠΎΠΆΠ΄Π΅Π½Π½Ρ‹ΠΉ Π² Ρ‚Π΅Π»Π΅ΠΊΠΎΠΌΠ΅, Π½Π° сСй Ρ€Π°Π· β€” польском).

ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π»ΠΎΡΡŒ достаточно ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, ΠΎΡΡ‚Π°Π²Π°ΡΡΡŒ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… господства «истинных ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉΒ», β€” ΠΎΡ‚ ML-ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΉ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ импСративности OCaml Π΄ΠΎ ΠΎΡ‚Π΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ° Smalltalk/Self β€” io, прСподносимого ΠΊΠ°ΠΊ язык Π»Π΅Π³ΠΊΠΈΠΉ ΠΈ стройный, ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ для встраивания. Π”Π° ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ языки Lisp’овой сСмьи (Π² Ρ‚ΠΎΠΌ числС сам Common Lisp), Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΠΊ «постмодСрнистским» ΠΏΠΎ богатству ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ ΠΈ ΡΡ‚Ρ€Π΅ΠΌΠ»Π΅Π½ΠΈΡŽ ΠΊ практичности.

ΠžΡ‡Π΅Ρ€Π΅Π΄Π½Π°Ρ Π²ΠΎΠ»Π½Π° ΡˆΡƒΠΌΠΈΡ…ΠΈ Π²ΠΎΠΊΡ€ΡƒΠ³ Β«Π½ΠΎΠ²ΠΎΠ³ΠΎ Π²Π΅Π±Π°Β» Ρ‚ΠΎΠΆΠ΅ Π½Π΅ ΠΎΡΡ‚Π°Π»Π°ΡΡŒ Π½Π΅Π·Π°ΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠΉ β€” здСсь ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, ΠΊΠ°ΠΊ Hop ΠΎΡ‚ французского института INRIA (Ρ€ΠΎΠ΄ΠΈΠ½Ρ‹ OCaml) ΠΈ Links (ΠΈΠΌ занимаСтся Phil Wadler, Π½Π΅ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€ Haskell), Ρ†Π΅Π»ΡŒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… β€” свСсти Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ языку свСрхвысокого уровня, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹ «компилировался» Π² Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ HTML, JavaScript, SQL ΠΈ сСрвСрныС скрипты [Π’ ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ смыслС ASP.Net ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Java-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Ρ‚Π΅ΠΌ ΠΆΠ΅, имитируя для программиста ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½ΡƒΡŽ ΡΠ·Ρ‹ΠΊΠΎΠ²ΡƒΡŽ срСду. БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ haXe, с Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ ΠΈ JavaScript-ΠΎΠ±Ρ€Π°Π·Π½Ρ‹ΠΌ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ языком].