Calendar

August 2014
Mo Tu We Th Fr Sa Su
<< >>
123
45678910
11121314151617
18192021222324
25262728293031

Langs

Haxe Interview

Posted on Jun 04 2009

Two months ago I was asked for an interview for the popular Italian programming magazine Io Programmo. Haxe made the front page with a 6 pages review plus the interview. Since it was in Italian, I got the permission to publish the (original) english version here, in case it might interest some of you ;)

Who is Nicolas Cannasse: studies, interests, job(s).

I'll try to make it short :)

I'm almost 30, I've been programming since I'm kid (first in Basic, then Pascal, then C/C++/ASM...) and did some additional CS studies in Bordeaux.

My main interests are programming languages and virtual machines (design and implementations), but also video games (both technologies and game design).

I've been working a bit in Japan, but came back to France where I co-founded Motion-Twin. This is a small company (11 people right now) and we're doing web-based games in Flash.

I have also a lot of interests in open source, japan pop culture and geopolitics but that's another story ;)

Haxe is walking on a new path of developing; while java used the "write once run everywhere" and .net preferred a "write using the language you prefer , but run only on our platform", Haxe is taking a different approach, like a "write once, compile/deploy/run as you like", it looks like an octopus: when, and why did this idea flash in your mind?

It comes from my work at Motion-Twin : when we are making web games, we need to develop a Flash client, a Web server and often additional Javascript. Switching between several languages to do that is hard.

Also, every language usually comes with its own platform, and is then lock-in its users from doing something else. If you're learning Java, you'll have to use the JVM, if you're learning ActionScript3, you'll have to do Flash.

OTOH Haxe is letting the user free from choosing the best platform to perform a given task. Since you're using the same language everywhere, it's much more easy to try something new. The goal of Haxe is then to target all mainstream platforms, and keep updating the list as new platforms will emerge, so users can always have the choice.

What programming language do you use daily, and which one you like much?

I'm writing a lot of Haxe, and some OCaml. I also often use C. I like of course to write things in Haxe, because I could design it the way I was feeling comfortable with.

In your old blog you told that you don't like macOS for some reasons, using it to develop i had the same feeling: do you believe that Mac OS is much for "fashion" users than for professional developers?

The story is still on the new blog ;)

It's true that MacOS has been fashionable, because it's made by Apple which have a strong image. It's also a good system since it's based on a BSD core so Linux users will find it a lot more friendly than Windows.

However, it has IMHO several big issues : the documentation for the OS is very poor, and it's very hard to develop for it in C++ for example.

There's a lot of closed things : you can't run OSX on virtualization software, a lot of useful software is not open source, a lot of proprietary file formats.

From an external point of view, it seems that OSX is much more proprietary then Windows. Of course, Microsoft is not as fashion as Apple, so that makes a big difference. Please note that I'm not a Windows enthusiast either !

What is your favorite IDE, and your favorite Operative System?

Right now I'm mainly using FlashDevelop on Windows for my daily work. I'm not that much religious about OS and IDE : I think that people should use what they think suit them the best.

For instance, the completion is handled directly by the Haxe compiler, so it's made very easy to integrate completion into any IDE.

You merged features from different languages, can you tell what are? which one is the real "father"?

There's features from Java, ActionScript, OCaml, and other languages I either used or studied. The idea is to make a language with a strong type system, yet have the flexibility of dynamically typed languages.

But the real father of Haxe is "Motion-Types". It's a language we've been developing at Motion-Twin in 2004-2006. At first, it was a replacement for ActionScript2, and we later used it on the server side
as well.

We used Motion-Types quite a lot in our company for different projects so at some point when we thought about changing things and doing a "clean-rewrite", that's what became Haxe.

The initial compiler was developed in Objective Caml, why did you choose this language?

A compiler is often viewed as black magic, but it's actually real programming. What a compiler does is to manipulate symbolic data structures, and functional languages such as OCaml are a perfect match for doing that.

It's also one of the most fast languages around since it produces highly optimized binaries.

Now the compiler is written in NekoML, why you decide to create and port all the compiler code to this new language?

The Haxe compiler is still written in OCaml.

However one the platforms that Haxe targets, the NekoVM, use a OCaml-style language named NekoML for his compiler.

How many developer are working on the main project?

I've been developing most of the Haxe compiler, with some help for people at Motion-Twin for many standard libraries.

Franco Ponticelli has been doing the whole Haxe/PHP target and right now Hugh Sanderson has a working Haxe/C++ target which is not yet part of the official compiler.

What was the first target platform you did develop? and why?

It was Flash 6-8 at first. Mainly because a lot of people were waiting for what will come after MTASC, so I wanted them to be able to play with it.

But Haxe 1.0 already had JS, Flash 6-8 and Neko. Flash9+ and PHP were added after that.

JS, Actionscript, PHP, C++ , what other languages we will see in the future?

I guess Java is a good candidate ;) It's mainstream and offer several additional interesting possibilities such as developing for Android.

Why a programmer should choose the NekoVM instead of targeting the C++ or Actionscript languages?

NekoVM can be used for several kind of applications :

  • web service : with database and filesystem access, you can run NekoVM into Apache web server in order to generate dynamic web pages. Same as PHP, but around 30x faster
  • realtime servers : to write your custom game or chat server for instance.
  • desktop applications : since NekoVM can be extended with any C code, some people already developed UI frameworks binding such as GTK or OpenGL support for it. So if you use Haxe/Neko, you can write OpenGL desktop applications as well !

