Is BlitzMax the best programming language?

Miscellaneous Forums/General Discussion/Is BlitzMax the best programming language?

I have been doing a lot of work in C/C++ lately. I despise it. The string handling is a joke. People actually accept that you have to do this to turn a float into a string:
char temp[100];
sprintf(temp,"%f",myfloatvalue));
DrawText(temp,0,0);

Here's the BMX version:
DrawText myfloatvalue,0,0

The CPP include system is a nightmare. It takes forever to get anything done.

CSharp is Windows-only, at least for now.

I can't take Java seriously because it doesn't distinguish between string, integers, floats, and other variables. It just has one variable type.

BlitzMax is the only one that has memory management, cross-platform compatibility, and multithreading (soon). It can make DLLs. There are still some annoyances and limitations, but I sort of think it is the best language in the world. Not just because I like it, but for real reasons. What do you think?

Blitz3D is top sausage for me.

Ruby, Lingo, BlitzMax

BlitzMax is the only one that has memory management, cross-platform compatibility, and multithreading (soon). It can make DLLs. There are still some annoyances and limitations, but I sort of think it is the best language in the world. Not just because I like it, but for real reasons. What do you think?
It has the threading stuff in there already and it works really well - its only in the dev/SVN version for now though - wish they'd finalise it and make it official.

Best language in the world? That'd imply I'd used every language in the world in order to judge fairly. Can't think of anything I'd rather use right now, though - epecially when you stick a great IDE like Project Studio on the front of it.

...Java... It just has one variable type.

Eh?

Nothing wrong with C++. You can wrap it up in quaint little helper functions too, if you like. Just like BlitzMax has done. You think BlitzMax doesn't do the whole float->string conversion stuff behind the scenes? In fact, BlitzMax is just sitting on top of C++...

BlitzMax is the only one that has memory management, cross-platform compatibility, and multithreading (soon). It can make DLLs.

All of which you can do in... C++, amongst many others. Python also comes to mind.


BlitzMax the Best?
Not really, but it's definitely my favourite.

I think BlitzMax is great, unfortunately I am going to have to stop using it for work.

I wish it was more like JavaScript, ActionScript 3 and other such.

Glad that you're not in charge then.

BlitzMax probably strikes the best balance between pleasure of coding and functionality, but Java and C# are both around that happy point too. C# isn't Windows only though, it's just some parts of the .Net Framework which are Windows only.

I also find Lua to be a delight to program in, but it's hard to compare a scripting language with programming language. I do think that a scripting language which has dynamic (and fairly weak) typing works well with a programming language which has static (and fairly strong) typing though. Perhaps that's just me though.

On the other side, languages whick really suck:

Cobol, X86 Assembler, Fortran, C++, Javascript, Pascal, ... too many.

In LE you can do it in C just like in BlitzMax, just more flexible and human readable:
DrawText(0,0,"%f",myfloatvalue);
C is and stays the best language forever. Sometime lazy coders use bits of C++ in it, but that's okay, if it's not a time-critical antimatter-plasma reactor program, but just a game.

In LE you can do it in C just like in BlitzMax...

You can do that in BlitzMax too.

I'll always love Blitz products because you can fire up the IDE and write a little graphics program from nothing within five seconds.

C++ is OK-ish once you've got everything set up, got a ton of helper functions prepared, and got all the initialisation stuff done, but really, it's an ugly old thing compared to Blitz.

You can do that in 5 seconds in VC++ LE-C too, and you have less code to type than in BlitzMax :P

I've tried C++ several times.

I'll try colonic irrigation with boiling oil before I have another go.

You can do that in 5 seconds in VC++ LE-C too, and you have less code to type than in BlitzMax :P

+ Download, installation configuration == 9000 +(5)

Blitzmax == 240 +(5)

;)

I agree that C++ sucks. It's a decadent language with no respect to human brain logic or machine code closeness. Even the swiss professor, creator of Modula-2 said: "C++ is an insult to the human brain".

But C is not C++, C is clean, easy, simple, and the closest language to machine code you can find. It was indeed developed to be a macro language for machine code programmers.

C# is not Windows only, like Leadwerks said, but there exists also a Linux version, however, it's a language which tried to combine BASIC and C++, failing in both, so it's worse than the worst languages you can imagine. It's also slower than BlitzMax.

Java is a good language on Sun hardware. However, it's not cross-platform, and runs only well on Sun hardware. It runs somewhat OK on Linux, but on Windows Java is just a plain horror. C is the real cross-platform language which runs on all platforms the best.

I like to use C#/Blitzmax for being productive, but for things like fancy low level stuff I like to use C/C++...

What really sucks is when you go on a project in Bmax, and then later start a project in C#/C++, and you get the compiler hell of the missing ";".

I'm trying to write something in C# at the moment, and that's my biggest problem.

I haven't used very many different languages, but BlitzMax definately tops at least C, C++, Java, C# and Visual Basic. Not in every area of course, but most. C# and Java come closest, but are too much of a PITA for small things.

I don't know why you say Java does not distinguish between variable types (thinking JavaScript?), but I think the fact that you need around six lines of code for Hello World kind of sums up what sucks about it.

But anyway, IMHO it's the best language I've used.

i like the fact that java can run in a browser and on mobile phones

I tried python but it was significantly more difficult and complicated/

the blitz3d language isnt very good in retrospect but blitzmax is the best

C++ and Java have very scary complicated include/module/import/dll/dependency usage,

BlitzMax is definately the 2nd best language after C. Not because it's fast, but because it's so damn radical simple to create programs with. If your main priority is to create quickly a program, then BlitzMax would win all languages. If your main priority is to create the fastest program on earth, then C would win all langauges. There's only those 2 choices of languages, the rest is far behind in all aspects.

Ok, just had to stray from the topic to answer these:

But C is not C++, C is clean, easy, simple, and the closest language to machine code you can find. It was indeed developed to be a macro language for machine code programmers.


That's all very true, but that only makes it better than BlitzMax for a narrow range of programming; namely device drivers, operating systems and extremely time-critical (parts of) applications.

C# is not Windows only, like Leadwerks said, but there exists also a Linux version, however, it's a language which tried to combine BASIC and C++, failing in both, so it's worse than the worst languages you can imagine. It's also slower than BlitzMax.


Basic and C++?!? It has about as much Basic in it as Java, because it's 90+% Java, really - just with some stupidities from the class libraries ironed out. Also, "slower than BlitzMax" is not categorically true in my experience. Try running some benchmarks.

If I could have C# with BlitzMax syntax I'd be more than happy to never touch another programming language.

C isn't that bad. My main gripe is the use of semicolons and the poor string handling. And #Include SHOULD JUST INCLUDE THE DAMN FILE!!! And the linked lists in C are such a pain to use, it is easier just to manually link objects yourself.

id Software has completely backed off from C++ and now they just use plain C for their engines. Makes sense to me.

The perfect language, I think, would be a cross between BMX and C, with a multi-pass compiler and an actual Include keyword.

Yay, id Software kicks ass, as always :)
Btw, you SHOULD use always brackets and semicolons in BlitzMax too, it just makes the code nicer to read, and easier to port to C (ever heard of Copy/Paste technology?).

Semicolons should mean "don't start a new line" not "start a new line". You want the case that gets used more frequently to have fewer characters. Oh but what do I know? I only write software for a living, whereas some nerd in the 70's who wears New Balance sneakers thinks otherwise.

I give you Satan:


Funny story I found:
Also, during the year I sent a letter to the inventor of C++, Bjarne Stroustrup. Here is my letter, unedited:

HI! My name is Andras and I am currently taking C++. I dont know if it is the incompetence of my teachers and peers OR that C++ sucks ass that I cannot get anything to work. I am quite glad that you nevermade too much money off of it (how i could tell? look on your website and your new balance shoes tell all, speaking of which you should never put your shoes on your desk). Also, your website sucks a lot, just like C++. Also, what use is there of C++? Yippie, I can concatenate strings and make arrays, that by the way I could do a whole lot easier in any other language. The thing that pisses me off the most is that the not all libraries come included in the compilers. So, if i want to use apstring or some other crap, I need to find the libraries and pray to God they work and dont screw over the other libraries. (Oddly enough JavaScript, a not hard language, fixes this by the singular data type: var. thats right! no more int, double, string, vector, or anything else). After studying C++ for almost a year (at an AP level, what ever that crap is worth), I can do nothing fancy: graphics or anything "cool." Well, nice talking to you, too bad you couldnt invent something more lame.


