Java vs Zope
28 answers - 3074 bytes -

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 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.
Message
From: Andreas Jung [mailto:lists (AT) andreas-jung (DOT) com]
Sent: Sunday, January 01, 2006 4:03 PM
To: David Johnson; zope (AT) zope (DOT) org
Subject: Re: [Zope] Java vs Zope
1. Januar 2006 14:04:16 -0600 David Johnson <djohnson (AT) jsatech (DOT) 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
solutionthen you choose your tools.
-aj
Zope maillist - Zope (AT) zope (DOT) org
** No cross posts or HTML encoding! **
(Related lists -
)
No.1 | | 3551 bytes |
| 
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 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.
>
>
>
Message
From: Andreas Jung [mailto:lists (AT) andreas-jung (DOT) com]
Sent: Sunday, January 01, 2006 4:03 PM
To: David Johnson; zope (AT) zope (DOT) org
Subject: Re: [Zope] Java vs Zope
>
>
>
1. Januar 2006 14:04:16 -0600 David Johnson <djohnson (AT) jsatech (DOT) 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
solutionthen you choose your tools.
-aj
Zope maillist - Zope (AT) zope (DOT) org
** No cross posts or HTML encoding! **
(Related lists -
)
No.2 | | 4593 bytes |
| 
>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
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 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.
>
>
>>
>Message
>From: Andreas Jung [mailto:lists (AT) andreas-jung (DOT) com] Sent: Sunday, January
>01, 2006 4:03 PM
>To: David Johnson; zope (AT) zope (DOT) org
>Subject: Re: [Zope] Java vs Zope
>
>
>
>1. Januar 2006 14:04:16 -0600 David Johnson <djohnson (AT) jsatech (DOT) 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
>solutionthen you choose your tools.
>
>-aj
>
>
>Zope maillist - Zope (AT) zope (DOT) org
>
>** No cross posts or HTML encoding! **
>(Related lists -
>)
>>
>
>
No.3 | | 1460 bytes |
| 
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 (AT) zope (DOT) org
** No cross posts or HTML encoding! **
(Related lists -
)
No.4 | | 4548 bytes |
| 
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
installer, Star , 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. highly
trained engineers can understand and use Java, making maintenance expensive
and challenging. 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
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!). 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 FSS 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 FSS 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 , exception and name spaces. For those that don't care
about , 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 (AT) zope (DOT) org
** No cross posts or HTML encoding! **
(Related lists -
)
No.5 | | 2887 bytes |
| 
Sam Stainsby wrote:
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!). 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!) 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"
No.6 | | 826 bytes |
| 
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
No.7 | | 1095 bytes |
| 
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 IMH I recently talked about this at:
For the record (and as my blog entry mentions), Skeletor seems to strive
to be XDoclet for Zope2.
- Rocky
No.8 | | 1243 bytes |
| 
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)
No.9 | | 1888 bytes |
| 
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
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)
--
No.10 | | 1020 bytes |
| 
6. Januar 2006 10:06:55 -0500 Asad Habib <ahabib (AT) engin (DOT) 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? huhthe 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
Zope maillist - Zope (AT) zope (DOT) org
** No cross posts or HTML encoding! **
(Related lists -
)
PGP SIGNATURE
Version: GnuPG v1.4.2 (Darwin)
PAtSZDGWC5m0eM=
=Qs+a
PGP SIGNATURE
No.11 | | 882 bytes |
| 
1/6/06, Andreas Jung <lists (AT) andreas-jung (DOT) comwrote:
Python is not a programming language? huhthe difference is that
Java is compiled and Python is interpreted
*Bzzzzt* 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, 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".
No.12 | | 615 bytes |
| 
6. Januar 2006 16:39:18 +0100 Martijn Pieters <mj (AT) zopatista (DOT) comwrote:
1/6/06, Andreas Jung <lists (AT) andreas-jung (DOT) comwrote:
>Python is not a programming language? huhthe difference is that
>Java is compiled and Python is interpreted
>
*Bzzzzt* Wrong again. :)
Hairsplitter :-)
-aj
Zope maillist - Zope (AT) zope (DOT) org
** No cross posts or HTML encoding! **
(Related lists -
)
PGP SIGNATURE
Version: GnuPG v1.4.2 (Darwin)
LH0oRa15VNK2WoRNPQ=
=MzDT
PGP SIGNATURE
No.13 | | 140 bytes |
| 
1/6/06, Andreas Jung <lists (AT) andreas-jung (DOT) comwrote:
Hairsplitter :-)
That's *Mr* __Pedant__ to you, capiche? :P
No.14 | | 686 bytes |
| 
1/6/06, Asad Habib <ahabib (AT) engin (DOT) umich.eduwrote:
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. ;-)
No.15 | | 1036 bytes |
| 
Andreas Jung wrote:
6. Januar 2006 10:06:55 -0500 Asad Habib <ahabib (AT) engin (DOT) 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? huhthe 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.
No.16 | | 529 bytes |
| 
1/6/06, Lennart Regebro <regebro (AT) gmail (DOT) comwrote:
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.
No.17 | | 3751 bytes |
| 
At the risk of contributing to the usual "my programming language is better
than yours" holy war, I'll throw in $0.02(US):
There are a few things that make Zope a noteworthy alternative to a HTML +
Java web server:
1. Python is much less rigid in terms of types than Java, and it has
nifty stuff like getAttr(). I've never seen an easy-to-use, built-in API in
any other web-oriented programming language that lets me locate and use
object fields and methods by entering a string value for the identifier.
This often means that knowing the type of an object becomes less important -
it just needs to contain the methods and attributes you need to use. If the
object doesn't have what you need, Python gives you plenty of facilities to
discover which methods/fields are missing and recover gracefully. Computer
science purists often perch themselves on soapboxes and preach the value of
rigid type-safety; Python is a shining example of when type-safety isn't
always desirable.
2. Python has simple syntax for tuples, lists, and dictionaries.
3. Zope is anal-retentive about valid XHTML and XML - a wonderful
feature as the web moves into the future. Zope just won't let things fly if
they don't validate against the parser.
4. ZPT - a scripting language that integrates itself within the DM.
ZPT dissipates many of the easy-to-miss mistakes regarding
programming-language constructs like conditional blocks and iteration, as
well as exposes the contents of those iterated or condition-protected blocks
to XML or XHTML validation.
5. Acquisition - a wonderful feature that helps to unify a large
application by making objects easily reachable without having to memorize
and use long paths.
6. Permissions - Zope has a fine-grained permissions model built in.
This is a life-saver for web applications that require authentication,
especially if they accommodate different classes of users.
7. database storage - this puts all the power of
acquisition, containment, and security into your storage backend with
minimal marshalling from the database storage into the web page.
IMH, Java as a web language is still much better suited for stuff like
applets. However, you could conceivably take a language like Java and build
a Zope-like server around it, and probably reap some benefits from Java that
you would have difficulty acquiring from Python.
fm
1/6/06, Andreas Jung <lists (AT) andreas-jung (DOT) comwrote:
>
>
>
6. Januar 2006 10:06:55 -0500 Asad Habib <ahabib (AT) engin (DOT) 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? huhthe 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
Zope maillist - Zope (AT) zope (DOT) org
** No cross posts or HTML encoding! **
(Related lists -
)
--
Zope maillist - Zope (AT) zope (DOT) org
** No cross posts or HTML encoding! **
(Related lists -
)
No.18 | | 1554 bytes |
| 
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, concepts such as abstraction and
inheritance are well defined in Java.
Also, both compiled and interpreted languages have their advantages and
disadvantages.
- Asad
Fri, 6 Jan 2006, Lennart Regebro wrote:
1/6/06, Asad Habib <ahabib (AT) engin (DOT) umich.eduwrote:
>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. ;-)
No.19 | | 1449 bytes |
| 
Asad Habib wrote:
(top-post corrected)
- Asad
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.
No.20 | | 1991 bytes |
| 
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
Fri, 6 Jan 2006, bruno desthuilliers wrote:
Asad Habib wrote:
(top-post corrected)
>- Asad
>>
>>
>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.
>
>
>
No.21 | | 703 bytes |
| 
6. Januar 2006 11:52:48 -0500 Asad Habib <ahabib (AT) engin (DOT) 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
Zope maillist - Zope (AT) zope (DOT) org
** No cross posts or HTML encoding! **
(Related lists -
)
PGP SIGNATURE
Version: GnuPG v1.4.2 (Darwin)
pbrnldmbH4b2gvXVD7IZU=
=6NGZ
PGP SIGNATURE
No.22 | | 2893 bytes |
| 
Asad Habib wrote:
(top-post corrected)
- Asad
Fri, 6 Jan 2006, Lennart Regebro wrote:
>1/6/06, Asad Habib <ahabib (AT) engin (DOT) umich.eduwrote:
>>
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 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 /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,
concepts such as abstraction
'abstraction' is not an concept. It's a concept, but not specific to
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.
No.23 | | 547 bytes |
| 
1/6/06, bruno desthuilliers <bruno (AT) modulix (DOT) orgwrote:
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. ;)
No.24 | | 3306 bytes |
| 
Asad Habib wrote:
(top-post corrected)
Fri, 6 Jan 2006, bruno desthuilliers wrote:
>Asad Habib wrote:
>(top-post corrected)
>>
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
No.25 | | 593 bytes |
| 
Lennart Regebro wrote:
1/6/06, bruno desthuilliers <bruno (AT) modulix (DOT) orgwrote:
>>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.
course not !-)
This was only about the 'compiled-vs-interpreted' thing.
No.26 | | 1596 bytes |
| 
1/6/06, bruno desthuilliers <bruno (AT) modulix (DOT) orgwrote:
Lennart Regebro wrote:
1/6/06, bruno desthuilliers <bruno (AT) modulix (DOT) orgwrote:
>
>>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.
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. 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.
No.27 | | 422 bytes |
| 
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.
No.28 | | 428 bytes |
| 
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).