Subject: Re: [xsl] Things that make you go Hmmmm!|
From: Ihe Onwuka <ihe.onwuka@xxxxxxxxx>
Date: Fri, 28 Mar 2014 20:55:34 +0000
On Fri, Mar 28, 2014 at 8:34 PM, Michael Kay <mike@xxxxxxxxxxxx> wrote: > > On 28 Mar 2014, at 19:47, Ihe Onwuka <ihe.onwuka@xxxxxxxxx> wrote: > >> the question was why the select attribute appears on xsl:copy in xslt 3.0 only. >> > > You've been asking a lot of such questions recently, and if you're interested, then you would probably find it rewarding to study the process by which these decisions are made and the language evolves. There is far too little study in our profession of the social processes that cause our systems to evolve in the way that they do. Most of the discussions that take place are purely anecdotal (often descending to "the guy who designed this must have been an idiot"), and very few researchers have made a serious and scholarly attempt to understand the way things actually happen. The fact is, some of the brightest people in the business get involved in language design, but they don't always make good choices. There are many reasons for that, for example they perceive the requirements incorrectly, they imagine the skills of the target user base differently, and so on. The most important factor is that there is usually tension between different designers with different perspectives making compromises to accommodate each other and reach agreement. Another factor is that (despite the "bicycle shed syndrome") there is a tendency for committees to focus on the big and difficult problems and sometimes neglect low-hanging fruit. Another is that the design process does not include enough feedback; by the time people start reporting their usability experiences, the decisions are difficult to change. And of course a very big factor is that many decisions, once made, are extremely difficult to change. > I made many of the same observations albeit less eloquently a few days ago. http://www.biglist.com/cgi-bin/wilma/wilma_hiliter/xsl-list@xxxxxxxxxxxxxxxxx h.com/201403/msg00237.html?line=47#hilite First of all I was satisfied with the first answer I got. I commented further was because I realised you perceived the question in a totally different way than I asked it. >. Clearly this shows that the use case for it is not very strong, but my philosophy is that orthogonality in design is more important than having a use case for everything, I agree 100% and that is exactly why I was surprised. My expectations align with the orthogonality principle. That explains my expectations for apply-templates, apply-imports and next-match. There is not a use case for printing an empty string. Should you should throw an error if somebody tries to do it? > >and I managed to persuade my colleagues (who don't always share the same philosophy) to fill this gap. > Well that explains it then. I think the orthogonality principle is a natural default for a functional programming language and I can't think of a good reason to depart from that. That is a consequence of the limitations of my knowledge and background. If I heard the reasons for the contrary philosophy I'm sure they too would have merit, it would then become a matter of personal taste which one would prefer.