Semicolons should mean "don't start a new line" not "start a new line". You want the case that gets used more frequently to have fewer characters.


Exactly! Or, you could have a couple of dots mean that instead.

I give you God, Dennis M. Ritchie:
http://www.livinginternet.com/g/ritchie.jpeg
http://www.cs.bell-labs.com/who/dmr/
and his minion, Mark Sibly:

http://www.neanglican.org.au/Contact%20us.htm

...

It's my favourite otherwise I wouldn't be using it.

Wow, although I would agree that c++ can be unpleasant to work with it is really the pinnacle of languages...

I, personally, prefer knowing how a var is cast mostly because lazy coders tend to break the type or attempt to convolute it by misusing the type. I like the fact that you really need to have a working library before you use it in a project because this forces you to test the hell out of it, optimizing it down to the very last bit before your project can make use of it.

I prefer the semicolons, even though going between vb, asp, php, javascript, and c++ on a daily basis tends to bite me in the rear a lot.

Even though we can prefer to code in something else, doesn't mean that C++ is crap or that we should despise it as it really is the building block for much of what you use today (even other languages of programming are built using it).

I will admit that Blitzmax is a good language, a very nice balance of all that we enjoy.

Wow, although I would agree that c++ can be unpleasant to work with it is really the pinnacle of languages...
Nah, C undoubtedly built the kernel you are using. Thus, it is God.
(I too agree; C is a really elegant language. Quite a simple one, doing nothing vastly unexpected, making it ideal for low level work. Objective C is awesome).


Here is my list in no particular order:

Vala - C# done right. Compiled, fast, easy. Tightly integrated with G-Objects, making it perfect for a GNOME fan such as myself.

Python - The only scripting language that ever needs to exist. Superior to PHP for web development (see Django, and the fact that PHP still sucks / could be beaten by a DOS shell script). Easy and quick for desktop stuff, with bindings for all the libraries that matter.

BlitzMax - Having used C and Python a lot, it's delightful! I just jumped back into using BlitzMax recently and I keep catching myself thinking "What the hell, this compiles?!"

By saying "BlitzMax is the best programming language", you are technically saying C/C++ is the best programming language, in terms of how things are done in the background.

In syntax and simplicity, I would say BlitzMax is king.

Nah, C undoubtedly built the kernel you are using. Thus, it is God

Hardly. To assume that I am bias because of my o/s is pretentious at best. The mere ability to agree to disagree would be more in order and far less blatant. The harsh reality is that if it weren't for c++, many great achievements in software would merely be a rose of any other name.

Well obviously being "the best" is highly subjective, and depends in large part what you want from a programming language. My own metric is orthogonality and compactness. As in how much does the IDE need to help you for you to remain productive. By that metric, BlitzMAX and Python work exceptionally well, because you could practically write it in vi, if you really wanted to. C#, Java and C++ all fail miserably, because without powerhouse IDEs, like NetBeans, Eclipse or VisualStudio, working with either language is an absolute nightmare.

I can't take Java seriously because it doesn't distinguish between string, integers, floats, and other variables. It just has one variable type.
Well the strong/weak and static/dynamic typing dicussion is one we can take at another time, but Java and C++ are both static/strong typed languages. You must be confusing Java with JavaScript.

It was indeed developed to be a macro language for machine code programmers.
No it wasn't. It was designed to be a replacement for B, and used for writing operating systems (as opposed to applications).

however, it's a language [C#] which tried to combine BASIC and C++, failing in both, so it's worse than the worst languages you can imagine
Wow. That's just wrong on so many levels. Historically C# was developed by the same person who invented Delphi, so if you want to draw parallels, Pascal is probably it's closest ancestor. Legally C# is Microsofts version of Java, developed because they illegally made modifications to their version of Java, which was against the Java license they had obtained from Sun Microsystems. Thus it would be more accurate to say that C# is the bastard offspring of Delphi and Java, which as anyone who has used all 3 three languages will testify is quite an accurate description.

Java is a good language on Sun hardware. However, it's not cross-platform, and runs only well on Sun hardware. It runs somewhat OK on Linux, but on Windows Java is just a plain horror. C is the real cross-platform language which runs on all platforms the best.
Really? Well having worked as a C developer for 5 years, and a Java developer for 6, I can tell you straight off that Java is several orders of magnitude more cross-platform than C. If you're talking ANSI-C you have a point, but ANSI-C isn't a terribly useful language, and once you start adding the libraries you need to make C functionally equivalent to Java, any hopes of getting your software to run across more than one platform starts becoming a real chore. I mean just something as simple as unicode support in C is a big deal!

I think the fact that you need around six lines of code for Hello World kind of sums up what sucks about it.
While that's an interesting (and inaccurate) example, since most applications in general, and Java applications in particular aren't exactly of the "Hello world" variety, it's also a moot point. Measuring a languages value by how many lines of code a "Hello World" example uses, is only really interesting for people whose language requirements are satisfied with "hello world" type programs. So you might as well use brainfuck!

I give you God, Dennis M. Ritchie:
Who said about developing C that "It seemed like a good idea at the time".

Wow, although I would agree that c++ can be unpleasant to work with it is really the pinnacle of languages...
I don't think "pinnacle" means what you think it means.

Even though we can prefer to code in something else, doesn't mean that C++ is crap or that we should despise it as it really is the building block for much of what you use today (even other languages of programming are built using it).
Actually, most languages are written in C, not C++. When writing a compiler or an OS (which are probably the most complex software you could write), you really want to introduce as little accidental complexity as possible, thus using C++ really isn't the best option. We use simple tools to create our more powerful tools. Thus C and by extension C++ is the foundation for our better tools. The pinnacle would then be something like Python rather than something like C.

Ironically one of the reasons multithreading is such a hassle these days is because of the C call stack, which most languages are stuck with due to their "built in C" legacy. I guess when Dennis Ritchie wrote C back in 1972 the idea that you would need several 3Ghz CPU cores running symmetric multiprocessing in order to send a letter to your mum, seemed a rather alien concept.

That was a quite good critic, although a bit too objective in my opinion.
I would only add that C programs should run on parallel multi core systems automatically, but Intel CPU's don't support multitasking. Motorola does.

I guess when Dennis Ritchie wrote C back in 1972 the idea that you would need several 3Ghz CPU cores running symmetric multiprocessing in order to send a letter to your mum, seemed a rather alien concept.
In fairness to Dennis Ritchie, it should always have been :/

The CPP include system is a nightmare. It takes forever to get anything done. !

100% true and i like bmax and b3d because its usefull

Well I like C++ for some reason. It's a low-level language so it's not designed for people who like to say "I was bored so I wrote this in about 4 hours".

Apparently C++ isn't true OOP, it's missing a few features (don't know what), Lisp is true OOP. This explains some of the unavoidable ugly hacks found in C++.

I have to say I like the // for comments better than the ' for comments. ;)

Apparently C++ isn't true OOP...

Well, if we're voting on true OOP, I vote SmallTalk :-)

I'm the kind of person to hop all over the damn place as I always seem to find something 'better'. For over a year I have been looking all over for something more preferrable than blitzmax, and have failed miserably. When Mark finally added threading support, I went to telling everyone "BLITZMAX!!" as if I was cheering in a bar all the time like a drunken irish crazy man. Best language in the world =p ....even though it's basically a 'wrapper' for several languages...works for me!

I have to say I like the // for comments better than the ' for comments. ;)


Would be nice to have both...but it's not like it isn't possible on the user end.

I have been doing a lot of work in C/C++ lately. I despise it. The string handling is a joke. People actually accept that you have to do this to turn a float into a string:
char temp[100];
sprintf(temp,"%f",myfloatvalue));
DrawText(temp,0,0);
If you're not going to use the STL don't turn around and bitch about doing it the hard way.

BlitzMax is the only one that has memory management, cross-platform compatibility, and multithreading (soon). It can make DLLs. There are still some annoyances and limitations, but I sort of think it is the best language in the world. Not just because I like it, but for real reasons. What do you think?
Its multithreading and DLL creation is experimental. C/C++ would be a better choice for native DLLs.

