View Single Post
Old 03 June 2015, 20:29   #181
Mrs Beanbag
Glastonbridge Software
Mrs Beanbag's Avatar
Join Date: Jan 2012
Location: Edinburgh/Scotland
Posts: 2,202
Originally Posted by Samurai_Crow View Post
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.
in fact you might not have to write in Assembly... i've never seen it done, but it's certainly possible to embed machine code in an AMOS procedure. The compiler does this when you produce a compiled AMOS program (as opposed to an executable). I don't know how it is actually implemented but if i could find out all sorts of options might be possible. Although it would be a lot more useful if you could include one AMOS program from another (without having to actually copy and paste the entire thing). Complete lack of code-sharing is one of AMOS's drawbacks.

Also it would be nice if the syntax for procedure calls were the same as for built-in/extension functions. There are a lot of odd design decisions like that in it.

btw AMOS isn't an "Extensible Programming Language". It has an extensible interpreter, but that's not the same thing. You can't extend the language from within the language itself, and the things you can do in an extension are quite limited. The best thing AMOS could possibly get is a way to extend it by providing more data types. You only get integers, strings and floats. Composite data types are really a basic essential in modern programming.

I've thought about ways to rewrite AMOS to address these issues while maintaining compatibility of Ascii-exported programs. Having such a monolithic programming environment has its drawbacks. The other thing i encountered recently is the problem that there are only 26 slots for extensions, but there are a lot more than 26 different extensions out there. Something more like a Python module would be much better, so at the start of the program you could IMPORT the extensions that you used.

Originally Posted by Samurai_Crow View Post
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.
It keeps being done because it is very useful, but i really don't know what you mean by cryptic punctuation marks. There's nothing particularly cryptic about using a dot to access object members, and "limiting keystrokes" barely scratches the surface of why code re-use is a Good Thing. Who in the Amiga community hasn't complained about code bloat on Windows?

It doesn't just save typing. It makes it easier to read, understand and maintain, and structure makes it easier to reason about. If you want something so simple as a bunch of sprites wandering around, each one has an X co-ordinate and a Y co-ordinate and an image number, and you'd really prefer to store those in three separate arrays? Because that's what we've got to do without any composite data types. The type system also guards against programmer mistakes.

Also you can add commands to pretty much any language, especially C++, it's called a library. Pretty much none of the high-level functionality of C++ is built in. You can't add control structures, but then you can't do that with an AMOS extension, either.

Originally Posted by Samurai_Crow View Post
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.
"Alternate-text" sums up the problem right there, treating blind people as second-class users. They have to use the back entrance.

Last edited by Mrs Beanbag; 03 June 2015 at 20:45.
Mrs Beanbag is offline  
AdSense AdSense  
Page generated in 0.05722 seconds with 9 queries