Article Discussion
The Zen of Python
Summary: Bruce Eckel talks with Bill Venners about why he prefers Python's valuing programmer productivity over program performance, Python's you-want-it-you-can-have-it attitude, and Python's zen-like learning curve.
7 posts.
The ability to add new comments in this discussion is temporarily disabled.
Most recent reply: July 10, 2003 3:40 PM by Isaac
    Bill
     
    Posts: 409 / Nickname: bv / Registered: January 17, 2002 4:28 PM
    The Zen of Python
    June 23, 2003 1:15 PM      
    Bruce Eckel says, "One of the things I find that's remarkable about Python is that it has a very even learning curve. Maybe it's not even a curve, It's kind of a straight line. Learning Python has a zen-like quality, because Python doesn't try to make the world something else."

    Read this Artima.com interview with Bruce Eckel:

    http://www.artima.com/intv/prodperf.html

    What do you think of Bruce's comments.
    • Tiago
       
      Posts: 8 / Nickname: tiago / Registered: February 11, 2003 11:55 AM
      Re: The Zen of Python
      June 24, 2003 7:13 AM      
      Although I like Python (language, philosophy and culture), I am not very experienced at it (I never worked in place where it was the "official" language, so I use it mainly for small throw away stuff), I am far from being an elegant Python programmer.

      Can anyone with more experience with Python (like 90% of you reading this) comment on Domain Specific Languages and Python?

      Does it have any facilities that normally come bundled with functional or logic languages for the support of DSLs?

      I have the feeling that that is missing from Python, but as I have seen so many wacky (read: intesting) things being made with metaclasses that I might be wrong.
      • Maksim
         
        Posts: 1 / Nickname: maksim / Registered: March 25, 2003 6:41 PM
        Re: The Zen of Python
        June 25, 2003 0:49 AM      
        As for DSL, important feature of a DSL is customized syntax, tailored for the domain. Languages like Ocaml, Haskell, Lisp, Lua are better in this regard because they allow to change the syntax more radically.

        Still, I think Python can be good in implementing DSL because it possesses other important properties: simplicity, power, ease of C integration and rich standard library.
    • Joe
       
      Posts: 15 / Nickname: jcheng / Registered: October 16, 2002 8:08 AM
      Re: The Zen of Python
      June 26, 2003 2:26 PM      
      Just want to point out what many static typing "bigots" are probably already thinking... declaring variables and using static type checking are, for those who like such things, much more of a productivity aid than performance optimization. They let you leverage the compiler to find bugs before your program even runs--especially the kind you are likely to introduce when refactoring (i.e., renaming a method or modifying a class hierarchy).

      A better example might be how not everything in Java is a reference type (i.e. "object"); I believe the value/reference typing model was purely for performance...?
      • Bill
         
        Posts: 409 / Nickname: bv / Registered: January 17, 2002 4:28 PM
        Re: The Zen of Python
        June 26, 2003 2:35 PM      
        > A better example might be how not everything in Java is a
        > reference type (i.e. "object"); I believe the
        > value/reference typing model was purely for
        > performance...?

        Yes, that is a better example, and your abolutely right. Gosling said exactly that in this interview. Look for "Primitive types versus wrapper types" about halfway down the page:

        http://www.artima.com/intv/gosling313.html
    • Doug
       
      Posts: 3 / Nickname: vtecinc / Registered: February 24, 2003 7:35 AM
      Re: The Zen of Python
      July 10, 2003 0:52 PM      
      Bruce comments that Zope is faster than Apache on his machine. I'm starting to work with Plone which is a Python based Content Management System that lives on Zope. Plone's manual states that one of the performance optimizations is to place static content on Apache. I think that if Zope were truly faster than Apache that this wouldn't be a recommended performance enhancement.

      Perhaps Bruce just meant the start up of the application itself rather than how it performs.
    • Carfield
       
      Posts: 12 / Nickname: carfield / Registered: September 16, 2002 3:19 PM
      Re: The Zen of Python
      June 24, 2003 0:42 AM      
      According to the professor in my university, Smalltalk is the first language introduct the concept of metaclass, which java (and many other high level language or script) is actually just borrow the idea from smalltalk, is that true?