Is python worth learning as a second language?

Tomasz Rola 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 :-),

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:tomasz_rola at bigfoot.com             **



More information about the Python-list mailing list