Bmax vs other languages

BlitzMax Forums/BlitzMax Programming/Bmax vs other languages

Najdorf(Posted 2005) [#1]
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?


Dreamora(Posted 2005) [#2]
*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)


RktMan(Posted 2005) [#3]
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


FlameDuck(Posted 2005) [#4]
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.


Rod Hyde(Posted 2005) [#5]
Coming from Python, the one thing I really miss is Duck Typing.

--- Rod


Tibit(Posted 2005) [#6]
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.


Dreamora(Posted 2005) [#7]
If you think this then you got its purpose totally wrong as the GUI module that has higher priority than 3D shows ...


Hummelpups(Posted 2005) [#8]
Yeah Dreamora is right. BlitzMax is a language that is expandable to all purposes you may aim just through it's upcoming modules.


Tibit(Posted 2005) [#9]
With GUI you can make editors of all sorts =)

I wound take that before 3D myself.


Seldon(Posted 2005) [#10]
@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.


FlameDuck(Posted 2005) [#11]
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.


Dreamora(Posted 2005) [#12]
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*