By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,361 Members | 1,980 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,361 IT Pros & Developers. It's quick & easy.

Is Python a Zen language?

P: n/a
Greetings,
I have a rough classification of languages into 2 classes: Zen
languages and tool languages. A tool language is a language that is,
well, a *tool* for programming a computer. C is the prototypical tool
language. Most languages in the Algol family are tool languages. Visual
Basic and Java are also tool languages. On the other hand, a Zen
language is a language which is purported to transform your way of
thinking about programming. Lisp, Scheme, Forth, Smalltalk and (maybe)
C++ are Zen languages. Disciples acknowledge that it is difficult to
pick up these languages but claim that, if you persevere, you sooner or
later reach a state of computational satori in which it all makes
sense. Interestingly enough, these languages often have books which
approach scriptural status e.g. SICP for Scheme.

So (assuming my classification makes sense) which is Python? The
emphasis on simplicity and the beginner-friendly nature of it seems to
put it in the tool category. On the other hand, the emphasis on the ONE
TRUE WAY to accomplish most tasks and the tendency for participants in
this newsgroup to criticize one another's code as being "unpythonic"
seems to move it towards the Zen category. Of course, even tool
languages have their idioms which the novice needs to pick up, so maybe
this isn't decisive, but I detect an element of zeal in this newsgroup
that I don't detect in (say) Excel VBA programming newsgroups.

No value judgement is intended by my classification. There is no
denying that Zen languages are often very powerful tools (for those who
have reached satori) and that there is a Zen to really mastering, say,
C. Personally, I have never been able to master any Zen language but
can pick up tool languages fairly quickly, so I prefer tool languages.
This is probably because I am not a programmer (I'm a mathematician who
likes to program as a hobby and for numerical simulations) and so don't
have the time to invest in picking up a Zen language. Hard-core hackers
might presumably lean towards the Zen languages.

Just curious

-John Coleman

Feb 25 '06 #1
Share this Question
Share on Google+
35 Replies


P: n/a
don't know but there is "Zen of Python".

Feb 25 '06 #2

P: n/a
Actually, Python has the distinction of being both a great tool
language *and* a great Zen language. That's what makes Python so cool
;-)))

Ron Stephens
Python411
www.awaretek.com/python/index.html

Feb 25 '06 #3

P: n/a
Mu.
Feb 25 '06 #4

P: n/a

Ron Stephens wrote:
Actually, Python has the distinction of being both a great tool
language *and* a great Zen language. That's what makes Python so cool
;-)))

Ron Stephens
Python411
www.awaretek.com/python/index.html


This would explain why the question is so hard to answer. It is a
slam-dunk that Lisp is Zen and VBA is tool - but python really is a bit
hard to classify. This is somewhat similar to the way that python seems
to straddle the gap between imperative and functional languages. It has
something from each worlds (whether it has the *best* from each world
is a separate question)

-John Coleman

Feb 25 '06 #5

P: n/a
GEB perhaps?

Feb 25 '06 #6

P: n/a
Given that python code is often described in terms of being 'pythonic' or
not, and that pythonic is a term that is apparently well agreed upon yet
seemingly impossible to define for someone who does not already understand
the word, python is probably a zen language.

max
Feb 25 '06 #7

P: n/a
John Coleman wrote:
Greetings,
I have a rough classification of languages into 2 classes: Zen
languages and tool languages. A tool language is a language that is,
well, a *tool* for programming a computer. C is the prototypical tool
language. Most languages in the Algol family are tool languages. Visual
Basic and Java are also tool languages. On the other hand, a Zen
language is a language which is purported to transform your way of
thinking about programming. Lisp, Scheme, Forth, Smalltalk and (maybe)
C++ are Zen languages. Disciples acknowledge that it is difficult to
pick up these languages but claim that, if you persevere, you sooner or
later reach a state of computational satori in which it all makes
sense. Interestingly enough, these languages often have books which
approach scriptural status e.g. SICP for Scheme.

So (assuming my classification makes sense) which is Python?


Expanding on what Alex said :-)

Python is an excellent tool language, it is very pragmatic and powerful
and makes it (relatively) easy to just get stuff done.

Python has one of your 'zen' aspects - using Python has definitely
expanded the way I think about programming. Powerful built-in support
for lists and dicts, first-class functions and easy introspection enable
a style of programming that is difficult or impossible in Java and C++.

