<!-- MHonArc v2.4.4 --> <!--X-Subject: Re: [MUD-Dev] Languages for MUD drivers --> <!--X-From-R13: X Q Znjerapr <pynjNpc.arg> --> <!--X-Date: Wed, 17 Nov 1999 17:30:43 -0800 --> <!--X-Message-Id: E11oGPH-0004MJ-00@under.eng.cp.net --> <!--X-Content-Type: text/plain --> <!--X-Reference: E11nY0E-0006Ai-00@kanga.nu --> <!--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:claw@cp.net"> </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="msg00333.html">Previous</a> | <a href="msg00335.html">Next</a> ] Thread: [ <a href="msg00412.html">Previous</a> | <a href="msg00347.html">Next</a> ] Index: [ <A HREF="author.html#00334">Author</A> | <A HREF="#00334">Date</A> | <A HREF="thread.html#00334">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>: J C Lawrence <<A HREF="mailto:claw#cp,net">claw#cp,net</A>></LI> <LI><em>Date</em>: Wed, 17 Nov 1999 17:30:39 -0800</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 03:01:55 +0100 Laurent Bossavit <laurent#netdive,com> wrote: > Hi all, As my quest for the perfect M* server design continues > (I've been a deep lurker on the list for over one year, though > some of you might remember my interest at one time in porting > LambdaMOO to Java (done, but not the panacea I hoped)) I am more > and more convinced that the crucial parts are the underlying > (implementation) and visible (world- building) languages - ideally > both being the same. Having recently put this critter into the Library, Momoko comes to mind. Rather a cute looking beast. It is written in Java with a variety of Python and JPython supports, with the internal programming language being either (your choice, makes no difference) Java or Python. I've been meaning to look into their data handling model. > 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') Give the man a cigar. The same topics are regularly featured here. Have you looked at Arjuna? A rather interesting system if, now, less publicised that it was. I think I still have the pre-commercial tarballs about somewhere. > If we assume a language with the above properties, writing a M* > driver is almost trivial. A toy idea of mine has been to hack Python into being a truly persistent language. It already is (reasonably) thread safe (single lock), and then run that in normal DB style atop a lockless DB using something like CoolMUD's RPC model. > A thin layer of network code will handle client connections; a > command parser will probably provide the most challenging exercise > in low-level programming, writing core character/monster/item > classes would almost belong to the 'world design' category. And is the greater volume of the work required. You can write a server with an embedded language in a few thousand lines of code. The game world takes several hundred thousand lines with a much higher density of function points. > I've recently been looking a dozens of languages old and new to > see if any fit the bill - I'll mention as a random selection > Obliq, Phantom, Oz, Erlang... So far only one actively supported > language comes really close, E (www.erights.org). I'd probably head for Python as being "almost there", and actively enough developed to get there fairly quickly. The extensions for distribution and implicit transactions aren't too too foreign to the language as is (you can probably get away with faking the disribution piece and letting logical consistency be handled at the app design level rather than the programming paradigm). <reader a bit further into E> Neat stuff. The following comment is very telling: "For 25 years the Actor tradition assumed that in order to do concurrency control right, we had to give up sequentiality. While the invention of this deadlock-free alternative may have required this premise, once invented, E shows it coexists with sequential programming perfectly well, producing the first Actor language that's easy to learn." With the last phrase needs some supporting, the base assertion is bloody fascinating. Thanks I wasn't aware of E -- added it to Top/Programming/Languages/Scripting. -- J C Lawrence Internet: claw#kanga,nu ----------(*) Internet: coder#kanga,nu ...Honorary Member of Clan McFud -- Teamer's Avenging Monolith... _______________________________________________ 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--> <UL><LI><STRONG>References</STRONG>: <UL> <LI><STRONG><A NAME="00259" HREF="msg00259.html">[MUD-Dev] Languages for MUD drivers</A></STRONG> <UL><LI><EM>From:</EM> "Laurent Bossavit" <laurent@netdive.com></LI></UL></LI> </UL></LI></UL> <!--X-References-End--> <!--X-BotPNI--> <UL> <LI>Prev by Date: <STRONG><A HREF="msg00333.html">Re: [MUD-Dev] code base inquiry</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg00335.html">Re: [MUD-Dev] code base inquiry</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg00412.html">Re: [MUD-Dev] Languages for MUD drivers</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg00347.html">[MUD-Dev] Languages for MUD drivers</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#00334"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#00334"><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> <LI><strong><A NAME="00411" HREF="msg00411.html">Re: [MUD-Dev] Languages for MUD drivers</A></strong>, J C Lawrence <a href="mailto:claw@cp.net">claw@cp.net</a>, Fri 19 Nov 1999, 23:37 GMT <UL> <LI><strong><A NAME="00412" HREF="msg00412.html">Re: [MUD-Dev] Languages for MUD drivers</A></strong>, Laurent Bossavit <a href="mailto:bossavit@cybercable.fr">bossavit@cybercable.fr</a>, Sat 20 Nov 1999, 00:39 GMT </LI> </UL> </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 <UL> <LI><strong><A NAME="00415" HREF="msg00415.html">Re: [MUD-Dev] Languages for MUD drivers</A></strong>, J C Lawrence <a href="mailto:claw@cp.net">claw@cp.net</a>, Sat 20 Nov 1999, 00:49 GMT </LI> </UL> </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>