From: thinman@netcom.com (Technically Sweet) Subject: Re: SCI: Object behavior in VR Date: Fri, 9 Oct 92 12:55:57 -0700 On Oct 6, 11:05pm, Dave Stampe wrote: } I'm not sure either Scheme or Forth are a good idea. The problem can } be summarized: is it efficient and is it required? Dave then goes on to explain that the world simulation system needs to be very efficient and so it will consist of an animation database that the programmer creates and starts rolling. Agreed. Then we parted company. He explained that the software written by the apps programmer which does this creating-and-starting should ALSO be written in C for efficiency. Why? It will only be run once. It will not be in the loop. Why does it need to be efficient? Why does it have to be compiled, thus taking up lots of precious DOS RAM? Why does it have to be written in C aka Portable Assembler? If it's written in Scheme, the deck can download it interactively over the network and run it immediately. To do this with a C program, you would have to call the C compiler as a sub-program and then load in the resultant binary. This is not a reliable method. How can you debug the code in the target deck? With an interpreted language, this is fairly trivial. After running the program, I should be able to throw it away. Scheme makes this very easy to do. How do I know what to throw away in the C binary? Another issue is that comm bandwidth is precious over phone lines, so we'll probably want to download programs that create larger programs and run the output. Rodney Brooks' AI group has a high-level language for describing robot behavior, which is compiled into LISP or various assemblers. There's no way to monitor, debug, or profile this if the downloaded program, and the generated program, are in C. I've since realized that Smalltalk is probably the best language for doing a "virtual desktop" aka a 3D real-time work environment, since user interface prototyping is exactly what Smalltalk was o developed for. GNU Smalltalk has a nice C extension interface, and comes with a DOS port (I think). It should make a very nice front end for Rend386. About being understood by the vast majority of programmers: If You Build It, They Will Come. If it's really awesome, and the source code is fairly simple and understandable, they'll make the effort to learn a new language. The ray-tracer gang has proven that the input language can be a pain in the neck and they'll still take the time to learn it :-) A good programmer can be fluent in a new language in a week.