I went to telling everyone "BLITZMAX!!" as if I was cheering in a bar all the time like a drunken irish crazy man.

Hey! We're not always in a bar. ;)

While that's an interesting (and inaccurate) example, since most applications in general, and Java applications in particular aren't exactly of the "Hello world" variety, it's also a moot point. Measuring a languages value by how many lines of code a "Hello World" example uses, is only really interesting for people whose language requirements are satisfied with "hello world" type programs. So you might as well use brainfuck!


Ok, I wasn't very clear on what I meant. "Hello World" requires relatively much code in Java, because Java forces OOP. That's what sucks about it, as there are times when OOP (at least as in Java) is not the best answer. Also, "System.out.println" is a lot less productive than "Print" for such a common task.

I don't know if it's the best, but it is my favourite :D

Well I like C++ for some reason. It's a low-level language so it's not designed for people who like to say "I was bored so I wrote this in about 4 hours".
That's just the thing tho'. C++ isn't really a low-level language, in the sense that one normally uses the term. The main problem with C++ IMHO is that it tries to express abstract, high level concepts, in a syntax explicitly designed for low-level operations.

Apparently C++ isn't true OOP, it's missing a few features (don't know what), Lisp is true OOP.
It depends on what you mean by "true" OOP. C++ isn't purely object oriented, as not everything is an object (as opposed to say C#). Whether that actually makes a difference is more of a religious argument than anything else. Lisp is a multi-paradigm programming language (like Python) so doesn't really qualify as an object oriented language either.

Well, if we're voting on true OOP, I vote SmallTalk :-)
*cough* SIMULA *cough*

C/C++ would be a better choice for native DLLs.
I didn't know that C/C++ could produce managed .Net assemblies...

That's what sucks about it, as there are times when OOP (at least as in Java) is not the best answer.
Name one. It's not that I don't understand what you're saying. It's that your statement is wrong. Java wasn't designed to write "hello world" type programs. For that you already have a slew of languages (like Python and before that Perl). Java was designed for heavy duty enterprise solutions, and not many monolithic corporations have a immediate need to solve problems of the "Hello World" degree of complexity.

Also, "System.out.println" is a lot less productive than "Print" for such a common task
Common task? I don't think I've ever used System.out.println (in Java) or Print (in Python or BlitzMAX). I use log.Info("message") in all three.

I didn't know that C/C++ could produce managed .Net assemblies...
No one said it could.

Do you understand what a native DLL is?

Mono C# is nice, its cross platform and is quite easy to pick up.

Name one. It's not that I don't understand what you're saying. It's that your statement is wrong. Java wasn't designed to write "hello world" type programs. For that you already have a slew of languages (like Python and before that Perl). Java was designed for heavy duty enterprise solutions, and not many monolithic corporations have a immediate need to solve problems of the "Hello World" degree of complexity.


Yeah, exactly, and Java is quite good for what it is meant for, but not for everything. (No language that I know is...) If I want to write a command line tool for a specific (smallish) task, I'm much better off with BlitzMax than Java. Even if I need a GUI and the tool is simple enough that's probably true.

C++ is the dogs knacker sacks, well, I think so anyway... But whatever language you think is perfect, someone will think otherwise.

Dabz

Is BlitzMax the best programming language?

Well, just as a matter of common sense
can you seriously assume that a programming language developed by a small company , regardless of their skill, and used by a small comunity can compete or even be better than programming languages developed by MS or other industry giants and used by milion people?

It make sense to ask : Is the best game programming languag ?

This topic had been already arised some time ago
In my opinion the answer is no " it is not " for the simple reason that it is not even a game programming language
Anyway the question make sense

can you seriously assume that a programming language developed by a small company , regardless of their skill, and used by a small comunity can compete or even be better than programming languages developed by MS or other industry giants and used by milion people?

Yes. Software is like law. It is needlessly complicated for the purpose of job security.

In my opinion the answer is no " it is not " for the simple reason that it is not even a game programming language
I must be imagining all those people who are writing games with it, then?

you can imagine also all those people who are writing games with C,C++,C#,JAVA, JAVASCRIPT, LUA, PHYTO...

Software is like law

Is it a swindle , do you mean ?

you can imagine also all those people who are writing games with C,C++,C#,JAVA, JAVASCRIPT, LUA, PHYTO...
What's your point?

The point is that BlitzMax is a genaral purpose programming language
It is not a game oriented language except for some details
Thus I seriously doubt that it can compete with C# or others

Thus I seriously doubt that it can compete with C# or others
You can't be serious?

Ok, 2 people can make something better than a team of experts
fine

This thread has taught us to never underestimate the stupidity of our fellow man.

Oh dear... here we go....

This thread has taught us to never underestimate the stupidity of our fellow man.
Or in this case, just you.

Do you seriously think BMax can't compete with games made in C++? Do you remember that long running thread on a major game dev forum that had BMax beating the pants off C++ for the same demo bouncing around sprites? How about the couple of people who because of that thread ditched C++ for BMax because of the speed increase?

Perhaps you should educate yourself about a topic before you try and discuss it.


pants off C++ for the same demo bouncing around sprites?



Care to provide a linky to that GaryV please, I'd love to know how that was set up and what API it was running under.

Dabz

YOu should be able to find it via search, it was discussed on these forums, as well. And one of the more experienced Blitzers was the one doing the BlitzMax coding.

Educate yourself?
Didn't you notice that I simply copied from Brucey's post ?
No ? well get back to Brucey's post , before type writing

About this topic

Since we are on a game development forum probably Leadwerks gave for granted that he was talking about game programmimg or maybe he even meant " the best programming language for interfacing with LeadWerks game engine "

If so, it can make sense

Generally speaking, small software houses ( or in general small companies )can compete with big companies only in market niches i.e for specific applications

Hang on a minute.... don't drag me into this..... *sigh*....

sorry Brucey

Generally speaking, small software houses ( or in general small companies )can compete with big companies only in market niches i.e for specific applications
Are you sure? Take Microsoft for an example. Very little starts out "in-house". Most of their products (inluding many APIs) were developed by individuals or small companies and then bought or stolen by Microsoft and further developed under their name. MS is the largest software company out there and if they can't compete on a level playing field against the independents, then wouldn't it be the independents that really are the "leaders"?

No, I mean in general. I look at it from the perspective of what is good for a business designing 3D applications with GUi interfaces. If C++ takes twice as long to program the same application with, I am making half the money I could be with BlitzMax. Every character you type and every bug you have to fix costs money.

Ok, 2 people can make something better than a team of experts

Of course they can. The "team of experts" gets paid by the hour, whether the software fails or not. The two people don't eat if they don't produce something good.

One thing I have learned from running a small business is that free market rules don't exactly apply to big businesses. They are largely immune from the forces of free market capitalism. This is why MS often buys other people's ideas instead of coming up with their own.

This is, in my opinion , an old fashion story
David against Goliath
It can be true at the very beginning but in the medium \ long run there is no space for the small fishes except , as I said, in the market niches

Investments make the difference

In particular , for some reasons, many people hate MS thus they exagerate
What you said it is true also for Linus
At the beginning this O.S. was one man project but since many years there are many small companies working on it
Linus, same as MS , is just a coordinator
Not an easy job anyway


By the way, I did not notice that you quote that sentence in all your post so, I thought it was only addressed to me

That's just the thing tho'. C++ isn't really a low-level language, in the sense that one normally uses the term. The main problem with C++ IMHO is that it tries to express abstract, high level concepts, in a syntax explicitly designed for low-level operations.

Well, apart from the OOP concepts I have to say it looks pretty low-level to me. It can be made to look like high-level with librarys.

It depends on what you mean by "true" OOP. C++ isn't purely object oriented, as not everything is an object (as opposed to say C#). Whether that actually makes a difference is more of a religious argument than anything else. Lisp is a multi-paradigm programming language (like Python) so doesn't really qualify as an object oriented language either.

By true I meant a language which strictly follows the concepts in OOP. Maybe I should say purely instead. I don't know anything about Lisp, I just read it in a book, blame the author. :)

Also, during the year I sent a letter to the inventor of C++, Bjarne Stroustrup. Here is my letter, unedited:

HI! My name is Andras and I am currently taking C++. I dont know if it is the incompetence of my teachers and peers OR that C++ sucks ass that I cannot get anything to work. I am quite glad that you nevermade too much money off of it (how i could tell? look on your website and your new balance shoes tell all, speaking of which you should never put your shoes on your desk). Also, your website sucks a lot, just like C++. Also, what use is there of C++? Yippie, I can concatenate strings and make arrays, that by the way I could do a whole lot easier in any other language. The thing that pisses me off the most is that the not all libraries come included in the compilers. So, if i want to use apstring or some other crap, I need to find the libraries and pray to God they work and dont screw over the other libraries. (Oddly enough JavaScript, a not hard language, fixes this by the singular data type: var. thats right! no more int, double, string, vector, or anything else). After studying C++ for almost a year (at an AP level, what ever that crap is worth), I can do nothing fancy: graphics or anything "cool." Well, nice talking to you, too bad you couldnt invent something more lame.


That sounds just like every other punk kid that's too dumb to code but believes that since they play a lot of video games that they should be naturally good at it.

I would be curious to read Bjarne Stroustrup's answer , if any

I would be curious to read Bjarne Stroustrup's answer , if any


I think you have the wrong e-mail address. I'm Bjorn Ulvaeus - the Abba guy.


mamma mia

i still say C# or stick with bmax


The string handling is a joke. People actually accept that you have to do this to turn a float into a string:
char temp[100];
sprintf(temp,"%f",myfloatvalue));
DrawText(temp,0,0);

