UVSC BYU U of U etc was"Software Engineering
levi at cold.org
Tue Feb 20 16:21:13 MST 2007
Dave Smith <dave at thesmithfam.org> writes:
> Levi Pearson wrote:
>> What, in particular, do you find impractical about Lisp?
> I think Lisp is neat, just like my R/C planes. Practical, though? Not
> really. By the way, please don't take this analogy too far.
I have no intention of doing anything whatsoever with that analogy,
since it does not provide any answer to my question.
Speaking of planes, did you know that the fare-finding software behind
Orbitz and several other similar services is largely programmed in
Lisp? ITA Software, the Lisp-using, founded by an MIT graduate
company that provides the engine is hiring, too. I also know some
guys that hack Lisp at Amazon. I wrote some work-related tools in
Scheme, and I'm considering doing it again if it makes sense. How,
again, is this stuff not practical?
> Another example: My office mate is writing a small operating system in
> his own variant of Lisp, with his own compiler, written in Lisp (the
> VGA driver is in C, though). I think it rocks. He is my idol. Is it
> practical? No, but it's awesome.
Awesome indeed. I just wrote a little assembler and virtual machine
emulator in Scheme, too. Also not very practical, but that's a
function of the project rather than the language I used. If I were to
write a small Lisp bytecode interpreter that could be injected via an
exploit into a remote system and communicate back to a base station
via a secure channel, that would be a practical program for a security
Anyway, my point is that the key to practicality is the ability to
apply tools to real-world problems. A good CS education should
provide opportunity to learn enough theory and programming skill to
create new and interesting solutions to problems, whether they be
real-world or pure research problems. MIT happens to focus on the
real-world problems, which makes them a somewhat more practical school
than one that focuses on pure theory research. This doesn't lessen
MIT's credentials as a university at all.
Furthermore, the high-level design of programs is largely independant
of the specific tools used. It doesn't matter whether those skills
and the corresponding understanding of theory were gained in the
context of programming in Lisp or C#. Those skills remain practical
regardless of the tools use to gain them, and certainly the theory
doesn't change based on tools, though some make it easier to apply
More information about the PLUG