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.
The ability to add new comments in this discussion is temporarily disabled.
Most recent reply: July 10, 2003 3:40 PM by
Isaac
|
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.htmlWhat do you think of Bruce's comments.
|
|
|
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?
|
|
|
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.
|
|
|
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.
|
|
|
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...?
|
|
|
> 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
|
|
|
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.
|
|
|
Smalltalk is the first language to introduce the concept of metaclassSmalltalk-72 didn't have metaclasses. They were introduced with Smalltalk-80. See http://www.ifi.unizh.ch/richter/Classes/oose2/05_Metaclasses/02_smalltalk/02_metaclasses_smalltalk.html
|
|