>>>>> "Gregory" == Gregory L Hansen <glhansen@steel.ucs.indiana.edu> writes:
Gregory> When I read about Unix tools there seems to be a lot of
Gregory> overlap between them, like
Gregory> shells awk sed Perl Python C tcl/tk Java Lisp
Gregory> What's a beginner to do that can only learn one at a
Gregory> time?
If you already have something (e.g. Perl that you mentioned below), go
ahead with it. You are wasting time by hessitating.
Gregory> If I learn Perl, is there any reason at all to look at
Gregory> awk and sed?
Why not? Simple awk and sed programs a easier and faster to write
than Perl. Moreover, once you've got the common CONCEPTS
(e.g. regex), it takes just a few minutes to switch from one form of
implementation to another.
I learnt sed and awk first (as a part of Shell program) before Perl.
The time spent on these sed, awk and shell were not wasted. Rather,
my knowledge of these gave me a super quick start when I picked up
Perl. So, my advice is: don't worry. Once you've got familiar with
the concepts, you can pick up others pretty quickly. There are more
in common among these tools than differences. Time spent on learning
one thing won't be wasted, and will pay off sharply as you proceed to
learn another. The only thing that is really wasting you time now
seems to be your hessistation to start learning any of these tools.
Gregory> What does Python do that Perl doesn't?
That it calls itself "Python".
Given that these are general purpose languages, they're all
Turing-complete, and hence they have equivalent power. There is
nothing that you can do in one but not another. The question that
would really bother is how fast it is to do something, and how
efficient this fast solution is. "What can be done" is not the issue.
Gregory> I like the thought of the C/tcl/tk combination, e.g. a
Gregory> simple way to put a graphical interface on my C apps, or
Gregory> so the legends go,
It's not legend. In unix, I've seen so many softwares that has a GUI
shell implemented in Tcl/Tk coupled with a small and efficient
"engine" written in C/C++. A wonderful combination taking the bests
of both tools. Although Tcl/Tk is also available on Windows, most
Windows programs know nothing about it (and hence its advantages).
So, you seldom see this GUI-shell + engine approach on Windows. The
Windows programmers thus normally use a much worse design, mixing GUI
and algorithms into a plate of spaghetti.
Gregory> but has Java made that obsolete?
No. Many people still find Java, esp. Swing, slow.
I myself don't find Swing slow. I like Swing's design. Very very
object-oriented, and realizes many of the best "design patterns". I
think Swing is not slow IF you know how to use it properly. i.e. you
have to RTFM. Lazy programmer (those who can't read a book quietly)
would of course not get it right and hence only get something slow.
Gregory> What does anyone use Lisp for?
Anything. It's also a Turing complete language.
Take a look of the huge collection of Emacs-lisp packages. There are
news/mail readers, WWW browsers, info (a hyper-text documentation
system that predates the WWW), syntax-highlighters of many programming
languages, nice frontends to CVS, RCS, ls, gcc, gdb, perldb, ...
--
Lee Sau Dan +Z05biGVm-(Big5) ~{@nJX6X~}(HZ)
E-mail:
danlee@informatik.uni-freiburg.de
Home page:
http://www.informatik.uni-freiburg.de/~danlee