Re: [Haskell-cafe] Mozart versus Beethoven (was: Writing Haskell For Dummies ...)

2006-12-14 Thread Kurt


If I remember my EWD's[1] right, whether or not composing music is similar  
to writing programs was not Dijkstra's point. I paraphrase (possibly from  
another EWD, can't be bothered to look it up):


Computers, in their capacity as a tool, are highly overrated.

Dijkstra was referring to the fact (as also pointed out earlier in this  
thread) that, due to the volatility of things written on a computer (be it  
text, code or whatever), someone who writes things on a computer is  
inclined, even encouraged, to write in a very iterative fashion. Aka you  
just blabber on until you read the whole thing, press shift-pageup delete,  
and more or less start over (times 20).


Dijkstra argued that this leads to bad thinking habits, and maintained a  
(in those and these days) very special writing style, typically by hand or  
with a typewriter. It forces you to actually think about a sentence before  
you put it down. It is a habit I have been trying to cultivate myself, and  
I must say no one here will be able to convince me that he or she can more  
quickly outweigh different sentences or paragraph options on screen than I  
can in my head. Whenever I want to write something down, and I just can't  
seem to get it right, I just take an empty piece of paper and write it.  
By hand. With a pen. I'm just old enough that I can remember writing  
papers in the earlier years of high school, by hand. I used to write them  
exactly twice: one time to get the text right, one time on the special  
school paper that I didn't like to waste. I've been re-training myself to  
be able to do that again.


