Hacker News new | comments | show | ask | jobs | submit login
HaxeDevelop 5.3 – Application development on Windows (haxedevelop.org)
66 points by markknol 12 months ago | hide | past | web | favorite | 20 comments

I really like Haxe as a higher level typed language. My Nephew who is in his 20s has wanted to learn programming and he was able to go from "Hello World" to a decent 2D game he was thinking about for a few years in a few months working off and on.

Now my preferred method would have been him learning Racket with Realm of Racket and then Haxe but he was still able to get things done. He used HaxeDevelop and pretty much used Haxe like a flash replacement with OpenFL.

Here are the popular Indie Games made with Haxe:

Papers Please


Dead Cells

Defenders Quest

A ton of Kids games

EA's Madden Mobile


Why Racket?

Having worked in the games industry for years (and as a programmer in other industries & hobby game dev before that) I've longed realised tools matter much more (especially for beginners) than languages - something like unity, godot or GameMaker are so much easier to get started with and you see results much faster.

Racket makes you a better programmer. Especially if someone goes through "How to Design Programs."

John Carmack taught his 10 year old son Racket just for this same purpose. The whole system is great for teaching. You run DrRacket and you have an IDE that is geared towards beginner programmers and just have them code. https://www.itworld.com/article/2978142/development/why-john...

> "Racket makes you a better programmer."

Any practical language that is sufficiently different from the ones you already know will make you a better programmer.

Except Racket was from its foundation built to be a great teaching tool.

Scheme has it's roots in the classroom, that much is true, however that doesn't make what I stated previously any less true, nor does it automatically mean that Racket is a better vehicle for improving the code quality of its students over other languages outside a programmer's comfort zone.

In other words, learning Racket can make you a better programmer, but so can learning Smalltalk, Forth, Coq, an assembly language, etc... All languages outside your comfort zone that are designed for practical purposes (i.e. not languages like Brainfk, Malbolge, etc...) are potentially rich sources of information. Putting Racket at the top of the pile doesn't seem appropriate.

And of course, the question needs to be asked if becoming the best programmer you can be is the actual goal?

There are a lot of developers much more succesful than myself that have gotten their success using GameMaker and a good enough understanding of scripting it.

It's not all about programming!

If your goal was to make a working end product, then yes, it's not all about programming. But for somebody trying to learn programming, the other things like tools for building, packaging, and any other kind of polish is just a distraction.

If you are learning math, using very long and arbitrary floating point numbers instead of nice, simple integers, would just add an extra level of cognitive overhead. But if you're building a house or bridge, the measurements needed rarely is nice, and real world issues overwhelms the simple model in a math question. But those are unimportant to learn until the simple stuff is learnt.

I guess it really depends on the student's motivation (and age, most likely).

My experience was that the biggest danger is not them learning the 'wrong' things but giving up in frustration a few weeks/months in after not getting anywhere.

So it's paramount to get them on something that can achieve their goal (or something close to it) ASAP, so they get hooked on making cool stuff before getting frustrated and dropping off.

From the article linked upthread:

“[Ryan] reacted very positively to the initial ‘intro to racket with pictures’,” Carmack wrote, “which was a contributing factor to settling on Racket. Java / C# work seemed to feel more like homework, but changing numbers and colors in the REPL had him smiling and excited.“

So Racket does seem to offer that kind of quick feedback.

Yeah I can imagine it being better than straight-up java or c#, but I meant using a "batteries-included" kind of game engine.

Anyway, to each their own!

I've seen Haxe around for years now, even toyed with it for a bit eons ago. I see it's now branded as for cross-platform development. I'm reading use-cases on their site. So, I have a question. Is it possible to utilise it for writing an app that works both on mobile and desktop, not just cross-mobile or cross-desktop-os?

It is a toolkit to generate code not a framework, that means yes and no at the same time:

- no, it won't abstract the semantic differences across platforms differences for you.

- yes, since you can create complete libraries which can be trivially ported to each system (also the standard library is cross platform).

- yes, haxe language has some frameworks which aim to achieve that

- but no haxe framework is mature enough to just code and run everywhere cleanly abstracting all API's and UI's as most of developers would expect nowadays

So, you still will need to appropriately architecture your application and know how your target platforms works and abstracts everything.

The easiest way to explain Haxe, is it compiles C#/Java-like code into platform specific code, usually javascript nowadays.

The Haxe syntax itself, is quite peculiar. You can get proper classes, properties, constructors (which are always forced... sigh), and there is the possibility of macros, which lets you do C# style annotations on classes.

The problem is, most of the time, you have to do a bit of special work to get Haxe to play nice with your modern front-end frameworks.

Also, HaxeDevelop hasn't really picked up on the trend towards simpler, pleasant to use IDEs. There is a lot of good functionality in there, but you should be able to get Haxe code working with VS Code.

So what could HaxeDevelop do better? I think it looks too similar to VS2010, whilst everybody else is having a mad dance party over in Metro land. The distraction free IDEs nowadays, really make it easier to get in the zone, and you can configure snippets super easy nowadays.

Offer some really good themes out of the box. I shouldn't have to go into the settings to make my code look nice.

But an actually honest to god redesign I would love. As long as they don't do what is so common right now and use redesigns to cover up for technical debt. And make sure your users never have to worry about DPI.

Electron apps are like so hot right now...

Why not put all efforts on good integration into VS Code for example? I ask also because FlashDevelop was a poor IDE, seems like it's based off it.

As a Mac user, I have to agree whole-heartedly!

I was a pretty heavy OpenFL devotee for a couple of years. It's an amazing project, although PixiJS is a very competent competitor when it comes to building HTML5 games. Pixi has a much smaller baseline footprint (~300kb unminified compared to 1300kb unminified).

Lately we've been working with Pixi with a webpack / TypeScript workflow. It's starting to feel a lot like HaXe / OpenFL again. We are winning big in terms of flexibility and good support of workflow. We are using VS Code as the IDE and we have a very smooth integration smoothly with an Angular-based asset and config management tool. The big thing we lost however is HaXe's ability to compile directly to C++. Even when we compiled to Adobe AIR, we got much better performance than something like Cordova or Ionic.

HaxeDevelop is a rebranded version of FlashDevelop. While it's built in .NET, apparently enough of it was built with Windows-only code that porting wasn't in the cards.

HaxeDevelop's best (IMHO) feature was that it could switch targets easily and integrated seamlessly with the Flash runtime's debugger. So you could build and debug quickly using the Flash runtime and then compile your project to native code for production.

But yeah, in a perfect world VSCode integration would be the way to go forward.

The Haxe community is made up of a lot of folks interested in general cross-platform dev, but there's also a ton of folks from the Flash diaspora. Accordingly, many tools and frameworks are evolutions of the "Flash way" (HaxeDevelop, OpenFL), while other tools and frameworks are starting from scratch, or adapting to other ecosystems (vscode-haxe, Kha).

There's always been calls to "unify" the frameworks, tooling, etc., but I don't think that's a healthy environment for Haxe. Haxe exists as a way to avoid ecosystem lock-in. It's a bit antithetical if the community imposed restrictions on how to develop with Haxe.

HaxeDevelop isn't going to run on Linux or Mac, that's the point. Programming communities should focus on writing language servers and let developers use their favorite IDE instead of forcing people to use a specific IDE.

There is a language server build by the Haxe team. https://github.com/vshaxe/haxe-languageserver HaxeDevelop consumes that.

If you want a cross-OS IDE, or something that works on mac/linux, then use vscode + vshaxe.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact