Re: [Zope] Re: Java vs Zope

2006-01-07 Thread bruno modulix

[EMAIL PROTECTED] a écrit :
(snip)



All said and done, I prefer to use Java over Python 
for large applications 



Good for you; there are others that share your tastes, but that's all it is:
preference.  A good coder could create an equally powerful suitably large
application in either language in the same amount of time.


My guess is that it will take much less time with Python. And that the 
large Java application will end up as a medium-sized app in Python 
(the average ratio must be along the line of 5 lines of Java for 1 line 
of Python).


(snip)


simply because it's cleaner and has 
mechanisms in place that support reusability of components 
and extensibility. 



Huh?  You can do pretty much the same designs, patterns, etc in Python.  Why
does language make a difference here in re-usability.  


It does make a difference - but the other way round !-)

Almost any (if not all) Java pattern can be translated to Python, but 
the opposite is not true.



Perhaps you are
arguing for single-inheritance as a constraint (which you can self-impose in
design in Python).


But why would you ?-) Python's duck typing makes inheritence much less 
important than it is in Java, but still, multiple inheritence is handy 
for mixins (let's talk about componants and reusability...).


Also, Python offers a pretty good support for composition/delegation, 
which allows for better decoupling (than inheritence), which in turns 
makes reusability easier.



___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] Re: Java vs Zope

2006-01-06 Thread bruno desthuilliers
Rocky Burt wrote:
 David H wrote:
 
Python is also object oriented.  In python, x = 10 creates an object not
a simple type - if I recall the same is true in Java.
 
 
 In fact this is not quite right.  In java, int x = 10 produces a
 primitive type.  Not a class instance at all.  In this case x has no
 methods which can be invoked whatsoever.  This is something I always
 despised about Java.  Java does have an Integer class but that is
 generally only used when an object is absolutely required (which is not
 often).  Java 1.5 did introduce autoboxing on primitive types so that
 int's and Integer instances could be interchanged without knowing in
 method calls, etc ... but x is still not an object with methods.
 
 In fact I'd go as far as to say that Python seems *more* object-oriented
 than Java.

s/seems/is/

Java is more class-oriented than object-oriented. It forces you to use
classes for everything, but not everything is an object. Python let you
use the paradigm that seems appropriate for the task at hand, but still
everything is an object (really everything : functions, classes and
modules too...)


-- 
bruno desthuilliers
développeur
[EMAIL PROTECTED]
http://www.modulix.com
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] Re: Java vs Zope

2006-01-06 Thread Asad Habib
Well, the class is simply a construct that Java uses to define an object. 
Also, the concept of object is well defined in Java which makes it easier 
for the programmer to know what can and cannot be done. In Python, it is 
not as explicit. Java is a programming language and hence cannot be 
compared directly to a scripting language such as Python or PHP. These 2 
types are designed for different purposes.


- Asad


On Fri, 6 Jan 2006, bruno desthuilliers wrote:


Rocky Burt wrote:

David H wrote:


Python is also object oriented.  In python, x = 10 creates an object not
a simple type - if I recall the same is true in Java.



In fact this is not quite right.  In java, int x = 10 produces a
primitive type.  Not a class instance at all.  In this case x has no
methods which can be invoked whatsoever.  This is something I always
despised about Java.  Java does have an Integer class but that is
generally only used when an object is absolutely required (which is not
often).  Java 1.5 did introduce autoboxing on primitive types so that
int's and Integer instances could be interchanged without knowing in
method calls, etc ... but x is still not an object with methods.

In fact I'd go as far as to say that Python seems *more* object-oriented
than Java.


s/seems/is/

Java is more class-oriented than object-oriented. It forces you to use
classes for everything, but not everything is an object. Python let you
use the paradigm that seems appropriate for the task at hand, but still
everything is an object (really everything : functions, classes and
modules too...)


--
bruno desthuilliers
développeur
[EMAIL PROTECTED]
http://www.modulix.com
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists -
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope-dev )
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] Re: Java vs Zope

2006-01-06 Thread Andreas Jung



