Using NPM modules from Haxe

When targeting JavaScript, using NPM modules is a must, and although there is nothing you can’t do with Haxe, it requires to understand how these modules work in order to write (even minimal) externs.

Many Haxe developers are not really familiar with CommonJS and ES6 module system; consuming NPM modules becomes a source of confusion / frustration. The goal of this post is to provide enough technical understanding to consume most modules.

Continue reading

Haxe: working with JavaScript libraries

Let’s say you’re interested in using Haxe for JavaScript development, but you are wondering how you are going to use the libraries you are used to.

Clearly this will be a little bit more complicated than when using languages like TypeScript, ES6/Traceur or CoffeeScript which essentially allow you to include any regular JavaScript without the compiler complaining.

Haxe is a different beast: you can’t just drop JavaScript code and expect it to be accepted. Let’s see the different strategies to use external JavaScript from Haxe.

Continue reading

Vanilla Haxe JS

I’ve seen it all in JavaScript, from Netscape 4’s years of pain, to jQuery to abstract browser differences, and finally to Vanilla JS and node.js – we now live in a world where coding in JavaScript is relatively sane and consistent.

Except we still have to use JavaScript. Not that I don’t like JavaScript – I’m quite found of the language and have sympathy for its quirks, but it’s just missing something to be productive once your code becomes more that half a dozen of classes.

Here comes the Haxe language and it’s almighty type inference!

haxe-inference 
Enjoy smart Haxe completion in many popular editors

Continue reading

Adventures in Dart land

The Dart language was unveiled by Google less than 2 years ago as a new “language for the web”, and, like most people, I didn’t give a f… much attention as it was in its early stages and I couldn’t really put my finger on what it was trying to solve, and for whom.

After coding Dart during several weeks (on this cool project) I can pretend to be familiar enough with the language and tools to tell you a bit about it. You’ll be surprised, for Dart isn’t what you think it is.

Did I like it? Yes, I genuinely enjoyed working with Dart.

Should you learn it? Give it a look – you might like it, and learning new languages make you a better coder anyway.

Continue reading

What should Adobe do to save AIR?

ASNext was supposed to solve once and for all AS3 VM performance problems.
ASNext is now canceled, but the problem remains.

Why and how slow is AS3?

We know AS3’s VM and JIT aren’t very efficient in general, partly because the language is fairly rich and dynamic; and even if the VM was awesome, all maths are computed with double numeric types which are known to be massively slower than floats.

However compared to other scripting languages, we shouldn’t complain that it’s slow – AS3 AOT-ed on iOS is definitely much faster than interpreted LUA for instance, so why is that such a problem in AIR and not in Corona/MOAI/Gideros?
Continue reading

NME – profiling your app performance

Profilers are some of the most important tools to optimize an application – yet many developers don’t even know such a thing exists.

There are profilers for most runtimes, that is you’ll get a different profiler for C++, .NET, Java and even Actionscript. For instance we’re using JetBrain’s dotTrace to profile FlashDevelop (a .NET application), and for Actionscript you’ll have the fantastic Adobe Scout.

Haxe NME, for desktop/mobile targets, cross-compiles your haxe code into C++ and builds a pure native application, so we’ll use a C++ profiler.

Continue reading

Titanium: the Good, the Bad and the Ugly

I’ve been following Appcelerator Titanium Mobile with a keen interest since they decided, for mobile, to move from HTML to native UIs. I just love this idea: use the platform’s native UI controls from Javascript. I did have a fairly good experience doing a little test app with Titanium Mobile 1.5 and noted for myself to use it for real when I’ll have a project.

More recently Appcelerator bought Aptana, the arguably most advanced Eclipse plugin for Javascript (and HTML) development, and renamed it TitaniumStudio. Honestly I dislike Eclipse very much but I thought it was a great move to gain the professional developers’ hearts.

Since I had a new occasion to do a mobile app I thought I was time to get up to date by giving Titanium 1.8 another run.

This was a “mixed” experience, but my conclusion is quite positive!

Updated 27/02/12 (see end of the article)

Warning: MacOS stuff ahead 😉

Continue reading