I'm planning to learn one more language with my python.
Someone recommended to do Lisp or Clojure, but I don't think it's a
good idea(do you?)
So, I consider C# with ironpython or Java with Jython.
It's a hard choice...I like Visual studio(because my first lang is VB6
so I'm familiar with that)
but maybe java would be more useful out of windows.
what do you think?
If you don't know C yet, I second recommendation to learn it. It is a very
70-tish and 80-tish language, but it is still very relevant if you want to
call yourself a programmer (rather than a hobbyist, with all credits due
to clever genius hobbyists out there). There are things I would rather do
in C than in any other language (like, writing a Python interpreter or
Linux kernel - wait, what you say they have been written already?). Also,
it gives one a way to handtune the code quite a lot (at expense of time,
but this is sometimes acceptable), to the point where next choice is
assembly (and results not necessarily better)...
Later on, since C and C++ share quite a bit, you can gradually include C++
elements into your code, thus writing in a kinda "bettered C" (compiled
with C++ compiler), using constructs like "const" to make your programs
more correct. And you will learn to not use "new" for variables, which is
good thing. However, some C++ constructs include performance penalty, so
it is good to not better it too much.
Later on, you could choose from the list:
- Common Lisp - "nice industrial standard" (depends on one's preferred
definition of "nice", of course, as well as "industrial" and "standard")
- Racket - Scheme on steroids, with IDE, JIT and crossplatform-ity (I can
think of somebody writing Python/Racket to be used in this environment but
it is hard to imagine someone doing the other direction, so go figure ;-)
http://www.reddit.com/r/programming/comments/i1slm/amazing_tutorial_demonstrating_the_power_of/
http://hashcollision.org/brainfudge/
)
- Haskell or Ocaml - but I have a feeling Ocaml is developing at slower
pace now, with many people choosing Haskell (I guess they sometimes
curse themselves for this, because behaviour of code in Haskell is a bit
hard to predict, sometimes).
If you want to delve into Java world, well, I consider Java an unbearably
ugly hog. When I was younger and fearless I programmed a bit in Java, but
nowadays, the only way I myself could swallow this would be to use some
other language on top of it (Scala, Clojure or Kaffe).
C# as a - kind of - Java clone from MS, is not really so attractive to me.
(Yes, both Java and C# have some merits in some situations, so do COBOL,
VB and Fortran but I tend to avoid such situations and thus life gets much
simpler).
If you would like to bend your mind a little, Racket or Forth or Smalltalk
(in a form of SqueakVM) could do the job. Every time I read about
Smalltalk and think how Java took over, I mentally weep.
Regards,
Tomasz Rola
--
** A C programmer asked whether computer had Buddha's nature. **
** As the answer, master did "rm -rif" on the programmer's home **
** directory. And then the C programmer became enlightened... **
** **
** Tomasz Rola mailto:
[email protected] **