Lots of questions about BlitzMax

Miscellaneous Forums/General Discussion/Lots of questions about BlitzMax

I am doing a report on BlitzMax. It's due in a week. Thanks for the help.

1. What are UTF16 strings?

2. Is there a comparison of costs (in dollars) of purchasing programming languages compared to blitzmax somewhere? Is blitzmax relatively cheap? Or are those free c++ compilers a good option? This would be handy to make a chart.

3. Is there a comparison somehwere of the speed of blitzmax to other languages? Even if it is just a test of sprites or seomthing I just need some numbers to make a chart.

4. What about compilation time, is blitzmax relatively slow or fast at that?

5. Why are special words keywords and not reserved words? Meaning is there any advantage to having it so some commands be used as a variable?

6. What are the advantages of blitzmax over C++?

7. Has anyone recorded the time it took to make a game in C++ versus the time it took to make the same game in BlitzMax? Even if its not that accurate, if someone could throw out some numbers for me that would be fine.

8. Is there a formal description of the language?

9. "External language support for interfacing with C/C++/ObjectiveC or assembly code" Is that talking about DLL's? what is ObjectiveC?

10. BlitzMax is compiled, but what makes it slower than C++? Is it that C++ makes better assembly code? is it that some of blitzmax isn't actually compiled?

1. What are UTF16 strings?

Unicode strings that use 16 bits storage per character instead of the traditional 8 bits like ascii strings.

2. Is there a comparison of costs (in dollars) of purchasing programming languages compared to blitzmax somewhere? Is blitzmax relatively cheap? Or are those free c++ compilers a good option? This would be handy to make a chart.

No

3. Is there a comparison somehwere of the speed of blitzmax to other languages? Even if it is just a test of sprites or seomthing I just need some numbers to make a chart.

Yes, sure someone will post alink...

4. What about compilation time, is blitzmax relatively slow or fast at that?

Fast.

5. Why are special words keywords and not reserved words? Meaning is there any advantage to having it so some commands be used as a variable?

Reserved words are used internally by the language, like for while ptr chr etc. I would put keywords under the catagory of documented functions from the standard BlitzMax modules, commands that are written in BlitzMax the language that help make up BlitzMax the product.

6. What are the advantages of blitzmax over C++?

90% of C++ programmers successfully use C++ to produce spangled piles of unintelligible spaghetti, there are also many styles of C++ programming so it is often extremely difficult to feel at home in someone else's code.

7. Has anyone recorded the time it took to make a game in C++ versus the time it took to make the same game in BlitzMax? Even if its not that accurate, if someone could throw out some numbers for me that would be fine.

there are several success stories available of blitzmax projects completed in record time, bit daft to try and make direct comparisons or to infer that programming tools make any significant difference to a programmers own abilities, maybe get a C++ expert with no blitzmax skills to answer that question???

8. Is there a formal description of the language?

Not a machine readable one no, the Language section of the docs are concise and accurate and use a formal tone, wit and humour have been excluded.

9. "External language support for interfacing with C/C++/ObjectiveC or assembly code" Is that talking about DLL's? what is ObjectiveC?

Its an Apple invention, kind of like c++ but not.

10. BlitzMax is compiled, but what makes it slower than C++? Is it that C++ makes better assembly code? is it that some of blitzmax isn't actually compiled?

Is it? I hadn't noticed.

How about googling and test the demo?

9. Wrong. It's not an Apple invention at all and it's really nothing like C++.
Apple adopted it as the de-facto language for OS X's GUI when they leveraged NextStep. It's basically just Smalltalk-style messaging added to standard C, whereas the C++ OOP model is based on Simula. A good description of Objective-C can be found in Wikipedia.

2. Is blitzmax relatively cheap?

Relative to it's competition, very much so, yes.

Or are those free c++ compilers a good option?

If you want to code in C++.

10. BlitzMax is compiled, but what makes it slower than C++? Is it that C++ makes better assembly code? is it that some of blitzmax isn't actually compiled?

BlitzMax is 100% compiled and very comparable to C++ speeds. Any speed difference is a direct result of C++ being a lower level language than BlitzMax - there is always a price for abstraction, but in Max's case the difference is negligable ie ease of use far outweighs any speed decrease you may (but probably won't) notice.

At any rate, the majority of Max's code is open sourced, allowing you to understand the code and make changes/optimisations/bug fixes of your own accord (always post them back up here tho if they're useful!:) and if you know what you're doing you can tinker with the assembly output as well. But you'll doubtless find that's completely unnecessary.

Thanks so much for the answers skidracer and Toby. I haven't had much time to work on this becuase I'm working in school with a lab partner.

Here's what I have so far correct me if I'm wrong.

1. UTF16 strings are unicode. I'll say "Built-in Unicode string handling."

2. BlitzMax is $80. If I have time I'll google the cost of popular languages. Just wondering if someone has already made a list.

3. I think I get the speed of blitzmax. A multilanguage graphical speed test with some numerical results would be nice.

4. Blitzmax has a low cost of compilation (in time)

