From: Simen Edvardsen Date: 2006-08-09T21:19:58+09:00 Subject: Re: Language chatter On 8/9/06, Francis Cianfrocca wrote: > Whereas almost 50 years ago, John Backus and his crew already had > Fortran compilers that could execute numerical methods at a pretty high > fraction of the available machine speed. (Interestingly, according to > Backus' notes, the first Fortran compiler took 18 man-years to build, > and *most* of that time went into hand-writing the front-end, a job that > become automated and near-trivial by the mid-Seventies.) > > When I was a kid, I spent all my allowances buying TTL gates and > hand-wiring digital logic. Then when I first got my hands on a computer, > the process of learning machine language and then assembler was > near-instantaneous, because I knew exactly what those instructions were > doing physically in the hardware. Memory-addressing and pointers made > complete sense from the first moment. I was shocked when I first > encountered C, years later, that it was possible to program computers at > such a high level! My point is that putting values into memory cells, > moving them around, and adding and subtracting them is not only the > easiest known way to build a useful (Turing-complete) computer, but also > may be the easiest way for most people to model computations. As an > economic proposition, then, regardless of all this theory and history, > I'm no longer interested in FP for mainstream use. Ruby, on the other > hand, is a step in the right direction. > If the "natural" way of modeling computation is that of moving around bits in memory and doing trivial operations on them, we wouldn't be building all these kinds of fancy abstractions, now would we? Also, Ruby is full of higher order functions, so saying FP is not for mainstream use but Ruby is a step in the right direction seems a bit od. > Aside: I used to think the fad that swept our university CS departments > 10 years or so ago of teaching only Scheme was extraordinarily wasteful > and damaging. They thought that teaching people how to understand > computation using the "more-pure" functional style was preferable to > just teaching people how to program. Well, compared to what they > replaced it with (algorithm cookbooks in Java), it may not have been so > bad. > Only teaching one language is probably not the way to go, but I see Scheme as an excellent beginner language. It contains a simple core and yet a bunch of powerful abstractions that are useful to learn. It doesn't lock someone into a single mindset. Java, on the other hand, is probably making it more difficult for people to grasp the essence of programming, by making them think that anything that doesn't have a hundred classes is a failure. > But now that I've declared Lisp to be a fascinating part of computing's > past (), the question is: what lies ahead? It > would be charitable to compare our current computer technology, and the > applications we put it to, to the model T and the candlestick telephone. > The more interesting challenge is to go beyond the solved problem of > Turing-complete computations, and figure out how to linguistically and > metaphorically express the large-scale information-driven processes that > humans work with every day. Someone upthread started hinting at that. > There are already some beautiful but flawed examples of this new > thinking (Erlang for one, the original conception of Smalltalk for > another), but it's till very very early. > > -- > Posted via http://www.ruby-forum.com/. > > There's always room for improvement. Should people not have invented the clock because someone had solved the problem with an hourglass or whatever? -- - Simen