But Python is not difficult to pick up - it is notably easy - and I
don't think anyone claims it leads to computational satori - it's more
an attitude of "try it, you'll like it!". Using Python does seem to
spoil people - I for one hate to code in Java now. Maybe "bliss" is a
better word for it than "satori".

Kent
Feb 25 '06 #8

P: n/a
What is "zen"?

Is it something eatible (I'm hungry now)?
Feb 25 '06 #9

P: n/a
Kent Johnson wrote:

Expanding on what Alex said :-) *snip*
Python is an excellent tool language, it is very pragmatic and powerful *snip*
Kent


"It's a good axe", Muddy waters said about his guitar when asked by some
heavy-mega guitar hero.

Python is practical tool for practical problems. But if problem isn't
practical, it is misdefined.
Feb 25 '06 #10

P: n/a
I don't know if python is Zend.
It's quite minimalistic and it "flows" very well, so I guess it is a...
"Feng-shui" language?

Feb 25 '06 #11

P: n/a

"John Coleman" <jc******@franciscan.edu> wrote in message
news:11**********************@e56g2000cwe.googlegr oups.com...

an interesting statement and question.
....
So (assuming my classification makes sense) which is Python? The
emphasis on simplicity and the beginner-friendly nature of it seems to
put it in the tool category. On the other hand, the emphasis on the ONE
TRUE WAY to accomplish most tasks and the tendency for participants in
this newsgroup to criticize one another's code as being "unpythonic"
seems to move it towards the Zen category.

,,,

An 'emphasis on the ONE TRUE WAY' would not be pythonic ;-)
Sorry you got that misimpression.

For the Zen of Python, type 'import this' at an interactive prompt.
One of the lines is

'There should be one-- and preferably only one --obvious way to do it.'

This is intentionally more nuanced, and practical, than your paraphrase.

I agree with the 'both' answer.

Terry Jan Reedy

Feb 25 '06 #12

P: n/a
John Coleman wrote:
I have a rough classification of languages into 2 classes: Zen
languages and tool languages. A tool language is a language that is,
well, a *tool* for programming a computer. C is the prototypical tool
language. Most languages in the Algol family are tool languages. Visual
Basic and Java are also tool languages. On the other hand, a Zen
language is a language which is purported to transform your way of
thinking about programming. Lisp, Scheme, Forth, Smalltalk and (maybe)
C++ are Zen languages.


I think that's a horrible classification. Every language is both.
"Transform your way of thinking" from what? There is no
distinguished canonical view of what a programming language looks
like, from which all others must be strange and wondrous
transformations.

Lisp and Forth are not tools for programming a computer? Of course
they are. Algol and Java don't transform people's thinking about
programming? Nonsense.
--
--Bryan
Feb 25 '06 #13

P: n/a
On Sat, 25 Feb 2006 18:31:33 GMT, Bryan Olson <fa*********@nowhere.org> wrote:
....
I think that's a horrible classification. Every language is both.


I agree; it's horrible as a classification.

But it's interesting concepts. One might use them to discuss the design of
various languages, and how the users treat them -- as long as one doesn't
get carried away.

Too bad Larry Wall doesn't post to this group.

/Jorgen

--
// Jorgen Grahn <grahn@ Ph'nglui mglw'nafh Cthulhu
\X/ snipabacken.dyndns.org> R'lyeh wgah'nagl fhtagn!
Feb 25 '06 #14

P: n/a

Bryan Olson wrote:
John Coleman wrote:
I have a rough classification of languages into 2 classes: Zen
languages and tool languages. A tool language is a language that is,
well, a *tool* for programming a computer. C is the prototypical tool
language. Most languages in the Algol family are tool languages. Visual
Basic and Java are also tool languages. On the other hand, a Zen
language is a language which is purported to transform your way of
thinking about programming. Lisp, Scheme, Forth, Smalltalk and (maybe)
C++ are Zen languages.


I think that's a horrible classification. Every language is both.
"Transform your way of thinking" from what? There is no
distinguished canonical view of what a programming language looks
like, from which all others must be strange and wondrous
transformations.

Lisp and Forth are not tools for programming a computer? Of course
they are. Algol and Java don't transform people's thinking about
programming? Nonsense.
--
--Bryan


