Wednesday, June 28, 2006

Patterns !

Hi,

when we walk around in the universe, I am sometimes fascinated by how many things we "know", we seem to recognize. Seeing things in a sort of flow can be an absolute fascinating experience ! For example, when you would see the large Gothic style cathedral in Cologne, how many structures can be seen that provide a function of making the whole building robust ? A lot. The people who had built this cathedral must have absolutely been amazed of what clever building can do. On the other hand, there must have been a huge learning effort before one culture is able to start building these sort of structures.

Music is still one of my most favorite structures to study, next to software, and computer architectures. It is also about communication. I am reading a book by Negroponte about "Being digital", the introduction of multimedia in our lifes. The book is already a bit older, but still an interesting reading.

Here some side-way thinking: I had listened to some piano/saxophone jazz by
Coltrane and Ellington on the bike on the way home. I had the CD from the quartier latin in Paris from a second hand jazz shop, where some old people were having a party while selling music. Music is fascinating in how in interacts with our memories.

Tuesday, June 13, 2006

Programming and cognitive sciences...

The more I learn about programming (= reading about LISP temporarily), the more I come to realize that many insights in design and engineering will probably arise from the field of cognitive sciences. Design and engineering are divided into analyses and synthesis of concepts, and for both area's, we know about training methods (reading books, building prototypes, having discussions). Programming is so useful because it allows us to visualize, to transform and to transmit structures of information, such that we can deal with fluid concepts one day, adding a new dimension to understanding and learning.

Friday, June 02, 2006

More on functional vs. procedural

Just continued reading the discussion on the newsgroup from yesterday, and came across arguments in favor of procedurales languages. Most probably we will need a mix between functional and imperative programming. Also, I have heard somewhere the argument that structure and function never answer the same sort of questions. We always need a mix between both, as Wittgenstein seems not have accepted.

From the newsgroup:

R. Crawford, Sa 15 Mai 1993:

"I also disagree that procedural languages were the byproduct of the von Neumann
architecture. I claim that the procedural model is the more natural one for specifying any sort of process and would have been dominant even if we were programming on Turing machines. When you give someone directions to a nearby address, you state it procedurally. Turn left here. Stop. Turn right there.
Stop. When you instruct someone in the preparation of food, you state the recipe procedurally, not recursively. I think a better case may be made for the inevitability of procedural specifications than functional ones. "

(when specifying the change of a location, an algorithm could indeed be taken as sequence of directions to follow, and checks to make whether arrived. That is our "natural" way of transferring the meaning of an adress today. On the other hand when we want to know more about the place, we ask by using recursion "is it the place that .... of that ... ?)

Thursday, June 01, 2006

Stored-program computers

Once I was watching a famous system engineer giving a presentation on the lack of communication between hardware and software people. I found his views quite interesting, that software people close themselves up in the abstractions of skys, while hardware people get lost in their fights with physical variations.

Now, I just came across a very interesting discussions in a newsgroup dating from 1993 (in comp.lang.functional under functional vs. imperative languages). Just reflects the difficulty we have with change....


I think that part of the answer is that SP
(software people) are trained different than HP (hardware
people). HP tend to consider themselves engineers and see
part of their job as being able to do cost/benefit anaylsis of
hardware technologies. There is very little resistence to
changing technologies for HP. SP on the other hand tend not
to pay attention to different SW technologies at all and are
typically not trained to evaluate different technologies. As
a result, very few SP are readily able to change to different
technologies. Some people could have learned COBOL+MVS or
C+Unix, been bottled in 1963, opened up today, and not see
much of a difference--but a lot of technological development
in SW technologies has taken place in the last 20 years! If
I were a HP I would be very nervous about using a 20 year old
technology to compete in todays market place.