--On 6. Januar 2006 10:06:55 -0500 Asad Habib [EMAIL PROTECTED] 
wrote:



Well, the class is simply a construct that Java uses to define an object.
Also, the concept of object is well defined in Java which makes it easier
for the programmer to know what can and cannot be done. In Python, it is
not as explicit. Java is a programming language and hence cannot be
compared directly to a scripting language such as Python or PHP. These 2
types are designed for different purposes.




Python is not a programming language??? huh..the difference is that
Java is compiled and Python is interpreted. I agree that PHP is not a 
programming language but just a weird mixture of HTML and _something_ 
programming-language-like :-)


-aj

pgpoE7bogTbXV.pgp
Description: PGP signature
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] Re: Java vs Zope

2006-01-06 Thread Martijn Pieters
On 1/6/06, Andreas Jung [EMAIL PROTECTED] wrote:
 Python is not a programming language??? huh..the difference is that
 Java is compiled and Python is interpreted

*Bt* Wrong again. :)

Both Java and Python compile to bytecode, which a virtual machine then
interprets. In Java this step is explicit, Python does the compilation
on the fly on first import.

The distinction between 'scripting' and 'programming' language is
arbitrary and a marketing, what-can-you-use-the-language-for label.
Java is hardly suited for scripting tasks, while Python scales from
scripting all the way up to enterprise applications (another
marketing label). I prefer the term 'Agile language'.

This is going to deteriorate into a language flamewar soon, so let's
look at a good Monty Python film instead. I recommend Life of Brian.

--
Martijn Pieters
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] Re: Java vs Zope

2006-01-06 Thread Andreas Jung



--On 6. Januar 2006 16:39:18 +0100 Martijn Pieters [EMAIL PROTECTED] wrote:


On 1/6/06, Andreas Jung [EMAIL PROTECTED] wrote:

Python is not a programming language??? huh..the difference is that
Java is compiled and Python is interpreted


*Bt* Wrong again. :)


Hairsplitter :-)

-aj

pgpkOhBnORLeQ.pgp
Description: PGP signature
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] Re: Java vs Zope

2006-01-06 Thread Martijn Pieters
On 1/6/06, Andreas Jung [EMAIL PROTECTED] wrote:
 Hairsplitter :-)

That's *Mr* __Pedant__ to you, capiche? :P

--
Martijn Pieters
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] Re: Java vs Zope

2006-01-06 Thread Lennart Regebro
On 1/6/06, Asad Habib [EMAIL PROTECTED] wrote:
 Well, the class is simply a construct that Java uses to define an object.
 Also, the concept of object is well defined in Java which makes it easier
 for the programmer to know what can and cannot be done. In Python, it is
 not as explicit. Java is a programming language and hence cannot be
 compared directly to a scripting language such as Python or PHP. These 2
 types are designed for different purposes.

The difference between scripting languages and programming languages
are an illusion. :)

Python is intepreted while Java is compiled. That makes Python
superiour in many ways. ;-)

--
Lennart Regebro, Nuxeo http://www.nuxeo.com/
CPS Content Management http://www.cps-project.org/
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists -
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] Re: Java vs Zope

2006-01-06 Thread bruno desthuilliers
Andreas Jung wrote:
 
 
 --On 6. Januar 2006 10:06:55 -0500 Asad Habib [EMAIL PROTECTED]
 wrote:
 
 Well, the class is simply a construct that Java uses to define an object.
 Also, the concept of object is well defined in Java which makes it easier
 for the programmer to know what can and cannot be done. In Python, it is
 not as explicit. Java is a programming language and hence cannot be
 compared directly to a scripting language such as Python or PHP. These 2
 types are designed for different purposes.


 
 Python is not a programming language??? huh..the difference is that
 Java is compiled and Python is interpreted.

Not even - Python is byte-compiled too. The difference is that the
Python interpreter (call it 'VM' if you think that 'interpreter' isn't
buzzword-compliant enough) is smart enough to take care of the
compilation phase by itself.


-- 
bruno desthuilliers
développeur
[EMAIL PROTECTED]
http://www.modulix.com
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] Re: Java vs Zope

