Главная > .NET, AJAX, Mozilla Firefox, Uncategorized, Разное > Milescript — язык, который почти Java, почти C#, но все таки JavaScript

Milescript — язык, который почти Java, почти C#, но все таки JavaScript

10 октября 2007

Появилась в сети новая, интересная и достаточно спорная технология. Это язык Milescript - строго типизированный, полностью объектно-ориентированный, идеологически близкий наследник/последователь языков Java и С#. Что интересного в нем, так это то, что после написания программы компилятор превращает собственный код в исполняемую программу на другом скриптовом языке - JavaScript!

Получается странный "винегрет". Многие высказывают обоснованную критику в адрес javascript-а как языка для построения приложений (в свете повсеместного использования AJAX для создания не просто страниц, а приложений), в частности, за слабую и очень уж "искривленную" реализацию ООП, отсутствие строгой типизации и другие врожденные болезни. Очевидно, что изначально JavaScript для этого не был приспособлен, более того, вероятно создатели даже не могли представить, что когда-то мегабайтовые фреймворки будут обычным явлением. Придумывать новый язык на замену уже ставшему волей-неволей стандартом - дело сложное и хлопотливое (хотя Mozilla Fundation уже делает шаги в сторону JavaScript 2, который планируют встроить как стандартный в движок браузера Firefox 3).

Выход из ситуации вроде довольно изящный - раз писать нормальные ООП программы на не приспособленному к этому языку сложно (для программиста, конечно), то почему не сделать другой язык, который будет предоставлять программистам все необходимые им возможности, возмет на себя проверку типов, иерархию основных объектов и т.д., а в фоне в конце концов будет генерировать корректный JavaScript код, который и будет исполнятся на целевой машине. Такое решение не новое, и в .NET (вернее, ASP.NET), и в Java уже есть - программисты, создавая приложение описывают все в привычных им конструкциях среды (.NET/C# или Java), а платформа/сервер сам на лету генерирует пользовательский интерфейс и необходимые JS-модули. Но в этих примерах речь идет, скорее, о кросс-генерации пользовательских элементов управления, а не именно полного кода приложения. Milescript же, по замыслу создателей, должен помочь именно на стадии реализации основной логики приложения.

И, кстати, хотя на первый взгляд логичнее было бы не придумывать новый язык, а использовать уже существующий, хоть тот же C# или Java, но если подумать, то не все так просто. Не являясь глубоким знатоком указанных языков, но довольно неплохо владея JavaScript, могу сказать, что уверен - в них есть очень много возможностей и конструкций, которые будет очень проблематично, если вообще возможно, перенести автоматически в JavaScript. Поэтому вместо простого запрета на использование отдельных функциональных возможностей языка гораздо проще и логичнее создать отдельный язык, включив в него именно те возможности, которые, с одной стороны, как раз необходимы для полноценного программирования на JavaScript, с другой - допускают приемлемую реализацию.

На сайте проекта есть пример - игра змейка, написанная с использованием Milescript-а. Работает очень даже неплохо. Ну а саму документацию на язык можно скачать в разных форматах отсюда.

Конечно, в настоящее время это скорее "proof of concept", чем пригодная к реальной разработке технология, но вполне реально, что что-то из нее и получится. Руководствуясь довольно большим quick start tutorial можно за 7 шагов попробовать создать свою первую программу и испытать ее в действии - об установке и использованию компилятора следует почитать еще Getting and using the Milescript compiler

  • Что-то ведь надо делать с JavaScript. Время когда он был обычной подпоркой HTMLя прошло, но до уровня «нормального» языка он так и не дорос. Будут ли его в будущем компилировать или навернут… посмотрим.

    Milescript заинтересовал. Спасибо за информацию.

  • Pingback: Краткий обзор возможности работы ExtJS на платформах Microsoft .NET и Java | Alpha-Beta-Release Blog()

  • Спасибо за полезную статью

  • Прошло более года, а язык Milescript так и не обрёл популярности, яваскрипта оказалось достаточно! 🙂

    • ну он и не позиционировался в мейнстрим, там есть схожие технологии вроде GWT. Но язык пока даже до 1.0 версии не дошел, а судя по новостям, развивается

Developers.org.ua