d***@runbox.com
2005-01-21 04:53:26 UTC
I've refactored my question in an attempt to better focus the
responses. Specifically, I've made it a first person question to take
out some of the team and mentor issues and added some more detail about
project(s), etc:
I'm trying to decide between learning Lisp and Smalltalk.
I'm primarily interested in insights from people who have worked with
both.
I'm not a programmer, but wish to become one.
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.
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.
Since I'm focused on real-world productivity, if I can get 90% of the
benefit of something with only 50% of the complexity, and still achieve
my goals, then that is a GOOD tradeoff for me.
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 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.
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. I realize that more powerful and flexible features
also tend to have greater costs if you misuse them (like weapons),
but...?
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.
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?
I'm interested in the idea (from Andreas and Wade) of creating a DSL
using Lisp or Smalltalk that would allow me to farm work out to my team
of business analysts. But I'm not sure if that is practical for this
situation?
If I'm trying to look on the bright side, I can note (as Espen does),
that my systems analysts are not biased or coming in with preconceived
ideas about language syntax, etc. This makes me wonder which is a
better first language for them (and myself)...Smalltalk because it is
simpler, or Lisp because I don't want to 'hardwire their brains'
with doing everything one certain way...?
responses. Specifically, I've made it a first person question to take
out some of the team and mentor issues and added some more detail about
project(s), etc:
I'm trying to decide between learning Lisp and Smalltalk.
I'm primarily interested in insights from people who have worked with
both.
I'm not a programmer, but wish to become one.
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.
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.
Since I'm focused on real-world productivity, if I can get 90% of the
benefit of something with only 50% of the complexity, and still achieve
my goals, then that is a GOOD tradeoff for me.
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 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.
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. I realize that more powerful and flexible features
also tend to have greater costs if you misuse them (like weapons),
but...?
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.
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?
I'm interested in the idea (from Andreas and Wade) of creating a DSL
using Lisp or Smalltalk that would allow me to farm work out to my team
of business analysts. But I'm not sure if that is practical for this
situation?
If I'm trying to look on the bright side, I can note (as Espen does),
that my systems analysts are not biased or coming in with preconceived
ideas about language syntax, etc. This makes me wonder which is a
better first language for them (and myself)...Smalltalk because it is
simpler, or Lisp because I don't want to 'hardwire their brains'
with doing everything one certain way...?