Here's the BMX version:
DrawText myfloatvalue,0,0



The thing that comes to mind here is simply 'if you dont like the language dont use it', for me C++ is simple (been doing it since '89) and I still use it for some simple utilities as it allows total control of the system when required. It also creates small exe's and includes what you want from the libraries you have, yes max can do this as well but getting an exe thats ~14k and displays basic OpenGL thats not too bad.

I know that file size isnt everything but I would be hard pushed for people to say that C++ cannot do what Max can do, yeah max can do it quicker but if you have the correct set of libs and headers created you can create apps just as quick in C++.

I know my answer won't be popular here but... I'd say NO.

I still think C# is the best all arounder ATM.

Performance, Flexibility, Ease of use, Widely supported( tools, knowledge, etc ).

But Blitzmax is nice because:

-Its familiar to me. I cut my teeth with basic( amos, and much later blitz2d/3d )
-Its improved many of the warts the original blitz2d/3d/+ had.
-Its good to go. Fire up the IDE and you are on your way. You get everything you need to jump into game dev, for the most part.
-I really do feel that Basic languages are more readable than c based languages. And readability counts for alot.
-Its got a small, but good community.

I still use it for prototyping and quicky graphic/audio things. ...but max is lacking some pretty important things imo.

I'm real big on syntax, and the amount of code that has to be typed( or read through later on ).

Python wins easily on both those fronts. Python actually makes blitz source code look a bit bloated and unreadable.

If they ever get around to fixing the start up time for IronPython then I think it will be time to say goodbye to blitz. Python + C# seems like a whole lot of win to me.


I'll always love Blitz products because you can fire up the IDE and write a little graphics program from nothing within five seconds.

This is truly the strongest thing blitz has going for it.

I think its also a much better language for learning to program with( especially game programming ), then the standard c/c++ route. What better way to get people interested in programming, than programming fun or creative things.

Recently some guy popped on the gamedev.net irc channel wanting to learn c++. No experience whatsoever. No idea on where to even begin really.
"Whats an IDE? Whats a compiler?". I told him to check out blitz because of the fact that its all setup for you. Let's you get to the meat and potatoes so to speak.

There are sooo many barriers to learning to program if you go the traditional routes. I got discouraged way back in the day when I first tried to learn c. So many hurdles to get through before you can even get something up on the screen.

Yea things have improved a lot, now you just download Code::Blocks or Visual C++ Express, or whatever. But then you still have to find the libraries you need, set things up, all the while learning a very arcane language full of seemingly random symbols.

it's a language which tried to combine BASIC and C++, failing in both...


C# was really intended to be a "java killer", which itself was intended to be a "c++ killer". Thats pretty common knowledge I thought.

It's also slower than BlitzMax.


In most of my testing, c# was clearly ahead of bmax in terms of raw performance. Granted somewhat limited tests, but who the hell is going to write real world apps in one language, and then translate them all over to the other language just for comparisons sake :)

I can think of specific cases where one language should outshine the other, but I see FAAAR more of these coming out in c#'s favor. C# is also alot more "tuneable". Both languages can call out to external libraries, but c# gives you more options within the language itself.

Its all kind of a moot point though, isn't it? Either one is fast enough for 90% of the games lone wolf/indy developers will be able to produce. ie, us.

Yes, but BlitzMax has a better cross-platform core framework compared to MicroSoft .net framework (for most windows platforms) and mono for MacOs and Linux. they're not 100% compatible so, the core framework of the language is not cross-plaform and requieres a run-time jit compiler library that is, in the best cases, more than 20 mbytes. I know it 'may' be already installed on most modern windows computers but... not always.
This makes me prefer BlitzMax to C#, now that it has a decent GUI thanks to Brucey, and support multi-threading (beta module at the moment).

Bjarne gave a typical nerd's reply:
"Thanks. I hope you feel better after having demonstrated your ignorance and bad manners."

The whole thing can be read here. It cracks me up:
http://www.courageunfettered.com/stuf/cpp/

I like the Blitz 'Language'. I like the straight forward way things are put together. The 'Language' is good, but as has been mentioned, it's hard to compete (as a compiler) with big dedicated teams, so Blitz has historically played to its' strengths.

There is a big difference though, between a language and a compiler. In this respect I think that the .NET languages are very clever, because the .NET language is really IL. Both VB.NET and C# and any other .NET language compiles to IL. As I understand it, the IL is JITed to native code at runtime.

Why do I mention that? Because all the most efficient compilers seem to be C/C++ compilers. They have the raw capability and seem to produce the most efficient output code. So I would say:

C/C++ as a Language - Cryptic, picky, long winded (in my oppinion)
C/C++ as a compiler - Pretty damn powerful in the right hands!

BlitzMax as a Language - Straight forward and nice to work with!
BlitzMax as a Compiler - Mid Range at best, plays to strengths.

It would be great to be able to have a blitzmax which outputs efficient well written C/C++ code (which like IL we never see unless we want to) which is then passed to a high end C/C++ compiler for code generation. This would hide the complexity and error prone process of writing it by hand, but expose the underlying functionality by 'right ways' of doing things. To some extent this is already done by having modules written in C.

To sum up, It would be nice (in pie in the sky land) if the *language* could be decoupled from the compiler, so that people could pick a language that suits them and a compiler and have them 'just work' together. That way the language and implementation people could use their strengths and the compiler guys could use theirs, and developers would get the best of both worlds.

BlitzMax as a Compiler - Mid Range at best, plays to strengths.

Based on what? That can be an impression... but benchmarks don't always say the same
see: http://forums.indiegamer.com/showthread.php?t=7551

It would be great to be able to have blitzmax which output efficient well written C/C++ code (which like IL we never see unless we want to) which is then passed to a high end C/C++ compiler for code generation.

I don't see the point of this. really blitzmax is generating efficient and wellwritten assembler code, wich is a lot faster than any C++ compiler... In some test I did blitzmax was faster than GNU generated C++ assemblies, but slower than visual studio c++ assemblies. Don't have the numbers now, it was about a year ago or so.

Ok, I checked the book and er, I was wrong, it's not Lisp but C# that is cited as a "truly object-oriented, component-based language" which was designed from the ground up with OOP in mind whereas C++ had to sacrifice some OOP ideals so that it could support legacy C code.

What about functional languages like Haskell and (Oca)ML?
I like much higher order programming.
Type inference frees from writing explicit types, and the code written is a lot shorter than any imperative/OO language.

Towards the question "it' the best programming language?" i think that no language is the best but some language is the best for some task

(sorry if i made mistake)

BlitzMax has a better cross-platform core framework compared to MicroSoft .net framework

This is what I meant
For 2d multiplatform games and for some other applications, it is definitely a good choice

For the rest, I tend to follow the goden rule

" sutot ne ultra crepidam "

Do you understand what a native DLL is?
Yes. Obsolete.

Well, just as a matter of common sense can you seriously assume that a programming language developed by a small company , regardless of their skill, and used by a small comunity can compete or even be better than programming languages developed by MS or other industry giants and used by milion people?
Yes? For the same reason you can assume that a hand built Aston Martin V8 can compete against your factory assembled Ford Pinto. Qualitative properties cannot be derived from quantitative measures. Quite often it is the other way around, in the too many chefs spoil the brew sense.

It make sense to ask : Is the best game programming languag ?
No that doesn't make sense either as "best" is still highly subjective. You need to ask questions that are empirically testable, if you want a matter of factly answer.

Ok, 2 people can make something better than a team of experts
Ever heard of Sergey Brin and Larry Page? They managed to beat both Yahoo! and Altavista with their search engine (Google, if you didn't know). So yeah, I think you can empirically and beyond any reasonable doubt argue that quite matter of factly, 2 people CAN make something better (or at least more popular) than a team of experts. Here's another two people you may have heard about; Steve Jobs and Steve Wozniak managed to beat IBM, HP, CBM, etc. with their home computer (Apple Macintosh). Also for consideration is Bill Gates and Paul Allen, who managed to beat IBM, AT&T, etc. for operating system dominance (Windows). You still want to play this game?

If C++ takes twice as long to program the same application with, I am making half the money I could be with BlitzMax.
Exactly. All that matters to a business is productivity. How much working functionality am I getting for every dollar I invest.

Investments make the difference
Wrong! Competitive advantages make the difference. You can throw all the money in the world at a product (like say the PS3 or XBox 360) and still not have a Wii. It's not a matter of investment. It's a matter of *return* on investment. Throwing good money after bad, is just stupid.

Well, apart from the OOP concepts I have to say it looks pretty low-level to me.
Sure. But that's because one of the design goals was not to introduce additional syntax.

>>>BlitzMax as a Compiler - Mid Range at best, plays to strengths.
Based on what? That can be an impression... but benchmarks don't always say the same
see: http://forums.indiegamer.com/showthread.php?t=7551



Some things it does very well, but for many things it's not really up there. Try writing a Raytracer in BlitzMax and you see that although Blitz is fast, its not as up to the task as a good C/C++ compiler. SSE2+ & automatic vectorisation as examples would be handy. Of course a raytracer is not in BlitzMax's target audience, but that kind of makes my point about playing to strengths.



>>>It would be great to be able to have blitzmax which output efficient well written C/C++ code (which like IL we never see unless we want to) which is then passed to a high end C/C++ compiler for code generation.

I don't see the point of this. really blitzmax is generating efficient and wellwritten assembler code, wich is a lot faster than any C++ compiler... In some test I did blitzmax was faster than GNU generated C++ assemblies, but slower than visual studio c++ assemblies. Don't have the numbers now, it was about a year ago or so.



Well, the output of all native code compilers (sooner or later) is assembly. The point is, if you have a language like C/C++ which is very well supported in terms of development, takes advantage of newer processor features and produces excellent optimised assembly, but which is a pig to write well, then why not treat it as IL and have an intermidate compiler generate the C/C++ code for you.

I suppose it would be great to have an assembler which could take unoptimised assembly and optimise it! Unfortunately, apart from instruction scheduling, I don't think that there is enough indication left in assembly as to what you were trying to achieve to make that viable.

BlitzMax is just a bunch of precoded C/++ chunks of sourcecode...
So, it's basically the same "language".. ;)

Syntax-wise I like Max's approach
When I look at C++ code I get bamboozled by all the wierd -> , :: symbols

And just what is the fastination with all the copycat languages enforcing ; on the end of every line?

And just what is the fastination with all the copycat languages enforcing ; on the end of every line?

Privatelly, I've always seen it as a way to make the tokenizer for the compiler easier to write! hehe...

@terabit: I understand what you say. just as a side note you can enable SSE2 instructions on making some changes on the bmk tool. I think there was a post about this some time ago.

"For the same reason you can assume that a hand built Aston Martin V8 can compete against your factory assembled Ford Pinto."

Actually the hand built Aston Martin is not competive
They target a niche of market, as I have been repeating and repeating

" No that doesn't make sense either as "best" is still highly subjective "

Sorry i am not a phylsopher and I am not fit for accademic discussion
Everybody kwows what " The best for... " stand for

" Ever heard of Sergey Brin and Larry Page? They managed to beat both Yahoo! and Altavista with their search engine "

Again I repeat again
At the beginning a smart guy or a small team can be successful but in the medium run either they turn their small company into a big one or they are lost or they target market niches
I made as example Linus
Many people still think that this O.S. is a one man project
Linus nowadays is a sort of multinational company, not as big as MS of course but there are many developers working on it
How can you expect that it can compete with Vista , then ?

"If C++ takes twice as long to program the same application with, I am making half the money I could be with BlitzMax.

Exactly. All that matters to a business is productivity. How much working functionality am I getting for every dollar I invest. "

Again I repeat
If Leadwerks was talking about his own project , I am not arguing about his opinion \ experience but do you seriously think that the milions C++ \ C# \ JAva developers around the world are losing money or businees opportunities for not using BlitzMax ?

do you seriously think that the milions C++ \ C# \ JAva developers around the world are losing money or businees opportunities for not using BlitzMax ?

Obviously not ALL of them, only some of them, surely most of them making windows, macos or linux games.

Games is mowadays a multi milion businees
Do you think that the big software houses in this market are a sort of fool because they keep using C++ rather than switching to BlitzMax ?
Hard to believe

Do you think that the big software houses in this market are a sort of fool because they keep using C++ rather than switching to BlitzMax ?
Obviously not. No I don't think this. The cost to port all libraries and past development to a proper programming language is economically absurd for big software houses. IMHO, this is the only reason to keep coding on an archaic and terrible designed language such as C++. New companies should avoid to falling into this mistake. BlitzMax could have something to say in that situation, if it were popular and understood as it deserves. Some companies are porting their low level stuff (engines) to plain C, and making games on hi-level, modern managed programing languages.

then why not treat it as IL and have an intermidate compiler generate the C/C++ code for you.
Because there is nothing inherent in C/C++ that makes it a faster language. The speed of your binary is largely dependant on which compiler you're using, and how well you know the quirks of that compiler. So yes, you could use C/C++ as an IL, but it would largely be a moot point, unless you want to tie BlitzMAX to a specific C/C++ compiler. You would be better off using Java Bytecode or Common Intermediate Language, because unlike C/C++, that's what they were designed for.

BlitzMax is just a bunch of precoded C/++ chunks of sourcecode...
You must be confusing it with Blitz3D. BlitzMAX (the language) does not, as far as I'm aware have a C/C++ runtime library. The language itself is compiled (into assembly, then assembled into object files, which are then linked to make your binary).

Privatelly, I've always seen it as a way to make the tokenizer for the language easier to write! hehe...
Exactly. One of the design goals for C was to make writing compilers simple (most early C compilers where simple single-pass compilers, which basically translated C commands into their respective opcodes and left it at that), as it was desirable to be able to quickly implement a C compiler for different hardware platforms.

Actually the hand built Aston Martin is not competive, They target a niche of market, as I have been repeating and repeating
How do you define "competitive"? I think you're using the word incorrectly. I think you mean "mainstream". In which case you're right, that if you're targeting a niche market, you're not mainstream. Doesn't mean you're not competitive.

Everybody kwows what " The best for... " stand for
Then explain it. While you're at it, explain why there are other languages than machine opcodes. Since that's what the computer understands directly, why bother having any other languages than the one that gives you complete control?

At the beginning a smart guy or a small team can be successful but in the medium run either they turn their small company into a big one or they are lost or they target market niches
They turn their small company into larger companies to make more money. A large company can turn larger profits than a small one, because they can target more markets, and thus open their products up to more customers. It's not really a matter of competition, and you'll notice that most large companies aren't competitive at all, but rather buy out the smaller, competitive companies to maintain themselves and open up new markets, rather than developing products on their own.

Many people still think that this O.S. is a one man project
I'm pretty sure nobody living in this century, still thinks Linux is a one man project, any more than they think Apple are still working out of Steve Job's garage.

Linus nowadays is a sort of multinational company, not as big as MS of course but there are many developers working on it
First of all Linux isn't a company, although there are many companies who sell different Linux distributions, and yes there are many people working on Linux, quite a few more than those working at Microsoft on Windows.

How can you expect that it can compete with Vista , then ?
Linux isn't supposed to compete with Vista. Linux is for people who want their computers to do what they tell them to, Vista is for people who want to do what the computer tells them to. These two market segments do not have anything in common, therefore they are not in competition.

do you seriously think that the milions C++ \ C# \ JAva developers around the world are losing money or businees opportunities for not using BlitzMax ?
Losing money? Maybe not. Making less money than they could? Most definitely. Case in point, the place I used to work at would have made much larger profits if they had used Python/Django for making web applications rather than C#. But they didn't want to do that, because they have too much time invested in their archaic technology. Instead they went bankrupt.

And just what is the fastination with all the copycat languages enforcing ; on the end of every line?

What copycat languages do you mean? I can only think of Java. It's because they are essentially the same language with some modifications so they don't have to reinvent the wheel.

How do you define "competitive"?

As I siad, I am not fit for accademic discussion
Why do you keep asking obvious question ?
Everybody knows what the term " Competitive " stands for
What's the meaning of asking so silly questions , just for making issues, I suppose

"The cost to port all libraries and past development to a proper programming language is economically absurd for big software houses. "

This can be a good point but I dont think it is the only reason
Many games have been developed using phyton or other languages particulary for the game play but C++ , generally speking, still rules
Should BlitxMax have that advantage over C++ they should switch, sooner or later

The point is that many people are a little bit egocentric
The best for them must be the best for all

If you are used to BlitxMax and you are focusing on specific applications only than you can assume that BlitzMax is the best language in the world

Many games have been developed using phyton or other languages particulary for the game play but C++ , generally speking, still rules
Of course! I just think nowadays there are better alternatives in several situations. Game writing is one of those situations IMHO.

Why do you keep asking obvious question

Alberto, don't take it wrong, I mean, I don't think there is a problem to ask what YOU mean by competitive, given the fact that is one the basis of your argumentation. Feel free to correct me if I'm wrong.

As instance, Apart from being a PL/1 coder, and make BLIde, I also work as a music producer and play in several bands. One of the bands is a mainstream band in Spain and we are competitive with other bands with the same big target. Other bands are independent small bands, there is a very small team of people behind them BUT we're also competitive on our market.
In my opinion, the same applies to coding studios. hence flameduck saying a hand made aston martin is a competitive product. It is on market, it has its target, and it remains on market becouse it is competitive, and honestly I think it is better than any (to say) toyota cheap car. I'm sure toyota sells more cars a year than Aston Martin. But, going back to the question, wich one is a best car?

The point is that many people are a little bit egocentric The best for them must be the best for all
Please, don't do that. I mean insulting. I think nobody has insulted you.

[EDIT:] I love Toyota cars, I would just preffer to have a hand made Aston Martin :D

"Alberto, don't take it wrong, I mean, I don't think there is a problem to ask what YOU mean by competitive "

I think there is a the problem with people trying to make issues rather than exchanging opinions
The question " What do you mean for .." referred to popular expressions such as " Competitive " , " The best " etc which all of us use everyday without being asked to provide a definition sounds to me as unpolite

I think that they are asking you to clarify your meaning so that they can understand your opinion and reasoning more clearly. I don't think that this is impolite.

Some words have contextual meanings - they men different things depending on how they are used and who uses them. This is even true for words that are used every day.

What's the meaning of asking so silly questions , just for making issues, I suppose
Because it's apparent to me that "Everybody" doesn't know the meaning of competitive, or at least doesn't have the same definition for it.

To me, a product is competitive, if it competes in a market. Thus the Aston Martin V8, is competitive, because it's a commercial product, available on a specific market. Your example Linux is not competitive, as it is not a commercial product, and not subject to a specific market. Red Hat Enterprise Linux on the other hand is a commercial product, available on a specific market. It is in direct competition, not only with other Enterprise Operating Systems (Windows 2003 Server, Mac OS X Server and Solaris), but also with other Linux distributions and professionals.

Much like you failed to respond to my inquiry about which metric you use for measuring which language is the "Best". In my opinion, here's the breaks:
For time-critical real-time applications (like drivers) it would be C.
For writing deployment scripts it would be Python or Perl.
For deploying large scale enterprise web applications it would be Java.
For Windows applications it would be C#.
For web service frontends it would be Visual Basic.
For hobbyist or entry-level programming it would most certainly be BlitzMAX.

Should BlitxMax have that advantage over C++ they should switch, sooner or later
The problem is that the *cost* of switching is several orders of magnitude larger than the *immediate* benefit. Let's say you're developing a small game with about 20 programmers. Who is going to pay for them to be trained in BlitzMAX, and port all their tools and frameworks to BlitzMAX? Damned if you do, damned if you don't.

Blitzmax cannot do CreateCube().

The shame of it.

Blitzmax only became interesting due to Leadwerks Engine.

Other than that, Blitz3D is top sausage.

Blitzmax cannot do CreateCube().
It will in some days... :D

Max for me is more "friendly" to code with. I can generally look at other peoples code a suss out what's going on (to a certain extent!)

On the other hand, C++ code blows my mind ...

Today's C++ example was brought to you by the letters W, T, and F

    StringFloatMap::iterator pos;
    for (pos = stocks.begin(); pos != stocks.end(); ++pos) {
        cout << "stock: " << pos->first << "\t"
             << "price: " << pos->second << endl;
    }
    cout << endl;


" Some words have contextual meanings "

it was a contextual discussion

I claimed that BlitzMax can be the more competitive ( the best )programming language for some specific applications , for example for 2d multiplatform casual games but not in general

I suppose I made my opinion very clear , right or wrong it may be


" I mean insulting. I think nobody has insulted you."

" A little bit egocentric " is it an insult ?
Define " insult"

@Alberto: An insult is an expression which is considered degrading. Being egocentric a psicilogical therm defined as the incomplete differentiation of the self and the world, including other people. I would call this an insult. If it was not your intention to insult people, just tell it.

Anyway, If you don't care, I would preffer not to continue in this direction. This topic was interesting to me before we start this "personal" sort-of discussion.

I agree

Of course it was not my intention to insult people for the simple reason that I was speaking in general
I did not say " xxx " you are an egocentric guy
I think it is hard to deny that in the world there are many egocentric peoples
It is a defect of course but calling it an insult is an exagerattion, to the least

I remain of the opinion however that even asking silly questions is an unfair behavior
This is an old trick used by politicians
If you are in trouble and it is evident that yoir opponent is right , well submerge him under a deluge of silly questions witch have no answer

Am I egocentric?

I'm not over-sure what it means - but, if it's good, then I am it.

    StringFloatMap::iterator pos;
    for (pos = stocks.begin(); pos != stocks.end(); ++pos) {
        cout << "stock: " << pos->first << "\t"
             << "price: " << pos->second << endl;
    }
    cout << endl;
That's not too hard if you know C++, in this case it appears to be Java.

The iterator is a special object (which can be a pointer, vector, etc) used to access elements in a container class, it's like a linked list. Btw, you missed out the definition StringFloatMap stocks; which was very naughty.

Puki wrote:

Am I egocentric?

No, you're just creepy. I'm egocentric.

The nurd pic makes me want to code c++

for reference

Machine code
EF 00 2A 34 99 11 00

Assembler
MOV A,B
JMP $2019


C often mistaken to be "C# that microsoft created"
include <chr.c>

C++
Cout << "nice line" ; Strange long errors...


c#
Invented by microsoft. its easyer that all above.. i dont know much of this langues



Basic
THe best langue for the one how have a life :)

D is actually a nice language, and there is already a GNU C++ addon for D on Linux. On Windows there is only a native D compiler which sucks, because it doesn't use Visual C++ as base. And everyone knows that any code which is not compiled using Visual C++ on Windows is slow as hell. If BlitzMax would have been compiled using Visual C++ it would be also 25 times faster than now, when it's compiled with MinGW which is about the slowest C++ compiler on earth.

And everyone knows that any code which is not compiled using Visual C++ on Windows is slow as hell.

Everyone knows it? I didn't know it. What's the Leadwerks Engine compiled with, out of interest? You seem to know all about it.

Leadwerks is compiled with BlitzMax, which is too slow in some areas.
However it uses the GPU so much, that the slowness doesn't come to shine.
Sometimes it still comes.
I want a C port of Leadwerks Engine. And I've already considered to do it myself, but I need to buy the source code first which is expensive as hell.

Someone said that BlitzMax compiler is at best mid-class. I agree.

Some of the modules are very well written in C++, which is why benchmarking simple things may give better results than C++ with whatever library. However, actual BlitzMax (.bmx) code doesn't compile that well. The compiler does no inlining, which is one of the most important optimization an object-oriented language needs. Another (less important) feature missing is SIMD/vectorization.

The BlitzMax language is good under a practical point of view: has a nice built-in library to make games really fast, and the learning curve is short because of its clean and compact design.

Anyway, to be the best programming langage it lacks quite a few things (I'm not talking about the implementation of the language, this is, how much the comiler optimizes, how good the debugger works, etc, but about language syntax itself). For example, I would like it to be a REAL object-oriented programming language.

I'm not talking about a pure OO language (I don't know many which are), but a hybrid one like C++ or Java. Ok, BlitzMax offers some syntactic sugar which allows to write programs in a closer manner to object-oriented paradigms, but in order to be object-oriented, a language needs to implement 3 features: encapsulation, polymorphism and inheritance. While BlitzMax has the last two, it severely lacks on the first one, without real encapsulation on the language (defining methods inside types is not nothing like it, you need to be able to define private fields and methods). Some other features which are common in OO languages, like function and/or operator overloading, would be really nice.

There is a language that I really like the way it has implemented OOP: Object Pascal. The object orientation supported in the Free Pascal compiler is simply awesome. Too bad that Pascal itself has a few annoyances (like having to write way too many BEGIN... END statements in a program).

Yes. Obsolete.
Are native executables also obsolete?

..i cant say much which one is best or not..however, i do understand that there must be a reason why something like C++ does exist, as well as Bmax..so, as far as i am concerned, winner is the one making me crossing finish line of my project while keeping customer happy..simple as it is..

Are native executables also obsolete?
Pretty much. Let's call them Dinosaurs for now. The only reason we still have native binaries at all, is somewhat ironically legacy reasons. I'd wager that by the time Windows 7 swings around everything outside the kernel will be written in CIL, and legacy code will only run through emulation (ala. Virtual PC or Fix32).

i do understand that there must be a reason why something like C++ does exist
There is. It's because back in 1979 computers weren't fast enough to perform time-critical operations in Simula.

Interesting discussion.

Bmax the 'best'? I dunno. I much prefer C# myself, but blitzmax is coming close. It's lacking in a few fronts unfortunately. Having said that, it is my language of choice for the Graphics department and for making some quick prototypes. The addition of threads to blitzmax and reflection is a big step in the right direction. I am still a bit annoyed with the fact that numerical types cannot be cast to 'Object' though. That would make for properly generic code design.


The man who invented C++ needs to be repeatedly raped by a monkey and then shot. The argument of 'it's so powerful and fast!' just doesn't hold any water anymore in this day and age and certainly does not justify the shear complexity and disgusting nature of the language. C++ is dead.

TBH the best language for any particular purpose is one that is best suited for that purpose;

Games programming - this is also dependent on the game being coded, there are some things that Max struggles with, but if your after a RAD enviroment then Max/Blitz3d is a good start.

Running a Nuclear powerplant - (im guessing here) would be something like C++ I cant see things like DB/BlitzMax/Blitz3d doing this not without LOADS of additional code.

Porting a game to absolutely anything - this would also go to C++ as there is almost a C++ compiler for every platform out there. BlitzMax is cross platform BUT only on Win32/Linux/OSX(PPC)/OSX(Intel).

So as you can see there is loads of things where Max doesnt fit the bill, Indie coders should stop comparing and get programming. Yes the language may stand the test of time but only whilst there are people to write things in it if nobody does then its pointless.

It is the best for me personally.


CSharp is Windows-only, at least for now.
mono C# works on all (that "unity" 3d engine is done in mono c# i believe).


C++ is dead.



What a crock of poop...

If C++, or even C were dead, what would they use to maintain the billions of lines of code thats currently used today?

Magic?

You can only really get the best out of BlitzMax with C/C++ using MinGW... If it wasnt for the extra benefit of implementing C/C++, BlitzMax would of probably be dead by now.

C++ is dead, pfft, its doing alright as far as I can see.

Dabz

Hi,

C++ is still my favourite language.

It's still faster than anything else (even C, which doesn't have 'inline' or templates) with a language design that *never* compromises on speed (which does result in a few points of confusion). The STL rocks too.

