Re: [Zope] Re: Java vs Zope
[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
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
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
--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
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
--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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 )