Could Python supplant Java?

Max M maxm at mxm.dk
Wed Aug 21 13:13:27 EDT 2002


Steve Austin wrote:


> Code shouldn't 'evolve'.  Your design 'evolves'.  By the time
> you come to code your software you should be just implementing
> the design.


That is the one design philosophy, other ones that is quickly gaining 
ground is those of agile development and extreme programming.

> You do design your software before you sit down to write...
> Right?  ;-)


Not when you follow the above two methologies, no. Or rather you do it 
to a far lesser extend. Naturally you plan as much as you are able to 
do. But the idea is to get a minimal working implementation, and then 
evolve that from user feedback.


> By 'linear approach' you mean I work out in advance how I
> am going to do things, rather than make it up as I go 
> along, as my mood suits me?  :-)


No but you change things according to the experience you get as the 
project comes towards frutution. Agile programming tries to make it easy 
to change the code in your project as you learn more, while the 
waterfall etc. models tries to make one huge design effort up front. 
Experience have shown that the "all design up front" way of working 
often fails misserably. The agile method still has to prove it's worth 
though, but at least it is a fresh look at the state of affairs.

Zope 3 is developed using extreme/agile methologies, so it will be 
interresting to see how it pans out. So far they are pretty pleased with 
the result I think.


> And as for static vs dynamic data types.  I do find the 
> attitude of *some* Python programmers on the newsgroup
> a little disappointing.  They seem to advocate throwing
> the code together and then trapping all the errors
> by devloping test suites.


They are follwing the principles of extreme programming, and naturally 
the whole idea behind it cannot be expressed in a short posting on a 
newsgropup. But several books have been on the subject.


> Dynamic and static types have
> their place - but one of the nice things about static
> datatypes is that it provides just that little but extra
> checking that the compiler can do for you, if you provide 
> it with such information like what type of data you
> expect to be holding in each variable.


You providing the compiler with type information has both costs and 
benefits.
The benefit is the errors caught during compilation.
The cost is code that is more verbose and harder to read. Therefore 
increasing the probability of other bugs.

I don't know of any scientific reasearch saying which is best. I guess 
time will show.


regards Max M




More information about the Python-list mailing list