You seem to have completly overlooked both the hedge word "rough" in my
first sentence and the qualifications in my third paragraph. I probably
was not sufficiently clear that I was describing some fairly sunjective
impressions. It is a simple observation that devotees of the Scheme
language view their language as more than *just* a tool for programming
computers. To quote from the introduction to the first edition of SICP:

"we want to establish the idea that a computer language is not just a
way of getting a computer to perform operations but rather that it is a
novel formal medium for expressing ideas about methodology"
(http://mitpress.mit.edu/sicp/full-text/book/book.html).
It is also a simple observation that experts in VBScript *don't* walk
around talking like that. Scheme and VBScript are of course both Turing
complete, but they seem to have radically different cultures. Do you
disagree? Or, if you agree that there is a difference but don't like
the words "Zen" vs. "tool" to describe it, how would you articulate the
difference?

Again, just curious.

-John Coleman

Feb 25 '06 #15

P: n/a
John Coleman wrote:
Greetings,
I have a rough classification of languages into 2 classes: Zen
languages and tool languages. A tool language is a language that is,
well, a *tool* for programming a computer. C is the prototypical tool
language. Most languages in the Algol family are tool languages. Visual
Basic and Java are also tool languages. On the other hand, a Zen
language is a language which is purported to transform your way of
thinking about programming. Lisp, Scheme, Forth, Smalltalk and (maybe)
C++ are Zen languages. Disciples acknowledge that it is difficult to
pick up these languages but claim that, if you persevere, you sooner or
later reach a state of computational satori in which it all makes
sense. Interestingly enough, these languages often have books which
approach scriptural status e.g. SICP for Scheme.

So (assuming my classification makes sense) which is Python? The
emphasis on simplicity and the beginner-friendly nature of it seems to
put it in the tool category. On the other hand, the emphasis on the ONE
TRUE WAY to accomplish most tasks and the tendency for participants in
this newsgroup to criticize one another's code as being "unpythonic"
seems to move it towards the Zen category. Of course, even tool
languages have their idioms which the novice needs to pick up, so maybe
this isn't decisive, but I detect an element of zeal in this newsgroup
that I don't detect in (say) Excel VBA programming newsgroups.

No value judgement is intended by my classification. There is no
denying that Zen languages are often very powerful tools (for those who
have reached satori) and that there is a Zen to really mastering, say,
C. Personally, I have never been able to master any Zen language but
can pick up tool languages fairly quickly, so I prefer tool languages.
This is probably because I am not a programmer (I'm a mathematician who
likes to program as a hobby and for numerical simulations) and so don't
have the time to invest in picking up a Zen language. Hard-core hackers
might presumably lean towards the Zen languages.

Just curious

-John Coleman

I was lately involved in some very long threads trying to answer the
question what a simple assignment operator does and what is behind a
Python identifier (variable).

In the context of the above mentioned experience I agree with the
notion, that from the beginner point of view, as long as there is no
need to get deep understanding what goes on behind the scenes, Python is
a tool.

At that moment, when it becomes necessary to optimize the code for speed
and understand the exact details of what is going on behind the scenes
Python turns into a mystery which needs time, effort and ability to
grasp new concepts in order to gain control over it, i.e. Python reveals
its Zen character.

In this context it appears to me worth to mention, that in my eyes a
'pythonic' way of programming has not necessarily something to do with
the Python language itself.
Even if it is sure better to use Python for 'pythonic' way of
programming, it can also be done using any other programming language.
I assume, that many of todays advanced Python users were already aware
of the 'pythonic' way of programming long before they started to use
Python. In Python they found many of the tools they have developed for
themselves over the time already built-in and even some more, so they
embraced it as programming language of their choice and coined the way
it helps to code ideas as 'pythonic' way of programming.
This is in my eyes the reason why 'pythonic' way of programming can
usually be fully understood only by very experienced programmer who
already went all the stages through many other programming languages to
Python and use it where it is appropriate being at the same time aware,
that there are purposes for which Python is not the way to go and being
aware which problems other programming languages have were solved by the
design of the Python language.
So 'pythonic' way of programming has only a meaning for an _experienced
programmer_ as intuitively easy to understand and in different context
easy to reuse way of programming where the initial idea must not be
bended to fit into the programming language, but where the programming
language provides by own design some aid in expressing it.

I don't see how Microsoft Visual Basic fits into the category of tool
languages. As MS-DOS Quick Basic surely do, Visual Basic/Visual C++ need
a total new understanding of programming and belong due to the very hard
to grasp event driven way not allowing any workaround it to the category
of Zen languages. There is the 'hidden' event handling and the way from
the GUI to the code and not other way what makes Visual Basic in my eyes
a Zen language where Basic, Algol, Fortran, C are tools.

If it makes sense to speak about tool and Zen languages at all, I will
draw the line between the two categories depending on the amount of from
the programmer hidden amount of code added to his own code in order to
make the program run.
Assembler, as it runs entirely as it is written is sure a tool.
C/C++ is also a tool, as long as it does not extensively use large
libraries providing special functionality.
Usage of for example C++ build upon the MFC library (Microsoft
Foundation Class) makes in my eyes C++/MFC a kind of Zen language out of
a C++ tool.
Forth belongs according to this definition to the category of Zen
languages not because it is so different, but, because you have to track
in own mind, that behind the scenes the next command will use what was
put on the stack before, what makes part of the processing done 'hidden'
behind the scenes.

From the experience of the in another thread currently going on hot
discussion about Python and Lisp I draw the conclusion, that it is from
todays point of view not easy to draw exact lines between the categories
like tool/Zen, interpreted/compiled language.
In between even making a difference between software/hardware appears to
me problematic.

Claudio
Feb 25 '06 #16

P: n/a

John Coleman wrote:
Ron Stephens wrote:
Actually, Python has the distinction of being both a great tool
language *and* a great Zen language. That's what makes Python so cool
;-)))