But I do agree that std::string's are unnecessarily bare. There are in fact weird holes in the whole standard library - where are the file system funcs? sockets? threads?

Part of the pain of any C++ project can end up being writing/rewriting/reusing a decent 'standard' library! But once that's done, you're *flying*!

C++ is still my favourite language.

What about Blitz3D?

sniff.


C++ is still my favourite language.


Begone, Satan!


What about Blitz3D?


Alas, probably in 3rd place these days after C++ and BlitzMax!

If C++, or even C were dead, what would they use to maintain the billions of lines of code thats currently used today?
That's a non sequitur. I know people who professionally maintain programs written in PL/1 and Modula-2. The fact that they are still around doesn't mean they're not dead.

Of course it depends on how you define dead. Since C++ is inanimate, it's not literally dead (because it was never alive in the first place) and since it's still in use, largely for legacy applications it's not metaphorically dead. It is however way past it's prime - maybe undead is a better term.

with a language design that *never* compromises on speed
First of all, that's not always a good thing, more importantly it's not strictly true, since C++ doesn't have a single point of truth, never mind a coherent and widely accepted list of best practices. It wasn't even formalized until 2003, roughly 20 years after it was released!

What about Blitz3D?


Alas, probably in 3rd place these days after C++ and BlitzMax!


You know... If the # of posts on the forums are anything to go by, Blitzmax seems to be a lot more popular than Blitz3D these days. (either that or B3D users don't need help. ;-)

