Let's look at this blokes original post shall we?
Quote: "I've recently been doing a lot of programming in decent languages(C++, lua) and my eyes have been opened."
Notice how he starts off by saying "decent language". DarkBASIC Professional IS a decent language. As a prototyper, quick development, and hobbiest language. DarkBASIC Professional fits the bill wonderfully. It's cheap, it does alot of the work for the user with easy commands, and supports everything that is nessassary to make games. Sure they might not be optimised as much as the quake engines, or run as fast as pure C++. But the commands are close to common sense english, the reasoning, layout and logic of the commands works great!
Quote: " After coming back to DBPro to write a small example I noticed many limitations with the DBPro language that just make no sense and do nothing but impede development time and make using the language much harder for many users, especially beginners."
You're not a beginner dude.You're not talking from the beginner end of the market. You're taking experiences gained from the other major languages. Which clearly you're fairly good at, then applying them, pretending to know what is, and isn't easy for beginners dude.
News flash! If C++ or Lua or whatever was that easy, then DarkBASIC Professional wouldn't have a market. The BASIC standard was invented for beginners. A tredition that DarkBASIC Professional does very well.
"Keep in mind, while some of these issues can be worked-around"
You are again, pushing other non-BASIC language standards ont DarkBASIC Professional. Your "work around" is just a negative way of saying. "You can do it"... well, if we can do it, why are you complaining? It's not like what you're bringing up can't be done. It just means you're so infexible, that you don't want to do it in the method that is required.
Another sign of a control freak I feel.
1-1) Lack of arrays in UDTs
Haha, and you think a "beginner" would know what a UDT is? User Data Types, work fine. I have on complaint with them. I've had no problems assigning arrays to datatypes. This is more than enough in the majory of cases. In fact it helps organisation. You have #Constants, Data Types, Globals, Arrays. Structure them properly at the beginning of the program, and the code looks perfectly neat.
To any flexible programmer this isn't a big issue to work around. Again it just means structuring your code a little differently compared to the other languages.
1-2) The inability to return a UDT from a function
Functions return local variables. If you want to update them, make them global. Works fine for me! As long as the variable is global it can be updated on the fly. If it isn't you just return the variable to the program loop. Easy peasy.
As for having Myvar as mydatatype within a function. Just stick it at the beginning of the program dude, and make it a global. Stick a quick comment after it saying what it is and you're set.
1-3a) Global variable declarations have to be 'executed' for initialization to happen
Just stick it in a subroutine, then write the subroutine in another source file. Sorted.
1-3b) Global array declarations have to be 'executed' for initialization to happen
Again, subroutine. Are you really sitting the complainin that DBPro has to "run commands" before they work? lol, this isn'tan OOP language. And as a "beginner" I can certainly see the logic of a program having to "run through commands one by one". Which is all DarkBASIC Professional is doing here.
1-4) The inability to pass UDT data from an array to a function
Quote: "This limitation makes even less sense, you can pass the contents of arrays that use any of the basic types to a function and you can assign the contents of any kind of array to a variable, but you can't pass a UDT array's contents to a function??? This limitation is again totally arbitrary and does nothing but impede development and confuse beginners."
You're not a beginner dude. I can't say it confused me any. As a beginner I was barely aware what an array even was! When I did find out, I cna safely say that I didn't notice this "limitation" lol. Again you're talking from the high end of the market. Please don't talk about beginners as it's clear to me. You've lost the ability to think like a beginner. You are once again speaking from your experiance with high end languages.
1-5) The lack of a distinct 'elseif'/'else if' statement
Use the Case statement dude. That's what it's there for.
1-6) Inability to do complex statements on 'exitFunction'/'endFunction'
The inability to do something like: 'endFunction something * 5'
err, how about you just do.
something = something * 5
endFunction something
Or just have:
something = functionname()
something = something * 5
or
something = functionname() * 5
Seriously this is nit picking at best. Hardly a difficult bit of programming.
1-7) No function overloading
Oh yes, as a "beginner" functionoverloading is always on my mind... It's not at all the first time I've heard the term at all! Yes, this is Irony.
2-1) Lack of option explicit
Quote: "Some users believe the ability to randomly use variables without declaring them beforehand is a feature, while this may be true, you should also have the ability to disable it as it can very quickly lead to issues that are very hard to debug."
Oh no! We can create variables on the fly! The HORROR!
2-2) Vectors and matrices aren't basic types
No comment here, I'm a beginner. I'll just load in my models, play the animation an go "awesome, that was soo easy"
2-3) No methods in UDTs
Dude your obsessed with User Data Types. Seeing UDT again, just made me skip over what you said.
2-4) No references
I got bored at this point, and decided to go hit my head against the wall repeatedly.
Darkcoder has basically out grown DarkBASIC Professional. I can see that. Fine, good for him. He can go use DarkGDK, or move to another language entirely.
But. As a True Beginner. I'm dead chuffed that I managed to produce a great pong game inside of a month with barely any coding skills at all. DarkBASIC Professional, has taught me alot, many of the skills I'm told are transferable to other languages. All this for the price of a new game! I've seen collages, and schools using DarkBASIC and DarkBASIC Professional to teach with.
I just hope, when I'm skilled enough to move to another langauge. I won't be like Darkcoder. Who's basically not willing to move on, he's obsessed with DBPro, and simply trying to drag it behind him. Shape it into whatever new standards he's learned. Just so he doesn't have to say goodbye to it.
Darkcoder it's clear DarkBASIC Professional has done alot for you! Rather than complaining about what you CAN'T do in it. Perhaps you should just smile, thank TGC and move on.