Newsgroups: rec.arts.int-fiction
Path: nntp.gmd.de!news.rwth-aachen.de!news.ruhr-uni-bochum.de!news.rhrz.uni-bonn.de!RRZ.Uni-Koeln.DE!news.gtn.com!osn.de!noris.net!blackbush.xlink.net!sol.ctr.columbia.edu!news.msfc.nasa.gov!newsfeed.internetmci.com!newsfeeder.servtech.com!news1.io.org!torfree!by723
From: by723@torfree.net (Kent Tessman)
Subject: Re: Hugo vs. TADS/Inform
Message-ID: <Dy07y7.3Bq.0.bloor@torfree.net>
Organization: Toronto Free-Net
X-Newsreader: TIN [version 1.2 PL2]
References: <51i60m$li0@ecuador.earthlink.net> <51ihl6$2n6@newsbf02.news.aol.com> <51kvnr$k2n@argentina.earthlink.net> <51mp3t$ql3@news.dx.net>
Date: Thu, 19 Sep 1996 23:58:55 GMT
Lines: 84

Looks like the good Cardinal has gone and stirred up a little bit of 
debate with his suggestion that Hugo is getting less 
attention/endorsement than it deserves, as compared to TADS or Inform.  
As the author of the first system, I thought I'd pipe up at some point.

I think most of the comments made by way of response to the Cardinal's 
post(s) are fairly accurate.  I wanted to respond to a few of them, in 
particular (apologizing at the same time for not making precise 
attributions of the original comments, since some of them are paraphrased 
and others are combined):


1.  Hugo doesn't bring anything new to the IF landscape.

This is true only so far as "new" means "revolutionary".  Interactive 
fiction design tends, at this point, anyway, to revolve around a number 
of common elements regardless of the language being used.  What I wanted 
to do with Hugo was to write a system from scratch that took advantage of 
a body of thought about how IF should work, and which in its coherence 
and focus would be easier to use.  Less punctuation, clearer syntax, 
you've heard me say it before.


2.  Hugo is very C-ish.  Hugo is just like Inform with bits of TADS 
thrown in for good measure.

This first part I sort of agree with.  Hugo _looks_ quite a bit like C by 
virtue of the fact that it uses curly brackets to separate sections of 
code.  And the reason that it shares something in terms of design and 
approach with Inform is that Inform (and the Z-machine) were, as they 
perhaps were for many, my first glimpse of IF programming.  I'm not sure 
what the observation of a TADS influence refers to.

It's also interesting to note (to me, at least), that Hugo was designed 
_before_ I knew C.  It was originally written--in a "draft" form--in 
Microsoft QuickBasic.  So I always find it interesting when Hugo gets 
called C-ish.  Maybe C is more intuitive than people give it credit for :).


3.  Parser power.

Andrew pointed out that the parser is hard-coded, with perhaps the 
implication that it is less flexible because of that.  I, in turn, would 
point out that the library is quite capable of doing a great deal of 
parsing on its own--witness the plural/identical objects system in Hugo, 
which is (I think, anyway) probably the simplest and most straightforward 
plural system going, and coded entirely in Hugo itself.  The library 
allows a Hugo programmer to make whatever assessment of an input he or 
she likes, modifying it in any number of ways, before handing it over to 
the parser for the speed-and-efficiency-required dirty work.

A couple of points have been raised along the lines of:  "You can't do X 
in Hugo."  A couple of these have also been right--at least for the time 
being.  The truth is that you can't do them _now_, because, more likely 
than anything, I just didn't think of them at the time I wrote the 
library parsing routines or the game grammar.  (And the 
grammar-definition style used by Hugo is very similar to Inform's for the 
reason that Graham Nelson devised a format that is very nice to work 
with.  I've said that at least once or twice before.)


4.  Could the Hugo Compiler be modified to generated Z-code?

Well, I guess.  But Graham Nelson would probably tell you that writing a 
Z-code compiler (the guts, I mean) is anything but a trivial task.  For 
the sake of efficiency, economy, and performance, the function of the 
Hugo Engine and the syntax of the language are fairly closely tied. This 
also begs the question:  why would you want to?  There are an awful lot 
of reasons why you would _not_ want to run Z-code--Inform is one of the 
good arguments in favor of it.

Which ultimately means, of course, that we're talking about languages, 
anyway.  It doesn't really matter which language you're working in so 
long as the finished product measurs up.  You don't know if your home 
computer applications were written in C, Pascal, C++, assembler, or some 
combination of these or others.  And likely you don't care, so long as 
the finished product works for you.  Which means that what matters to 
this debate--is it a debate?--is how well the language works for the 
programmer.  Which is the reason I wrote Hugo in the first place.  Which 
is what I (and a lot of other people) have already said, so I'll stop 
here for now.

--Kent Tessman
  <as400477@orion.yorku.ca>