Perhaps it's time to change the "Our flagship product is Blitz3D" on the main page?

agreed, max is a far superior langage to b3d. It is still an inferior "3d games solution" for most people round here (ie b3d die-hards) simply because of the lack of 'out of the box 3d' (other than hard coding your own engine using ogl)

It's still faster than anything else (even C, which doesn't have 'inline' or templates)...

Actually, C has had inline functions since ANSI C99
and of course, there have always been macros.

In any case, I seriously doubt the claim that C++ is faster than pure C.

Would you guys say that BlitzMax is better then Blitz3D?

Why should I use Max over 3D?


Thanks if you can answer this,

The Mighty WERDNA(Lord Of Darkness)
;I agree that C++ Sucks. I've tried using it, and it just sucks so badly :(

I haven't used Blitz3D but I used BlitzPlus. The Syntax is the same except B3D has 3D stuff of course! I prefer the BMax syntax and the fact that it's OOP is a massive thing in it's favour. You can get 3D plug ins for it also.

In any case, I seriously doubt the claim that C++ is faster than pure C.
Maybe a lot depends on the compiler. Anyway I did a test on this a while back - I used Structs and Arrays for a shooter game in C, then converted it to Classes in C++ and it was slower for sure, but easier to manage the code.

Why should I use Max over 3D?

