rkern at ucsd.edu
Sun Dec 26 04:48:23 CET 2004
> Hello all! I'm learning to program at home. I can't imagine a better
> language than Python for this. The ideal situation, for me, would be to
> study two languages at the same time. Probably sounds crazy, but it
> works out better for me. Being a newbie, I find almost all languages
> fascinating. C, D, Objective-C, Ocaml, C++, Lisp, how is a non-tech to
> choose? Does any single language do a better job in Python's weaker
> areas? Would anyone care to suggest one to supplement Python. That is,
> if you could only use Python and one other language, which would it be?
> Thank you for your time and help.
Depends on what you want to get out of the second language. (Disclosure:
I only use Python, C, and FORTRAN on a regular basis. Any of my comments
about other languages should be liberally salted.)
For use *with* Python, C could be helpful. I end up writing a little bit
of C or C++ every once in a while to speed up my calculations or to use
some library written in C or C++.
If you do numeric calculations, learning just enough FORTRAN to do loops
and math can be quite useful. I find that F2PY makes writing FORTRAN
subroutines for numerical calculations over Numeric arrays much easier
If you develop on a Mac, some Objective-C could come in handy. I find
that it's object model and dynamism are quite close to Python's. The
lessons you learn in each should reinforce the other's. PyObjC makes
mixing the two languages dead easy and more convenient than indoor
plumbing. However, almost all Objective-C texts require knowledge of C
(which makes sense, since Objective-C is a true superset of C, unlike C++).
For didactic purposes, I suggest picking something distinctly *less*
like C/Java/Python. Learn something that's going to expand the way you
think about programming. And when you learn a new paradigm, implement it
in Python and share it with the rest of us. :-) For example, Phillip
J. Eby took the idea of "generic functions" from the Common Lisp Object
System and implemented it for us. (BTW, thank you, Phillip.)
Common Lisp might be a good one to learn. It's even more
"multi-paradigm" than Python. You could very easily learn more
approaches to programming through Common Lisp than three other
languages. This book looks promising.
Summary recommendation: Learn Python and a language that complements it
*pedagogically*. When you are fluent in Python and encounter a problem
where you want to, for example, use a library written in C, then learn
rkern at ucsd.edu
"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
More information about the Python-list