As you can see, Haxe is not about offering support for competing platforms, but more about opening more possibilities for different kind of applications, all written in the same language.

You are a founder of a game company, Motion Twin, are you using Haxe in your projects?

Yes, all of them. Everything we do on client side (Flash/JS) and server side (Web/Realtime) is written in Haxe. Most of our commandline development tools as well.

Did you ever think to develop games for the Iphone/IPod? and if no, why?

We are very happy with the web right now. We don't see much games that could be made for the IPhone and that can't be made on the web right now. And there's (still) much more web users than Iphone users right now ;)

You developed also the first compiler not Adobe for AS 2.0, MTASC, this project will continue?

It's still continuing. The issue is that AS2 was stopped by Adobe in favor of AS3. So MTASC is a working compiler, with no known bugs, so no need for new versions.

People sometimes thinks that MTASC is dead, but it's just completed. Since we're not selling it, we don't need to comeup with new version every year by adding more-or-less buggy features ;)

What do you believe is/are the current limit/s of Haxe? are you planning to fix/remove them?

I think that current main Haxe issue is not in the language itself or in the technology, but in the documentation. Now that things have been much more stable, we will focus on that in order to make it much more easy for people to get started with Haxe.

What will you believe will became in the future Haxe and the nekoVM?

I think more people will start using Haxe : we've seen growing interest in the past year, and people that start using Haxe often love it and find it hard to go back to Java or PHP or ActionScript, whatever they have been doing before.

As far you know there are already companies using it to develop medium/large projects?

Yes. Apart from Motion-Twin, there's already some of them. For example one early adopter of Haxe is Comapping.com : most of their work is using Haxe. [Note : TouchMyPixel has also made some great Haxe games]

Do you believe that Haxe, if used with cleverness, may be one of the answers to exit from the current economic crisis for many IT companies, allowing them to save time, money and resources thanx to the possibility to deploy to multiple platforms writing only once?

I don't think that Haxe can do a lot to help with crisis. But what I think is that in times of crisis and unemployment, it's good to get yourself ready for when things will be better. Learning Haxe might then be a very good investment since it opens a lot of doors.

In the Italian Universities, in the IT faculties, they teach a bit of C, and something of JAVA: what language/s will you suggest to students/programmers to learn beyond these two languages to be much agile to have many chance-s?

Haxe of course :)

But also at least a functional language, either Lisp, OCaml or Haskell. Haxe also has some functional capabilities, and combining ObjectOriented and Functional approaches have been tremendously improving the productivity of our team in the past years.

At last, but not the least: do you believe that the open source is the future of the IT? and what major benefits do you believe it brings?

Open source (and free software) enables innovation. Internet and the Web are good examples for that : because the protocols are open, people were able to use them in many creative ways. It's also a good way to prevent monopoles and lock-in, which are both enemies of innovation and limit the freedom of the end-users.

9 comments
  • Jun 05, 2009 at 02:40

    It is very interesting to read about you Nicola but I have got one question:
    Are can you be so clever anyway, you produce software that are worth and even better the product made by a compagnies (Adobe).
    Yes the question is how?
    How can you be that clever... you are not human.
    I am not complaining though!!! since I have started using haxe 2 years ago I have never touch another language.

    Thank you very much for your hard work.

  • Jun 05, 2009 at 10:46

    Haxe rocksssss :) Hey now that i re-read the interview im made to you i realized that it was really long :)

  • Jun 05, 2009 at 17:44

    I'm going to have to agree with you that Haxe could use better docs. As someone that works for a major website that uses flash / js relatively heavily, I'd love to be able to just say "Hey guys, let's use this," and have it easily taken up by new devs. For now, I suppose we will continue to use Adobe and JS separately.

    Good work on Haxe so far, though! I've only toyed around with it, but I really like what I've seen.

  • Jun 06, 2009 at 07:50

    I often see the java platform being requested on the mailing list and on random forums, I think targeting the java platform would be a wise choice. Java would make Haxe a lot more profitable for developers if they could offer their clients java as a target platform.

    I really love what Haxe has to offer, I think the only thing it lacks is a bigger community of Haxers. I'm trying to get started with Haxe myself, but keep running into trouble... but i guess the better documentation will help fix that. =)

    One thing i'd like to see is a good cross-platform IDE for Haxe, the fellows over at HXDT seem to working on it (ever so slowly), but it's no way near as useful as Flash Develop.

  • grrr
    Jun 06, 2009 at 11:17

    It is up to you if you like os-x or not but the reasons you give are untrue. It is probably unwise to answer this but here it goes anyway.
    Important parts of os-x are open-source and the documentation is probably a lot better than when you looked at is os-x a lot younger than linux or windows and developing a lot faster.
    There are also a lot of reasons to like os-x. It is not for nothing Microsoft is trying pretty hard to give windows users some of that thru vista and windows 7.

  • Jun 06, 2009 at 13:33

    Guys,

    since you said you'll work on documentation, may I also suggest some screencast? Just to speed up the getting started phase.

    Cheers.

  • Jun 16, 2009 at 07:38

    I dont know if you should change it (as its an interview transcript) but you refer to Hugh Sanderson as Hugh Anderson - just missing an S

  • Jun 19, 2009 at 00:02

    Looks like a typo, thanks for reporting and sorry to Hugh :')

  • Jul 18, 2009 at 10:20

    Wonderful interview.
    Now that my last project is done, I'm officially switching to Haxe now :).

Name : Email : Website : Message :