<!-- MHonArc v2.4.4 --> <!--X-Subject: Re: [MUD-Dev] Languages --> <!--X-From-R13: ptNnzv-pt.UenlEntr.Sqzbagba.OP.QO (Quevf Uenl) --> <!--X-Date: from major.globecomm.net [207.51.48.5] by mx5.ibm.net id 863756292.33928-1 Fri May 16 04:18:12 1997 --> <!--X-Message-Id: 9705151521.808v@ami-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] Languages</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> [ <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="msg00494.html">Previous</a> | <a href="msg00496.html">Next</a> ] Thread: [ <a href="msg00516.html">Previous</a> | <a href="msg00503.html">Next</a> ] Index: [ <A HREF="author.html#00495">Author</A> | <A HREF="#00495">Date</A> | <A HREF="thread.html#00495">Thread</A> ] <!--X-TopPNI-End--> <!--X-MsgBody--> <!--X-Subject-Header-Begin--> <H1>Re: [MUD-Dev] Languages</H1> <HR> <!--X-Subject-Header-End--> <!--X-Head-of-Message--> <UL> <LI><em>To</em>: <A HREF="mailto:mud-dev#null,net">mud-dev#null,net</A></LI> <LI><em>Subject</em>: Re: [MUD-Dev] Languages</LI> <LI><em>From</em>: <A HREF="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</A> (Chris Gray)</LI> <LI><em>Date</em>: Thu, 15 May 97 08:21:41 MST</LI> </UL> <!--X-Head-of-Message-End--> <!--X-Head-Body-Sep-Begin--> <HR> <!--X-Head-Body-Sep-End--> <!--X-Body-of-Message--> <PRE> [Miro:] [Strong vs weak typing] :Okay, a few examples: One of the situations that happens often is a function :returning either result or 'I couldn't do it'. With typed system, you need :to return two values explicitely. With untyped, you can return either a :list of (integer) 0 (assuming that result is a list). Poor example. If a list is a first-class entity, then there will be a 'nil' value to represent 'no list', if that's what you need. :Another example is mixing plaintext and compiled hypertext. You can use :strings for plaintext and objects for pre-parsed hypertext type. It's :nice to be able to mix them freely. What are you going to do with that list? Most likely you are going to send it to one or more clients, in which case you can have already expanded the hypertext thingies into their textual equivalent, and just return a single concatenated string. I don't have hypertext, but I do have all of my graphics/sound/etc. output to the custom client. I have builtins to send individual commands (binary encoded) to the clients, and to send strings to clients. They are all put together down at the message level, but there is no facility for bundling them up (other than as routines which will emit them) at a higher level. I can't think of anything I would do with such a bundled form that could not be done more efficiently at the generation stage. :Much harder example: consider a list of contents in a room. In strong :typed system, you will have to decide on their representation in advance. :But in a dynamically typed system, you could use integers (or symbol types) :to refer to commonly used objects (say, prepackaged weapons). Or you :could use objects from some lightweight class to refer to classes of :very similar objects, and still have the option of doing heavy-weight :things. Ah, but as mentioned below, I only have one type of 'thing' - there is no heavy-weight versus lightweight. The idea never occurred to me, so I guess I didn't bump into anything that really needed it. As for using just an integer in a contents list, well that sounds like stretching it a bit - even in a combat MUD, you would need to know whether it was a weapon's attack points or armour defense points, etc. You would also need some way to describe it when the player does "take inventory". If you just want to attach an integer to the player, then use a property for that - there is no reason to try to jam everything into the list of what is being carried. :> Personally, I'd much rather work with code that wasn't "spewed at blinding :> speed" - it is much more likely to work properly, and to handle the :> inevitable exceptional cases. I think what it comes down to is the : :You misunderstand. I refer to *FAST* development of robust code. Dynamically :typed languages, with some debugging facilities, won't let you get away :with too much, and they don't pester you with figuring declarations in :advance (again, I /know/ that ML doesn't either. But ML is also :non-trivial to implement from scratch). Perhaps I'm a pessimist, but I think that "fast development of robust code" is an oxymoron - there ain't no such thing. Over the years, I've come to the conclusion that the most important feature a bunch of code can have is that of how maintainable it is. That is strongly tied to how readable it is. All code of any merit will be maintained, so I always write code with that in mind. If the code doesn't happen to have bugs, then you will be wanting to change what it does in some way. :You're certainly right here - it depends on individual experience. I :have great experience with dynamically typed systems (I hope you mean :'dynamically typed' as opposed to 'weakly typed' - those are not the same). Can you clarify the differences for us? :> Hmm. I *think* I might know what you were getting at. No, I don't mean :> other ways to reference locals behind the scenes - there are no :> pointers or "reference" types. What I was trying to say was that you :> don't need the name of a local to reference it at run time - the :> interpreted code just needs the pointer to the current traceback :> record, and the offset of the variable. : :Uhhh, okay, I misunderstood a bit - it's not that unsafe. But again, :why do you need it as part of the /language/ as opposed to part of the :language /implementaion/? Umm, "its not that unsafe"? What is unsafe at all? And no, the fact that I can efficiently implement the language isn't necessarily part of the specification of the language, but it is certainly something that I will be concerned about just as much as the details of the language spec. -- Chris Gray cg#ami-cg,GraySage.Edmonton.AB.CA </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="00503" HREF="msg00503.html">Re: [MUD-Dev] Languages</A></strong> <ul compact><li><em>From:</em> silovic#srce,hr (Miroslav Silovic)</li></ul> </UL></LI></UL> <!--X-Follow-Ups-End--> <!--X-References--> <!--X-References-End--> <!--X-BotPNI--> <UL> <LI>Prev by Date: <STRONG><A HREF="msg00494.html">Re: [MUD-Dev] RP thesis...</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg00496.html">Re: [MUD-Dev] Languages</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg00516.html">Re: [MUD-Dev] Skills in RP games</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg00503.html">Re: [MUD-Dev] Languages</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#00495"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#00495"><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><A NAME="00511" HREF="msg00511.html">Administration: Subscription problems</A></strong>, clawrenc <a href="mailto:clawrenc#cup,hp.com">clawrenc#cup,hp.com</a>, Sat 17 May 1997, 02:01 GMT <LI><strong><A NAME="00510" HREF="msg00510.html">Quoting and attributions</A></strong>, clawrenc <a href="mailto:clawrenc#cup,hp.com">clawrenc#cup,hp.com</a>, Sat 17 May 1997, 01:11 GMT <LI><strong><A NAME="00497" HREF="msg00497.html">Skills in RP games</A></strong>, Matt Chatterley <a href="mailto:root#mpc,dyn.ml.org">root#mpc,dyn.ml.org</a>, Fri 16 May 1997, 16:39 GMT <UL> <LI><strong><A NAME="00516" HREF="msg00516.html">Re: [MUD-Dev] Skills in RP games</A></strong>, Adam Wiggins <a href="mailto:nightfall#user1,inficad.com">nightfall#user1,inficad.com</a>, Sat 17 May 1997, 09:56 GMT </LI> </UL> </LI> <LI><strong><A NAME="00495" HREF="msg00495.html">Re: [MUD-Dev] Languages</A></strong>, Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Fri 16 May 1997, 11:18 GMT <UL> <LI><strong><A NAME="00503" HREF="msg00503.html">Re: [MUD-Dev] Languages</A></strong>, Miroslav Silovic <a href="mailto:silovic#srce,hr">silovic#srce,hr</a>, Fri 16 May 1997, 23:49 GMT </LI> </UL> <UL> <li><Possible follow-up(s)><br> <LI><strong><A NAME="00496" HREF="msg00496.html">Re: [MUD-Dev] Languages</A></strong>, Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Fri 16 May 1997, 14:53 GMT <UL> <LI><strong><A NAME="00502" HREF="msg00502.html">Re: [MUD-Dev] Languages</A></strong>, Ling <a href="mailto:K.L.Lo-94#student,lut.ac.uk">K.L.Lo-94#student,lut.ac.uk</a>, Fri 16 May 1997, 23:06 GMT <UL> <LI><strong><A NAME="00518" HREF="msg00518.html">Re: [MUD-Dev] Languages</A></strong>, coder <a href="mailto:coder#ibm,net">coder#ibm,net</a>, Sat 17 May 1997, 11:20 GMT </LI> </UL> </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>