DSM

NAVIGATION
CATEGORIES
REFERRENCE
LINKS
  • Java vs Zope

    28 answers - 3074 bytes - related search similar search Add To My Delicious Add To My Stumble Upon Add To My Google Mark Add To My Facebook Add To My Digg Add To My Reddit

    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).

Re: Java vs Zope


max 4000 letters.
Your nickname that display:
In order to stop the spam: 2 + 1 =
QUESTION ON "DSM"

EMSDN.COM