What do you want to do?

I'm still a big B3D fan. I hung together a spelling game a while back (few years ago now), but when I tried it at my local primary school their puta's were struggling, probably wouldn't be the case now though. I did not have the time as an indie coder (I've got one of those day job things) to optimize the 3D code to a point where the primary schools system may have ran it. Anyway, BlitzMax was useful for me in completing a game in a more 2d-esque form, albeit only an educational one.

I Still use Blitz 3D in conjunction with JV-ODE. With Blitz 3D and one of the many physics engines - which a lot of are very reasonably priced - the amount of fun you can have coding in 3D environments can very quickly soak up huge swathes of time. You know what they say about what time does when your enjoying yourself - if flies! Blitz 3D was my first Blitz product (on the PC) and without it I don't know if my indie coding side would have re-emerged.

Whether BMax is the 'best' programming language - its one of the best I've come across (and I've had the misfortune of 'C' yeuch! Managed space invaders in a terminal window to help learn it....) - Blitz 3D is still up there for me - it is a bit like comparing a 2d tool with a 3D tool - although I admit with the advent of minib3d this last points a bit mute. S'pose it dependes upon how many of the physics engines work with miniB3D as well as Blitz 3D.

..B3D rulez..but i must admit, I start like Bmax a lot(got it few days ago), and cant wait Max3D to plug it in and see what i can squeeze out of it..

