From Wikipedia, the free encyclopedia
Jump to: navigation, search

wwx 2016 update[edit]

Hey folks, I added the new Lua target to the list of supported platforms.

I hadn't read this article in a while, and I think it needs some love. Here's some concerns:

  • " but content built with OpenFL currently suffers performance issues on mobile devices." - why are we referencing OpenFL issues here? These should all be removed.
  • Performance section - this whole section looks pretty weak. I would delete it for now until we can come up with some more recent benchmarks.
  • Use more specific language for features, rather than relying on comparison to other languages (e.g. explaining the "class" keyword with a comparison to Actionscript).
  • "and includes experimental support for C++ and C#." - Neither of these targets are experimental anymore
  • Sourcecode section - this whole section is weak as well. the links all go the same place, and it repeats the same target information we've listed elsewhere. I'd delete it and replace it with a section on editor support.

Omgjjd (talk) 09:57, 1 June 2016 (UTC)


Why does this show with "haxe" as the title instead of "Haxe" which it should be? -- Tom Jenkins (reply) 08:36, 5 November 2012 (UTC)

Fixed it. It was a tag at the top of the page. -- Tom Jenkins (reply) 09:07, 5 November 2012 (UTC)


I have edited the article removing and clarifying claims such as "full support for iPhone, Android, Windows, Unix, Mac, etc", since Haxe currently only supports a subset of the full platform API. Please do not remove this clarification. Before my edit, Haxe appeared to be a full-featured multiplatform language which it is currently not. Please do not add biased statements into the article inferring the same.

I've also wikified and improved the organization of content within the article, which was quite a mess. Please improve as necessary. -- Tom Jenkins (reply) 09:30, 5 November 2012 (UTC)


Nicolas Cannesse and friends, please stop adding the JS/NodeJS and other langs to the "full support" category unless you can prove full platform API supported. If it does, add refs to prove it. Currently the API page has 40 JS classes. Is that full support? And what about the 100 NodeJS classes? Unless you can show EVERY function from EVERY class, it does not qualify as full support and therefore Haxe cannot be used as a full replacement to that platform's native language. Saying it has full support is misleading and incorrect. -- Tom Jenkins (reply) 06:44, 6 February 2013 (UTC)

