Hi,
There are no plans for 'C' like structs or arrays, as they would add a level of complexity that I don't feel comfortable with.
You'd end up with 2 kinds of types/arrays, and the rules for converting stuff, indexing stuff, finding the address of stuff (which suddenly becomes a lot more important) etc would get a lot more complex.
If it makes you feel any better, I've been faced with similar issues myself lately. My solution has been to go the 'mess with pointers' route - but to do it in a nice, encapsulated way.
Yes, C like structs/arrays would have made this easier, but this low level stuff represents such a small fragment of the overall code that I don't feel it justifies major language modifications.
If you are working on a project that does require a large amount of low level code, then BlitzMax is probably not the right language to do it in.
As for interfacing with 3rd party libs etc, this is never going to be 'perfect' - in fact, only C/C++ will ever really be perfect for this, due to them being so low level you can pretty much emulate any kind of 'type'.
This wasn't an easy decision to make - ie: how much 'language simplicity' to sacrifice in the name of 'language interoperability'? - and the answer is incredibly subjective as it really revolves around what you want to do with the language. So I don't think there are really any easy answers here!
There are no plans for 'C' like structs or arrays, as they would add a level of complexity that I don't feel comfortable with.
You'd end up with 2 kinds of types/arrays, and the rules for converting stuff, indexing stuff, finding the address of stuff (which suddenly becomes a lot more important) etc would get a lot more complex.
If it makes you feel any better, I've been faced with similar issues myself lately. My solution has been to go the 'mess with pointers' route - but to do it in a nice, encapsulated way.
Yes, C like structs/arrays would have made this easier, but this low level stuff represents such a small fragment of the overall code that I don't feel it justifies major language modifications.
If you are working on a project that does require a large amount of low level code, then BlitzMax is probably not the right language to do it in.
As for interfacing with 3rd party libs etc, this is never going to be 'perfect' - in fact, only C/C++ will ever really be perfect for this, due to them being so low level you can pretty much emulate any kind of 'type'.
This wasn't an easy decision to make - ie: how much 'language simplicity' to sacrifice in the name of 'language interoperability'? - and the answer is incredibly subjective as it really revolves around what you want to do with the language. So I don't think there are really any easy answers here!