Ron Stephens
Python411
www.awaretek.com/python/index.html


This would explain why the question is so hard to answer. It is a
slam-dunk that Lisp is Zen and VBA is tool - but python really is a bit
hard to classify. This is somewhat similar to the way that python seems
to straddle the gap between imperative and functional languages. It has
something from each worlds (whether it has the *best* from each world
is a separate question)

-John Coleman


There is something that worries me about Lisp. If you are interested in
the history of Lisp and some non-technical aspects of its culture I can
recommend the writings of Richard Gabriel, who was one of the leaders
of the CL standardisation commitee and founder of the Lisp company
Lucid in the mid 80s that gone down a few years later. As it turned out
that time Lisp was not capable to survive in what we call today a
"heterogenous environment". It was strongly too self-centered. So I
would actually invert you categories and say that a good tool achieves
to have a non-dual nature instead of a strong I. With Lisp you might be
a god but according to the Zen philosophy a god is a subordinated
character that preserves the illusion of self-identity. A fine thing
about a tool in this context is that you have to define its identity by
a relationship to something that it is not.

I have at times the impression that many people who talk about Zen
philosophy confuse it with some home brewn mixture of platonism with
its transgressive move towards the true reality, a stoic hedonism of
contemplation and the taoistic being-in-doing. Zen on the other side is
more radical: if you erase yourself there is no-one "who" is in the
flow but chances are that you and the computer over there are the same
thing.

Kay

Feb 25 '06 #17

P: n/a
John Coleman wrote:
Bryan Olson wrote:
John Coleman wrote:
I have a rough classification of languages into 2 classes: Zen
languages and tool languages. A tool language is a language that is,
well, a *tool* for programming a computer. C is the prototypical tool
language. Most languages in the Algol family are tool languages. Visual
Basic and Java are also tool languages. On the other hand, a Zen
language is a language which is purported to transform your way of
thinking about programming. Lisp, Scheme, Forth, Smalltalk and (maybe)
C++ are Zen languages.


I think that's a horrible classification. Every language is both.
"Transform your way of thinking" from what? There is no
distinguished canonical view of what a programming language looks
like, from which all others must be strange and wondrous
transformations.

Lisp and Forth are not tools for programming a computer? Of course
they are. Algol and Java don't transform people's thinking about
programming? Nonsense.
--
--Bryan

You seem to have completly overlooked both the hedge word "rough" in my
first sentence and the qualifications in my third paragraph. I probably
was not sufficiently clear that I was describing some fairly sunjective
impressions. It is a simple observation that devotees of the Scheme
language view their language as more than *just* a tool for programming
computers. To quote from the introduction to the first edition of SICP:

"we want to establish the idea that a computer language is not just a
way of getting a computer to perform operations but rather that it is a
novel formal medium for expressing ideas about methodology"
(http://mitpress.mit.edu/sicp/full-text/book/book.html).
It is also a simple observation that experts in VBScript *don't* walk
around talking like that. Scheme and VBScript are of course both Turing
complete, but they seem to have radically different cultures. Do you
disagree? Or, if you agree that there is a difference but don't like
the words "Zen" vs. "tool" to describe it, how would you articulate the
difference?

Again, just curious.


It's a metter of perspective. Python didn't change my thinking about
programming. Smalltalk changed my way of thinking about programming
very radically. All Python changed my thinking about was how to better
program in Python. Python to me just happened to be a very pragmmatic
and productive tool for getting the job done. It happens to be
comfrotable because large parts of it already fit into my way of
thinking from long use in Smalltalk, but my description of Pythong would
be 'cleanly practical' not 'zen'
Feb 25 '06 #18

P: n/a
"Kay Schluehr" <ka**********@gmx.net> writes:
I have at times the impression that many people who talk about Zen
philosophy confuse it with some home brewn mixture of platonism with
its transgressive move towards the true reality, a stoic hedonism of
contemplation and the taoistic being-in-doing. Zen on the other side is
more radical: if you erase yourself there is no-one "who" is in the
flow but chances are that you and the computer over there are the same
thing.


QOTW or something.
Feb 25 '06 #19

P: n/a
On Sat, 25 Feb 2006 06:09:16 -0800, John Coleman wrote:
Greetings,
I have a rough classification of languages into 2 classes: Zen
languages and tool languages. A tool language is a language that is,
well, a *tool* for programming a computer. C is the prototypical tool
language. Most languages in the Algol family are tool languages. Visual
Basic and Java are also tool languages. On the other hand, a Zen
language is a language which is purported to transform your way of
thinking about programming. Lisp, Scheme, Forth, Smalltalk and (maybe)
C++ are Zen languages. Disciples acknowledge that it is difficult to
pick up these languages but claim that, if you persevere, you sooner or
later reach a state of computational satori in which it all makes
sense. Interestingly enough, these languages often have books which
approach scriptural status e.g. SICP for Scheme.

So (assuming my classification makes sense) which is Python?
Why can't it be both? Why do you think "Zen" and "tool" are two different
*kinds* of language, rather than just two extremes of a single continuum?

There are two kinds of people: those who divide the world into false
dichotomies, and those who don't. *wink*

This is probably because I am not a programmer (I'm a mathematician who
likes to program as a hobby and for numerical simulations) and so don't
have the time to invest in picking up a Zen language. Hard-core hackers
might presumably lean towards the Zen languages.


Regardless of whether Python is a Zen or tool language, or both, or
something else, it is incredibly easy to pick up. Just remember, and this
goes for *any* new language you are trying to learn, Python is not
C/Java/VB/Fortran/Lisp/Ada/whatever language you already know.

--
Steven.

Feb 26 '06 #20

P: n/a
You are a very silly person. You have tripped so many of my internet
bullshit triggers that I think perhaps you are trolling. All languages
alter the way you think. They structure the nature of questions you can
ask, and problems you can solve.

Do you understand 'Zen', by which I mean, have you devoted at least 5
years of study (real, 5+ hrs/week studdy) to it? (btw, I have not). If
your answer is no, then you are just using this to be cool.

And if you can say 'no value judgment is intended by my
classification', you have absolutely no right to talk about the nature
of language, let alone go about labeling things 'Zen languages'.
Honestly, classification is an act of valuation, it requires an
introspective assesment of your personal language system. This stuff is
_old_, not new, not novell.

Go read a book.
Like this one: http://www.aber.ac.uk/media/Documents/S4B/the_book.html

Feb 26 '06 #21

P: n/a

Kay Schluehr wrote:
John Coleman wrote:
Ron Stephens wrote:
Actually, Python has the distinction of being both a great tool
language *and* a great Zen language. That's what makes Python so cool
;-)))

Ron Stephens
Python411
www.awaretek.com/python/index.html


This would explain why the question is so hard to answer. It is a
slam-dunk that Lisp is Zen and VBA is tool - but python really is a bit
hard to classify. This is somewhat similar to the way that python seems
to straddle the gap between imperative and functional languages. It has
something from each worlds (whether it has the *best* from each world
is a separate question)

-John Coleman


