
New Haxe website - yanhick
http://haxe.org
======
sspiff
I have a few bugs I've encountered over the weekend:

1\. The Linux binaries on the new site are a tar.gz.gz, making `tar xf
filename` fail, and besides that inconvenience, is probably a packaging error.
You might want to fix that.

2\. The OpenFL provided Haxe installer is broken, because it tried to download
[http://haxe.org/file/haxe-3.1.3-linux64.tar.gz](http://haxe.org/file/haxe-3.1.3-linux64.tar.gz),
which is gone. Please either fix the OpenFL installer or make sure download
links are backwards compatible by adding a redirect. (I'm assuming both
projects are run by the same community)

I worked around problem #2 by modifying the installer script to use
old.haxe.org, since the binaries on the new site are harder to use because of
problem #1. But this could definitely dissuade newcomers to Haxe, despite all
of its qualities (which, in my opinion, are many!)

~~~
joneil
Thanks, I'll look into it.

I had a redirect for any 404s that existed on the old wiki to go to
"old.haxe.org/$1", but it looks like it didn't work for the "/file/*"
downloads. I'll look into it.

I'll submit a bug report re the packaging also.

------
joneil
One of the developers of the new site here. Simon Krajewski did an amazing job
writing the manual - it's a great resource and has all the gory technical
detail - I'd encourage you to take a look. A number of other people have
contributed to content and design (though we'd still like to give the design
some more love).

The website itself is developed in Haxe, and all of the content is hosted on
Github so we can encourage contribution but still keep an eye on the quality,
unlike the wiki we had previously. There's a "Contribute" link at the bottom
of each page that links you to the relevant file on Github.

If you have any questions let me know, I'm happy to answer. I hope you find it
a valuable resource.

~~~
phest
Could you describe your web stack / how you used Haxe to develop the website,
in a nutshell?

(heads up, these are returning 404s:
[http://haxe.org/support.html](http://haxe.org/support.html)
[http://haxe.org/donate.html](http://haxe.org/donate.html))

~~~
joneil
I don't seem to have the ability to edit, and I forgot to reply to the first
part of your comment.

I use Apache/mod_neko on the server, though after the high traffic last night
we might switch to nginx/mod_tora. Either way, these basically server ".n"
Neko Bytecode files, and provide caching between requests [1].

I stayed away from using a database / ORM for this website, instead using
Github for all the content. When we update we pull a repo and it references
flat files. The site then transforms the HTML or Markdown, pops it in a
template, and serves it up.

I used a library called ufront for the MVC environment on the server. You can
have a look at what a controller looks like here [2]. I'm hoping to do a
tutorial, ufront was written by Franco Ponitcelli and Andreas Sudderland a few
years back, but I've done a lot with it in the last year and hope to release /
document soon. I did do a talk at last year's conference if you're interested
[3].

1: [http://jasono.co/2013/09/11/neko-web-
cachemodule/](http://jasono.co/2013/09/11/neko-web-cachemodule/) 2:
[https://github.com/HaxeFoundation/haxe.org/blob/master/src/a...](https://github.com/HaxeFoundation/haxe.org/blob/master/src/app/controller/DownloadController.hx)
3: [http://www.youtube.com/watch?v=c6EwJ7iU-
qo](http://www.youtube.com/watch?v=c6EwJ7iU-qo)

------
hcarvalhoalves
Interesting, never heard of it before. How can they possibly support so many
targets? [1]

[1] [http://haxe.org/documentation/introduction/compiler-
targets....](http://haxe.org/documentation/introduction/compiler-targets.html)

~~~
sspiff
Haxe is really an under appreciated language, and I'm happy to see it gain
more widespread attention. Though it doesn't bring any fancy new paradigm or
language feature, it cherry picked a lot of useful and convenient parts of
other languages, and combined it into a familiar, C-syntax statically typed,
type-inferred language.

You can literally pick it up without reading any documentation if you're
familiar with C/C++, C# or Java, and the cross platform support is really
good. They mostly use source-to-source compilation, but their implementations
are really robust.

To top that off, they have an excellent cross platform library in OpenFL
(previously NME) that is equally easy to pick up.

------
zschuessler
Has anyone used Haxe in a production project? What were your experiences?

I like the end goal, but am confused why I haven't heard of it until today.

~~~
joneil
Plenty of game developers are using Haxe in production [1]. Tivo [2] and
Massive Interactive [3] are doing some large scale UI work for embedded
systems.

Personally I have built a student management system for 4 schools as a web app
in Haxe, using it both on the server and on the client (JS). I have loved the
language, but it has been a mixed affair. On the one hand some features
(macros, remoting, code sharing between client & server) have sped up
development hugely. On the other hand, sometimes libraries or tutorials just
don't exist and you end up reinventing tools that would exist in other
languages already.

The community is tiny, but really really helpful, friendly and intelligent. I
recommend having a look. There is some hype and ridicule over the "run
everywhere" claim but the underlying technology is a delight to work with. I
hope it gets more popular support and more tutorials / libraries.

1: [http://haxe.org/foundation/who-uses-
haxe.html](http://haxe.org/foundation/who-uses-haxe.html) 2:
[https://github.com/tivo](https://github.com/tivo) 3:
[http://massiveinteractive.com/](http://massiveinteractive.com/)

------
jimmcslim
I think I was under the impression that Haxe was just an alternative Flash/AS3
runtime, but it appears that it is actually far more than that? Either than,
or the association with Flash is obviously less important these days?

EDIT: I think that impression came from reading this [1] article, possibly
found here... or possibly some other article... anyway it talked extensively
about AS3 and made comparisons against Haxe.

1 - [http://www.grantmathews.com/43](http://www.grantmathews.com/43)

~~~
joneil
There is a history article [1], but essentially, the founding developer made
the MTASC AS2 compiler back in the day before making Haxe, and the SWF target
(AVM bytecode) was the first target Haxe supported. To this day it remains
popular with the 2D games market (ex-flash). The OpenFL [2] framework promises
(with mild success) to give you the Flash API with the Haxe language on native
targets. So flash still is part of the Haxe community, though less and less it
involves the actual Flash Player runtime.

Personally I do web development in Haxe, using Neko or NodeJS on the server,
and JS on the client. I've toyed with the Java and C++ targets, but so far
haven't had a single project which compiled to Flash. I find the language on
it's own has a lot of features that are appealing outside of the flash
environment.

1: [http://haxe.org/manual/introduction-haxe-
history.html](http://haxe.org/manual/introduction-haxe-history.html) 2:
[http://www.openfl.org/](http://www.openfl.org/)

~~~
treve
Is the original developer still involved? I remember him being very hard to
work with and I wonder if he's grown up a bit.

~~~
joneil
Yes, Nicolas Cannasse is still involved. He helped keep the server alive last
night ;)

These days he is no longer the #1 contributor [1], but he maintains the
"benevolent dictator for life" role and certainly still commits plenty of
great code.

1:
[https://github.com/HaxeFoundation/haxe/graphs/contributors?f...](https://github.com/HaxeFoundation/haxe/graphs/contributors?from=2012-05-27&to=2014-05-27&type=c)

------
jrpt
I hope Haxe succeeds even more than it already has. Congrats guys.

What's a good and up-to-date Haxe tutorial for making mobile apps, targeted at
Mac developers?

------
Fizzadar
Fantastic idea. Shame the language had to take so many cues from JavaScript!

~~~
joneil
If the curly brackets and semicolons (and lack of short lambdas, which I am
still grumpy about) are always going to turn you off, then Haxe might not be
promising for you.

But in particular macros [1], abstract types [2], algebraic data types [3] and
static extension [4] are enough to keep me happy exploring new programming
concepts etc...

1: [http://haxe.org/manual/macro.html](http://haxe.org/manual/macro.html) 2:
[http://haxe.org/manual/types-abstract.html](http://haxe.org/manual/types-
abstract.html) 3: [http://haxe.org/manual/types-enum-
instance.html](http://haxe.org/manual/types-enum-instance.html) 4:
[http://haxe.org/manual/lf-static-extension.html](http://haxe.org/manual/lf-
static-extension.html)

~~~
Fizzadar
Thanks for the links, really interesting reads and some great programming
concepts.

Although I'm not a fan of curly brackets and semicolons, it's the `var`
keyword which annoys me the most!

------
jdonaldson
The conference was great as well. It was amazing to hear how fast Tivo was
able to port their 1M+ loc library over to Haxe, and how they're able to
compile the client to new platforms now.

------
wiradikusuma
I'm confused, what's the purpose of targeting language
([http://haxe.org/documentation/introduction/compiler-
targets....](http://haxe.org/documentation/introduction/compiler-
targets.html))?

I can understand e.g. people use CoffeeScript because JavaScript is more
verbose. But why target Python from Haxe? Shouldn't it be the other way
around?

~~~
lignuist
The idea is to be able to write code in one language and use this code in many
different languages.

~~~
_random_
Does it mean that it supports only basic common denominator features of every
language? I am a fan of attributes in C# - are Haxe annotations as powerful?

~~~
joneil
Out of the box Haxe's metadata[1] to me doesn't appear as powerful as C#'s
attributes. The big difference is that they are not type safe and are not
type-checked by the compiler.

You can however use any expression you want in them, and have macros read them
and confirm they are correct, and do whatever you want with them. For example
I do some validation on my models:

    
    
        @:validate( _.length>0 && _.indexOf(' ')==-1 )
        public var username:String;
    

As for the bigger question - they are limited in what they can add, but they
have many features not in other languages, they just implement them in a
syntax-heavy way on the languages that lack such features. Pattern matching is
a good example [2].

See [http://haxe.org/documentation/introduction/language-
features...](http://haxe.org/documentation/introduction/language-
features.html)

[1]: [http://haxe.org/manual/lf-metadata.html](http://haxe.org/manual/lf-
metadata.html) [2]: [http://haxe.org/manual/lf-pattern-
matching.html](http://haxe.org/manual/lf-pattern-matching.html)

------
abus
Why does every website use broken unicode box character font import style now?

~~~
madeofpalk
Do you use Firefox?

~~~
madeofpalk
I ask this because Firefox can have problems loading custom fonts, especially
cross domain.

------
chrismorgan
Finding some 404s about the place.

~~~
mitchellh
It'd probably help the developers if you linked to them.

------
razaina
Good job gyz

~~~
Krunkzie
Atrocious spelling all around.

Please up your game a bit. I realize it's cool for the under-12 set.

~~~
phorese
Come on now, this is a thread about "Haxe"...

