Вышел haXe 2.0. Если вы не знаете, что это такое: haXe — это язык программирования для веба, который поддерживает несколько платформ: Flash 6-8, Flash 9+, JavaScript, Neko, а теперь и PHP. Кратко о новинках в haXe 2.0:
Универсальный язык haXe набирает популярность, и у него есть свой собственный сайт haxe.org. По правде говоря, сайт этот есть уже три года. Но 6 мая 2008 он обрел свое новое воплощение. Новая версия haXe-вики написана на самом языке haXe и появилась на свет многоязычной, включая и русский язык (и вот кто в этом виноват, и по его же вине можно почитать введение в haXe на понятном языке).
Но это еще полбеды. Давно уже открыт и хорошо работает сайт haxe.ru, где вы найдете самую полную документацию к haXe на русском (haXe Language Reference).
Молодой универсальный язык программирования haXe от Николя Канасье уже полюбили, в том числе и в Рунете. А вчера был анонсирован Physaxe — движок физики для языка haXe.
Как известно, на haXe можно писать приложения для Flash Player 9. Physaxe использует множество свежих haXe-оптимизаций для Flash9, таких как 'inlining' и 'generated generics' (объяснение ниже). Таким образом, Physaxe как движок для физики вполне может оказаться самым быстрым в своей области. Потестируем?
Вот демки Physaxe, а вот домстраница проекта Physaxe со всеми исходниками.
Generated Generics, они же Генерируемые спецверсии классов: оптимизация компилятора для более строгой типизации и обхода приведения типов. Как известно, haXe поддерживает типизированные массивы. Но во время выполнения их не поддерживает Flash Player 9, так что при доступе к такому массиву теряется время на приведения типов данных. Чтобы сэкономить это время, компилятор haXe создает строго типизированyю спецверсию класса для времени выполнения. Так, вместо общего типа данных (класса) List во время выполнения получаем строгий тип данных (класс) List_User, элементами которого являются только объекты типа User. Это позволяет избежать приведения типов и ускорить выполнение кода.
List
List_User
User
Остроумно? Канасье, как от него и ожидалось, продолжает рулить! А чего еще ждать от создателя MTASC?
Открылся haxe.ru. Пишут:
haXe - универсальный объектно-ориентированный язык программирования высокого уровня. Универсальность в том, что код можно компилировать для нескольких платформ: * Flash (swf версий 7,8 или 9 использующие API языка ActionScript 2 или ActionScript 3) * JavaScript (клиентские скрипты в т.ч. использующие технологию Ajax) * Neko (компилированные программы, исполняемые виртуальной машиной neko, которые могут использоваться как серверные файлы для веб-приложений или как основа программ для desktop). Кроме того язык является открытым (open source) и кросс-платформенным. С помощью haXe и связанных с ним технологий (Neko, SWHX, SysTools, SPOD и т.д.) можно создавать приложения, способные работать под Windows, Mac OS или Linux.
Универсальность в том, что код можно компилировать для нескольких платформ: * Flash (swf версий 7,8 или 9 использующие API языка ActionScript 2 или ActionScript 3) * JavaScript (клиентские скрипты в т.ч. использующие технологию Ajax) * Neko (компилированные программы, исполняемые виртуальной машиной neko, которые могут использоваться как серверные файлы для веб-приложений или как основа программ для desktop).
Кроме того язык является открытым (open source) и кросс-платформенным. С помощью haXe и связанных с ним технологий (Neko, SWHX, SysTools, SPOD и т.д.) можно создавать приложения, способные работать под Windows, Mac OS или Linux.
Я же вам говорил :-)
Adobe делает 3D-камеру с распознаванием объектов по глубине фокуса—вы знаете.
Создатель легендарного MTASC Николя Канасье буквально только что попросил потестировать новую версию haXe-компилятора и сравнить ее производительность с производительностью стандартного AS3-компилятора от Adobe. Итак, MTASC для Flash 9 родился. Почти ;-)
Желающие могут взять компилятор haXe в репозитории.
Переведена на русский язык статья, объясняющая совместное использование универсального языка haXe и Flex2 Framework. Темы статьи:
В результате получается тесная взаимосвязь двух технологий, возможность взаимного вызова методов и обмена данными между двумя приложениями.
Один из интереснейших побочных моментов -- использование haXe для создания библиотеки AS3-классов с помощью команды haxe -gen-hx-classes filename.swf. Дает интересную пищу для размышлений, бывает даже информативнее стандартной опции компилятора -keep-generated-actionscript, хоть и не включает полный исходный код классов.
haxe -gen-hx-classes filename.swf
-keep-generated-actionscript
Update: 16 декабря 2007 г. вышел первый официальный релиз haxeVideo 1.0.
Николя Канасье добавил в haXe FLV Video Streaming Multithread Server поддержку записи с веб-камеры и микрофона, улучшил поддержку FLV и AMF, построил лучшее тестовое приложение и выпустил следующий бета-релиз: haXe Video Server Beta 2.
Размер димтрибутива составляет 7 мегабайт, из которых 7 мегабайт -- размер тестового видео, идущего в составе дистрибутива. Нет, я не опечатался. Если быть точным, общий размер всех исходников haXe Video сервера -- 131 Кб. Да, совсем несерьезный парень этот Николя Канасье.
Чтобы потестить:
- запускаем server.bat - открываем video.swf - кликаем на "Record Cam" - поем, танцуем перед камерой, приводим девок - нажимаем Stop - нажимаем "Play Rec. Video" - видим все безобразие записанным, думаем, как теперь избавиться от улик.
Cо времени haXe Video Beta 1 прошло 2 дня. Кстати, некоторые считали, что Канасье шутит.
Вышел beta-релиз haXe Video -- многопоточного FLV Video Streaming сервера, написанного полностью на универсальном языке haXe. Цель создать небольшой по размеру сервер для обмена аудио- и видео- потоками с высокой производительностью.
Скачать можно c Google Code: haXe FLV Video Streaming Multithread Server Beta 1.
Выпуск этого сервера стал возможен благодаря поддержке команды Red5 и Roberto Saccon, который помог отладить работу с протоколом RTMP.
Daniel Cassidy реализовал поддержку XPath для универсального языка haXe.
Цель -- полная реализация XPath по стандарту W3C. В данной альфа-версии еще есть несколько нуждающихся в доработке моментов, таких, как компиляция в JavaScript, реализация таких XPath-функций, как id(), namespace-uri() и lang(), поддержка пространств имен и еще несколько подмоментов, связанных с деталями реализаци XML в haXe.
Вот -- документация по XPath для haXe.
Читайте также: haXe: установка и создание первого flash-приложения c помощью компилятора haXe
haXe -- это универсальный язык высокого уровня и бесплатный компилятор для него. haXe позволяет создавать приложения для таких платформ, как JavaScript, Flash Player 6-8, Flash Player 9 , Flash Lite (ActionScript 2 и 3) и Neko. Автор этой технологии -- Николя Канасье, разработчик самого быстрого Flash-компилятора MTASC (теперь у вас есть представление о качестве haXe). Подробнее о haXe.
class Test { static function main() { trace("Hello World !"); } }
-swf test.swf -main Test
<html> <head><title>haXe Flash</title></head> <body bgcolor="#dddddd"> <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="300" id="haxe" align="middle"> <param name="movie" value="test.swf"/> <param name="allowScriptAccess" value="always" /> <param name="quality" value="high" /> <param name="scale" value="noscale" /> <param name="salign" value="lt" /> <param name="bgcolor" value="#ffffff"/> <embed src="test.swf" bgcolor="#ffffff" width="400" height="300" name="haxe" quality="high" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> </object> </body> </html>
Данные инструкции собраны и сведены в одну со страниц haXe Usage, haXe downloads и Getting Started with haXe/Flash.
Желающим продвинуться дальше в использовании haXe рекомендуется последняя ссылка и прочие туториалы, например, haXe для Flash9 как замена ActionScript 3.
Что-то непонятно, нечто не получается? Спрашивайте здесь или в группе почтовой рассылки haXe.
Как вы знаете, Firebug -- лучшее средство для отладки JavaScript кода.
А 25 января 2007 года Николя Канасье (сумасшедший, автор знаменитого MTASC, а теперь и HaXe), дал ссылку на HaXe-исходники для Firebug (см. в std/haxe/Firebug.hx)
Поддерживаются Flash 6-8, Flash9 (Flex) и Javascript:
if( haxe.Firebug.detect() ) haxe.Firebug.redirectTraces();
После этого все непойманные исключения и трэйсы будут отображаться в консоли Firebug.
JabbyPanda пишет мне, что появилась украинская версия сайта HaXe. Иду, смотрю -- действительно, появилась. А также появилась и HaXe по руссски. И еще несколько языков добавили. Переводчики: на украинский -- flashlight, на русский -- yuri. Кто скрывается за этими никами -- пока неизвестно, но эти люди где-то среди нас...
Open-source инициатива xinf (звучит как "'синф" = "xinf is not flash") -- это проект универсальной платформы для разработки кросс-платформенных приложений. Звучит?
Попытаюсь догадаться, о чем вы сейчас подумали. "Еще один пожиратель моего времени" -- да? У меня тоже много работы.
Но читаем дальше: проекты xinf работают под Adobe Flash Player, в браузерах, поддерживающих JavaScript, на платформо-независимом проигрывателе neko и на OpenGL, а создаются с помощью одного и того же базового кода.
Читаем еще дальше:
БОльшая часть кроспатформенной магии (да, там так написано) 'синфа основана на языке и компиляторе "haXe" от Николя Канасье. Xinf использует это замечательное изобретение для своих основных компонентов:
Существует скриншот, демонстрирующий, как этот исходный код на языке HaXe дает одинаковый результат работы во FlashPlayer, Firefox и в собственном проигрывателе 'синфа -- xinfinity.
Новый самозванец, посмевший снова нарушить наш покой -- Даниэль Фишер (Daniel Fischer (0xdf.com)), это он придумал этот 'синф.
Я, конечно, понимаю, что выглядит это как еще один безумный проект, но кто написал самый быстрый флэш-компилятор в мире? -- Человек, чье новое творение лежит в корне платформы XINF. И если вы хоть енмного романтик... то XINF API для вас ;-)
Вот, например, описанние XINF API для EventDispatcher'a (там уже есть такая вещь, как, например, addGlobalEventListener -- пригодится для слушателей глобальных событий типа ENTER_FRAME), а вот текущая реализация диспетчера событий в XINF API
addGlobalEventListener
На толстом сайте ActionScript.com появилась статья, преподносящая в лучшем виде разрабатываемую Николя Канасье систему для написания всего на флэше HaXe. Известно, что некоторые считают Николя безумцем, и теперь видно, что не зря. Вглядитесь внимательно, какой страшный взгляд у этого человека (там фото его есть, рядом с примерами кода на языке HaXe ;-) Да он же горы свернет!
Как хотите, -- а я в него верю.
Николя Канасье выпустил первую предрелизную версию своего детища haXe 1.0.
Необходимость появления haXe Николя объясняет так: флэш-кодеры заслужили право иметь под рукой один универсальный (желательно простой -- добавляю я) язык программирования. Чтобы можно было создавать сайты, включающие в себя функциональность Flash, Javascript / AJAX и все серверные функции (и работу с базами данных), используя при этом только один язык. Для flash-разработчиков отдельно сообщается, что as-синтаксис сохранен полностью (во введении в haXe для флэшэров прямым текстом сказано, что в качестве документации следует использовать Ливдоки) и обещана поддержка flash player 8.5 в скором времени.
В этот релиз haXe вошли следующие новинки: - поддержка регулярных выражений - серверные сокеты - haXe-сериализация - haXe-remoting - система шаблонов haXe - новая кроссплатформенная поддержка xml и что-то еще.
Кстати, соотечествееник Николя Канасье, Мишель Монтень, пишет в своих "Опытах" (том 1) о том, с какой осторожностью нужно вводить все новое: так, он приводит пример, как в некоей стране любой, кто предлагал новый закон, должен был выйти и публично огласить суть своего нововведения на площади. Если нововведение признавалось бесполезным, оратор был казнен тотчас же на месте. Надеюсь, Канасье читал Монтеня..
Совсем древнее: 17-20.09.2002, 23-30.09.2002, 01-04.10.2002, 07-11.10.2002, 14-19.10.2002, 20-26.10.2002, 27.10-02.11.2002, 04-08.11.2002, 11-16.11.2002, 18-23.11.2002 25-30.11.2002, 02-07.12.2002, 09-14.12.2002 Сайт заработал 17.09.2002