Originally Posted by Mrs Beanbag
AMOS has some powerful features that i really love. That you can just load in IFF pictures, ProTracker mods &c, and save them along with your program, unpack the graphics and play the mod with a couple of lines... in many ways it is a dream. Easy to learn, difficult to master - but only partly because of the performance. I find i have to declare loads of variables as global, arrays can't be dynamically resized, if you want to implement any kind of data structure you find yourself peeking and poking directly into memory banks, and at that point you start to wonder if you shouldn't be using something else.
And with such arbitrary limitations, why only 8 screens? Why all the memory banks accessed by number? It's these kinds of things i find difficult to come back to after several years of C++, or even Asm.
It would be nice if AMOS could do things like
S = new Screen(320,256,16,lowres)
B = new Reserve as Chip(4096)
I've used AmosPro, C++ and Assembly. My biggest complaint about AmosPro is that you have to write in Assembly to be able to write an extension for the language. It's not OOP but rather, it's a separate programming paradigm called extensible programming.
OOP has been done to death and is fairly usable but being able to add commands to the language itself is just as useful as using a cryptic bunch of punctuation mark tokens in C++ designed to limit the number of keystrokes necessary to create common pieces of code.
Some of the limitations you described may be addressed in AmosPro 3.x but the real priority is fixing the bugs right now. At least AmosPro is open-source now including its entire programming environment. Most open-source C++ compiler sources don't include the editor and have a runtime library tied into the one that came with the OS. I'm just happy that AmigaOS didn't require a C++ programming library with the OS so we're free to use its features without being tied to a particular programming language.
Going back to the visual language idea, OS-based gadgets often have locale support built-in to the GUI framework. Using intelligent alternate-text for icons could make a graphical source code more readable to a blind person or somebody who doesn't use English as their mother-tongue.
This is my contribution to the BASIC vs. C++ vs. anything else thread.