There is something that worries me about Lisp. If you are interested in
the history of Lisp and some non-technical aspects of its culture I can
recommend the writings of Richard Gabriel, who was one of the leaders
of the CL standardisation commitee and founder of the Lisp company
Lucid in the mid 80s that gone down a few years later. As it turned out
that time Lisp was not capable to survive in what we call today a
"heterogenous environment". It was strongly too self-centered. So I
would actually invert you categories and say that a good tool achieves
to have a non-dual nature instead of a strong I. With Lisp you might be
a god but according to the Zen philosophy a god is a subordinated
character that preserves the illusion of self-identity. A fine thing
about a tool in this context is that you have to define its identity by
a relationship to something that it is not.

I have at times the impression that many people who talk about Zen
philosophy confuse it with some home brewn mixture of platonism with
its transgressive move towards the true reality, a stoic hedonism of
contemplation and the taoistic being-in-doing. Zen on the other side is
more radical: if you erase yourself there is no-one "who" is in the
flow but chances are that you and the computer over there are the same
thing.

Kay


Too right. If programming language was Zen there would be no
keyboards, just a telepathic interface.

But I have to admit I enjoy a solidly platonic relationship with
Python. I prefer to
write things in the most beautiful way rather than in the most
efficient. Its cost me a couple jobs, but the integrity of the product
always remains intact.

The Eternal Squire

Feb 26 '06 #22

P: n/a
Crutcher wrote:
You are a very silly person.


Claudio
Feb 26 '06 #23

P: n/a

Crutcher wrote:
You are a very silly person. You have tripped so many of my internet
bullshit triggers that I think perhaps you are trolling. All languages
alter the way you think. They structure the nature of questions you can
ask, and problems you can solve.

Do you understand 'Zen', by which I mean, have you devoted at least 5
years of study (real, 5+ hrs/week studdy) to it? (btw, I have not). If
your answer is no, then you are just using this to be cool.

And if you can say 'no value judgment is intended by my
classification', you have absolutely no right to talk about the nature
of language, let alone go about labeling things 'Zen languages'.
Honestly, classification is an act of valuation, it requires an
introspective assesment of your personal language system. This stuff is
_old_, not new, not novell.

Go read a book.
Like this one: http://www.aber.ac.uk/media/Documents/S4B/the_book.html


If appearing silly is the price of satisfying your curiousity then so
be it. I would, however, like to point out that there is a well
established usage of the word "Zen" in computer science. A trip to
almost any bookstore will unearth many books with titles like "Zen and
the Art of Cascading Style Sheets", etc. A similar usage appears with
the word "Tao", e.g., "The Tao of Objects". These usages seem to point
to a deep, intuitive understanding that eludes many beginners and is
difficult to put into words. My point is simply that, for some
languages L, "Zen and the art of L" or "The Tao of L" are plausible
titles ("Zen and the Art of Lisp Programming" would be plausible) but
for some languages they wouldn't ("The Tao of Fortran" ?) Do you
disagree? If you do, how would *you* articulate the difference in
culture between something like Scheme and something like Fortran?

I have no doubt that this usage of terms from Eastern Mysticism must be
annoying to someone such as yourself who has actually studied it, but
the genie can't be put back into the bottle. It is no longer really
plausible to be a purist regarding words like "Zen" or "Tao" - it just
makes you appear pedantic.

Hopefully I have tripped less of your "internet bullshit triggers" this
time. If not, you should really adjust your settings.

-John Coleman

Feb 26 '06 #24

P: n/a
John Coleman wrote:
Crutcher wrote:
You are a very silly person. You have tripped so many of my internet
bullshit triggers that I think perhaps you are trolling. All languages
alter the way you think. They structure the nature of questions you can
ask, and problems you can solve.

Do you understand 'Zen', by which I mean, have you devoted at least 5
years of study (real, 5+ hrs/week studdy) to it? (btw, I have not). If
your answer is no, then you are just using this to be cool.

And if you can say 'no value judgment is intended by my
classification', you have absolutely no right to talk about the nature
of language, let alone go about labeling things 'Zen languages'.
Honestly, classification is an act of valuation, it requires an
introspective assesment of your personal language system. This stuff is
_old_, not new, not novell.

Wouldn't that be "novel"? Or, perhaps I should rather ask:
Do you understand 'novell', by which I mean, have you devoted at least
5 years of study (real, 5+ hrs/week study) to it? (btw, I have not...
but I have used Novell software products for longer than that ;-)
Go read a book.
Like this one: http://www.aber.ac.uk/media/Documents/S4B/the_book.html
If appearing silly is the price of satisfying your curiousity then so
be it. I would, however, like to point out that there is a well
established usage of the word "Zen" in computer science.

