Speaking of Haskell and laziness.. I found myself wondering last night, what was the issue with laziness again? I think it was that it's making it difficult to parallelize things. Why would that be? Is it just an implementation artefact, or are the rules of lazy evaluation actually disallowing the compiler/runtime from batching things appropriately for parallel computation?<p>EDIT: Guess I was thinking of this: <a href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.36.3806" rel="nofollow">http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.36.3...</a><p>> we have shown that lazy languages, even when implemented using a framework well-suited for parallelism, can generate only small amount of parallelism. [..] this result, when combined with the result concerning the low parallelism for really lazy programs, can also be interpreted as saying that there is not much hope for lazy languages as far as parallelism is concerned: in effect, they are saying that we can hope to obtain parallelism from programs written in a lazy language only when the programs <i>do not need</i> to be written in a lazy language!<p>That's a really old paper though (1995), if there are more recent relevant studies or results, I'd be interested..
> <i>To appreciate the difficulties of XML, let’s make a short excursion to the world of XML schema [...], which must be one of the most complex artifacts invented by mankind. The complexity of XSD is especially baffling since the existing solution, DTDs, is already a perfectly fine solution.</i><p>Ah, the period where it was attempted to integrate XML as first-class type/literal into programming languages. I guess the conclusion can only be that what SGML/XML is designed to represent (namely, semistructured text documents with regular content models) was fundamentally misunderstood by folks wanting to represent (relatively benign) business records-like structures for service-oriented apps. The complexity results for statically type-checking programming languages having XML as literals were disappointing, and the whole thing got out of fashion. Then, shortly after Mozilla dropped E4X (XML literals in JavaScript), JSX and React happened. I honestly don't know what conclusion should be drawn here :)
The author compares himself with the prophet and apparently believes that the acceptance of functional programming languages requires intensive missionary work - just like with an ideology or religion. However, the history of science shows that the right knowledge always prevails in the end. If it is so difficult to get functional programming languages to market, either the time is not yet ripe, or there are better solutions.