Talk:Haxe

From Wikipedia, the free encyclopedia
Jump to: navigation, search
          This article is of interest to the following WikiProjects:
WikiProject Computer science (Rated Start-class, Low-importance)
WikiProject icon This article is within the scope of WikiProject Computer science, a collaborative effort to improve the coverage of Computer science related articles on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
Start-Class article Start  This article has been rated as Start-Class on the project's quality scale.
 Low  This article has been rated as Low-importance on the project's importance scale.
 
WikiProject Computing / CompSci (Rated Start-class, Low-importance)
WikiProject icon This article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
Start-Class article Start  This article has been rated as Start-Class on the project's quality scale.
 Low  This article has been rated as Low-importance on the project's importance scale.
Taskforce icon
This article is supported by WikiProject Computer science (marked as Low-importance).
 
WikiProject Free Software / Software / Computing  (Rated Start-class, Mid-importance)
WikiProject icon This article is within the scope of WikiProject Free Software, a collaborative effort to improve the coverage of free software on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
Start-Class article Start  This article has been rated as Start-Class on the project's quality scale.
 Mid  This article has been rated as Mid-importance on the project's importance scale.
Taskforce icon
This article is supported by WikiProject Software.
Taskforce icon
This article is supported by WikiProject Computing.
 

Title[edit]

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)

Neutrality[edit]

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)

Platforms[edit]

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)

Haxe/OpenFL[edit]

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)