[snip; excellent answer from John deleted.] -John Coleman


If I may add: word and their usage is constantly evolving, sometimes
through mistakes, other times through borrowing from other languages or
disciplines. (my favourite is the transcription mistake of the word
"collineare" where the hand-written "ne" was transcribed as "m",
leading to the English word "collimate" ... but I digress.)
Some "purist", like the Academie Francaise (or, apparently "Crutcher")
seem to believe that "one" can restrict the meaning of words, or the
evolution of language. The rest of us are happy to let language
evolution take place to facilitate communication. Kudos to John for his
examples of usage of "zen" and "tao" in computer related disciplines.

Personally, I would say that Python is a zen language, not so much in
the sense that it transforms the way of thinking, but rather as it
doesn't get in the way of thinking.

André

Feb 26 '06 #25

P: n/a

André wrote:
Some "purist", like the Academie Francaise (or, apparently "Crutcher")
seem to believe that "one" can restrict the meaning of words, or the
evolution of language. The rest of us are happy to let language
evolution take place to facilitate communication.


So instead of Zen of Python, we can also call it Spam of Python ?

Feb 26 '06 #26

P: n/a
André wrote:
If appearing silly is the price of satisfying your curiousity then so
be it. I would, however, like to point out that there is a well
established usage of the word "Zen" in computer science.

[snip; excellent answer from John deleted.]
-John Coleman


If I may add: word and their usage is constantly evolving, sometimes
through mistakes, other times through borrowing from other languages or
disciplines.


Of course we can refer to "Zen as the term is used in popular culture"
but its like deriving knowledge about taoism listening to Yoda or
watching "Kung Fu".

Kay

Feb 26 '06 #27

P: n/a
> My point is simply that, for some languages L,
"Zen and the art of L" or "The Tao of L" are plausible
titles ("Zen and the Art of Lisp Programming" would be plausible) but
for some languages they wouldn't ("The Tao of Fortran" ?)
Do you disagree?
No, I don't disagree that people do this. The history of "Zen and the
Art of X" dates from "Zen and the Art of Motorcycle Repair", which is
actually about Zen and Motorcycles. Really. It is also a cool title,
and people have used it, and used it, and used it. I suspect that the
rash of "The Tao of X" is based upon "The Tao of Pooh" (which is
actually about Tao and Pooh, the bear), but I'm not as comfortable
making the claim that these titles are all descendent.
I have no doubt that this usage of terms from Eastern Mysticism must be
annoying to someone such as yourself who has actually studied it, but
the genie can't be put back into the bottle. It is no longer really
plausible to be a purist regarding words like "Zen" or "Tao" - it just
makes you appear pedantic.


First, my exposure to estern mysticism is limited (probably less than
100 hours). I think I made that clear in my post. Second, when you ask
"Is X a Zen Language", you are asking for a pedantic discussion.

If you seek clarity in language classification, you should not start
the discussion by hijacking terms which are not understood. Adding
mystery to a difficult discussion does not answer any questions, it
just makes the discussion seem cooler.

My central thesis: you are using a poor understanding of language to
classify languages into things you understand (tool languages) and
things which _you_ find 'deep' (and difficult to learn), which you call
'Zen languages'. This is ridiculous, e.g. deserving of ridicule. I am
being mean because you are engaging in mental masturbation in public,
and I'm worried that you might convince someone.

Feb 26 '06 #28

P: n/a
Crutcher <cr******@gmail.com> wrote:
...
No, I don't disagree that people do this. The history of "Zen and the
Art of X" dates from "Zen and the Art of Motorcycle Repair", which is


That's Maintenance, not Repair. Subtle but important distinction.
Alex
Feb 26 '06 #29

P: n/a
Alex Martelli wrote:
Crutcher <cr******@gmail.com> wrote:
...
No, I don't disagree that people do this. The history of "Zen and the
Art of X" dates from "Zen and the Art of Motorcycle Repair", which is

That's Maintenance, not Repair. Subtle but important distinction.

Since the purpose of much maintenance is to avoid the necessity for repair.

regards
Steve
--
Steve Holden +44 150 684 7255 +1 800 494 3119
Holden Web LLC www.holdenweb.com
PyCon TX 2006 www.python.org/pycon/