@Tom Jenkins
You seem to be under the impression that full support for compiling code to a certain language requires all the APIs of the respective standard library of the target language to be included into the standard library of the source language. You are mistaken.
Haxe provides support for all of JS per definition - each and every function in every prototype that JS or any third-party JS library offers, is usable from haxe directly, without any further work. The same is true for any other dynamic target language. The simple reason is that the Haxe type-system provides support for "Dynamic" instances - those can be any function, object, prototype in JS.
What you are talking about are static type definitions ("extern class" definitions in Haxe) for these APIs, but those are just a nice-to-have, not a requirement, let alone their inclusion into the standard library. In fact, by your standards, JS itself doesn't have any support for JS or any JS libraries, because there are no static type definitions in the language.
NodeJS is a third-party platform/API, and haxe usually provides support for third-party APIs in third-party libraries (in the form of collections of extern class definitions). That doesn't make the support go away.
JS is not an OOP language, but a prototyped language. There are no classes in JS. You're demanding that haxe supports things that don't even exist.
Sufficient proof for all this (where's the precedence for demanding proofs, btw?) are the both the compilers source code, and the compilers very trivially observable behavior. If you don't understand that, that's not the problem of those writing the WP article about Haxe.
So before you change the article again - please show me a single piece of JS code that in your opinion can't be written in (or used from) Haxe, and I'll give you the proof that you demand. -- TOderson
What does fully supported mean? In my opinion fully supported means: All language features from Haxe can compiled to the target platform. Also all features from the target platform could be targeted by Haxe.
Therefore I would say could say Haxe fully supports the JavaScript target. You could use the whole node.js API without writing a single line of JavaScript and do all the work in Haxe.
Also: Haxe never claimed to have a node.js target, it always said JavaScript, which is a language and not a platform. Having a API for HTML DOM in standard library is more or less just a little bit more then actually promised.-- TheHippo0 — Preceding unsigned comment added by TheHippo0 (talkcontribs) 18:48, 14 February 2013 (UTC)

Does Haxe have GADTs?[edit]

The article states that Haxe supports GADTs (generalized algebraic datatypes), by giving the examples of Option<T>, Either<T,U> and ConsList<T>. All these are merely regular ADTs (algebraic data types). The only enhancement they have over the Color type earlier in the article (properly marked as an ADT) is that they are parameterized. That alone is not sufficient to make a type a GADT: in a proper GADT, values produced by two different constructors are allowed to have different type expressions in the parameter position of their types. Just see the referenced generalized algebraic data types article. This is not a claim that Haxe does not have GADTs [I don't know; I was reading this to learn about the language]. --Noodlefarian (talk) 22:13, 15 November 2014 (UTC)

The only claim of GADTs in that language that I found was from the Haxe documentation, which also gives a regular ADT as an example. I'll remove this statement from the article. Liiiii (talk) 00:47, 7 December 2014 (UTC)
Haxe does have GADTs. I don't understand why you remove the information here just because there's no concrete example of them in the manual. How about assuming that the manual is not lying? — Preceding unsigned comment added by SimonHaxe (talkcontribs) 10:54, 7 January 2015 (UTC)
We can't assume anything contentious without a reliable source. The standard for making a claim here is Verifiability, not honesty. I think we can say the manual claims it supports GADTs; the manual itself should be evidence for that. But I don't think we can consider it a reliable source for claims like "it fully supports feature XYZ" or "it tells the truth about the language". Surely, there are other disputes here over things like that too, like JavaScript support. Again, I don't think it would be reliable for that. I have added a note at the bottom of Haxe#Enumerated types with what I think is appropriate, including a citation. Feel free to edit further. BlueGuy213 (talk) 00:08, 1 May 2015 (UTC)


The following is past discussion between Wonderfl and SimonHaxe, copied here due to its relevance to the Haxe article.

You seem to be confused about the relationship of Haxe and OpenFL, so I would like to clarify. Haxe is a language and a compiler on which OpenFL is built. This relationship is directional: OpenFL depends on Haxe but in contrast Haxe has no inherent notion of what OpenFL even is. It is then irrelevant to the description of Haxe itself, which is what the introduction text should provide.

It is not the job of the Haxe wikipedia page to improve the "discoverability of OpenFL". However, as I suggested OpenFL could be listed in a "Software built on Haxe" section in the Haxe article. From a Haxe point of view it is on the same level as Flambe or Kha which could both be mentioned. — Preceding unsigned comment added by SimonHaxe (talkcontribs) 17:02, 5 February 2015 (UTC)

Look, the projects clearly are related, built by the same team, similar feature-set, and so on. Yes, I understand Haxe is a Language, but by your logic, AIR should not be mentioned on Flash Player because AIR has nothing to do with FP. True. But we mention it still because it is a close relation. I don't know what Flambe or whatever is, but if its notable, then mention it. Non notable (hardly used) stuff doesn't deserve a mention. Plus, since OpenFL is built by the same team (ie. "official") it is fine within the lead section of Haxe, while other projects may not be fine (we don't generally list third party / fandom stuff on the lead of the official article, unless its highly notable, while 1st party projects are generally listed). Wonderfl (reply) 04:26, 6 February 2015 (UTC)
That's just wrong information. OpenFL is built by different team; no member of the core Haxe team is directly involved with it. So your "we don't generally list third party" comment applies. You can discredit my neutrality all you want but that doesn't change the facts. — Preceding unsigned comment added by SimonHaxe (talkcontribs) 08:43, 6 February 2015 (UTC)

Book references[edit]

Hi all, I've improved the article by adding as many third-party references I could find using Google Book Search. I'm sure there are more articles/reviews on the internet but I have no time at present to add them in. The following sections have been affected:

I hope all is well. If not, spend a minute to improve it!

Wonderfl (reply) 17:48, 6 August 2015 (UTC)

Haxe-Based Library's?[edit]

Is there any place in this page for a collection or list of library's that extend Haxe such as HaxeFlixel ( or HaxePunk ( Dancan12345 (talk) 17:56, 7 March 2016 (UTC)

External links modified[edit]

Hello fellow Wikipedians,

I have just added archive links to one external link on Haxe. Please take a moment to review my edit. You may add {{cbignore}} after the link to keep me from modifying it, if I keep adding bad data, but formatting bugs should be reported instead. Alternatively, you can add {{nobots|deny=InternetArchiveBot}} to keep me off the page altogether, but should be used as a last resort. I made the following changes:

When you have finished reviewing my changes, please set the checked parameter below to true or failed to let others know (documentation at {{Sourcecheck}}).

You may set the |checked=, on this template, to true or failed to let other editors know you reviewed the change. If you find any errors, please use the tools below to fix them or call an editor by setting |needhelp= to your help request.

  • If you have discovered URLs which were erroneously considered dead by the bot, you can report them with this tool.
  • If you found an error with any archives or the URLs themselves, you can fix them with this tool.

If you are unable to use these tools, you may set |needhelp=<your help request> on this template to request help from an experienced user. Please include details about your problem, to help other editors.

Cheers.—cyberbot IITalk to my owner:Online 20:02, 28 March 2016 (UTC)