Is python worth learning as a second language?
rtomek at ceti.com.pl
Sat Mar 21 21:17:52 CET 2009
On Sat, 21 Mar 2009, Aahz wrote:
> In article <Pine.LNX.4.64.0903210534130.6380 at tau.ceti.pl>,
> Tomasz Rola <rtomek at ceti.com.pl> wrote:
> >On Sat, 20 Mar 2009, Aahz wrote:
> >> Taking C++ and turning it into a VM model does not exactly strike me
> >> as particularly good use of resources.
> >It doesn't strike me either. But resources are not the only dimension of
> >judging the language, you know.
> You misunderstand me: I was talking about the resources (people and
> money) used to create Java.
Ah, I see now. From my perspective, it depends on how things ended. Since
Java went into VB-like direction, I think I can agree. They have to go
deeper and deeper into this... dead end (business decisions and the like).
But it wasn't always looking as bad as now, so, you know, it is always
easy to judge past, especially knowing that something was a failure. As I
was reading about Java's prospects long ago, the use of people and money
by Sun seemed like quite good way of spending resources (not best, but
justified). In my opinion, it was the direction Java took somewhere around
dot com burst that has really sinked it (namely, letting go of innovating
aspect and pushing Java as, pardon the word, "business-level solution").
> Java is yet another language with heavy static typing and an
> object-oriented focus. What should have caused me to waste more time
> before dismissing it?
Really, I don't know. From how you wrote it, seems you had not much need
to investigate the subject. So, since you did not feel such need in the
first place, it could be difficult to convince you.
It really depends on what kind of programs you write (or are going to
write). For me, there are some cases, when I would at least consider Java
during design phase:
1. Writing code that has to be, umh, mobile (not in a cell phone sense).
Working on a network, sending code to other nodes. Special case - when
this code has to do some computations, not heavy enough to justify using
C, but still enough so that JIT is an advantage (even though JIT may not
be available on every node type). And, of course, having a C compiler on
every node is not always feasible. My favourites at the moment would be:
- Scheme. PLT Scheme has JIT and is my current workhorse language. It is
possible to find other Scheme flavors on almost any >=32-bit cpu. Cons:
all those flavors, albeit very similar and based on well defined common
standard - to be frank, not so common anymore, but this is irrelevant -
are still a bit different which can get problematic).
- Java. Has JIT and is quite ubiquitous, from mainframes to cellphones.
Cons: different Java flavors, EE, SE, MIDP... are quite different and
their common subset is too simple for my taste.
- Python. I like it more than Java, sometimes it is possible to use JIT.
Still, the fact that I like it does not always help enough to use it.
- Erlang? Who knows, I would have to read more about it first.
2. Using code written in few different languages:
- Common Lisp. Right now, I don't actually feel like I can program in it,
but from what I have read here and there, hacking REPL into accepting
foreign code is a lot of fun and adventure, so if only I had enough time
to learn, I would go for it, I suppose. Also, there is a possibility
(theoretical at least) to compile the whole shebang into native code.
- Java. As a platform, Java has a number of other languages
implementations on top of its JVM. They are a bit slow from what I read
but they are here long enough to be considered stable and/or mature.
- Python is not a big contender here, it is not a platform. It is still
possible to glue different libraries and interpreters with it (like Sage),
but this is not always convenient.
- Mono. I know it not well enough to consider its use. But maybe, maybe.
I hope this answered your question, at least partially. Learning Java as a
good Python or anything replacement is not a case, I think. However,
learning about it to have more choices is rather good idea. At least I
myself am not too sorry about knowing Java, maybe I should have just
jumped off its vagon a year or two earlier than I did.
BTW, I realise that there may be some costly alternatives to everything I
wrote above. But I am not interested so I would not consider them :-),
** 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:tomasz_rola at bigfoot.com **
More information about the Python-list