<!-- MHonArc v2.4.4 --> <!--X-Subject: Re: [MUD-Dev] Languages for MUD drivers --> <!--X-From-R13: Qlaor eh Fnera <plaorNzhd.bet> --> <!--X-Date: Mon, 15 Nov 1999 21:12:03 -0800 --> <!--X-Message-Id: 199911160506.XAA32153@laurel.actlab.utexas.edu --> <!--X-Content-Type: text/plain --> <!--X-Head-End--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>MUD-Dev message, Re: [MUD-Dev] Languages for MUD drivers</title> <!-- meta name="robots" content="noindex,nofollow" --> <link rev="made" href="mailto:cynbe@muq.org"> </head> <body background="/backgrounds/paperback.gif" bgcolor="#ffffff" text="#000000" link="#0000FF" alink="#FF0000" vlink="#006000"> <font size="+4" color="#804040"> <strong><em>MUD-Dev<br>mailing list archive</em></strong> </font> <br> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] <br clear=all><hr> <!--X-Body-Begin--> <!--X-User-Header--> <!--X-User-Header-End--> <!--X-TopPNI--> Date: [ <a href="msg00264.html">Previous</a> | <a href="msg00266.html">Next</a> ] Thread: [ <a href="msg00347.html">Previous</a> | <a href="msg00317.html">Next</a> ] Index: [ <A HREF="author.html#00265">Author</A> | <A HREF="#00265">Date</A> | <A HREF="thread.html#00265">Thread</A> ] <!--X-TopPNI-End--> <!--X-MsgBody--> <!--X-Subject-Header-Begin--> <H1>Re: [MUD-Dev] Languages for MUD drivers</H1> <HR> <!--X-Subject-Header-End--> <!--X-Head-of-Message--> <UL> <LI><em>To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI> <LI><em>Subject</em>: Re: [MUD-Dev] Languages for MUD drivers</LI> <LI><em>From</em>: Cynbe ru Taren <<A HREF="mailto:cynbe#muq,org">cynbe#muq,org</A>></LI> <LI><em>Date</em>: Mon, 15 Nov 1999 23:06:09 -0600</LI> <LI><em>Reply-To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI> <LI><em>Sender</em>: <A HREF="mailto:mud-dev-admin#kanga,nu">mud-dev-admin#kanga,nu</A></LI> </UL> <!--X-Head-of-Message-End--> <!--X-Head-Body-Sep-Begin--> <HR> <!--X-Head-Body-Sep-End--> <!--X-Body-of-Message--> <PRE> On Tue, 16 Nov 1999 "Laurent Bossavit" <laurent#netdive,com> wrote: | I am more and more convinced that the | crucial parts are the underlying (implementation) and visible (world- | building) languages - ideally both being the same. | | [...] | | A lot of the issues M* server designers and implementors struggle | with are in fact active areas of programming language research. These | are in approximate order of importance (for M* writers!) | - distributed processing support (for large worlds) | - concurrent processing support (for reactive worlds) | - object orientation (for modular worlds) | - object persistence (as in MOO) | - run-time mutability (aka dynamic recompilation, as in MOO/ColdC) | - reflective capabilities (so programs can modify themselves) | - security (to enable in-game access to world code by 'wizards') That's pretty close to the set of design goals I've used in the Muq design and implementation. Personally, I would add to the list: - multi-user (This is -not- the same as "security" above) - disk-based for large dbs (This is -not- the same as "persistence" above) I would also suggest that "object persistence (as in MOO)" might understate the design issues: "distributed", "persistence" and "multi-user" all introduce new issues dealt with glancingly or not at all by the mainstream OOP literature, such as: * What happens to existing instances of a class when it is redefined? (CLOS addresses this, Smalltalk, C++ &tc do not.) * When is an object O to be considered an instance of a class C? (Nontrivial in the distributed context if O and C can be on separate servers, and perhaps with multiple class instances purporting to define C present on multiple servers and likely evolving independently.) * Who is allowed to update, subclass and instantiate a given class? A bad answer here can saddle the system with intractable security and/or maintainability answers. | If we assume a language with the above properties I think "language" is the wrong concept here. The above constraints all really apply to the underlying virtual machine and runtimes, and have virtually nothing to do with surface syntax. Reflect that the Java virtual machine, just like the Intel x86 architecture, can be programmed in any one of a number of languages, including Java and Scheme. The particular syntax chosen will not affect any of the above properties, really, modulo perhaps oddities in the particular OOP model assumed by the language spec. The conspicuous failure of half a centuries' worth of religious wars over language syntax to produce a concensus One True Faith suggests that as a practical matter, a system aspiring to attract and retain a diverse virtual community will probably need to be theologically fairly neutral and support most of the major syntactic faiths. Muq, if it matters, has a well-developed Forthish syntax, a rapidly evolving C/Perlish syntax, and a half-finished Lispish syntax, with more likely to appear shortly. Adding C-ish syntax support added maybe 1% to total system lines-of-code count, which I think is a pretty fair measure of how significant language syntax issues are to overall system design and implementation in virtual world servers of this class. | The underlying (implementation) and visible (world- | building) languages - ideally both being the same. I do not find this obvious. Unless I am clearly the dumbest person on the list, it might be worth expanding on this. Typically different design requirements call for different engineering solutions, and it would seem that the above two problems have very different design requirements. Picking a single wide-spectrum language is a a legitimate design choice, but "the jack of all trades is master of none," and it is not obvious that one jack is necessary better than than two masters. IMHO. :) | Phantom, Oz, Erlang... So far only one actively supported language | comes really close, E (www.erights.org). It's unfortunately not quite | finished yet - the language spec itself is still evolving and | persistence is not implemented They've claimed to be inspired in part by Muq, at least on occasion. :) E is an interesting effort, certainly one of the few real attempts to innovate of late. I'm a bit skeptical of how well some of their design ideas will fare in the real world, but that's pretty normal with real innovation -- time will tell! Given the amount of effort you've put into evaluation, it would be a service to the list if you'd sketch concisely the weaknesses and strengths of the systems you've looked at, and why E tops your evaluation. Assembling something in Java based on various off-the-shelf subsystems (Voyager &tc) is another alternative you presumably evaluated? Cynbe _______________________________________________ MUD-Dev maillist - MUD-Dev#kanga,nu <A HREF="http://www.kanga.nu/lists/listinfo/mud-dev">http://www.kanga.nu/lists/listinfo/mud-dev</A> </PRE> <!--X-Body-of-Message-End--> <!--X-MsgBody-End--> <!--X-Follow-Ups--> <HR> <!--X-Follow-Ups-End--> <!--X-References--> <!--X-References-End--> <!--X-BotPNI--> <UL> <LI>Prev by Date: <STRONG><A HREF="msg00264.html">Re: [MUD-Dev] Languages for MUD drivers</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg00266.html">[MUD-Dev] Library news</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg00347.html">[MUD-Dev] Languages for MUD drivers</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg00317.html">Re: [MUD-Dev] Languages for MUD drivers</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#00265"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#00265"><STRONG>Thread</STRONG></A></LI> </UL> </LI> </UL> <!--X-BotPNI-End--> <!--X-User-Footer--> <!--X-User-Footer-End--> <ul><li>Thread context: <BLOCKQUOTE><UL> <LI><STRONG>RE: [MUD-Dev] Languages for MUD drivers</STRONG>, <EM>(continued)</EM> <ul compact> <ul compact> <LI><strong><A NAME="00308" HREF="msg00308.html">RE: [MUD-Dev] Languages for MUD drivers</A></strong>, Laurent Bossavit <a href="mailto:bossavit@cybercable.fr">bossavit@cybercable.fr</a>, Wed 17 Nov 1999, 21:25 GMT <UL> <LI><strong><A NAME="00350" HREF="msg00350.html">RE: [MUD-Dev] Languages for MUD drivers</A></strong>, Ian Macintosh <a href="mailto:iman@issystems.co.nz">iman@issystems.co.nz</a>, Thu 18 Nov 1999, 07:34 GMT </LI> </UL> </LI> </ul> <LI><strong><A NAME="00334" HREF="msg00334.html">Re: [MUD-Dev] Languages for MUD drivers</A></strong>, J C Lawrence <a href="mailto:claw@cp.net">claw@cp.net</a>, Thu 18 Nov 1999, 01:30 GMT </LI> <LI><strong><A NAME="00347" HREF="msg00347.html">[MUD-Dev] Languages for MUD drivers</A></strong>, Petri Virkkula <a href="mailto:pvirkkul@iki.fi">pvirkkul@iki.fi</a>, Thu 18 Nov 1999, 07:34 GMT </LI> <LI><strong><A NAME="00265" HREF="msg00265.html">Re: [MUD-Dev] Languages for MUD drivers</A></strong>, Cynbe ru Taren <a href="mailto:cynbe@muq.org">cynbe@muq.org</a>, Tue 16 Nov 1999, 05:12 GMT </LI> <LI><strong><A NAME="00317" HREF="msg00317.html">Re: [MUD-Dev] Languages for MUD drivers</A></strong>, Laurent Bossavit <a href="mailto:laurent@netdive.com">laurent@netdive.com</a>, Wed 17 Nov 1999, 23:19 GMT </LI> <LI><strong><A NAME="00351" HREF="msg00351.html">Re: [MUD-Dev] Languages for MUD drivers</A></strong>, Cynbe ru Taren <a href="mailto:cynbe@muq.org">cynbe@muq.org</a>, Thu 18 Nov 1999, 07:34 GMT </LI> <LI><strong><A NAME="00344" HREF="msg00344.html">RE: [MUD-Dev] Languages for MUD drivers</A></strong>, Cynbe ru Taren <a href="mailto:cynbe@muq.org">cynbe@muq.org</a>, Thu 18 Nov 1999, 07:34 GMT </LI> <LI><strong><A NAME="00354" HREF="msg00354.html">Re: [MUD-Dev] Languages for MUD drivers</A></strong>, Cynbe ru Taren <a href="mailto:cynbe@muq.org">cynbe@muq.org</a>, Thu 18 Nov 1999, 07:44 GMT </LI> </ul> </LI> </UL></BLOCKQUOTE> </ul> <hr> <center> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] </center> <hr> </body> </html>