On Jun 10, 8:24 pm, p...@informatimago.com (Pascal J. Bourguignon) wrote: > What applets? Have you ever seen a java applet? Last time I saw one > it must have been fifteen years ago.
I have a Java applet that I use for GUI front end on some of my Lisp work - when HTML forms and pages aren't enough because I want to push to the display. It reads strings from a TCP socket connected back to the Lisp application. I used the Java introspection features to interpret limited Lispy syntax: j-exp --> (<thing> <argument-or-j-exp>) <argument-or-j-exp> --> <argument>* <argument-or-j-exp> --> j-exp where the <thing> is some member subclass or member function or variable. If there is an argument list, then if a member function named <thing> is found it called with the arguments, which must be constants. If there is no member function of name <thing>, then if there is a member scalar variable of name <thing>, then the first <argument> is coerced and assigned to that member variable. On the other hand, if there is a nested j-exp, then <thing> is taken as a member class variable, and the process starts over with that variable as context. You subclass this applet to add GUI to it, and you better like Java. Any GUI listeners in the applet have prints that send similar string expressions back to the Lisp app, which is also a subclassed from a simple prototype, and the methods are called with the instance as the first argument. Instances are generated as web browsers connect to startup routines published via paserve. N e e d l e s s t o s a y , the Java introspection side, along with the parsing of the expressions (which is about as easy of a grammar as you can get), took about 3 days, while the Lisp side took about 10 minutes to write the 5 lines needed for READing and calling APPLY. (So far I avoid JavaScript - so this whole qooxlisp thing, I don't know. Although I understand no need to actually write JavaScript, but still I try to avoid running it in the browser. But I don't know, cells sounds good to me, so this qooxlisp thing might end up changing my ways...) -- http://mail.python.org/mailman/listinfo/python-list