What have you got against BlitzMax?

Miscellaneous Forums/General Discussion/What have you got against BlitzMax?

I agree with your post except for one point
You should compare Bmax with C# rather than Blitz3d

Well considering the thread subject and what forum this is, I'd wager a comparison between BlitzMax and Blitz3D is more useful and more appropriate for most people. Also, I've completed a few games in Blitz3D, so I know I'm at least somewhat qualified to make this comparison. Any comparison I made with C# would be as a programmer who has never finished a game in C#. Also, while I acknowledge that Blitz3D is not the most suitable tool for large projects, I'd wager that a number of people here believe it is.

As for where BlitzMax beats C# for me, it's mainly small, irritating issues.

The C# Maths class uses radians instead of degrees, and while conversion and/or writing your own isn't difficult, it's an irritation, and easy to forget when you're coding large chunks of code fast as I am prone to do.

When writing chunks of reuable code, BlitzMax lets you use modules which are elegant and as easy to use as could be. With C# you really have to be using class libraries, as far as I can see, and they're just not as elegant as modules. Again, it's a trivial point, but one which irritates me.

With C#, you're forced to ask end users to install the .Net framework and many don't want to. Now while I don't see any logic in this decision, nor do I believe that the commonly expressed reasons for not doing so are even accurate, I acknowledge that those people are not going to change their minds until they are forced to upgrade to a version of Windows which already has it installed. When that happens, I'll have one less reason to use BlitzMax over C#.

For many people, I would imagine the fact that the best Mac and Linux implementations of the CLI are nowhere near complete would be by far the biggest problem. It isn't an issue for me, however, as I'm not developing for those platforms.

Neither BlitzMax nor C# let me directly interface with external C++ classes, but because BlitzMax has GCC tucked discretely into the build process, wrapping them for use with BlitzMax is pretty easy, and because it uses the module system again, very elegant. I can't say the same about writing a managed wrapper for C#.

I have expressed and acknowledged in the past that - unless BlitzMax gets major further development - I will likely have to move to C# at some point in the future. At the moment, both languages are relatively new, and so they share common weakpoints, but C# is being developed heavily ( too heavily in some areas, it's starting to pick up a few of C++'s weaknesses along the way ) while BlitzMax looks more and more like Mark considers it a finished product.

I don't believe there is a huge gulf between them though, as BlitzMax is clearly inspired in part by such modern languages. However, at the moment, I feel BlitzMax has far fewer little niggles, particularly the everyday niggles, and for that reason, it beats C# for me. It has what Blitz3D used to have before I outgrew it. Simplicity and elegance for a relatively high level of power and control.