Bmax vs other languages
BlitzMax Forums/BlitzMax Programming/Bmax vs other languages
| ||
Ok, so I learned OOP through blitzmax: I learned to use types, methods, lists and pointers to objects (very powerful, very cool) Now I wonder how I can use this knowledge in other languages: say java, C++ : are there "lists"? when you pass an object into a function, do you always pass it's pointer? or must you use "*" as in C? What are the main differences? |
| ||
*deleting C++, replacing with C#* In C# you pass everything by reference, there are no pointers at all (if you don't switch to unmanaged) |
| ||
being a professional java programmer for many years : I like BlitzMax for what it is, don't get me wrong, or I wouldn't have bought it. having said that ... i don't think the current OO features of Blitz are very good or very complete. i think what is there is better than _not_ having the features ... but the marginal control you currently have for providing member visibility (private, public protected) is hoky. no interfaces. no "run time type inspection". i could forgive the last two (though interfaces can be really awesome to have as an option for things sometimes) ... but not having really robust member visibilty support is a bummer. better namespace support would be kind of cool too. as far as lists and pointers and such ... i like Blitz's reference counting memory management. i kind of wish Java had that sometimes. pointers really are evil. if you've ever really tried to build serious apps in an environment where you had to use pointers and manage your own memory, and then in an environment with no pointers and garbage collection memory management, you'll never want to go back to the old way. for lists, i can't speak for C# ... but one think i miss in EVERY other programming language i've played with, and i've messed with a few ... 'C', 'C++', Pascal, BlitzMax, Java ... Java has the most AWESOME "collections" framework i've ever had the privelege of using. the power of the OO approach to their frameworks, along with all of the routines and classes that you have at your disposal for managing collections iof things ... is just awesome. lists ordered lists hashmaps arrays queues iterators for all of these things typed and untyped versions of these things "weak reference" versions of these things (so that objects stored can be dereferenced by the garbage collector automatically if you are getting short on memory) and of course, they all rely on the use of OO to offer the best in flexibility or type safety and effeciency, depending on what you need. i always forget how awesome Java is when it comes to datastructures and utilities for common stuff ... until i have to work in some other environment. my $0.02 ... Tony |
| ||
I'd like to second pretty much everything RktMan said, although I realize it was never BlitzMAXes goal to become a fully fledged OO language. |
| ||
Coming from Python, the one thing I really miss is Duck Typing. --- Rod |
| ||
Also don't forget BMax is built to program games while most other languages are all purpose. Which makes BMax easier to use in many aspects of game programming. |
| ||
If you think this then you got its purpose totally wrong as the GUI module that has higher priority than 3D shows ... |
| ||
Yeah Dreamora is right. BlitzMax is a language that is expandable to all purposes you may aim just through it's upcoming modules. |
| ||
With GUI you can make editors of all sorts =) I wound take that before 3D myself. |
| ||
@dreamora: also in C++ you can pass variables by reference (nothing impossible as even Pascal does it). So, there is no need to use pointers like in C, that is what C++ and C# (or Pascal and BMAX) do for you behind the scenes. |
| ||
If you think this then you got its purpose totally wrong as the GUI module that has higher priority than 3D shows ... I don't think it's a matter of having higher priority, as much as it's a matter of which is nearest completion.Besides which a GUI module does not make BlitzMAX a General Purpose language. |
| ||
The GUI module itself not but the possibility to import C, C++, ASM, ObjectiveC and extend it with whole modules as well as writing own modules etc. This is all stuff that is not really needed for a game programming only language. Its just a mather of what will pop up, but I think its only a question of time until we have third party DB modules and other non gaming modules. Atm BM is quite new especially to the "most users plattform" PC so professionall 3rd party modules will take their time. *I'm only thinking of how long it took for ODE wrapper for B3D or Blue GUI for DBP and other stuff thats 2-4+ after language release* |