I've actually looked into some fairly old research, concerning the use of  
word processor and various so called tools in offices (not available  
online afaik, you'll have to search the library). If I remember correctly,  
some experiment was set up where professionial writers (journalists,...)  
were asked to write a number of words, some by hand, some with computers  
(as they preferred, ie as there habits dictated). It turns out that the  
writers who write by hand wrote much faster. Other studies typically show  
a decrease in offcice productivity after the installation of computer  
supported tools.


Even on a recent ICSE (2005 I think), I saw a presentation of a  
sociologist or psychologist who measered the number of correct diagnosis  
of breast cancer using mammography, both with and without computer  
support. The outcome was not spectacularly in favour of the  
computer-supported case. It makes people lazy, and feel less responsible.  
Typically the harder to spot cases are better found by doctors without any  
computer support.


I highly recommend reading some EWD's. They have changed my view on  
computing, programming, writing, basically about everything I do in my  
daily life.


Kurt

[1] Over a thousand manuscripts written by Edsger W. Dijkstra over his  
carreer, all available online. http://www.cs.utexas.edu/users/EWD/

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Mozart versus Beethoven (was: Writing Haskell For Dummies ...)

2006-12-14 Thread Patrick Mulder
 Another difference with music that strikes me is the
 level of
 abstraction : a note is a note. A line of code
 (especially in a
 imperative setting) is much more than a line of
 code.

But this is exactly what semantics is about, or not?
It is the question, when you have a set of symbols or
abstractions, what sort of things do they represent.
Interesting to think that the old greeks and chinese
basically used only 4-5 sort of abstractions to
explain the different forms of matter in the universe
(http://en.wikipedia.org/wiki/Classical_element),
whereas now we use at least 100 sort of atoms, and
millions of sort of molecules. And without the simple
abstractions by Euclid (point and lines), we could not
evolve mathematics and most of modern sciences. And my
point is, that abstractions (concepts) change over
time depending on the tools or instruments we use.
Without piano's, there would be no Bach, Mozart or
Beethoven. And in general, music would have been far
less differentiated without the introduction of new
tools (compare the differences in compositions between
Palestrina, Telemann, Corelli, Bach, Haydn, Mozart,
Beethoven, Wagner, Schoenberg). Also, in painting you
see the emergence of many new idea's by having better
ways to make paint and colors, and by the uses of
lenses. Similarly, Von Neumann machines allows us to
think about programming in a certain way, i.e.
step-by-step-by-step-by-step but it seems that we
start to learn that the amount of steps we can execute
per second is not really relevant for many sort of
problems. Ok, there are still many area's where we can
profit from better algorithms and machines that would
improve the calculation of some FFT, but what counts
more is often the WAY we think about our abstractions.
I think this is why functional programming is
interesting. 

This discussion on programming approaches reminds me
as well on the fight between empiricism and
rationalism. The former philosophers tried to learn
and generalize by experience (maybe the hacker
idea), while the latter tried to improve ways of
deductive reasoning (the mathematical approach). I
think only later philosophers such as Kant could merge
concepts from both worlds (from the senses and ideas),
but to my knowledge, this had more impact on politics
and ethics, rather than science or mathematics. (The
source codes by Kant are quite difficult to read. It
seems he wanted to write this way to increase the
level of thinking.)




___ 
Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Mozart versus Beethoven (was: Writing Haskell For Dummies ...)

2006-12-13 Thread minh thu

2006/12/12, Kirsten Chevalier [EMAIL PROTECTED]:

 [snip]
I've been thinking about this. Are there really any programmers who
are like Mozart in the way you describe? Donald Knuth might be one, or
at least, he wrote that he wrote and debugged all of TeX on paper
before entering it into a computer and only found 13 more bugs (or
something like that), once he did. I don't remember if it was 13
exactly, but 13 more bugs might be the closest that any programmer
gets to Mozart, or at least any programmer in the 20th or early 21st
century.

But, can you imagine waking up in the middle of the night, sitting
down, and writing a compiler from start to finish? Well, of course,
easily, undergrads do it all the time during finals period. But, one
that works, and that contains original ideas? I know some awesome
programmers, but I don't think any of them are quite that awesome.
Whereas it's conceivable to imagine somebody writing a piece of music
that way, or a poem. Does that just mean that computer science has a
long way to go in maturation? Or does it mean something else?


Maybe you forget  one fact : we're talking about people who have exprerience,
not undergrad. Moreover, if we talk about experience in one area (for
example computer languages, ore opera/classic music (not electro, pop,
rock, jazz and so on), I'm sure there're people who have enough
experience in compiler to try out a new idea in a short amount of
time. Or in other discipline. I think I've read John Carmack wrote
*several* 3d engines for each of their titles that throw them away.

Another difference with music that strikes me is the level of
abstraction : a note is a note. A line of code (especially in a
imperative setting) is much more than a line of code. Ok, one can
argue that notes interact together but, imo, not in the same way line
of code can do.

Programming is complex, you have to layer code on codeon code. Music
is quite 'direct', you hear it without thinking.

Bye,
minh thu
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Mozart versus Beethoven (was: Writing Haskell For Dummies ...)

2006-12-13 Thread Henk-Jan van Tuyl
On Tue, 12 Dec 2006 12:07:37 +0100, Kirsten Chevalier  
[EMAIL PROTECTED] wrote:



On 12/12/06, Patrick Mulder [EMAIL PROTECTED] wrote:

Not sure whether this is the right place to discuss
computers and programming in general:


You're implying that there's a *more* appropriate forum somewhere for
discussing analogies between music composition and programming
languages? If so, I'd like to know what it is!



Maybe the UseNet newsgroup comp.music?

--
Met vriendelijke groet,
Henk-Jan van Tuyl


--
http://Van.Tuyl.eu/
--

Using Opera's revolutionary e-mail client:
https://secure.bmtmicro.com/opera/buy-opera.html?AID=789433

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Mozart versus Beethoven (was: Writing Haskell For Dummies ...)

2006-12-13 Thread Kirsten Chevalier

On 12/13/06, minh thu [EMAIL PROTECTED] wrote:

Another difference with music that strikes me is the level of
abstraction : a note is a note. A line of code (especially in a
imperative setting) is much more than a line of code. Ok, one can
argue that notes interact together but, imo, not in the same way line
of code can do.

Programming is complex, you have to layer code on codeon code. Music
is quite 'direct', you hear it without thinking.



I'm not sure that's right, though. Just as a line of code seems to be
simple but what's going on at the hardware level is very complex, a
musical note is simple but what goes in inside your brain when you
hear one is extremely complex, poorly understood, and the details of
it aren't accessible to you consciously. You say you hear it without
thinking -- exactly, you feel like you're not thinking because of
all of the amazingly complicated things that are going on inside. No
program is nearly that complex!

I suppose I must be channeling Hofstadter.

Cheers,
Kirsten

--
Kirsten Chevalier* [EMAIL PROTECTED] *Often in error, never in doubt
One of these days and it won't be long / Going down in the valley and
sing my song
Gonna sing it loud, sing it strong / Let the echo decide if I was
right or wrong
-- Bob Dylan
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


RE: [Haskell-cafe] Mozart versus Beethoven (was: Writing Haskell For Dummies ...)

2006-12-12 Thread Patrick Mulder
Not sure whether this is the right place to discuss
computers and programming in general: But Dijkstra's
metaphor is suggesting, that while Beethoven learned
by experiment and debugging compositions, Mozart did
not have a need for reflection while writing down
music ? 

The observation above sounds to me more as a
difference between youthful enthousiasm (= allows few
time for reflection but a lot for action) and old
wisdom (= no risk taking but few action for the
young). Also this difference has already been
documented in Aristotele's Rethorics. It is of course
difficult to transmit the characteristics of old age
to young age, or vice versa.

Furthermore about Dijkstra's quote on computers and
telescopes which I like more. Telescopes are indeed
not saying anything at all about the laws of the
universe, as computers themselves don't say anything
at all about complexity. But I wonder if we would have
concepts as gravity or general relativity if we would
have never had observed the movement of planets and
light with telescopes. Equally, what can parallelity
in computers teach us about the concept of monad ?

I also find the approach of the designers of
telescopes (= computer architects) interesting to
understand parallel processes:

http://view.eecs.berkeley.edu/wiki/Main_Page

I think they use the name dwarfs for monads.

PS  I like the idea of a book Hakell for Hackers




___ 
Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Mozart versus Beethoven (was: Writing Haskell For Dummies ...)

2006-12-12 Thread Kirsten Chevalier

On 12/12/06, Patrick Mulder [EMAIL PROTECTED] wrote:

Not sure whether this is the right place to discuss
computers and programming in general:


You're implying that there's a *more* appropriate forum somewhere for
discussing analogies between music composition and programming
languages? If so, I'd like to know what it is!


But Dijkstra's
metaphor is suggesting, that while Beethoven learned
by experiment and debugging compositions, Mozart did
not have a need for reflection while writing down
music ?



I've been thinking about this. Are there really any programmers who
are like Mozart in the way you describe? Donald Knuth might be one, or
at least, he wrote that he wrote and debugged all of TeX on paper
before entering it into a computer and only found 13 more bugs (or
something like that), once he did. I don't remember if it was 13
exactly, but 13 more bugs might be the closest that any programmer
gets to Mozart, or at least any programmer in the 20th or early 21st
century.

But, can you imagine waking up in the middle of the night, sitting
down, and writing a compiler from start to finish? Well, of course,
easily, undergrads do it all the time during finals period. But, one
that works, and that contains original ideas? I know some awesome
programmers, but I don't think any of them are quite that awesome.
Whereas it's conceivable to imagine somebody writing a piece of music
that way, or a poem. Does that just mean that computer science has a
long way to go in maturation? Or does it mean something else?


PS  I like the idea of a book Hakell for Hackers



Maybe Haskell for People Who Want to Be Hackers? (Since, of course,
one should never apply the term hacker to oneself.) I'm not sure
whether it's best to aim at people who might be already hackers who
want to learn Haskell, or people who are already programmers who want
to be Haskell hackers, in particular. I suppose that the first group
of people is probably larger.

Cheers,
Kirsten

--
Kirsten Chevalier* [EMAIL PROTECTED] *Often in error, never in doubt
What is research but a blind date with knowledge? -- Will Henry
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Mozart versus Beethoven (was: Writing Haskell For Dummies ...)

2006-12-12 Thread Patrick Mulder

 You're implying that there's a *more* appropriate
 forum somewhere for
 discussing analogies between music composition and
 programming
 languages? If so, I'd like to know what it is!

Yes, music and programming languages are ultimately
phenomena of our human brains/minds. Therefore, the
expression of music or algorithms touch as much
mathematics as they touch the field of philosophy (and
here the philosophy of the mind). Sometimes there are
interesting posts in comp.ai.philosophy and attempts
to discuss the semantics in Mozart or Beethoven's
style:
http://groups.google.de/groups/search?hl=deq=beethoven+mozart+comparison


 I've been thinking about this. Are there really any
 programmers who
 are like Mozart in the way you describe? 

No, and I think Dijkstra perception is a bit flawed
with respect to Mozart's compositions. Certainly,
there are very strong rewarding mechanisms in the
brain which can be activated by special circumstances
and allow to develop special capabilities (Feynman
spoke about falling in love with an idea). But it is
not highly desirable for a society to have every
member to develop radical new idea's or skills. A
species would quickly stop to reproduce if everyone
would be sitting in a room thinking about a certain
abstract subject.   

 Whereas it's conceivable to imagine somebody writing
 a piece of music
 that way, or a poem. 

I think in general it is underestimated how rare such
moments of divine inspiration are in reality. There is
this nice speech by Wislawa Szymborska about the
difficulties of inspiration in poetry
(http://nobelprize.org/nobel_prizes/literature/laureates/1996/index.html)
and also the late Beethoven explains this in his
music: Have a listening to the 3rd movement of his
op.106. In my view, he explains about the suffering of
a lonely genius, and then starts laughing about it
because our own nature changes all the time, and that
there is almost no way to control these changes, nor
on time that passed away or predicting times to come,
neither a judgement whether he is happy or not with
this fact of life- I find it a very powerful
observation on how learning works.



___ 
Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Mozart versus Beethoven (was: Writing Haskell For Dummies ...)

2006-12-12 Thread Thorkil Naur
Hello,

In the spring of 1978, I wrote a (circa) 700-word microprogram for 
multiprecision integer arithmetic on paper, typed it into a computer, had it 
cleaned of syntax errors by the micro-code assembler, printed it, and spent 
much of the summer in my mother's summer house debugging this program text by 
hand, without the use of any automated computing device of any kind. I found 
lots of errors, corrected them, rechecked the result by hand, found 
additional errors, corrected those and, finally, (in the autumn of 1978) ran 
the program for the first time. Every multiprecision integer operation but 
division worked. After some debugging, a single (rather silly) error was 
found in the division routine. I never found additional errors in this code.

This is not intended to imply that I am a Mozart rather than a Beethoven (most 
likely neither!) in the field of programming. Rather, it is an attempt to 
point out that the development environments that we use these days encourage 
a completely different mode of work than what was used some 20-30 years ago. 
Thus, today, I do like I have the impression most programmers do, compile and 
run (tests) as often as possible, even every very few keystrokes of code 
changes.

I am not an expert in the difference between composers like Mozart and 
Beethoven, but my expert father tells me that Mozart, reputedly, had a 
phenomenal musical memory that allowed him both to recall large sequences of 
music played to him and, undoubtably also, work with long sequences of 
hypothetical music, that is, music being composed, for prolonged periods, 
in his head, without the need to make any notes on paper etc.

It seems that such differences in modes of work does not imply any similar 
interesting or usefully utilizable difference in the way we should produce 
our programs. The analogy seems irrelevant, in other words.

Best regards
Thorkil

On Tuesday 12 December 2006 12:07, Kirsten Chevalier wrote:
...
 I've been thinking about this. Are there really any programmers who
 are like Mozart in the way you describe? Donald Knuth might be one, or
 at least, he wrote that he wrote and debugged all of TeX on paper
 before entering it into a computer and only found 13 more bugs (or
 something like that), once he did. I don't remember if it was 13
 exactly, but 13 more bugs might be the closest that any programmer
 gets to Mozart, or at least any programmer in the 20th or early 21st
 century.
 
...
 Cheers,
 Kirsten
 
 -- 
 Kirsten Chevalier* [EMAIL PROTECTED] *Often in error, never in 
doubt
 What is research but a blind date with knowledge? -- Will Henry
 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe
 
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe