Could Python supplant Java?

FISH joeking at merseymail.com
Wed Aug 21 19:17:54 CEST 2002


brueckd at tbye.com wrote in message news:<mailman.1029852209.8109.python-list at python.org>...
> On 20 Aug 2002, FISH wrote:
[snipped...]
> Have you done any analysis or classification of your bugs that actually 
> shows that the bugs found in production would equate to syntax errors in a 
> compiled languaged? Anecdotally they tend to be two different types of 
> bugs; also I just scanned through our entire internal Bugzilla list and 
> see two things:
> 
> 1) The production bugs in C++ and Java are similar to the ones in Python.
> 2) None of the Python bugs would have been found at compile time in a 
> statically-typed language.

And the sample size?  (Roughly, to the nearest thousand or so, if 
you can't remember!)


> > Strong and weak typing have their place.  Dynamic types are less
> > hassle to work with, but of course they push an added burden of
> > testing onto the developer
> 
> You are deceiving yourself if you think (at least a good portion of) the
> burden of testing is not already on the developer. 

I never said it wasn't.  Sounds like we need all the help we
can get - don't you agree?

> The difference between
> static and dynamic typed languages is that with the dynamicly-typed
> language you don't have the false sense of security. You should be
> suspicious of all warm fuzzies derived from code that successfully
> compiles. :-)

There's a man who sounds like he *really* has confidence in 
the code he writes :-)

Nobody is claiming that statically typed languages solve all
your programming woes.  But they just help a little.  Only a
little... but they do help.


> I think you mean 'static' and not 'strong' typing as Python *is* stronly 
> typed.

Yes I do.  Well spotted.  (But you don't get a 'NO PRIZE' I'm 
afraid! :-)


> The perception that dynamically-typed languages don't work for large 
> applications is common, but it is a common *mis*conception (for example, 
> Google for one of the recent threads about successful large Python 
> applications - despite Python's limited popularity there are actually 
> quite a few large and successful Python projects - certainly too many to 
> be a fluke!).


And statically typed languages are not successful?  ;-)

When languages first become popular, the 'early pioneers' 
are always well above average programmers.  The great 
unwashed masses follow on behind, as it becomes more and
more mainstream and commercialised.  In general, the more 
popular a language gets, the lower the average skill level 
of its users, until a certain 'critical mass' is reached.

Anyway, that's my theory :-)

You wait until the script kiddies get their hands on it :-)


> One reason why your fear doesn't turn out to be true is the reason I 
> mentioned above: the bugs found in the field aren't the kind caught by 
> a compiler.

You mean *typically* aren't the type, or are you saying they *never*
occur in dynamically typed languages ?

> 
> I'll go so far as to say that languages such as C++, VB, Java, are
> actually *less* suitable for very large projects than Python, and their
> suitability *decreases* as the size of the project increases. Languages
> like Python actually enable the clean and robust creation of larger
> programs by smaller groups of people - its clean syntax, high-level 
> built-in data types, automatic memory management, low cost of change, etc. 
> all combine to push back the limits of program complexity - the point at 
> which the application becomes too large and complex to manage. 

Which one of those on that list *doesn't* apply to Java, would
you say?


> Whatever comes after Python will further extend the limit of what a
> program can be before becoming too complex. Moving from assembly language
> to C opened the door to larger and more complex applications for the same
> reasons, and moving from C++ or Java to Python yields similar results.

Why are you so against the idea of telling the compiler in advance
what type of data you are going to hold in a variable?  I mean 
really, what great freedoms do you loose which cannot be regained
by other (more strucutred) means?

I know for some small applications it is overkill - but surely any 
serious programmer would want all the help she can get - even if it 
does only catch 1% of bugs.  (Not a scientific figure - more a figure 
of speech :-)


-FISH-   ><>



More information about the Python-list mailing list