Lew said:
Actually, maybe it would. I was basing my comment on comments others
have made, and likely was unfair to Python.
I was just curious to know what impressions you had about Python. When I
started looking at Python a while back, initially my reaction was,
"uurgh! dynamic/loose typing! What? You don't declare interfaces?" and
things like that. What I soon came to realise is that there is a
Pythonic way to do things, a mindset, along with Python and the
community. And one of those ways is to put tests in place with good
coverage. But yes, you'll catch less problems at compile time with
dynamic typing...
There are some things about Python I love. I love the fact you can do
away with getters and setters, allowing direct access to members, which
is ok in the vast majority of cases. In the remaining cases, you use the
fact that writing "a = chicken.beak" in Python calls a getter that is
implicit, which you can override (so you don't break any existing code).
(Although exposing the members directly does involve breaking
encapsulation and reveals some implementation detail...!)
I also love how compact and cohesive the language is. Want a substring?
Want a list slice? It's the same format for both:
string = "This is a string, hello my world"
substring = string[1:10]
list = [2, 6, 4, 7, 8, 3]
subList = list[2:4]
Size of list versus size of string? Same syntax:
print len(string)
print len(list)
This all said and done, when I think "OO" with big capital 'O's, I do
usually think of Java first.
But Python's pretty hard to beat for fast prototyping and getting
something functioning in not much time.
My impression is that the so-called "scripting" languages are less good
about things like compile-time elimination of bugs, developing larger
components, more thorough exception- and error-handling mechanisms and
other mechanisms of the "big-iron" languages like C++, C#, Java or
Smalltalk.
I know what you mean... although I often think people underestimate
Python as well.
I would never consider doing a large, OO heavy project in Perl. But
Python would be much more of a contender.
lex