emacs.d/clones/lisp/www.cliki.net/R Scott McIntire.html
2022-10-07 15:47:14 +02:00

107 lines
No EOL
7.7 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>CLiki: R Scott McIntire</title>
<link rel="alternate" type="application/atom+xml" title="ATOM feed of edits to current article"
href="https://www.cliki.net/site/feed/article.atom?title=R%20Scott%20McIntire">
<link rel="stylesheet" href="static/css/style.css">
<link rel="stylesheet" href="static/css/colorize.css">
</head>
<body>
<span class="hidden">CLiki - R Scott McIntire</span>
<div id="content"><div id="content-area"><div id="article-title">R Scott McIntire</div><div id="article">I, <a href="Person.html" class="category">Person</a> Scott McIntire, do solemnly offer these my responses to <a href="https://www.cliki.net/The%20Road%20to%20Lisp%20Survey" class="new">The Road to Lisp Survey</a>:<p><b>When did you first try Lisp (meaning here and throughout the survey "any member of the Lisp family") seriously, and which Lisp family member was it?</b><p>I became quite interested in Lisp around 96 when Graham's book came out.
A few years before that I had descovered Scheme and thought it was the most
beautiful language in the world. Since it was related, I looked at Common Lisp
but it looked ugly by comparison. It took more experience developing
software before I realized the error of my ways. I don't think I used a Lisp
system until 2000 which was MCL. Since then I have used LispWorks and Allegro.<p><b>What led you to try Lisp?</b><p>Two things:<br>
1). I wanted a language that I could use to investigate ideas
and algorithms that wouldn't get in the way.<p>2). I had been developing commercial software using the hybrid approach
of an interpreted interactive language with an interface to C for
speed. From this experience, I wanted a language that could be as
interactive as a scripting language, but generate compiled code
when I was done. I came across Paul Graham's books and realized
that this Holy Grail had been realized, it was called Common
Lisp. Graham's discussion of how software development is really
more experimental than people want to admit really struck a chord.
I was also dissatisfied with the state of the single dispatch
object systems. This is also fixed by Common Lisp.<p>Along the way I've looked at most of the popular languages as well as
functional languages like SML, OCaml, and Haskell. As Graham mentions,
static typing is great if you're translating a spec into code. That's not
what happens in practice when developing software.<p><b>If you were trying Lisp out of unhappiness with another language, what was that other language and what did you not like about it, or what were you hoping to find different in Lisp?</b><p>I was unhappy with scripting languages as they lacked speed and expressive power.
I was unhappy with languages like C++ that are, basically, a nightmare.
In the case of C++ things like:<br>
1). Memory management - can we say "what century is this?"<br>
2). Memory fragmentation - can we say 24x7 - not!<br>
3). The problems with the classic diamond object diagram.
Yeah, let me see, which order are the constructors called
when I have a virtual base class...<br>
4). No reasonable mixins.<br>
5). Oh silly me, I forgot to declare my destructor virtual.<p>As far as other OO languages like Java, I find that the focus on
a single dispatch OO as the be-all end-all is quite annoying. Design patterns were suppose to be the next
level in working with objects; but, it seems clear that they are
mainly used to fix up the problems with method ownership and single
dispatch.<p>Of course, one can always argue C++ is getting better and java is
improving. C++ now has the STL, Java always has something new. To
me, this is similar to the way XML has developed. What you end up
with is "We'll just add layer N of this new framajama technology to
fix the problems in layer N-1, then everything will be fine."<p><b>How far have you gotten in your study of Lisp? (I know, that is hard to measure)</b><p>I have been writing Lisp programs for my self on and off (more on than
off lately) for about 3 years. I think I am getting a better sense of
what I can do. I've written a number of utilities and done a few medium size
projects.<p><b>What do you think of Lisp so far?</b><p>It gets better every day. It's interesting how you change your
approach to problems with Lisp. For instance, a few years back I wrote
some code in C++ to work with Fuzzy logic systems. After a month of
coding in my spare nights and weekends I had code that read in a spec
for a fuzzy system which could "fire" fuzzy rules. This amounted to
building a parse tree and walking over it to evaluate the rules.<p>Level I Lisp: While learing Common Lisp, I wrote the same thing over
a weekend. I didn't have to write a parser for a spec, I
used the Lisp reader - DONE. I then walked over a rule tree
to "fire" the fuzzy rules.<p>Level II Lisp: I later realized that I could define a new macro that had
the form of the spec and let it create all the data objects
in the background. I could use the macro to also carefully check
the arguements to the spec as well as any constraints that
a collection of arguments might need to staisfy.
I could also call the compiler and
get RULES THAT WERE COMPILED - ding!<p>Is an intepreter written in C++ (or C for that matter) as fast as
compiled Common Lisp code? This example has given me a new
perspective about performance comparisons.<p><hr>
<a href="Switch&#32;Date&#32;2000.html" class="category">Switch Date 2000</a></div></div>
<div id="footer" class="buttonbar"><ul><li><a href="R&#32;Scott&#32;McIntire.html">Current version</a></li>
<li><a href="https://www.cliki.net/site/history?article=R%20Scott%20McIntire">History</a></li>
<li><a href="https://www.cliki.net/site/backlinks?article=R%20Scott%20McIntire">Backlinks</a></li><li><a href="https://www.cliki.net/site/edit-article?title=R%20Scott%20McIntire&amp;from-revision=3770688006">Edit</a></li><li><a href="https://www.cliki.net/site/edit-article?create=t">Create</a></li></ul></div>
</div>
<div id="header-buttons" class="buttonbar">
<ul>
<li><a href="https://www.cliki.net/">Home</a></li>
<li><a href="https://www.cliki.net/site/recent-changes">Recent Changes</a></li>
<li><a href="CLiki.html">About</a></li>
<li><a href="Text&#32;Formatting.html">Text Formatting</a></li>
<li><a href="https://www.cliki.net/site/tools">Tools</a></li>
</ul>
<div id="search">
<form action="https://www.cliki.net/site/search">
<label for="search_query" class="hidden">Search CLiki</label>
<input type="text" name="query" id="search_query" value="" />
<input type="submit" value="search" />
</form>
</div>
</div>
<div id="pageheader">
<div id="header">
<span id="logo">CLiki</span>
<span id="slogan">the common lisp wiki</span>
<div id="login"><form method="post" action="https://www.cliki.net/site/login">
<label for="login_name" class="hidden">Account name</label>
<input type="text" name="name" id="login_name" class="login_input" />
<label for= "login_password" class="hidden">Password</label>
<input type="password" name="password" id="login_password" class="login_input" />
<input type="submit" name="login" value="login" id="login_submit" /><br />
<div id="register"><a href="https://www.cliki.net/site/register">register</a></div>
<input type="submit" name="reset-pw" value="reset password" id="reset_pw" />
</form>
</div>
</div>
</div>
</body></html>