2006-01-06 Thread Martijn Pieters
On 1/6/06, Lennart Regebro [EMAIL PROTECTED] wrote:
 Python is intepreted while Java is compiled. That makes Python
 superiour in many ways. ;-)

pedant mode=ranting
Python is compiled, then interpreted. Java is compiled, then
interpreted. Java compilation is explicit, Python compilation
implicit.

The differences that make Python vastly superiour lie elsewhere.
Educate yerselves, fer Chris'' sake!
/pedant

We now return you to our regelar program.

--
Martijn Pieters
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] Re: Java vs Zope

2006-01-06 Thread Asad Habib
Actually, that's not true. Languages such as Perl and Python were designed 
to write scripts, not to code entire applications. Python is an exception 
because it can be successfully used to code large applications, unlike 
some other scripting languages. So it's best to call Python a scripting 
programming language because it has this dual nature. All said and done, 
I prefer to use Java over Python for large applications simply because 
it's cleaner and has mechanisms in place that support reusability of 
components and extensibility. Also, OO concepts such as abstraction and 
inheritance are well defined in Java.


Also, both compiled and interpreted languages have their advantages and 
disadvantages.


- Asad


On Fri, 6 Jan 2006, Lennart Regebro wrote:


On 1/6/06, Asad Habib [EMAIL PROTECTED] wrote:

Well, the class is simply a construct that Java uses to define an object.
Also, the concept of object is well defined in Java which makes it easier
for the programmer to know what can and cannot be done. In Python, it is
not as explicit. Java is a programming language and hence cannot be
compared directly to a scripting language such as Python or PHP. These 2
types are designed for different purposes.


The difference between scripting languages and programming languages
are an illusion. :)

Python is intepreted while Java is compiled. That makes Python
superiour in many ways. ;-)

--
Lennart Regebro, Nuxeo http://www.nuxeo.com/
CPS Content Management http://www.cps-project.org/



___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] Re: Java vs Zope

2006-01-06 Thread Jean-Marc Orliaguet


Here is a document that explains why scripting languages are better than 
system programming languages (like C, C++, Java) for creating large 
scale applications, for gluing components together,  thanks to weak typing:


http://home.pacbell.net/ouster/scripting.html

this too might be interesting to look at.
http://www.ferg.org/projects/python_java_side-by-side.html

PS: there's nothing negative in the term scripting language.

/JM
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] Re: Java vs Zope

2006-01-06 Thread bruno desthuilliers
Asad Habib wrote:
(top-post corrected)

 
 On Fri, 6 Jan 2006, bruno desthuilliers wrote:
 
 Asad Habib wrote:
 (top-post corrected)

 On Fri, 6 Jan 2006, bruno desthuilliers wrote:
 Rocky Burt wrote:

 (snip)


 In fact I'd go as far as to say that Python seems *more*
 object-oriented
 than Java.



 s/seems/is/

 Java is more class-oriented than object-oriented. It forces you to use
 classes for everything, but not everything is an object. Python let you
 use the paradigm that seems appropriate for the task at hand, but still
 everything is an object (really everything : functions, classes and
 modules too...)

 Well, the class is simply a construct that Java uses to define an
 object. Also, the concept of object is well defined in Java which makes
 it easier for the programmer to know what can and cannot be done. In
 Python, it is not as explicit.


 Ho, really ? Chapter and verse, please ?

 Java is a programming language and hence
 cannot be compared directly to a scripting language such as Python


 Lol.

 or
 PHP. These 2 types are designed for different purposes.


 Learn Python, learn about it's object model, learn about it's execution
 model, and stop talking like a clueless newbie.


 Bruno, it's evident to me that you cannot distinguish between opinion
 and fact.

opinions :
- Java is a programming language, Python is a scripting language,
- Zope is like PHP,

facts :
- the two main differences between Python and Java are the type system
(declarative static in Java, dynamic in Python) and the fact that in
Python, everything is an object (which is not true in Java)
- Python is successfully used for large-scale applications
- Zope is a web application server written in Python


 My advice to you, try thinking outside your box! Python is one
 of several languages being used for software development in the world
 today 

