This gets in to philosophy of programming territory. There are different schools of thought on the matter, but they're all wrong but one
I'm a big believer in DRY and once-and-only-once. That conviction comes from years of programming in projects that adhere to that and projects that don't. You aren't going to unconvince me of that. It's also a fairly common attitude among pretty much everyone I've ever met or worked with. eg: OpenGL is broken claims one of the "broken" things about OpenGL is that there's too many ways to do the same thing. It's one of the major things Python is reacting to in its design (see There's more than one way to do it). Here's a dev blog from foursquare where he says (emphasis not added mind you):
On the flip side, we decided not to have deeply nested URLs, e.g. users/USER_ID/tips/TIP_ID, instead opting for flat tips/TIP_ID. This led to much simpler URLs. And having only one path for, say, the details about a tip, let us avoid making developers choose between multiple ways to do the same thing. As a bonus, this explicit, DRY approach to API design makes monitoring and debugging much easier.
If you're of the mindset that the entire community of programmers has everything wrong and are doing it wrong, you're going to find no sympathy from me; I'm one of them
...
Even if I provided 17 different ways of doing everything, it might happen that everyone that isn't you programs their bots with the "standard" instructions. It's not going to help you reading their code. Maybe you need help reading/writing your own code? Maybe you're Brazilian and you want to program in Portuguese. You can do that with the object macros. Really the object macros are in many ways more powerful than what most proper programming languages outside of C/C++ offer. There's no similar functionality in C#. It was specifically left out to avoid the sort of Preprocessor hell that many developers don't like in C/C++. I added it for Sunweaver because it was the easiest way to allow users to provide their own custom commands and extend the language, not because I think it's a grand way of organizing code.
...
Now some of the structural features DB can't incorporate as it needs to be psuedo-natural atleast.
Sure it can. You can do it in DB2 right now, eg:
' In proximate range
10 *.eye5 >
1 .up store
' In point-blank range
50 *.eye5 >
-1 .shoot store
Or in Sunweaver you can go one step further:
{eat
-1 shoot store
}
{move
1 up store
}
10 *eye5 >
move call
50 *eye5 >
eat call
1stly - Not all of the programming community thinks exactly like you numsigl. In every single aspect, nor do they all think like me. Don't believe your using the method 99% of people approve of, theres many methods people believe are right. We could go even deeper, why not just use binary. Its beautifally simple, and quick to run but instead we made, hundreds, upon hundreds of languages to program in, which do the same thing, translate it into binary. Why? because we think differently! YES, WE THINK DIFFERENTLY! I know it might be some sort of marvellous revelation to you, but if your still thinking about how it should certainly follow "99.999% of the programming community" with using DRY & OAOO then make every bit of DB3 in binary, without using any other language.
You see, Im a person who solidly hates Lua. Its just not really very simple or understandable to me, but I adore HTML and enjoy Python. Because people write things differently. Plus you'll most likely encounter the chance that one person may use multiple of the names for one command for when their doing a different task, like they might use a lot of rotation then .up in a pondmode bot, because your litterally going up, against the simulations gravity...but might use .forward in a non-pondmode sim, because your going forward and not against gravity.
Also, to your point alternative commands make it harder to read...Would you rather read 1000 lines of JAVA, or 1000 lines of SUNWEAVER or would you prefer to read 100000 lines of BINARY, because currently your suggesting you'd rather read the 100000 lines of BINARY.
Now I admit, and im happy to admit that theirs a chance I'll be the only one to EVER use the alternative commands, but that chance is tiny, absolutely tiny. And before you say that im talking balony, how many people do you know that write every part of all of the programming projects they ever do in binary, or even in the same language for every single part of every single project they've ever, and will ever do. That chance that all of them only program in binary my dear friend is tiny.
Finally to my statement that not all of the organisation things can/are implemented in DB2/DB3 is quite clear because we can't make an external file which is referenced to store X part of data, a bit like how you have a seperate CSS in HTML.
P.S. Responce to Peter talking about ruby: I might try out ruby some time then, i've heard of it but never used it or read its code...What is it used to program normally?