RE: Re[2]: [Haskell-cafe] Re: A suggestion for the next high profile Haskell project

2006-12-19 Thread Patrick Mulder

 why you (and Donald) don't want to understand me. i
 say that imperative
 Haskell code is more efficient than pure (and
 especially lazy) one and that
 even such code in ghc is slower than C equivalent.

I think the concern about execution speed of
algorithms is a fairly recent topic. At least, the
reason why compilers were developped at all was to
save expensive memory capacity. Imagine to pay $3500
for 2kB memory!
(http://www-03.ibm.com/ibm/history/exhibits/system7/system7_tpress.html)

It would pay off to invest thinking in how to make
programs short in terms of memory space usage. The
counting of instruction cycles in speed context came
only later when personal computers became mainstream.
And nowadays, they use is an interesting idea of
measuring performance in multimedia: Quality of
Experience. I don't know exactly which parameters
play a role, but it is interesting to relate speed to
human perception. At least, speed is relative after
all (with respect to the timebase we use: eons to
femtoseconds).

Patrick



___ 
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] Book Haskell in real world

2006-12-15 Thread Patrick Mulder
Hello Bulat,

you are talking about the real world, but maybe it
useful to think about, that the real world might have
different forms, falls into different categories.

What I mean: The real world for a computer game
programmer, network service application developper,
complex simulation software engineer, embedded system
designer, business software developper or university
researcher might look quite different. 

 one of such points may be the book for commercial
 programmers that will
 show them how their real programs can be written
 Haskell and convince them
 that Haskell really cuts off development cycle and
 increase software
 reliability

This sounds like an economical problem, and although
there are certainly the benefits you describe it is
important to think about the cost and risk of learning
a new skill. I was thinking about this lately at the
post office where they trained a new employee to send
packets. Although all the efforts they made to make
this simple activity smooth for the customer, I
realized that they made a mistake with pricing at the
end. Because I was already on my way home, the mistake
caused by training the new employee costed them
1euro50. To make training or teaching material 
successful, the content should focus on reducing
potential mistakes or overengineering (= the cost and
risk of learning something so complicated as a
functional programming language). 

Regards,

Patrick







___ 
Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: 
http://mail.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-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-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 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] Writing Haskell For Dummies Or At Least For People Who Feel Like Dummies When They See The Word 'Monad'

2006-12-11 Thread Patrick Mulder
In my opinion it would be important to increase the
understanding about semantics and processes. And
it would be good to introduce the concepts in a
similar way as Profokiev introduces the sound of
classical music in Peter and the Wolf. If my
suspicion is correct, functional programming would be
very close to composing classical music (or concurrent
algorithms and processes). Has anyone of you similar
thoughts on music and programming ?  What are the
basic ingredients for making abstractions (like in
music rythm, keys, tempo, ...) ? It would be useful to
express different ways of expression by explaining
first semantics of processes and abstractions.

--- Kirsten Chevalier [EMAIL PROTECTED]
schrieb:

 It's not as if this is the first time that this has
 been suggested,
 but some people have suggested that a practical book
 about Haskell
 would be a good idea. I agree. Some people have also
 suggested that
 the right moment for this hasn't arrived yet, and I
 see that as a
 challenge.
 
 I'm willing to take the lead in at least thinking
 about what such a
 book might look like. I'm potentially about to have
 some free time for
 such things, and am still young and foolish enough
 to think that
 writing a book would be a good idea.
 
 Of course, there are many good Haskell books out
 there already, but
 many of them are intended as class textbooks or are
 aimed at more
 theoretical-minded people. There's nothing wrong
 with that, but I
 think that it would be nice if a friendly,
 conversational, informal
 book about Haskell existed, since after all this is
 such a friendly
 and informal community. (If there already is a book
 like this, point
 it out, but I get the impression there's not.)
 
 There's also excellent Haskell documentation
 available on the web
 already, but people like to buy books and they like
 to have an
 artifact that they can hold in their hands without
 getting laser
 printer toner all over themselves.
 
 But if I were going to do this, I'd need all the
 help I could get, so
 if you're interested in working with me on this,
 email me off-list and
 we'll talk. Don't feel like you need to be named
 Simon for this; I
 don't think you need to be a Haskell guru to
 contribute to a book like
 this (I know I'm not one), though it wouldn't hurt.
 Being interested
 in good writing and explaining things to a wider
 audience is more
 important. And, the more people who are interested
 in working on this,
 the more we can all pool our various talents to
 create something
 awesome.
 
 Cheers,
 Kirsten
 
 -- 
 Kirsten Chevalier* [EMAIL PROTECTED]
 *Often in error, never in doubt
 Everyone's too stupid. -- _Ghost World_
 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe
 







___ 
Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: 
http://mail.yahoo.de
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Writing Haskell For Dummies Or At Least For People Who Feel Like Dummies When They See The Word 'Monad'

2006-12-11 Thread Patrick Mulder
(to Kirsten, Akhmechet, cc: Haskell-Cafe)
 I would divide the book into two parts. The first
 part would introduce
 Haskell via traditional small examples. Quick sort,
 towers of Hanoi,
 etc. The second part would have two or three large
 examples -
 something that people would relate to. I'd take a
 web application,
 tetris, and perhaps a chat server.

Tetris could be fun, because it would allow to present
your software/learning curve to people without
technology background, and maybe they would look into
programming then as well.

Your setup also reminds me on the book by Peter Seibel
on learning Lisp. He shows how to program a small
database to organise your CD collection (by writing a
sort of SQL replacement.)

  I've often thought that reading code (if it's
 well-written code) is a
  little like reading a poem, which of course is
 also a little like
  listening to classical music. 

Indeed, poems are another form of abstract expression,
and certainly it would be interesting to think about
similarities with programming. Poems can be
interesting because of multiple associations in words,
e.g. an obvious meaning and hidden meaning. And this
involves some parallel processes. But to me, the idea
of parallel processes is more clearly to see in music.
Processes are rendered in the voices of instruments,
and every voice transmits or contributes to a certain
message. In a way, the voices of an orchestra can be
seen to describe a process (experience) or function. 
Another idea that comes to my mind is attributing
processes to protagonists in a drama.  (Another quote
how programming shares aspects of making music. From
the preface of Structure and Interpretation of
Computer Programs:  A computer is like a violin. You
can imagine a novice trying first a phonograph and
then a violin. The latter, he says, sounds terrible.
That is the argument we have heard from our humanists
and most of our computer scientists. Computer programs
are good, they say, for particular purposes, but they
aren't flexible. Neither is a violin, or a typewriter,
until you learn how to use it. Marvin Minsky, ``Why
Programming Is a Good
Medium for Expressing Poorly-Understood and
Sloppily-Formulated Ideas'')


 I've been thinking a lot
 lately about how to
  present computer science (and programming
 languages) to a popular
  audience, too. 

Yes, this is an important topic. But there is also the
common misunderstanding that computers = Von Neumann
machines. I think the concept of computer is better to
see as sort of telescope or translator. Computers
allow to look at processes (and complexity) which
would otherwise not conceivable to our limited minds.
The idea of computers as telescopes is from Daniel
Dennett though.

I will think about these ideas, and let you know my
progress.

Patrick






___ 
Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: 
http://mail.yahoo.de
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe