
On Thu, Nov 18, 2010 at 3:50 PM, Steven D'Aprano <steve@pearwood.info>wrote:
Come on now :) I was speaking of the programmer's universe. But to the extent the universe is logical, it will also evolve (or has evolved?) towards elegance (that is, after all what's pushing the physicist's ideal of a Theory of Everything!). Which brings us to the mathematicians dilemma: do we create the universe or do we discover it?
To only "go on with the information it has and the users it has"
I beg to differ... it seems to me that users are drawn to languages for many
Well, you certainly have the issue of momentum for one part of the explanation. Many are not willing do ditch their old toolset even when a better one is presented. The other is that the most elegant languages are sometimes those understood by the fewest....
I can define it quite succinctly: Komolgorov semantic density. Each element of syntax of a language can be seen as a condensing down to its Kolmolgorov ideal the tightest expression of a common programmatic need. Completeness is a necessary but insufficient condition (so BrainFuck is out of the question). Personally, I see Python as an extremely elegant language, but that elegance
The breaking of backwards compatibility is in no way gratuitous. It may be demolishing of a long-standing local-maxima, but hardly gratuitous. Just a few ideas, nothing I'm trying to make a religious war on... marcos

average wrote: [...]
So the real issue is the order in which toolsets get presented to newcomers to the field.
An experience that early computers provided to programmers was that of having to save on code size because memory was too tight; and a lesson from that experience is that gains in information density of code have less to do with local optimization of expressions than with global optimizations in the sense of finding ways to fold apparently different code execution paths into variants of the same. IOW, algorithmic information density is concept overkill, when arguing about the standard representation of empty collections factory calls. And as far as elegance is concerned, I am in fact tempted to argue that the call syntax in list(), set() and dict() has over [] and {} the virtuous side-effect of reminding the reader that a distinct empty collection is made at each call, despite the invariability of the expression. Cheers, BB Completeness is a necessary but insufficient condition (so

average wrote: [...]
So the real issue is the order in which toolsets get presented to newcomers to the field.
An experience that early computers provided to programmers was that of having to save on code size because memory was too tight; and a lesson from that experience is that gains in information density of code have less to do with local optimization of expressions than with global optimizations in the sense of finding ways to fold apparently different code execution paths into variants of the same. IOW, algorithmic information density is concept overkill, when arguing about the standard representation of empty collections factory calls. And as far as elegance is concerned, I am in fact tempted to argue that the call syntax in list(), set() and dict() has over [] and {} the virtuous side-effect of reminding the reader that a distinct empty collection is made at each call, despite the invariability of the expression. Cheers, BB Completeness is a necessary but insufficient condition (so
participants (2)
-
average
-
Boris Borcic