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//