Since we're creating a new language, who says we can't create an entirely new way of thinking about concepts. Kittahs obviously do this already.
I propose that data types be called “things”.
Define a thing using a single command:
I HAS A [thing-name] IZ [type of thing] (I TAKE FROM [source])
Unset a thing using a similar command:
I HAD A [thing-name]
The I TAKE FROM paramater is optional depending on the type of thing.
Here's some examples of things we could have:
BUKKIT (default) - a variable (string, integer, whatever - do cats REALLY know the difference? the point being - a bucket can hold pretty much anything anything)
FILE - a file contruct - specify file location as [source]
GRAFIK - an image holder for manipulation
Finally, a construct to issue thing-specific commands:
WIT [thing name] I [command] (INTO [destination])
For example, to read a line from a file opened as “file_holder”
WIT file_holder I READED A LINEZ INTO text
In my example I'm putting thing-names in lowercase for legibility and I think it should just be a general rule anyway) Using those things above, we could do something like this:
BTW This code asks for some text, loads cat.jpg, adds the text to the image, and saves the file. HAI BTW Defining Bukkit thing I HAS A text BTW Get text from user GIMMAH text BTW load the file and transfer it to a GRAFIK thing I HAS A file_holder IZ FILE I TAKE FROM "cat.jpg" I HAS A image_holder IZ GRAFIK I TAKE FROM file_holder BTW Place text on image WIT image_holder I PUTS WHITE TEXT text BTW Save the image to the file holder WIT image_holder I JPEGS INTO file_holder WIT file_holder I SAVES LOL "I DIDS IT!" KTHXBYE
It's at least the start of a rather silly idea…
— orange haired boy, 2007/05/30 18:04
I think the WITH … I … would be a nice way to call functions in objects. But I think the function names should be one word only, so it would be
WITH image_holder I JPGEGS_INTO file_holder
I also like the idea of different types of variables, but I don't think we need to specify it. Java for example loves specifying things hundreds of times, and it makes no sense:
MyClass something = new MyClass();
It is obvious that something is a MyClass and whatever MyClass inherits or implements. This means that we could just have
I HAS A file_holder ITZA FILE WITH "cats.jpg"
— Marius, 2007/05/30 18:18