^^ Damn it, Cygnus!
Here's a couple issues I've neglected to point out:
Firstly, one that I feel is necessary for proper OO programming, but probably only because I learned to do it in C++ first:
1] Lack of private, protected, and public members. Everything is private or public on the file's level, you cannot set what degree of access is given to global/static members/methods of types when inheriting or when used. May also need to be able to specify friend classes/functions. About the only thing we can do to get around this is hope nobody ever touches members that are for the class's internal use only.
Secondly, one that is not so much an issue but something that is nice to have at times:
2] Generics/templates. The problem with having this is some people get way too happy using it and end up causing a lot of problems in code. However, this is more an issue with the programmer not showing restraint.
Since some think BlitzMax must be as beginner-friendly as possible (which at times leads to wanting a dumbed-down language without OO features, modules, and such because those are confusing), this may be one of those features that group would boo. I say too bad to that, you should get used to learning how to use new features or just not use them. Stop being a bunch of pansies. ;)
We can currently work around this, in a way, since all types inherit from the base object class and can be up- and down-casted when necessary without any seemingly great impact on speed (I think it depends on whether or not BMax performs runtime checks when casting to make sure you're casting to the correct type; I think it may since you won't get a useful pointer by casting to different, unrelated types, but I'm not sure), but it's not perfect.
Good luck making sense of that wall of text.
Here's a couple issues I've neglected to point out:
Firstly, one that I feel is necessary for proper OO programming, but probably only because I learned to do it in C++ first:
1] Lack of private, protected, and public members. Everything is private or public on the file's level, you cannot set what degree of access is given to global/static members/methods of types when inheriting or when used. May also need to be able to specify friend classes/functions. About the only thing we can do to get around this is hope nobody ever touches members that are for the class's internal use only.
Secondly, one that is not so much an issue but something that is nice to have at times:
2] Generics/templates. The problem with having this is some people get way too happy using it and end up causing a lot of problems in code. However, this is more an issue with the programmer not showing restraint.
Since some think BlitzMax must be as beginner-friendly as possible (which at times leads to wanting a dumbed-down language without OO features, modules, and such because those are confusing), this may be one of those features that group would boo. I say too bad to that, you should get used to learning how to use new features or just not use them. Stop being a bunch of pansies. ;)
We can currently work around this, in a way, since all types inherit from the base object class and can be up- and down-casted when necessary without any seemingly great impact on speed (I think it depends on whether or not BMax performs runtime checks when casting to make sure you're casting to the correct type; I think it may since you won't get a useful pointer by casting to different, unrelated types, but I'm not sure), but it's not perfect.
Good luck making sense of that wall of text.