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!
On Sun, 2006-01-01 at 14:04 -0600, David Johnson wrote:
Does anyone understand why? Why would anyone use Java? What am I missing?
For example, in my college, they teach Java as programming langage. It's then not a surprise to see it then at work. On the other hand, they also teach O/Caml but there is less OCaml applications...
David Johnson schrieb:
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?
Even more people are "using" PHP and stuff. This does not mean its good or prooves the fitness for a particular task. Mostly its just what people are used to and some marketing. If you know a bunch of tools and languages, you can choose the one which suits your tasks most. Regards Tino
--On 1. Januar 2006 14:04:16 -0600 David Johnson <djohnson@jsatech.com> 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?
Because everyone uses Java! When you work in an environment were Java is already used then you usually use Java instead of Python. And there are environments where Python is possibly the better solution. You just need to compare the efforts to integrate an existing environment with your solution...then you choose your tools. -aj
Andreas and others, Thanks for your response. I think my confusion lies in the idea that not everyone uses Java (though they may talk about it). I do not see everyone using Java. In fact I see very few large or successful companies using it. Even Sun and IBM develop their core components in C/C++. GNU, Linux, MySQL ... all C/C++. Ditto Oracle. In my market, we've been able to easily outpace and perform competitors going the J2EE route, and for a lot less money. In regards to web development, the list of technologies being implemented is overwhelming. It took extensive research to find and settle down to Zope. In my research, I found it took 57 complex files to develop a simple and ugly J2EE application to display a list of cars from a database (various Ant, xml, jar, war and other files). In Zope this can be done in 2 objects, and it integrates nicely with apps like Dreamweaver, so it looks and feels nice. We often find the need to integrate with other products and when we do, either the product's manufacturer a) is interested in market share, or b) they avoid change. For companies who are into market share they often use a greatest common denominator technology such as C, Perl, or HTTP. Java does not play nicely here. Companies who avoid change usually do so because they produce large-scale or small market systems, and change is too expensive and hard. In this case Java, again, does not play nicely. In Java it seems that not only do you have to figure how to interface with others, you have to figure out how to do it in Java as well (which is not trivial). Zope and Python seem better at translating thoughts into code, and doing so with the right balance of object orientation, and scalability. Zope provides a solid framework for development and scalability, while providing mechanisms to include and deploy very custom and specific features in a standardized way. -----Original Message----- From: Andreas Jung [mailto:lists@andreas-jung.com] Sent: Sunday, January 01, 2006 4:03 PM To: David Johnson; zope@zope.org Subject: Re: [Zope] Java vs Zope --On 1. Januar 2006 14:04:16 -0600 David Johnson <djohnson@jsatech.com> 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?
Because everyone uses Java! When you work in an environment were Java is already used then you usually use Java instead of Python. And there are environments where Python is possibly the better solution. You just need to compare the efforts to integrate an existing environment with your solution...then you choose your tools. -aj
I always found the bytecode aspect of Java annoying... having to compile without the advantages in speed of a compiled language. Interesting, though, I host a WebSphere 6.0 app in Java... The Websphere install is littered with python files, for install/setup purposes... hmm two cents, -Jon David Johnson wrote:
Andreas and others,
Thanks for your response. I think my confusion lies in the idea that not everyone uses Java (though they may talk about it). I do not see everyone using Java. In fact I see very few large or successful companies using it. Even Sun and IBM develop their core components in C/C++. GNU, Linux, MySQL ... all C/C++. Ditto Oracle. In my market, we've been able to easily outpace and perform competitors going the J2EE route, and for a lot less money.
In regards to web development, the list of technologies being implemented is overwhelming. It took extensive research to find and settle down to Zope.
In my research, I found it took 57 complex files to develop a simple and ugly J2EE application to display a list of cars from a database (various Ant, xml, jar, war and other files). In Zope this can be done in 2 objects, and it integrates nicely with apps like Dreamweaver, so it looks and feels nice.
We often find the need to integrate with other products and when we do, either the product's manufacturer a) is interested in market share, or b) they avoid change.
For companies who are into market share they often use a greatest common denominator technology such as C, Perl, or HTTP. Java does not play nicely here.
Companies who avoid change usually do so because they produce large-scale or small market systems, and change is too expensive and hard. In this case Java, again, does not play nicely.
In Java it seems that not only do you have to figure how to interface with others, you have to figure out how to do it in Java as well (which is not trivial). Zope and Python seem better at translating thoughts into code, and doing so with the right balance of object orientation, and scalability.
Zope provides a solid framework for development and scalability, while providing mechanisms to include and deploy very custom and specific features in a standardized way.
-----Original Message----- From: Andreas Jung [mailto:lists@andreas-jung.com] Sent: Sunday, January 01, 2006 4:03 PM To: David Johnson; zope@zope.org Subject: Re: [Zope] Java vs Zope
--On 1. Januar 2006 14:04:16 -0600 David Johnson <djohnson@jsatech.com> 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?
Because everyone uses Java! When you work in an environment were Java is already used then you usually use Java instead of Python. And there are environments where Python is possibly the better solution. You just need to compare the efforts to integrate an existing environment with your solution...then you choose your tools.
-aj
_______________________________________________ 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 )
-- Jonathan Cyr http://www.cyr.info http://www.weddingweblog.com cyrj@cyr.info
From my experience, Java development has been a lot faster when applications have middle to high level complexity. Since Java is inherently object-oriented, reusability is much easier to achieve then when using Zope. Also, Java has mature development and debugging environments and well organized API's. Zope is seriously lacking in this regard.
Zope is good for building simple interfaces but any application that does data processing and requires session management should be left for Java. The closest comparison to Zope that I can think of is PHP. Again, this is just my opinion based on my own experiences. - Asad On Tue, 3 Jan 2006, Jonathan Cyr wrote:
I always found the bytecode aspect of Java annoying... having to compile without the advantages in speed of a compiled language.
Interesting, though, I host a WebSphere 6.0 app in Java... The Websphere install is littered with python files, for install/setup purposes... hmm
two cents,
-Jon
David Johnson wrote:
Andreas and others, Thanks for your response. I think my confusion lies in the idea that not everyone uses Java (though they may talk about it). I do not see everyone using Java. In fact I see very few large or successful companies using it. Even Sun and IBM develop their core components in C/C++. GNU, Linux, MySQL ... all C/C++. Ditto Oracle. In my market, we've been able to easily outpace and perform competitors going the J2EE route, and for a lot less money.
In regards to web development, the list of technologies being implemented is overwhelming. It took extensive research to find and settle down to Zope. In my research, I found it took 57 complex files to develop a simple and ugly J2EE application to display a list of cars from a database (various Ant, xml, jar, war and other files). In Zope this can be done in 2 objects, and it integrates nicely with apps like Dreamweaver, so it looks and feels nice.
We often find the need to integrate with other products and when we do, either the product's manufacturer a) is interested in market share, or b) they avoid change. For companies who are into market share they often use a greatest common denominator technology such as C, Perl, or HTTP. Java does not play nicely here.
Companies who avoid change usually do so because they produce large-scale or small market systems, and change is too expensive and hard. In this case Java, again, does not play nicely.
In Java it seems that not only do you have to figure how to interface with others, you have to figure out how to do it in Java as well (which is not trivial). Zope and Python seem better at translating thoughts into code, and doing so with the right balance of object orientation, and scalability.
Zope provides a solid framework for development and scalability, while providing mechanisms to include and deploy very custom and specific features in a standardized way.
-----Original Message----- From: Andreas Jung [mailto:lists@andreas-jung.com] Sent: Sunday, January 01, 2006 4:03 PM To: David Johnson; zope@zope.org Subject: Re: [Zope] Java vs Zope
--On 1. Januar 2006 14:04:16 -0600 David Johnson <djohnson@jsatech.com> 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?
Because everyone uses Java! When you work in an environment were Java is already used then you usually use Java instead of Python. And there are environments where Python is possibly the better solution. You just need to compare the efforts to integrate an existing environment with your solution...then you choose your tools.
-aj
_______________________________________________ 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 )
-- Jonathan Cyr http://www.cyr.info http://www.weddingweblog.com cyrj@cyr.info
Asad Habib wrote:
From my experience, Java development has been a lot faster when
applications have middle to high level complexity. Since Java is inherently object-oriented, reusability is much easier to achieve then when using Zope. Also, Java has mature development and debugging environments and well organized API's. Zope is seriously lacking in this regard.
Zope is good for building simple interfaces but any application that does data processing and requires session management should be left for Java. The closest comparison to Zope that I can think of is PHP.
Again, this is just my opinion based on my own experiences.
- Asad
Asad, 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. The comparison should first be between python and java. I've used both and prefer python. The next compare should be between developement platforms for each: e.g. Zope vs some java IDE. Lastly, I think Zope is more than capable of handling "complex applications" using external databases. I've not run into a single barrier doing this using Zope (other than fleeing braincells). All best, David
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. -----Original Message----- From: zope-bounces@zope.org [mailto:zope-bounces@zope.org] On Behalf Of David H Sent: Tuesday, January 03, 2006 8:23 PM To: Asad Habib Cc: Jonathan Cyr; zope@zope.org Subject: Re: [Zope] Java vs Zope Asad Habib wrote:
From my experience, Java development has been a lot faster when
applications have middle to high level complexity. Since Java is inherently object-oriented, reusability is much easier to achieve then when using Zope. Also, Java has mature development and debugging environments and well organized API's. Zope is seriously lacking in this regard.
Zope is good for building simple interfaces but any application that does data processing and requires session management should be left for Java. The closest comparison to Zope that I can think of is PHP.
Again, this is just my opinion based on my own experiences.
- Asad
Asad, 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. The comparison should first be between python and java. I've used both and prefer python. The next compare should be between developement platforms for each: e.g. Zope vs some java IDE. Lastly, I think Zope is more than capable of handling "complex applications" using external databases. I've not run into a single barrier doing this using Zope (other than fleeing braincells). All best, David _______________________________________________ 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 )
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.
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/
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
David Johnson schrieb:
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.
We came to the same conclusion when we once had an in-company comparation of e-commerce solutions - one big team always developed with java and help of external specialists and one small team used zope. Guess who was faster in development, had more features and used less hardware?
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. - Rocky -- Rocky Burt ServerZen Software -- http://www.serverzen.com ServerZen Hosting -- http://www.serverzenhosting.net News About The Server -- http://www.serverzen.net
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 bruno@modulix.org http://www.modulix.com
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 bruno@modulix.org 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 )
--On 6. Januar 2006 10:06:55 -0500 Asad Habib <ahabib@engin.umich.edu> 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
Andreas Jung wrote:
--On 6. Januar 2006 10:06:55 -0500 Asad Habib <ahabib@engin.umich.edu> 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 bruno@modulix.org http://www.modulix.com
On 1/6/06, bruno desthuilliers <bruno@modulix.org> 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. The fact that the VM/intepreter does this, together with the dynamic type handling, enables you to do self-modifying code. A typical "dynamic" feature. ;) -- Lennart Regebro, Nuxeo http://www.nuxeo.com/ CPS Content Management http://www.cps-project.org/
Lennart Regebro wrote:
On 1/6/06, bruno desthuilliers <bruno@modulix.org> 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 bruno@modulix.org http://www.modulix.com
On 1/6/06, bruno desthuilliers <bruno@modulix.org> wrote:
Lennart Regebro wrote:
On 1/6/06, bruno desthuilliers <bruno@modulix.org> 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/
On 1/6/06, Asad Habib <ahabib@engin.umich.edu> 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/
On 1/6/06, Lennart Regebro <regebro@gmail.com> 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
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 <ahabib@engin.umich.edu> 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/
Asad Habib wrote: (top-post corrected)
- Asad
On Fri, 6 Jan 2006, Lennart Regebro wrote:
On 1/6/06, Asad Habib <ahabib@engin.umich.edu> 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. :)
Actually, that's not true. Languages such as Perl and Python were designed to write scripts, not to code entire applications.
What is the core difference between a script and an "entire application"? BTW Java (which was named Oak by that time) was designed for embedded systems, where it proved to be a complete failure. And C was designed as a 'system' language, but is still used for application programming.
Python is an exception because it can be successfully used to code large applications,
If it can be used to program, then it's a programming language. And if it can be used to write large applications, then I don't see your point at all.
unlike some other scripting languages. So it's best to call Python a "scripting programming language" because it has this dual nature.
Just call it a programming language. That will be simpler. Now it's true that Python can *also* be used for scripting - while Java cannot.
All said and done, I prefer to use Java over Python for large applications
This is perfectly legitimate, but doesn't mean one language is better/more OO/anything than the other
simply because it's cleaner
Depends on the definition of "cleaner". I personnaly find Python much more cleaner than Java.
and has mechanisms in place that support reusability of components and extensibility.
So does Python. But you can't know, because you don't know Python (or you would not post as much non-sense).
Also, OO concepts such as abstraction
'abstraction' is not an OO concept. It's a concept, but not specific to OO.
and inheritance are well defined in Java.
In Python too.
Also, both compiled and interpreted languages have their advantages and disadvantages.
Probably, but this is irrelevant here since Python is byte-compiled just like Java. -- bruno desthuilliers développeur bruno@modulix.org http://www.modulix.com
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
Asad Habib wrote: (top-post corrected)
- Asad
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 desthuilliers développeur bruno@modulix.org http://www.modulix.com
Bruno, it's evident to me that you cannot distinguish between opinion and fact. My advice to you, try thinking outside your box! Python is one of several languages being used for software development in the world today 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. - Asad On Fri, 6 Jan 2006, bruno desthuilliers wrote:
Asad Habib wrote: (top-post corrected)
- Asad
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 desthuilliers développeur bruno@modulix.org 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 )
--On 6. Januar 2006 11:52:48 -0500 Asad Habib <ahabib@engin.umich.edu> wrote:
and just because I don't think it's optimal for large-scale applications (the keywork here is I, not everyone).
There is nothing optimal in this world and there is no perfect programming language but Python is good enough for large-scale applications (depends on how you define it :-))....so what is _your_ definition of large-scale? -aj
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 bruno@modulix.org http://www.modulix.com
Asad Habib wrote at 2006-1-6 10:06 -0500:
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.
The same is true for Python -- apart from the dynamic additions to instances and classes possible with Python (but not Java). -- Dieter
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 )
participants (15)
-
Andreas Jung -
Asad Habib -
bruno desthuilliers -
Cliff Williams -
David H -
David Johnson -
Dieter Maurer -
J Cameron Cooper -
Jonathan Cyr -
Lennart Regebro -
Martijn Pieters -
Rakotomandimby Mihamina -
Rocky Burt -
Sam Stainsby -
Tino Wildenhain