BlitzMax is great because...

BlitzMax Forums/BlitzMax Programming/BlitzMax is great because...

Brucey(Posted 2009) [#1]
Today I used it to create a simulation of a multi-process problem I've been fighting with at work.
It took about half and hour to knock together, running in Graphics mode, and visualised perfectly the issues with the code.
Another 10 mins, and I had a modified-version of the simulation up and running with the changes I'd been mulling over for the last couple of days.
With these improvements shown to work - in the BlitzMax simulation - I can now be certain that when I apply these changes to the server code, the problem will be fixed.

Because of its BASIC-ness, BlitzMax is much like pseudo-code. Easy to read. Quick to code.
Most useful hour I've had this week :-)


So, why is BlitzMax great for you ?


*(Posted 2009) [#2]
With BlitzMax+MaxGUI+Minib3d its unbeatable everything is opensource so if theres a problem its easier to locate and fix. Its the easiest language I have used so far and it doesnt require any ludicrously sized external dll's or .so files (as with Purebasic's 10Mb Engine3d.so and Engine3d.dll).

Also its 100% cross platform between Win32, Linux and Mac OSX, the code I have for Elite Multiplayer compiles perfectly on Win32 and Linux (I dont have a Mac).

Who can ask for more?


GaryV(Posted 2009) [#3]
compiles perfectly on Win32 and Linux
One day, I will figure out how to actually get BM running on Linux :/


*(Posted 2009) [#4]
GaryV: look over at http://www.blitzbasic.com/Community/posts.php?topic=82292
thats how I got it working on an Asus EeePC :)


jkrankie(Posted 2009) [#5]
I like to write shooty games, and BlitzMax is fast enough for me to throw lots of particles around. It's also object orientated, which i like, easy to code in and i can compile my games for 3 different hardware platforms (well, via kindly people for two of them) with the minimum of fuss.

Cheers
Charlie


GW(Posted 2009) [#6]
I too use Bmax for my work, I do advanced AI for the capital markets.
I like Bmax because its wordy, but not too wordy. (more than c, less than object pascal)

It's as fast as c++ and I can create and destroy objects all day long and never worry about leaks and faults.
There is a huge library of community code to draw from and I can use C libraries when i need to.
Having the option of DX7,Dx9 and OGL for game programming is a huge plus as well, although sadly there is currently no good 3D option.

For the most part, it all boils down to how fast can I throw something together and how fast does it run. Bmax is my first choice of languages when meeting those 2 goals.


wmaass(Posted 2009) [#7]
I use it for work at play. At work I use to rapidly develop apps to support our indoor golf technology. Being a guy who wears a lot of hats, I get special projects now and then - BlitzMax is a dream tool to fulfill these projects. But the real fun is at home, slowly chipping away games and ideas.


Naughty Alien(Posted 2009) [#8]
..recently I have finished very nice AI behaviour system, very easy to set up and all things moving on its own, including animation control, cut scene management, and so on..it does require some tuning since its not cleanest possible code, but point is, its done within few days of work, and considering myself beginner with language, I would say it is very very nice thingy..and everything implemented within LE environment looks so charming :) I luv it..Bmax my new luv..sorry B3D :)


Gabriel(Posted 2009) [#9]
XML, Lua, TrueVision3D, Ogre, raw DX9, Blide, Object Orientation. What more could anyone want?

Oh yeah, function overloading, properties, proper access modifiers and operator overloading. But, hey, I'm needy. :)


N(Posted 2009) [#10]
.


Tommo(Posted 2009) [#11]
I want MACRO support .....


plash(Posted 2009) [#12]
I want MACRO support .....
Where did that come from?
...

I love BlitzMax because of its simplicity, speed of coding, and the large amount of features packed into the BASIC language (OOP, mainly).


Jesse(Posted 2009) [#13]
I love BlitzMax, I couldn't get OO until I got into it. Bmax made it so much easier to get the concept and now I wouldn't program any other way.

I want MACRO support
I like macros also. I love the idea of writing 30 lines of code and the result of 300.

hey, this is turning into a want thread.:)


Tommo(Posted 2009) [#14]
Where did that come from?
...


From my laziness :)

BMX is great, it's OO but straightforward enough.

The most important thing is that it comes with so many modules, and even the official ones are open sourced. You can use it, can learn it, can even hack it. I think that's why the community keeps active all the time.


N(Posted 2009) [#15]
I mostly just use BMax for random experiments now. Not even very interesting experiments- e.g., last night got method invocation working using FFI (I didn't like the way the reflection module worked - you have a limited number of arguments and it's pretty basic), and that's stupidly simple. It had some purpose or other, but I can't remember what it was.

At the least, it's good for testing various ideas I have. No need to fiddle with makefiles (usually) or picking how I want to use strings or writing a ton of utility functions ahead of time (I've had a ton of different 'common.c' files, somehow I always end up rewriting them). It just has a lot of stuff right there to use, thankfully, so I don't have to worry about details like that. Ruby has supplanted BMax for anything dealing with string manipulation though - that's the only area where I just don't like working in BMax lately.

I really like working with Objective-C and Ruby for the most part these days. Ruby's just fantastic for getting something working quickly, and with its flexibility there's no end to the neat things you can do with it. Objective-C is pretty similar to Ruby in a lot of respects, and working with Cocoa under Mac OS is really pleasant so far. Downside to both is that I don't think they're really suitable for realtime work, but I don't do much of that anymore - it's fun to mess with, but writing applications is pretty interesting.

I'd use BlitzMax for something more advanced again, but I can't seem to find any motivation to work on any projects anymore. Spent so much time studying other things at school and not working on code that I lost most of what I'd learned on my own, so I mostly just tinker around and look useless while making art for other projects.

There are obviously things BMax could use (ternary operator being the tiniest, most useless request I'll mention anymore), but that's neither here nor there.


GfK(Posted 2009) [#16]
I like Blitzmax because I wrote an app that makes cheese toasties come out of the CD drive.

Or I might have dreamed that.


*(Posted 2009) [#17]
gfk I would lay off the cheese before bedtime ;)


JaviCervera(Posted 2009) [#18]
XML, Lua, TrueVision3D, Ogre, raw DX9, Blide, Object Orientation. What more could anyone want?


Without real incapsulation, BlitzMax is NOT object-oriented.


Gabriel(Posted 2009) [#19]
Without real incapsulation, BlitzMax is NOT object-oriented.

What nonsense. If Encapsulation were the sole arbitor of what is and isn't object-oriented then Modula 2 would be object oriented, despite actually being a procedural language in almost every other way. If you wanted to get all pedantic and dismiss anything which doesn't have every OO feature then you'd have to say that C++, Java and C# aren't object oriented either, and that Smalltalk and Eiffel (and possibly Ruby) are the only object oriented languages. For this type of language snobbery, you should try GameDev. They love a bit of it.


ziggy(Posted 2009) [#20]
Without real incapsulation, BlitzMax is NOT object-oriented.
I supose the encapsulation it has is unreal, or false? You have a wonderfull Private and Public keywords. I supose you mean that the encapsulation does not work at atribute / procedure or proerty level. In that case it is true, but there are lots of ways to solve this wich, from my opinion, is not a real problem given the BlitzMax modules structure. So I wouldn't get this 'not real encapsulation' as an argument to seriously say it is not OO. I agree completelly with Gabriel consideration about C++, Java, C# and, obviously, Smalltalk.

I remember people saying that visual basic 6 was OO... I supose they were ignoring the lack of inheritance, the whole iDispath drama etc... but it did have objects you could instantiate, with their atributes and methods so... why not? Who draws the line to diferentiate real OO to anything else?


Otus(Posted 2009) [#21]
I supose the encapsulation it has is unreal, or false? You have a wonderfull Private and Public keywords.


Those don't actually work the way you might expect.

However, that's still not a very good argument against BlitzMax.


JaviCervera(Posted 2009) [#22]
What nonsense. If Encapsulation were the sole arbitor of what is and isn't object-oriented then Modula 2 would be object oriented
Nonsense is what you understood, not what I said. I don't get where in my statement I said it's the sole arbitor of what is object oriented.

For a language to be object-oriented, it needs to have encapsulation, polymorphysm, and inheritance. BMax has the latter two, but it is still not object oriented without the first.

Java and C++ are object-oriented since they support the three things, but are hybrid, since they have primitive data types. Don't know about C# since I haven't worked with it. Smalltalk is a pure object-oriented language.

What I don't get is why you have to personally insult me and call me pedantic for making that point. I just don't know when this became a religion and why you have to get so defensive for comments like that.

@ziggy: AFAIK, Private works for global vars, but not for type fields, but I may be wrong.

@Otus: I can't see why saying that BMax is not object-oriented is an argument against it.


Arowx(Posted 2009) [#23]
@Jedive yep assembly language and kernel based op codes are not OO but it's amazing how many great applications use them!

I like using BlitzMax because it is simpler and easier to use than other more complex languages as well as it being good for game development as well!

For instance I managed to get a game together in 48hrs without any third party libraries or code from scratch using BlitzMax, for the last Ludum Dare competition!


N(Posted 2009) [#24]
You have a wonderfull Private and Public keywords.
They are not wonderful. They're sufficient for very, very basic situations, and beyond this they are completely and utterly useless.


Gabriel(Posted 2009) [#25]
What I don't get is why you have to personally insult me and call me pedantic for making that point.

I didn't insult you or call you pedantic. I said "if you wanted to get pedantic.." which clearly implies that you had not previously done so.

I don't get where in my statement I said it's the sole arbitor of what is object oriented.

Nice use of the half-quote. I said is AND ISN'T. You've subsequently confirmed this by saying it twice more in your reply.

I just don't know when this became a religion and why you have to get so defensive for comments like that.

Nice try, but you came into a thread about BlitzMax to find fault and spread nonsense, so don't try to paint me as the one getting religious about this. I just stand up for myself when someone jumps in out of nowhere criticising. As I said before, you can go to GameDev and have your language holy wars any day of the week.


JaviCervera(Posted 2009) [#26]
Nice use of the half-quote. I said is AND ISN'T. You've subsequently confirmed this by saying it twice more in your reply.
What I don't understand is why that proves my point wrong. You said that if polymorphysm is the sole arbitor of what is and isn't object oriented then Modula 2 is object oriented. You reached this conclusion by misinterpreting my words, and that's why in my reply, I explained it further. It needs encapsulation to be object-oriented, but I didn't say that it's the only requirement. You also need the nheritance and polymorphysm.

Nice try, but you came into a thread about BlitzMax to find fault and spread nonsense
As I said on a previous post, I don't see why not being object-oriented is a fault. And I think I am explaining my arguments enough to not be called "nonsense", but thank you :P


Nate the Great(Posted 2009) [#27]
I'm not sure why we are arguing over if BMax is OO or not. There is no official line drawn to say what is procedural and what is OO. Blitz Max obviously isnt procedural but it is not completely OO so it is somewhere in the middle, a perfect balance of speed, simplicity, and advanced features. Everyone happy now?


Grey Alien(Posted 2009) [#28]
Tons of reason. Main ones for me:

- Easy to use
- Quick to make things work
- OOP
- Cross-platform.
- Great Community


Dabhand(Posted 2009) [#29]
Its makes me feel all fuzzy inside! :P

Seriously though, if I had to pick the reasons

- Easy to use, and I enjoy the syntax
- Quick
- Cross-platform, dont need that though, but it is handy to know its there
- Odd offical rabble, erm, community ;)

BlitzMax, the BASIC nut-jobs use! :P

Dabz


xlsior(Posted 2009) [#30]
- Ease of use
- Fairly intuitive / easy to remember most of the commands
- Lots of features, especially in combination with 3rd party modules
- 2D-in-3D


lukehedman(Posted 2009) [#31]
1. It runs "out of the box". My first experience was great. I whipped out some code and hit compile. Everything worked. If I wasn't using BlitzMax I'd use Python. In my experience though Python doesn't work right away. Some importing and tweaking is needed for drawing images and such. I don't want to download PyGame.

2. It compiles, and quickly too. To me jokes about programmers using "My code is compiling" as an excuse aren't funny because I don't wait. Only modified code is compiled.

3. It can be as simple or complex as I want it to be. I love all the built in features. I don't want to blit graphics! Just let me say where to draw the image! The functions are open source too. If I wanted I could remove all the extras and just use the basics to build a program from the ground up. It's nice to have options.

4. I just write the code. There isn't a level editor. I don't worry about going through menus to create objects. I don't worry about frames, movies, or other little GUI editor chores. *cough* Flash *cough cough*. With BlitzMax I just open the code page and start typing.

5. This is the most important one. I trust Blitz Research. I was able to demo the language for a month before buying it. That really says something. If I wanted to I bet I could have found a crack somewhere to unlock the compiler for free. BR is willing to risk that just so I'd be sure of what I was buying. I respect that.

6. Garbage collection!

I hope Mark reads this thread. Knowing that there are people who aren't just customers, but actually have affection and loyalty for the product is probably comforting during those long, lonely, late nights of work.


AdamRedwoods(Posted 2009) [#32]
Runs out of the box, that's a big one for me too.

I come from actionscript background, so C++ fails me when I can't even get my code to link properly, let alone trying to find where the bugs are in the code itself.

I am new to blitz, I've only just used blitzmax and the gui.


nawi(Posted 2009) [#33]
It's my favorite language, but still, my next project probably won't use Bmax. Employers have no idea about it and probably think of it as a basic/toy language. I'm forced to program in C++ or something..


SLotman(Posted 2009) [#34]
I think the strongest point of BMax is it's portability. I'm still amazed my code ran from Windows to Linux with little to no tweaks.

Now try doing something both for Win and Linux in C or C++ (specially games) and see what a headache that is!

It would be even better if we could cross-compile, but still, BMax is great to write multi-plataform code. Let the Linux people learn about it, and BMax will gain popularity pretty fast :)


ImaginaryHuman(Posted 2009) [#35]
I like that the language is simple and english-like/basic-like enough that I don't have to mess around with *horrible* complicated looking cryptic syntax like some languages. I can just type fairly straightforward terms and make things happen. It might not be what some people would think of as `professional`, ie advanced, but it's plenty good enough.

The other day I was looking at some of the modules and it struck me just how much work has gone into creating BlitzMax as a kind of `game framework` - I mean, it's not just language, it's also a large library of helpful functionality that makes things so much easier, and without which we'd all have a tonne more programming to do.

And the community rocks.


N(Posted 2009) [#36]
I like that I managed to get this working:

Only downside is I cannot figure out what's going wrong between foo.Name() and foo.SetName("New Value") when using the old/unthreaded garbage collector. Works just fine if I don't call foo.Name() between the setters, so it's got me stumped as all hell. Back to the debugger (one of the things BMax is not 'great' for).


Panno(Posted 2009) [#37]
1 easy to install
2.easy to use (most times)
3. a great community


for a while i installed c++ .
none example from the cd wars working

i kill it ...


taumel(Posted 2009) [#38]
I finished some 2D work with Director, due to performance reasons i had to ignore the built in 2D engine and use Directors 3D engine instead and built my own 2D solution. The way Director works, interpreted code, it was okay but also not a screamer as well. I then searched for other options and then found out about Blitz. BlitzMax wasn't released those days. I bought a Mac for Unity and when BlitzMax was ready i instantly bought it and it felt like a dream. Due to the hw acceleration things were running a lot faster on the old PPC Mac than on the way faster PC and the basic felt simple but effective and overall round to me.

What i really love about BlitzMax is that for me it kind of draws a connection between my past, mostly my youth in the Amiga days and the present were quite a lot of stuff is going more and more loco. It's a silent product (not yelling at me in terms of advertisements and superlatives, like Unity does, although sometimes i wish there would be just a liitle bit more attention to this), it's small, useable, easy to code in, sexy language, crossplatform, hardware accelerated, extremely affordable, comes with a generous licence, has a weird community which is different to other forums, sources can be exchanged very easily via the forum, stuff like that.

I would love it even more if there would be more force behind the product, a roadmap, quite some things would be nice to have on the 2d rader, a proper brl 3d engine, support for the iPhone and a Debugger which is worth it's name, less paternalism on the forum.

Great product, i recommend it everytime it makes sense.


Grisu(Posted 2009) [#39]
-> A great Dev team (including some super heroes) and a great community (including some non-friendly people).


matibee(Posted 2009) [#40]
I don't know yet just how good it is, but I'm constantly surprised at it's lack of boundaries. I just wish I'd made the leap 5 years ago :/

The demo's that come with the trial download, while concise and easy to follow, really don't do this development platform justice -- they make it look like a newbies platform for non-programmers, which is just miles off the mark!


beanage(Posted 2009) [#41]
Mmmh.. i started off with bplus, and naively thought i had OO using bplus <type>.. then i came to max, and everything changed, including my horizont on programming at all.. its a great language for programming great things in a _very_ relatively short time. it has a way great learning curve. It is _awesome_. Each time i watch c++ or java code, i think, "oh my god thank you for bmax".. It is easy, and does a great job..

Oh, i repeat myself. well..


Mauft(Posted 2009) [#42]
I wanted to tweak the infamous Grid Wars code a bit so I downloaded BlitzMax, but since it didn't want to compile I thought "meh" at first. But in the end I decided to see at least how fast it is, and when I saw that it was approximately 10 times faster than Game Maker (maybe I did some calculation mistake back then, but that is the result I got) I decided it's time to change, and I never regretted this.
So it's basically speed for me, but also easiness of coding, easily rememberable and/or short function names (not some addEventListener, navigateToURL, createGradientBox, DropShadowFilter etc.) and, what I learned to love lately, case insensitive code.


Armitage 1982(Posted 2009) [#43]
So, why is BlitzMax great for you ?

To stay on topic I would personally say that Blitzmax is probably the first real programming language that deserve the right to use this sentence :

- "It's easy to write application with BlitzMax and focus on the idea rather than fight with programming complication".

Also BlitzMax is great because relatively easier to extend, come with various tools making it perfect for application and gaming development.

And since it's a pretty fast cross platform language I see no reason to learn another one except maybe for 'web things'.

It also comes with a great community like Grisu said before ;)


Digital Anime(Posted 2009) [#44]
BlitzMax is great because...

- It's easy to learn, especcially for people who programmed in other Basic languages in the past so I don't need to learn another language again. And it's probably the easiest language to start with anyway if you never did any programming at all.
- OOP for creating tons of objects using only a few lines of code.
- Not much code needed to get something apear on your screen.
- Ton's of Modules and Libraries with examples to use to upgrade the possibilities even more.
- Create fast scrolling 2D games because it uses your 3D hardware for it.
- Compile to Windows, Linux, MacOS X PPC and Intel
- Able to load stuff directly from a website.
- Having the best helpfull forum with great people when asking questions.

The only small thing I missed was a book like I had with BlitzBasic II on the Amiga. But for the rest two thumbs up :-)


Pete Carter(Posted 2009) [#45]
Every you need in one place, it has a great community and people like brucey making lots of great modules. It has the only book Ive bought that managed to get me to understand OOP.
http://www.amazon.co.uk/Games-Programming-Absolute-Beginner-Blitzmax/dp/0955377102

I keep finding new reason to love it everyday.