07-09-2015, 09:24 AM
I don't want to sound nagging but I'd like to add Haxe to Bombshell's list of languages. Despite the link I'm gonna go on a little medium kinda big rant about it, if you wish to skip that I completely understand
tl;dr I like it and I think it's worth checking out if you ever think of getting into coding
It's a high-level language which means that a lot of the dirty low-level stuff is taken care of. The OpenFl framework gives you the actual visual stuff, and allows you to do it in the way that Flash does - personally I find this a really nice way, although I started out with Flash so I suppose that's natural. Game engines like HaxePunk and HaxeFlixel are also good and do a lot of game-related things for you (like handling states, simplifying animation, etc). Despite all of this help it's still pretty flexible.
One big thing is also that it can compile to a range of platforms, natively. For desktop platforms you can only compile for the OS you're running (Windows to Windows, Linux to Linux, etc), but you can also compile to Android and iOS, as well as HTML5 and Flash. There's also Neko, which is kind of weird and it's not really obvious what it is, it's basically a target that runs in a virtual machine but compiles quickly and is similar to native desktop applications (usually you can also compile it to an .exe that runs without the virtual machine, although it does need some DLLs). Technically what Haxe it does is convert the code to whatever language (Objective C for iOS, Java for Android, etc) and then compile that, so you do need to download the SDKs or compilers for whatever you compile to (although it also helps you set this up).
There are a number of downsides. It is open-source and completely community-based, which means that things aren't really as stable and funded as, say, .NET languages. This also damages documentation; it can often be a bit hard to find any concrete answers to something that might not be clear, refined Googling skills are sometimes required. It's also relatively new, compared to stuff like C++ or Java, so again this affects stability and reliability. It's also not completely user-friendly to set up. I mean, the base language does have an installer, but the library handler, haxelib, is fully command-line, and any setup of libraries (like OpenFl and Flixel) are also done through the command-line. The actual compilation and stuff is also technically done through a console, but luckily FlashDevelop is an (unfortunately Windows-only) IDE that's pretty great and does help automate compilation. It's also just great for editing.
So yeah. If you wanna do some uncommon projects or whatnot things can get kinda messy (like trying to import external SWFs or make a 100% standalone Neko .exe) but if you just set everything up and start making games with something like HaxePunk or HaxeFlixel, you can usually ignore any nitty-gritty stuff. The language itself is, in my opinion, very nice to work with, it was developed by programmers for programmers and I can see that it was designed in that way. Plus, games seem to be the most supported type of project, so the road to making them is relatively smooth.
One big thing is also that it can compile to a range of platforms, natively. For desktop platforms you can only compile for the OS you're running (Windows to Windows, Linux to Linux, etc), but you can also compile to Android and iOS, as well as HTML5 and Flash. There's also Neko, which is kind of weird and it's not really obvious what it is, it's basically a target that runs in a virtual machine but compiles quickly and is similar to native desktop applications (usually you can also compile it to an .exe that runs without the virtual machine, although it does need some DLLs). Technically what Haxe it does is convert the code to whatever language (Objective C for iOS, Java for Android, etc) and then compile that, so you do need to download the SDKs or compilers for whatever you compile to (although it also helps you set this up).
There are a number of downsides. It is open-source and completely community-based, which means that things aren't really as stable and funded as, say, .NET languages. This also damages documentation; it can often be a bit hard to find any concrete answers to something that might not be clear, refined Googling skills are sometimes required. It's also relatively new, compared to stuff like C++ or Java, so again this affects stability and reliability. It's also not completely user-friendly to set up. I mean, the base language does have an installer, but the library handler, haxelib, is fully command-line, and any setup of libraries (like OpenFl and Flixel) are also done through the command-line. The actual compilation and stuff is also technically done through a console, but luckily FlashDevelop is an (unfortunately Windows-only) IDE that's pretty great and does help automate compilation. It's also just great for editing.
So yeah. If you wanna do some uncommon projects or whatnot things can get kinda messy (like trying to import external SWFs or make a 100% standalone Neko .exe) but if you just set everything up and start making games with something like HaxePunk or HaxeFlixel, you can usually ignore any nitty-gritty stuff. The language itself is, in my opinion, very nice to work with, it was developed by programmers for programmers and I can see that it was designed in that way. Plus, games seem to be the most supported type of project, so the road to making them is relatively smooth.
tl;dr I like it and I think it's worth checking out if you ever think of getting into coding
You may have a fresh start any moment you choose, for this thing that we call "failure" is not the falling down, but the staying down. -Mary Pickford