bearophileh...@lycos.com wrote: > This is an interesting post, it shows me that fitness plateau where > design of Python syntax lives is really small, you can't design > something just similar: > > http://unlimitednovelty.com/2009/03/indentation-sensitivity-post-mortem.html > > Living on a small fitness plateau isn't good, even if it's very high, > because it's evolutionary unstable :-(
You're assuming that (1) evolutionary changes occur at random, and (2) there's value in there being many similar species/languages sharing a fitness plateau. Neither of those necessarily follow. Few languages (if any) undergo random mutation -- a better model for programming language evolution is directed mutation and artificial selection rather than evolution by natural selection with random mutation. It's very rare (non-existent) for two species to share a niche, and therefore co-exist in a fitness plateau. Due to network effects, much the same happens for languages: a few popular languages (e.g. C, Java, Perl) overwhelmingly capture a market. Given the popularity of Python, "Python-like" languages will be doomed to tiny niches -- unless the language discovers some sort of distinguishing feature that shifts them into a different, but similar, fitness plateau, where they can capture a market large enough to get their own network effort, or if the original language becomes moribund. E.g. some hypothetical Python clone with optional braces might take off, thus proving that all the l^H users begging for braces were right. Or the shift to multi-core processors and Guido's reluctance/inability to remove the GIL might doom Python to only being useful on an ever-shrinking pool of single-core CPUs. > Indentation-wise Haskell syntax seems one of the very few local maxima > that is close enough to the little fitness plateau where Python is. If the article is right, there is a fundamental incompatibility between indentation-sensitive languages and languages with multi-line anonymous blocks. You can have one, or the other, but not both, unless you're willing to have a "practicality beats purity" trade-off and create a second way of grouping blocks, and who knows whether that will turn out to *actually* be practical? That doesn't say anything about the narrowness of the Python fitness plateau. There could be room for a dozen languages with the same approach to indentation as Python. -- Steven -- http://mail.python.org/mailman/listinfo/python-list