I use, did use, and will still use other languages too (including Java,
which I really liked - before I discovered Python and Smalltalk).

 and just because I don't think it's optimal for large-scale
 applications (the keywork here is I, not everyone) does not mean that
 you have to insult me.

As I said elsewhere, you have the absolute right to think what you want,
prefer whichever language you prefer etc.

The problem here is not that you prefer Java, it is that you present a
mix of unbacked opinions and erroneous beliefs as facts. Hence my
advice. BTW, please re-read it carefully: I do not say you *are* a
clueless newbie - just that you actually talk like one. But you're of
course free to feel insulted if you prefer...


-- 
bruno desthuilliers
développeur
[EMAIL PROTECTED]
http://www.modulix.com
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] Re: Java vs Zope

2006-01-06 Thread bruno desthuilliers
Lennart Regebro wrote:
 On 1/6/06, bruno desthuilliers [EMAIL PROTECTED] wrote:
 
Not even - Python is byte-compiled too. The difference is that the
Python interpreter (call it 'VM' if you think that 'interpreter' isn't
buzzword-compliant enough) is smart enough to take care of the
compilation phase by itself.
 
 
 Ah, but that's not the only difference. 

Of course not !-)
This was only about the 'compiled-vs-interpreted' thing.



-- 
bruno desthuilliers
développeur
[EMAIL PROTECTED]
http://www.modulix.com
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] Re: Java vs Zope

2006-01-06 Thread Lennart Regebro
On 1/6/06, bruno desthuilliers [EMAIL PROTECTED] wrote:
 Lennart Regebro wrote:
  On 1/6/06, bruno desthuilliers [EMAIL PROTECTED] wrote:
 
 Not even - Python is byte-compiled too. The difference is that the
 Python interpreter (call it 'VM' if you think that 'interpreter' isn't
 buzzword-compliant enough) is smart enough to take care of the
 compilation phase by itself.
 
 
  Ah, but that's not the only difference.

 Of course not !-)
 This was only about the 'compiled-vs-interpreted' thing.

Yeah, yeah, I was trying to be pedagogical and failed. Compiled =
fixed, interpreted = not fixed. If you see what I mean. Of course,
thats an oversimplification bordering on the incorrect, and there are
better ways to describe it, so as usual, I should be ignored.

It is indeed the dynamic typing, and the fact that everything is
handled by reference (more than that everything is an object, although
that's true as well) that I was aiming at. This means that you can
just replace the reference to one method with the reference to another
method, and do the same with everything else. Careful use of this
seriously cuts down development time, by for example letting you fix
Zope bugs without waiting for a new release.

I think it is these things people tend to see as scripting or
interpreted language features as opposed to compiled or real
languages.

--
Lennart Regebro, Nuxeo http://www.nuxeo.com/
CPS Content Management http://www.cps-project.org/
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists -
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] Re: Java vs Zope

2006-01-06 Thread Dieter Maurer
Asad Habib wrote at 2006-1-6 11:27 -0500:
Actually, that's not true. Languages such as Perl and Python were designed 
to write scripts, not to code entire applications. Python is an exception 
because it can be successfully used to code large applications, unlike 
some other scripting languages.

Tcl and Perl, too, have been used to build large applications.

-- 
Dieter
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )


[Zope] Re: Java vs Zope

2006-01-06 Thread Cliff Williams
I was waiting for someone else to mention this and am only adding it 
because I haven't seen it yet. To answer you question Why wold anyone 
use Java? I present the following:


It's not always about the technology.

Outside of Fortune 1000 america we can debate the merits of differing 
techologies and experiment. (Example: at rezidew.net we wanted to know 
which would perform better for us a 486 133 or a pentium 60. We built a 
box and ran it in production for a month then pulled the harddrive out 
and plopped it into another box. Try doing that at a fortune 1000 
company) Companies are now in the mode of managing risk so if they 
have to use an inferior system (MS Exchange) to get that exposure 
mitigation they are looking for, that's what they'll do.