I went back to fiddle with some of my Blitz3D code after a long while of using BlitzMax and I must admit, though it was quite nostalgic (not done much on it for a long time), it was like taking a step back language-wise.

I do admire the C/C++ compilers for their output capabilities, I like the amount of fast low level stuff the language exposes too, but in terms of being hard to set up, tricky to manage and cryptic to read, the actual language or perhaps just the implementation of it is a pain.

Perhaps when Max3D makes an appearance, BlitzMax will take its' place as the replacement for Blitz3D I've been waiting for.

Well I like 2D programming best, but I would like to do a survival
horror 3D RPG game.

Is Blitz 3D better at 3D then BlitzMax? or are they about equal?

Well I like 2D programming best,

Bmax is great for 2D games with a few drawbacks. B3D with something like SpriteCandy is great as well. The advantage of Bmax, in my view, is an OO rather than procedural implementation.
Is Blitz 3D better at 3D then BlitzMax? or are they about equal?

Bmax doesn't have a native 3D driver so is as good as the engine you decide to use. This makes it a bit more difficult.
B3d is a tried and tested DX7 engine with lots of extras.
B3d is windows only so, if you plan cross-platform then Bmax is the way forward.
If you own B3D, know how to use it and are looking at windows only then B3D is a good option if you're happy with DX7 limitations.
So, what do you want to do?

I would like to make an epic 3D game that I could eventually sell.
Windows probably has a big enough market, because I don't expect
this to be the next Halo, lol.

Although Blitzmax certainly is appealing...

What kind of 3D engines might I use for BlitzMax?
Would you mind listing a few?


And also how big are the limitations for DX7?


Thanks if you can answer any of these questions,

The Mighty WERDNA(Lord Of Darkness)

BlitzMax 3D engines list. :-)

how big are the limitations for DX7?


non-existant if you don't plan to use DX8+ functionality.
What functionality are you expecting to use in your epic 3D game?
TBH if you're only in the 'thinking about it stage' you might as well use B3D, get a prototype working then port it across to whatever is available in 6-12 months time.

Is Blitz 3D better at 3D then BlitzMax? or are they about equal?

No and no i reckon.

-Blitz3D is a DX7 engine with its own built in compilable "language" (i would more class it as a powerful "script" really as it only has one purpose, to program the engine.

-Blitzmax is a general purpose oop-capable language, useable in theory with any (wrappable) SDK. Blitzmax can be used proceduraly in the same way as B3D/Basic or objectively.

If MAX had a supplied 3D engine module then "Blitz3D" would be pretty much obsolete as it would be as easy and same to use. Until then weve got minib3d which is getting good and feels more or less the same as b3d. Or you can use irrlicht or leadwerks or something if you are an experienced programmer.

Is Blitz 3D better at 3D then BlitzMax? or are they about equal?
Yes as long as you can use Leadwers engine, Flow3D, irrlitch, miniB3D, Blitz3D SDK, etc..

@Brucy, thanks for the link ^_^

@tonyg I fear I am still in the thinking about it stage :( I like your
idea though of just doing the prototype, and then going from there.

@D4NM4N Thanks for the info, and I am a fairly experienced
programmer. I can make just about any kind of game I want, but I still
have a lot to learn, especially with networking.

@Ziggy MiniB3D sounds pretty good, I'll have to check that out!


Thanks everyone for as always, being so incredibly helpful to a poor
noobish immortal demon lord of death :(


The Mighty WERDNA(Demon Lord Of Death)

Well, just as a matter of common sense
can you seriously assume that a programming language developed by a small company , regardless of their skill, and used by a small comunity can compete or even be better than programming languages developed by MS or other industry giants and used by milion people?


As a "Natural Born MS basher" I just wanted to remind you that MS has "developed" very few languages themselves. Both C/C++ (yesterdays giants) where invented and developed in Unix systems (C was more or less invented to write the first portable Unix kernels).

It is a fact that MS "invented" C# but why did they do that? Because Sun invented Java and MS made their own implementation and started (as is their usual routine) to add their own extension API's to make it a minefield for developers to write a real cross-platform application (which was the #1 goal of Java in the first place).

When MS released their "Java bastard" that broke compatibility with all OS's except MS Windows (naturally) Sun decided to sue Microsoft and they won. Microsoft withdrawed and stopped developing MS-Java...

... But only to come back with their new "Innovation" called C# (and .NET) that is almost a pure Java ripoff. As a Java developer I can say that 90% of the libs in C# are so similar to Java I can use them right away. Of course Microsoft did not "invent" C# out of good will, make no mistake about that. C# naturally only got MS support on Windows ...

Some will say "what about mono?" etc. and while I sympathize with the mono project they are far behind .NET 3.5. LinQ does not work and there is only a subset of the libs of 3.5 ready.

(note: I don't bash all MS products. Windows XP and SQL Server 2000(+) are very good products, I just bash some of MS business practices. Examples: Embrace and extend. Buy out or fund rival products and give away for free to kill out the competition)

MS has "developed" very few languages themselves.
Well considering their first ever big product (DOS) was bought (for next to nothing) from a friend of bill when IBM were so desparate, i wouldnt be surprised if 80% of their "development" wasnt with the wallet and lawyers rather than programmers.

sorry

Mahan

I dont know what your working experience is
However I have been working for many years for a multinational group
I can assure you that companies are full of " unnapreciated genius "
They can actually be smart guys but up to a certain extent they are also harmful for the company because they are completely lacking of the common sense
As a marketing man but with an engineering background I have had hard times to have to deal with these brilliant lonely wolves

I dont know of course whether MS have actually stolen other products but a organization is also founded on the so called " Aurea mediocritas "

It useless to have a bright idea if your product is also non well documented , full of minor but annoying bugs and so on

@Alberto:

I've worked in the software development industry for 13 years now. I've worked as Software Developer, Application Architect and Technical Project Leader (managing a group of up to 7 people).

The "unappreciated geniuses"-problem you talk about is, in my opinion, mostly a matter of company policy. I'd say there are three alternatives on how to "tame" these people:

1.) Make them appreciated geniuses instead (if they are really that smart). Talk to them about the relations between appearance/teamwork/documentation/testing/software quality and a bigger paycheck.
2.) Put them down (gently) if they think they are smarter than they are. This is imho an even more common: People that think they are geniuses when they are in fact average. In one company where I helped with the recruitment process, we put the applicants through a one hour programming test where the last assignments where quite advanced.
3.) If #1 and #2 fails, have this employee replaced with another one.

I was however talking about business practices and while i understand and work with budgets and the need of growth in a professional business setting I still think that companies should try to be "ethical".

A starting point for info about MS criticism might be here:
http://en.wikipedia.org/wiki/Criticism_of_Microsoft

There was some stuff I read a while back about MSofts working practices which was slightly unpalatable - buying up senior Borland developers that could not be bought - everyone has their price. Still, I am not an Microsoft basher and think their VB6 and VB.net products are well developed/supported - they should be and are. I've learnt and used VB6 to a great extent of my own back - mainly for GUI applications - and have studied VB.net at college recently which I did not too badly at. Microsoft are not lucky(?) enough to be supported by the ilk of the indivivduals on these forums. That is BMax and B3D's strengths in my book, good products supported by an exceptional forum.

To drift back towards topic BMax is a great product within its field thanks to the c (ooo, not my cup of tea thankyou unless necessary) blah.

By the same token B3D does very well within its remit when tied to some of the very brilliant 3D engines that are available - my one of choice at the mo is JV-ODE.