From: Jonathan Bartlett
Subject: Re: Lisp or Smalltalk: Suicide Mission, Part II
Date: 
Message-ID: <41f11f10$1@news.tulsaconnect.com>
> I will learn only one of the languages (at this point in time.)
> Philosophically, I'm not interested in becoming a 'language collector,'
> a computer scientist, or developing a 'hobby' - but I am VERY
> interested in getting real work done by writing my own applications.

This is shooting for disaster.  Race car drivers can usually know enough 
about the car itself that they could build it from scratch if they 
wanted to.  If you are wanting to become a programmer but don't want to 
invest the time to truly learn how it works, I forsee disastrous 
problems continually popping up in your work that each take weeks to solve.

> Ideally, I therefore want the one language I choose to learn to be able
> to handle anything I intend to do now or in the future.

There isn't one.  Lisp is probably closest.  However, the best 
environment to program in without learning real programming is probably 
Delphi.

> Someone (Avi?) once wrote that Lisp is multi-paradigm while Smalltalk
> is not, but that since the one paradigm Smalltalk uses is so powerful,
> you can get almost all of the benefits without all the attendant
> complexity.  That appeals to me.  On the other hand, the power of Lisp
> is seductive.

I would disagree with this assessment on nearly all counts.

> I do not have a full understanding of the benefits and downsides of
> multi-methods, encapsulation, call-cc, etc.  (To reiterate:  I'm not
> a programmer.)   I have a very basic understanding of what they all
> mean, but not a practical understanding that would keep me from
> shooting my own feet off with unnecessary complexity or creating
> debugging nightmares.

The main issue is that when you develop complex software, you need tools 
to handle the complexity.  I think such evaluations by someone who is 
not yet a programmer is not useful.  I would suggest you become a 
programmer, try a few languages, and then make that evaluation.  It's 
tough enough to explain such things to to people who are new 
programmers, explaining them to a non-programmer is simply a waste of 
time.  After you've pushed out some code, you will be in a much better 
position to understand.

> I realize that this stuff gets into language holy war debate territory
> over language design, but I'm trying to understand what I'm getting
> myself into with Lisp and Smalltalk - and which is best suited for my
> specific goals.

Then learn both and _then_ choose.

> I guess I'm operating under the assumption that Smalltalk is better
> for modeling standard business processes (all objects, all the time),
> while Lisp is better for the more computationally/algorithmically
> intense stuff like NLP.

Nope.  Lisp is better for managed complexity.  Smalltalk is better for 
GUI-based projects.  However, both are better than most other languages 
for most projects.  However, I would probably use Python instead of 
Smalltalk, since it is newer (but based on smalltalk), has some import 
of Lisp features, and has a larger user community (yes, that _is_ a factor).

> So, given the strengths of each, which is the better choice for someone
> who wants to be able to accomplish the tasks stated below with the
> shortest learning curve and least complexity?   Which is going to offer
> the most productivity for someone that is programming mainly, say,
> accounting systems, but with some NLP/AI stuff thrown in every once in
> awhile?

You're planning on doing AI but don't want to bother with computer 
science?!?!?!?

I really suggest you start programming _first_, and then worry about 
everything else.

Jon
----
Learn to program using Linux assembly language
http://www.cafeshops.com/bartlettpublish.8640017