Почему Haxe?

Haxe - мощный современный язык с кучей вкусных плюшек. Его цель - дать разработчикам возможность создавать программы и веб-приложения на едином унифицированном языке программирования.
Используете ли вы Haxe ради его кроссплатформенных возможностей, или фокусируетесь на одной платформе - есть множество причин его использовать:

  • ECMA стиль программирования для client-side, server-side и desktop- приложений
    Синтаксис Haxe покажется знакомым тем, кто знаком с ActionScript и JavaScript. Благодаря множеству целей (виртуальные машины и языки) его можно использовать для множества различных применений.
  • Сверхбыстрая компиляция
    Компилятор работает со скоростью молнии. Вы заметите заметный прирост скорости по сравнению с Flash или Flex компиляторами. За счет короткого времени компиляции, на Haxe легко перейти с интерпретируемых языков PHP и JavaScript.
  • Достоинства проверки типов
    HaXe предлагает очень строгую проверку типов времени компиляции, ошибки будут найдены ДО тестирования в браузере. Это позволяет ускорить разработку для динамических языков-целей, таких как PHP и JavaScript.
  • HaXe дополняет языки целевых платформ
    HaXe был создан стремление создать инструменты и возможности для веб-разработки, поэтому он дополняет многие цели - например inlinе и дженерики во Flash development, пакеты и классы в JavaScript, типизацию в PHP, динамичекие объекты и RTTI (вместе с Reflection) в C++, и многое другое. Добавление возможностей в цели, там где их не хватает, позволяет разработчику на Haxe developer использовать одинаково богатый набор средств на ВСЕХ целях.
  • Открытый исходный код
    Кроме того, что Haxe бесплатный, он еще и язык с открытым исходным кодом и инсталляторами для платформ OSX, Windows, и производных Unix. Для компилятора не существует зависимостей от сторонних библиотек, и большая часть функциональности на платформах обеспечивается библиотеками Haxe.

Зачем нужны несколько платформ?


Вот мысли, из-за чего это может быть весьма полезно:

  • Элегантная система дистанционной связи между платформами
    Вы можете использовать дистанционные классы и обмениваться объектами между разными платформами. Так как вы используете один тот же код класса на всех платформах, он будет скомпилирован по-своему для каждой платформы, что позволяет все безошибочно сериализировать, а обмен делает элегантным и быстрым.
  • A single syntax & features
    Programming practices can often be achieved on different platforms, just with different syntax and quirks. By having a consistent syntax and feature set, there's no need to constantly switch into different programming 'modes'. This allows a developer greater focus on the logic and final output, which can greatly enhance productivity.
  • Conditional compilation - Write for one target and use on many
    Code may be tailored for a single target platform, or designed for many platforms. For instance tween classes can be used in ActionScript, JavaScript and C++. Code logic can be transferred to the most suitable target in the platform with few changes, so if front-end code is running too slow, you can quickly move and test the same code running on the back-end
  • Deploy to the desktop with ScreenweaverHx
    ScreenweaverHx allows you to embed Flash in a Neko application. This allows a Flash application to act as a desktop application & access system functionality. All of your system access is written in haxe and can communicate with your haxe SWF with ease.
  • Access to many file formats
    The format library (hosted on googlecode) can read/write many formats such as 'abc' (ActionScript Byte Code), SWF headers & more. These libraries are crossplatform making it accessible for many targets.

Platform Specific Features


Each platform that Haxe targets has many great features of its own

Flash

  • Compile to flash 6,7,8,9,10 with the same language
    You can compile back to Flash 6 if needed, without having to write AS 1 code. This makes backward compatability easy.
  • Faster & more optimized than the Flex compiler and easier to use and setup than the Flex SDK
    Due to inlining, generics and general compiler optimizations, haxe can generate SWFs with much better performance than the current Flex compiler.
  • Haxe SWFs are fully compatible with Flex & Flash
    You can load a Haxe SWF into one made by Flash or Flex or vice-versa, without any troubles.
  • Support an AS3 userbase via SWC Export
    Using the SWC Export feature you can generate an SWC. This can then be loaded by Flex. This will allow library makers to use Haxe for its great features, while still supporting their AS3 user-base.
  • Access Alchemy OpCodes
    There are OpCodes for memory allocation hidden in the SWF player which are used by Adobe Alchemy. Haxe has the ability to access them giving you low level memory access which can allow HUGE speed increases.
  • Access the PixelBender Assembly
    Using low level functions you can control PixelBender directly.
  • Simple lightweight video streaming and recording using HaXeVideo
    HaXeVideo can serve streaming video over the RTMP protocol.

JavaScript

  • Have JavaScript2 (ECMA4) features available now
    JavaScript2 promised a lot of great features for the future. HaXe provides a very similar experience, except it is available now and is fully compatible with current browsers.
  • Full DOM autocompletion
    As expected, when using Haxe to target JavaScript, you get nice autocompletion of the DOM. You'll be amazed at the properties that are tucked away in there, which you may never have realized before!
  • HaXe can run alongside existing JavaScript code
    You can run Haxe JS alongside with any other JavaScript Library. You can even access other libraries, such as JQuery, via extern classes.

Neko

  • A lightweight, fast virtual machine
    Neko is a lightweight virtual machine which offers great speed and features for developing command-line and desktop applications. Haxe has full access to its features, making writing crossplatform (mac, pc, linux) applications fast and easy.
  • Powerful & scalable Apache plugins mod_neko & mod_tora
    There are also neko plugins for Apache allowing it to run as your webserver. This allows your code to run up to 40x faster than PHP.
  • Rapidly develop command-line applications
    In a few lines of code you can build a small app which has full system access - great for performing many useful tasks.

PHP

  • Widespread Deployment to a standard Apache Server
    Everyone knows that PHP is great for its cheap deployment costs and widespread hosting. For users frustrated by its lack of API consistency and OOP features, Haxe can provide a great programming experience, without changing your server setup.
  • Develop a cleaner more structured OOP website
  • Easily access to PHP's full list of functionality
    By writing wrapper classes, the full range of PHP libraries can be accessed - and all fully type-checked.

C++

  • Harness the power of C++
    For tasks which require a little more grunt than a virtual machine like neko can provide, C++ can give you that power.

Other Features

  • Compiler based auto-completion
    HaXe provides a compiler based auto-completion system which allows IDEs to integrate completion on many otherwise hard to predict objects, such as those using type inference. This makes Haxe auto-completion fast and accurate. Check out FlashDevelop or FDT for example.
version #17997, modified 2013-03-26 14:10:58 by shalmu