Subject: Re: [xsl] XSLT Hello World|
From: Ihe Onwuka <ihe.onwuka@xxxxxxxxx>
Date: Mon, 24 Mar 2014 23:47:07 +0000
On Mon, Mar 24, 2014 at 10:21 PM, Ihe Onwuka <ihe.onwuka@xxxxxxxxx> wrote: > > Some language communities (I am thinking of Python here) are very > effective at making the rank and file (those without the advantage of > formal training) think that their language is simple and easy to use > irrespective of the true picture. > Let me expand on that further. As David Sewell pointed Sapir Whorfism has some relevance. I would layer that with a belief that programming languages each have a certain sociology. Whereas in Scheme it's not unusual to see people referred to the language specification it is less likely to happen in Java. I once spent a very illuminating 4 or 5 months teaching Scheme. In Scheme you append one string to another by (string-append "hello" " world") - Example A Along comes a Python programmer and says the language is verbose and confusing. In Python it's "hello" + "world" - Example B Thats less typing, no function name to remember, no bracket punctuation necessary example B in Python is simpler QED you should teach with Python. Now this is a very effective argument and for many beginners it starts and ends somewere near there - A few more examples like that and they sign up to learn or use the language. Now in the unlikely event that you still have the fellows attention you could ask if he will let you introduce 8 + 9 - Example C Equals 17 in Python right. Ok - look at Example B and look at Example C. What is "8" + "9" So now I have to explain to my beginning students what an overloaded operator is. What about 8 + "world". Should that even be legal, if so what should it evaluate to. I've now unwittingly exposed my students to and may have to explain (before I'm ready) type systems. Despite these realitiies Python has become wildly popular at all levels. If I go to the store and want to buy an gadget unless I am willing for that gadget to be a major part of my life I am choosing the one that I can operate without having to read the manual or attend training a seminar. I am definitely making that choice over the superior product that demands otherwise and trips me up 99% of the time I try what looks like an obvious option. To me the issues at play here are presentational, psychological and sociological, not the sort of things that are addressed in a programming language specfication. You can address them with education but in an age where there is a compendium of choices you first have to have entice people to sit and stay long enough in your classroom.