Feb 26 '06 #30

P: n/a
On Sun, 26 Feb 2006 12:48:47 -0800, Crutcher wrote:
My central thesis: you are using a poor understanding of language to
classify languages into things you understand (tool languages) and
things which _you_ find 'deep' (and difficult to learn), which you call
'Zen languages'. This is ridiculous, e.g. deserving of ridicule. I am
being mean because you are engaging in mental masturbation in public,
and I'm worried that you might convince someone.


I've already given my opinion on the classification of languages into two
dichotomies, namely, that it is wrong to classify languages as tool-like
or Zen-like [emphasis on the "or"]. They can be both.

But your objection to the Original Poster's question is as ridiculous as
you claim his question is. There is no ridiculousness to the concept that
a programming language might be designed with crank-the-handle
practicality in mind, and that another might be designed with academic
purity and elegance in mind. Perl is a tool, you generally use it when you
want a quick and dirty solution to some problem, not when you want a deep
theoretical understanding of the problem. We can argue about whether
programming in Lisp is fast, but the language is certainly designed for
theoretical elegance.

Cobol is an even more so workman-like tool language. It is Turing
Complete, so anything you can do in Lisp you can do in Cobol, but nobody
would want to.

Where the OP got it wrong was his assumption that a language can be one or
the other but not both: practicality and purity are not opposites.

Most people are capable of recognising the OP's two extremes. On the one
hand, there are languages that are easy to use but not deep: they make
easy things easy to do, if not mechanical, but hard things are impossible.
On the other hand, there are languages that require great study and
theoretical planning even to do the basics.

But since easy and deep are orthogonal concepts, not opposites, you also
have languages that are easy to learn as well as deep. They tend to make
easy things simple, and hard things, if not as simple, at least easier.

There are even be languages that are difficult to learn, difficult to
use in practice, and yet not very deep or elegant. For example, Intercal
and the other Turing complete joke languages.
--
Steven.

Feb 26 '06 #31

P: n/a
I think that the classification has some meaning, even if of course any
language has different shades of both sides. I'd say that with python
is difficult to choose one of the two categories because it's good both
as a pratical language and as a mind-opener language.

IMO another language that would be hard to classify is COBOL ... but
for other reasons :-)

Andrea

Feb 26 '06 #32

P: n/a
In article <11**********************@e56g2000cwe.googlegroups .com>,
Kay Schluehr <ka**********@gmx.net> wrote:
Feb 27 '06 #33

P: n/a
"Crutcher" <cr******@gmail.com> writes:
No, I don't disagree that people do this. The history of "Zen and the
Art of X" dates from "Zen and the Art of Motorcycle Repair", which is
actually about Zen and Motorcycles.


Actually "Zen in the Art of Archery" by Eugen Herrigel, which was
about an actual classical Zen approach to archery. The motorcycle
book title was sort of a homage but the contents are totally
different.
Feb 27 '06 #34

P: n/a
Cameron Laird wrote:
In article <11**********************@e56g2000cwe.googlegroups .com>,
Kay Schluehr <ka**********@gmx.net> wrote:
.
.
.
Lucid in the mid 80s that gone down a few years later. As it turned out
that time Lisp was not capable to survive in what we call today a
"heterogenous environment". It was strongly too self-centered. So I


.
.
.
Smalltalk, too. And, in a different way, Pascal.


I had the same thought. Smalltalk is a wonderful environment but it
doesn't really play well with others. Smalltalk really wants to be
*the* environment where the language is just a scripting tool within
this larger environment of object manipulation, and it's really cool at
that, but as a language for 'business apps' ina heterogenous
environment out it's own image, it's akward sometimes
Feb 27 '06 #35

P: n/a
On 26 Feb 2006 14:55:04 -0800, Andrea Griffini wrote:
IMO another language that would be hard to classify is COBOL ... but
for other reasons :-)


According to Dijkstra:

"The use of COBOL cripples the mind; its teaching should, therefore, be
regarded as a criminal offence."

That makes Cobol a Zen language (since it not only changes, but also
cripples the mind).

And BASIC too:
"It is practically impossible to teach good programming to students that
have had a prior exposure to BASIC: as potential programmers they are
mentally mutilated beyond hope of regeneration."

--
USB Priests for only 10$
Feb 28 '06 #36

This discussion thread is closed

Replies have been disabled for this discussion.