5. Ok I see that you can override commands from modules with local variables. Now I just need an explination why this is allowed. Now I realize I can say, when you include any module, it won't break your code by including a function that has the same name as a variable you already had. Is that correct? like this works:
Local LoadImage=5
Print LoadImage


6. BlitzMax has a relatively small amount of commands and small amount of ways of accomplishing the same thing. This makes code more readable and more maintainable by different people. I don't know what the term for this characteristic is.

7. I want to hear some success stories of projects created in record time.

8. There is no formal description of the language but there is official documentation that is concise and accurate.

9. I'm just going to say "BlitzMax has external language support for interfacing with DLL’s."

10. Wow ok since no one had a link i took the time to search a nd I found this. On this test blitzmax was the same speed as C++
http://homepage.ntlworld.com/config/share/sieve.zip
so 10. On some tests blitzmax is the same speed as C++. Other times C++ can be faster because it can be optimized more at a lower level.

11. I know blitz3d is designed for game development, but is blitzmax?

12. I have to write something about abstraction. I don't really know what that is; my book sucks. I think it means like LoadImage is abstract compared to coding it yourself?

13. What makes blitzmax special?
So far I have:
- Easy to use graphical command set.
- Direct opengl support.
- Multiplatform support.
- A BASIC syntax with low level features.
- Is stable and tested on a variety of systems.
- Has an open source modular design.
- Rapid overall development.

14. Data types.
Integer
Float
Double
Long
Unsigned Short
Unsigned Byte
Dynamic String
No single character.
Flexible user defined data types.

When you make a function or a method abstract, it means that in the scope of that Type you cannot define it. If for instance, you create a seccond type and extend the first, you can then define that function/method.

Useful if you want to define a bunch of functions in a class (say a container class) and have the actual implementation elsewhere.

EDIT: Oh, that kind of abstraction :/

1. UTF16 strings are unicode. I'll say "Built-in Unicode string handling."
That's not entirely true tho. UTF-16 <> Unicode, UTF-16 is a subset of Unicode.

If I have time I'll google the cost of popular languages.
Most are free (as-in beer) or really expensive (as-in if you have to ask, you can't afford it).

7. Has anyone recorded the time it took to make a game in C++ versus the time it took to make the same game in BlitzMax?
No, because it would be pointless to write the same game in two different languages. However according to Fred Brooks, using a higher-level language dramatically reduces production time and cost - and he should know.

BlitzMax has a relatively small amount of commands and small amount of ways of accomplishing the same thing.
It has nothing to do with the amount of commands. Nor is it correct to say that BlitzMAX has fewer ways to acomplish the same thing as C++. What makes BlitzMAX better than C++ in this regard, is it's higher level of abstraction - not just in terms of object oriented concepts but also in language and syntax.

11. I know blitz3d is designed for game development, but is blitzmax?
Yes.

12. I have to write something about abstraction. I don't really know what that is; my book sucks. I think it means like LoadImage is abstract compared to coding it yourself?
Abstraction is a term used to describe how close a programming language is to how a human thinks, rather than to how a computer works. A language like Assembly has a very low degree of abstraction, as it works exactly the way the machine works, where as languages like Java and Python have high degrees of abstraction since they work very differently to how computers work, and more closely to how humans work. Thus a language with a high degree of abstraction requires less knowledge of how the machine works, in order to acomplish the same tasks.

How many pages does this report have to be? As I see it you got enough meat there for about a 30+ pager if you expounded a bit and had double spacing. Is this an assertion with proof or a simple discourse of opinion or is it simply a WWWWWH (Journalistic Style) report. In any instance do not forget to quote and document the people that helped you answer your burning questions! :)

In answer to all your questions:

Suck It And See

Rather crude Lowcs... but I understand your point hewever succinct... instead of asking he should do his own research and comparison then by empirical understanding.

What's so wrong with asking? Sheesh. Isn't that what we're supposed to be here for?

Thank you toby. and thanks flameduck for explaining abstraction.

The project actually has to be a 20 minute lecture. Of course I could talk for hours on blitzmax, but the goal is to every every aspect we have studied.

Here's my list:
Readability
Writability
Reliability
Cost
Orthogonality
Abstraction
Expressivity
Exception Handling
Portability
Language Category
History and Influences
Names
Data Types
Type Checking
Control Statements
Arrays

10. BlitzMax is compiled, but what makes it slower than C++? Is it that C++ makes better assembly code? is it that some of blitzmax isn't actually compiled?


First off, you can't just make blanket statements that language A is faster than language B. What you really need to compare are specific compilers( ie, vc++ 8 vs the blitzmax compiler ). And even thats iffy, from what I've seen in most benchmarks on the net. There always ends up being a lot of give and take in those comparisons. Plus people write shoddy code, or use unrealistic benchmarks.

Anways, It does come down to the code generated, and how good that specific compiler was at optimizing its input. But more importantly -- how good or bad the programmer using it was :)

For your list of items, you should really check out wikipedia. It has lots of good articles on computer languages/compiler tech.

Thanks everyone. Project done. The slideshow is online if anyone is interested. http://www.curtastic.com/excrement/blitzmax.ppt

nice slideshow.. :)

thanks