The ultimate cross platform language
lambdabrella.blogspot.com
lambdabrella.blogspot.com
The main problem why it never got traction is probably that it is aiming for too much at once. If you try to do everything, you're just mediocre across the board. It may spit out JS, but how do you use advanced frameworks like Jquery in there? It may spit out C++, but how advanced is that code, and what if you want to use GTK or even Qt. From what I understood, you're pretty much limited to what haXe has to offer. And that, on the other hand, limits your choice of what you can implement. Granted, you could port stuff over, but then it's more work again.
Instead, it may be smarter to know 2-3 dedicated languages for specific tasks. This also helps you to understand and port different design patterns back and forth.
It's no silver bullet, and I'd probably still agree with your assessment of using tools designed for the job - my web stack is Django + hand written javascript/jquery + node.js for multiplayer.
But I think it's well worth checking out for the news.yc crowd. I believe something similar will eventually win out - being able to write every part of a stack in the same language - but that language is probably destined to be Javascript.
I'm also pretty sure that someday Ruby or Java or Javascript or Python will evolve into something which runs on almost any platform. Already, you can compile Java to Javascript, Python to Javascript, and so on. Especialy the LLVM is going to allow for way more inter-language swizzling.
I hope this doesn't get taken the wrong way, because it looks like a very competent effort, but I think the main reason it hasn't "taken off" is that HaXe has the hallmarks of a language designed by committee on game dev forums. "So it looks like Java, acts like JavaScript, and compiles into C++, Flash and PHP? That's awesome!"
Sounds awesome to an indie game dev. Sounds hideous to a hipster web developer.
P.S. I think Javascript, HTML and CSS is a good combination but not what most people want.
What you want is a framework/standard library to abstract away platform specifics. There are many alternatives out there but none of them delivers what they promise. One of the biggest problems is the lack of any standard GUI interface.
I did succeed in installing Air by using rpm2tgz on the RPM package, but installing an Air application still fails.
Am I the only one with this experience?
It's an important trend to look and hope HaXe to be just one example of a project going in that direction.
My only big problem with it was the standalone "neko" target used a bizarre hack which meant integers were limited to 31 bits. This became incredibly problematic when implementing code (e.g. drawing, file loading, interpreting bytecodes) which relied on the assumption that integers were at least 32 bits in size.
There was an official workaround which used an "Int32" class. This effectively meant if you built for "neko" you had to rewrite half your code to use Int32. Bizarrely haXe had no in-built abstraction for transparently handling 32bit integer types in this case.
This makes a difference because if you declare something "fixnum" you know you're being non-portable, but if you declare something (unsigned-byte 32) or just integer then you expect it to work across all implementations.
Of course, haXe code has to be written in such a way that you know you're going to compile it to PHP. You can't simply "cross" compile for different run times.
But learning one primary language is definitely appealing over learning many different languages. Reuse...