I've worked at banks that had No Open Source policies. When I pointed 
out that their IBM webservers were running Linux which is OpenSource 
they said oh well it's IBM, we have an SLA with them. When I've 
rebutted that they could get the same from other companies for Open 
Source technologies; the reply was something like what some dot-com 
that's going to disappear in 2 years?


So it's not the bits, bytes, methods, types, references, classes, 
instanciation based answer you were probably looking for but it's true, 
at least in my experience.



David Johnson wrote:

Good afternoon.  I am new to Zope and I am excited about its possibilities.
We are an ASP and plan to use Zope to improve our development process.
I see that many people use J2EE based environments.  Does anyone
understand why?  Why would anyone use Java?  What am I missing?

We're ready to go forward with Zope but I fear I might be missing something.

Thanks for any opinions!

___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce

 http://mail.zope.org/mailman/listinfo/zope-dev )



___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope-dev )


[Zope] Re: Java vs Zope

2006-01-04 Thread Rocky Burt
J Cameron Cooper wrote:
 ... I think it's quite acceptable to put the burden of use on the
 programmer instead of the compiler, considering the benefits; that's
 what he's thinking about anyway, no?

+1

 Zope 3, though I admit I've only played with it glancingly, seems to be
 more J2EE-like in certain respects: there seem to be a lot of things I
 have to touch to get things going. To a certain point, I can deal with
 this, but if there's ever a ZDoclet...

Lol, I remember so many times haveint to install XDoclet in order to
develop my EJB's in any sane amount of time.

But I understand and agree with your point here.  EJB development
required so much boilerplate code that it slowed the developer down big
time.  It took tools like XDoclet to come along and make the boilerplate
code somewhat manageable before developing with EJB's was very
productive IMHO.  I recently talked about this at:
http://www.serverzen.net/weblog/archive/2006/01/02/boilerplate-zope-projects

For the record (and as my blog entry mentions), Skeletor seems to strive
to be XDoclet for Zope2.

- Rocky

-- 
Rocky Burt
ServerZen Software -- http://www.serverzen.com
ServerZen Hosting -- http://www.serverzenhosting.net
News About The Server -- http://www.serverzen.net

___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )


[Zope] RE: Java vs Zope

2006-01-03 Thread Sam Stainsby
On Tue, 03 Jan 2006 21:12:06 -0600, David Johnson wrote:

 David - I am new to Zope, but I feel your assessment is correct.  We have
 developed and deployed very large applications using PHP/C++, and are now
 looking to Zope to take us into the next stage.  Python seems excellent at
 object orientation and neatness with minimal effort by the developer.   
 
 Asab - Do you know any types of large applications that are in Java?  I have
 seen only a few, and they are particularly bad, such as the Oracle
 installer, Star Office, and Eclipse. All are excessively large, slow, and
 buggy.  We have one competitor using J2EE, and it requires them 10 times the
 resources (both financial and labor), as it does us using PHP, and their
 application is poor and difficult to modify for customer needs.  Only highly
 trained engineers can understand and use Java, making maintenance expensive
 and challenging.  Our initial efforts in Zope lead us to believe we can be
 even faster and better using Zope and Python than we were able with PHP (we
 use PHP with classes).  Have you not found this to be case?  I'm not trying
 to be difficult, but I have so much trouble understanding the appeal of
 Java.  Thank you.


I've worked with Java for 10+ years (yes, ever since you could first get
hold of it!) and the last couple of years with Zope/Plone/python. There is
no doubt that both are great environments to develop in! I agree that
python is great for putting an application together very simply and
rapidly. However, in general programming, there are some things I really
miss from the Java world, and I will run through below. I'm not saying one
is better than the other, but simply that you have to weight up the pros
and cons when deciding which to use ...

