1999Q2/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: Re: [MUD&#45;Dev] Virtual machine design -->
<!--X-From-R13: Quevf Uenl <ptNnzv&#45;pt.UenlEntr.Sqzbagba.OP.QO> -->
<!--X-Date: Sat, 17 Apr 1999 09:31:53 &#45;0700 -->
<!--X-Message-Id: 199904171621.KAA01967@ami&#45;cg.GraySage.Edmonton.AB.CA -->
<!--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] Virtual machine design</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">
</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>
[&nbsp;<a href="../">Other Periods</a>
&nbsp;|&nbsp;<a href="../../">Other mailing lists</a>
&nbsp;|&nbsp;<a href="/search.php3">Search</a>
&nbsp;]
<br clear=all><hr>
<!--X-Body-Begin-->
<!--X-User-Header-->
<!--X-User-Header-End-->
<!--X-TopPNI-->

Date:&nbsp;
[&nbsp;<a href="msg00059.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00061.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00065.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00080.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00060">Author</A>
&nbsp;|&nbsp;<A HREF="#00060">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00060">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>Re: [MUD-Dev] Virtual machine design</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] Virtual machine design</LI>
<LI><em>From</em>: Chris Gray &lt;<A HREF="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</A>&gt;</LI>
<LI><em>Date</em>: Sat, 17 Apr 1999 10:21:21 -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>
[Ben Greear:]

 &gt;4)  I think it would be pretty cool to implement such a system, just for the
 &gt;sake of coding it up, but I don't see the practical benefits.  Please
 &gt;enlighten me! :)

My reasons aren't before-the-fact reasons, but are advantages noted after
it had been accomplished. I was working on interpreters when the idea of
putting a MUD around one came up.

- if your MUD is disk-based rather than memory based, you need accessor
    functions to get at things. When you are planning on thousands of
    lines of code, its tedious and error prone to have to write those
    calls all over the place. Having an in-MUD language means that the
    code can be visually simpler, and the compiler takes care of all of
    the details. C++ users might be able to cleanly hide all of that
    stuff, but that wasn't an option for me.

- MUD languages often have security considerations, such as doing things
    on function entry. Having an in-MUD language makes this automatic,
    rather than manual.

- the datatypes that are useful for MUDs are often not directly present
    in implementation languages. E.g. flexible arrays with full bounds
    checking, a seamless string type, etc. Many of the things that, say,
    C++ has, you likely want your MUD programmers to *not* have access
    to, like pointers. Or maybe Java's networking and file I/O functions.

- with an in-MUD language, it is often possible to modify things while
    the MUD is up and running. That is much trickier if you are using
    normal compiled code, on a function-by-function basis.

- although I'm a fan of strongly typed languages (compiler, please help
    me get this right...), there are cases when run-time type checking
    is valuable - that requires entire additional frameworks of stuff
    if done in traditional compiled languages.

- I wanted an inheritance model that inherits values, not structure. That
    doesn't work if the implemenation language does inheritance of
    structure, like C++ and Java do.

- C syntax, and hence C++ and mostly Java syntax, well sucks. I'd rather
    have something cleaner to present to beginner programmers.

There are likely more, but that's all that come to mind at the moment.

--
Don't design inefficiency in - it'll happen in the implementation.

Chris Gray     cg#ami-cg,GraySage.Edmonton.AB.CA
               <A  HREF="http://www.GraySage.Edmonton.AB.CA/cg/">http://www.GraySage.Edmonton.AB.CA/cg/</A>


_______________________________________________
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>
<ul compact><li><strong>Follow-Ups</strong>:
<ul>
<li><strong><A NAME="00080" HREF="msg00080.html">Re: [MUD-Dev] Virtual machine design</A></strong>
<ul compact><li><em>From:</em> claw#kanga,nu</li></ul>
</UL></LI></UL>
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00059.html">Re: [MUD-Dev] Virtual machine design</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00061.html">Re: [MUD-Dev] Virtual machine design</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00065.html">Re: [MUD-Dev] Virtual machine design</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00080.html">Re: [MUD-Dev] Virtual machine design</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00060"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00060"><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] Virtual machine design</STRONG>, <EM>(continued)</EM>
<ul compact>
<ul compact>
<ul compact>
<LI><strong><A NAME="00082" HREF="msg00082.html">Re: [MUD-Dev] Virtual machine design</A></strong>, 
Ben Greear <a href="mailto:greear#cyberhighway,net">greear#cyberhighway,net</a>, Mon 19 Apr 1999, 08:01 GMT
<UL>
<LI><strong><A NAME="00088" HREF="msg00088.html">Re: [MUD-Dev] Virtual machine design</A></strong>, 
Petri Virkkula <a href="mailto:pvirkkul#iki,fi">pvirkkul#iki,fi</a>, Mon 19 Apr 1999, 19:47 GMT
</LI>
</UL>
</LI>
</ul>
</ul>
<LI><strong><A NAME="00058" HREF="msg00058.html">Re: [MUD-Dev] Virtual machine design</A></strong>, 
Alex Stewart <a href="mailto:riche#crl,com">riche#crl,com</a>, Sat 17 Apr 1999, 04:44 GMT
</LI>
<LI><strong><A NAME="00065" HREF="msg00065.html">Re: [MUD-Dev] Virtual machine design</A></strong>, 
Jo Dillon <a href="mailto:emily#thelonious,new.ox.ac.uk">emily#thelonious,new.ox.ac.uk</a>, Sat 17 Apr 1999, 16:49 GMT
</LI>
<LI><strong><A NAME="00060" HREF="msg00060.html">Re: [MUD-Dev] Virtual machine design</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Sat 17 Apr 1999, 16:31 GMT
<UL>
<LI><strong><A NAME="00080" HREF="msg00080.html">Re: [MUD-Dev] Virtual machine design</A></strong>, 
claw <a href="mailto:claw#kanga,nu">claw#kanga,nu</a>, Mon 19 Apr 1999, 07:52 GMT
</LI>
</UL>
</LI>
<LI><strong><A NAME="00064" HREF="msg00064.html">Re: [MUD-Dev] Virtual machine design</A></strong>, 
Felix A. Croes <a href="mailto:felix#dworkin,nl">felix#dworkin,nl</a>, Sat 17 Apr 1999, 16:46 GMT
<UL>
<LI><strong><A NAME="00067" HREF="msg00067.html">Re: [MUD-Dev] Virtual machine design</A></strong>, 
Ben Greear <a href="mailto:greear#cyberhighway,net">greear#cyberhighway,net</a>, Sat 17 Apr 1999, 22:46 GMT
<UL>
<LI><strong><A NAME="00076" HREF="msg00076.html">Re: [MUD-Dev] Virtual machine design</A></strong>, 
Matthew Mihaly <a href="mailto:diablo#best,com">diablo#best,com</a>, Sun 18 Apr 1999, 17:13 GMT
</LI>
</UL>
</LI>
</UL>
</LI>
</ul>
</LI>
</UL></BLOCKQUOTE>

</ul>
<hr>
<center>
[&nbsp;<a href="../">Other Periods</a>
&nbsp;|&nbsp;<a href="../../">Other mailing lists</a>
&nbsp;|&nbsp;<a href="/search.php3">Search</a>
&nbsp;]
</center>
<hr>
</body>
</html>