Wednesday, December 18, 2002

Dangit! I was so ready to get started on FOO... I took one last search through various languages online and found a few more of note... especially Kiev and Pizza
These both seem to be brilliantly designed languages and implement much (but not all) of what I was after. Mainly, Kiev's AI engine.
However, there is the main drawback that they're both implemented IN JAVA. I have nothing against java, its just that, LIKE VS.NET, you need to download the freakin' runtime ! gah!

not to mention that any programming language with an average speed comparable to VISUAL BASIC is just embarrassing. There's no other word for it. Such elegance is wasted ON HIDEOUS bytecode... and I'll tell you something ... A UofA alumni told me a story about when he took CSC 369? maybe he meant ECE 369? ... essentially you learn about machines, OSes, compilers, etc ... at any rate, for some reason or another, for part of a rather large project, he needed to look into understanding java bytecode... he told me it was the ugliest stuff he had ever seen.... no comment.

So anyway, I need to rethink how I will implement the logic engine, since Kiev's AI engine has quite a bit of elegance to it ... they took the so-called "AI engine" a bit further than I did, and implemented full-on rules, as well as using the @= sign to represent sets of rules (sort of like Icon's '!' bang operator, or C#'s 'foreach' statement.)
That's pretty darn cool. I'll need to think about whether I want to support full-on prolog-style predicates.

Of course, FOO will have the 'suspend' statement. Actually, so will C#, soon... I forget what they're going to call it... supposedly the same as Ruby's ... something like wait or hold or join or something ... oh well.
Okay, so it has been put to my attention that I described the day as weird and totally skipped the subject by going into one of my various projects... okay. I had the MOST bizarre talk online with a friend about the perkiness of ... um... *stuff* in her artwork....'nuff said. =P

Hmm.... what else... Ah yes, today is the day before D-Day... The day before I go to the Planetary Sciences building and plead for a job programming in Java... right after finishing my C# final ... ugh ... I'm going to need to finish it early ... arrrgh !
I had a talk with a friend about the time he whacked another friend in the head with a 2-foot rubber dildo ... we won't get into details, suffice to say that it was not a sexual gesture in any shape or form! =)

Umm... studied. Have decided to sell the Kaoh khen ... :-(

Music of the moment: The Radetsky March .
Today was weird. I added more design specifications to Parasite. All I really need to do right now is copyright all my junk, and then I'll be able to post information on FOO and Parasite. (remember, foo is just a project name... once I figure out a cool language name, it'll switch. |:-D ) I've been searching the web and found a lot of interesting information on programming languages. I even found some languages which were undergoing the process of integrating some of the things I'm doing with FOO ... but they all look ugly to me ... I'm making FOO as closely related to the standard style family of programming languages (Icon/Java/Javascript/C/++/#) as possible. At any rate, I'm making foo emulate C/++/#/Java because A: it's a hellofalot easier than making a language from scratch and B: people will pick up on it QUITE easily. It's basically C++/# with more OPTIONS ! (if you think of it as the child of C++, then you can imagine ALOT more options =P )
The main goal of FOO was just to make a C++/# - esque programming language that was FASTER than VISUAL BASIC (gaaaah!) easier to read and use, to add various small aspects of other languages that I enjoyed, and work around the more arbitrarily complicated aspects of the languages and their family. NOT to mention, that I rather like the idea of being able to implement a DirectX application in C# ... alas ... C# isn't what one would call "time-critical".
I will begin by implementing a "quick and dirty" linux FOO2C++ translator... which'll be called Parasite.
I'll also run some benchmarks on the speeds of applications run in VC#, VC++, and VC++ dlls run from VC#. The benchmarks will focus on pointer manipulation.