One thing is static type checking: developers detecting type errors at
compile time, rather than some hapless user running into it at run time
(i.e. after release to the public). I see many of those types of errors
in Zope and Plone products, particularly as the API of one product
changes and another product tries to use it. With Java, such
problems are likely to be detected at compile time. Runtime errors produce a 
negative public
perception of software products, as well as being dangerous in critical
systems. Pervasive use of unit testing will help avoid such problems, but
that level of discipline is hard to find in Zope/Plone projects (but well
done those who do it!). On the downside, static type checking makes Java
less flexible, and requires more programming effort, and of course there
is that tedious compilation step. 

Java also tends to lead to cleaner and more understandable software
architectures than python because of its fundamental and neat/easy use of
interfaces, classes, packages and even threads (not that concurrent
programming is ever that easy). Mainly good  easy abstract interfaces,
and their widespread use in APIs, is what I miss.

As to whether J2EE is better than Zope/Plone for web applications, I'm
undecided. Before I started with Plone, I would have used Java if I could
find a suitable FOSS platform that did all the things that Zope  Plone do
- but there were none available. It looks like that is changing now
though with all the FOSS J2EE environments, workflows, etc. coming
along, so I may sway back to Java sometime in the future.

I would generally say that, for the *same* amount of testing, Java is
much safer (in terms of less defects) than python. I'm not sure if it is
true that an equivalent python application using similar APIs is quicker
to write. 

I suspect it is also true that Java is available in more environments that
python, and perhaps is has more consistent feature sets (APIs)
on each platform, leading to greater portability of applications. For web
apps perhaps this is not such a problem.

I have also used PHP quite a bit, but I am disappointed by its abysmal
lack of decent OO, exception and name spaces. For those that don't care
about OO, probably this doesn't bother them. For me, I find it hard to go
back and use PHP after experiencing python.

Finally, while I don't think execution speed is much of a issue these
days, the horrendous use of memory resources by Java can be a
problem.

___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] RE: Java vs Zope

2006-01-03 Thread J Cameron Cooper

Sam Stainsby wrote:


One thing is static type checking: developers detecting type errors at
compile time, rather than some hapless user running into it at run time
(i.e. after release to the public). I see many of those types of errors
in Zope and Plone products, particularly as the API of one product
changes and another product tries to use it. With Java, such
problems are likely to be detected at compile time. Runtime errors produce a 
negative public
perception of software products, as well as being dangerous in critical
systems. Pervasive use of unit testing will help avoid such problems, but
that level of discipline is hard to find in Zope/Plone projects (but well
done those who do it!). On the downside, static type checking makes Java
less flexible, and requires more programming effort, and of course there
is that tedious compilation step.


I worked in Java for web apps (as well as a few halting tries at 
GUIs--ick!) before Zope. I expected type problems because of the lack of 
static checking; however, I have not found it to be a problem. I don't 
think programs are quite as wild and wooly as static typed languages 
assume. I think it's quite acceptable to put the burden of use on the 
programmer instead of the compiler, considering the benefits; that's 
what he's thinking about anyway, no?


My main problem with Java is that it's a high-friction environment. It 
takes a lot of work to do most things, often because interfaces have 
been abstracted so far (or sometimes because of compiler hoops, but not 
that often.) This is both in code and framework.


For code, go take a look at what it takes to make an XML-RPC call in 
Python and in Java. I had to look this up for writing my book, and it's 
quite disgusting. It all depends on the functionality, of course, but I 
can't think of anything that writes quicker in Java than in Python.


Framework-wise, I found that it took at least three separate helper 
programs to set up an reasonably productive, understandable, and 
maintainable development environment for J2EE, and that's not even 
counting an IDE.


Zope 2 development generally has a lot less friction, and is usually a 
lot higher-level. As a result, I think it's several times faster than 
Java development. Possibly even many times faster. It does seem to make 
up for this by being more mysterious, but you can learn those things in 
time. You can't get rid of all the Java crap. (It's like the Churchill 
joke.)


Zope 3, though I admit I've only played with it glancingly, seems to be 
more J2EE-like in certain respects: there seem to be a lot of things I 
have to touch to get things going. To a certain point, I can deal with 
this, but if there's ever a ZDoclet...


--jcc
--
Building Websites with Plone
http://plonebook.packtpub.com/
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope-dev )