On 24 January 2012 14:19, David Schuller <dj...@cornell.edu> wrote: > On 01/24/12 00:41, Bart Hazes wrote: > www.cs.siue.edu/~astefik/papers/StefikPlateau2011.pdf > > An Empirical Comparison of the Accuracy Rates of Novices using the Quorum, > Perl, and Randomo Programming Languages > A. Stefik, S. Siebert, M. Stefik, K. Slattery > > Abstract: "... Perl users were unable to write programs more accurately than > those using a language designed by chance."
... and from the same paper: "Students tell us that the syntax they are learning (in C++ at our school), makes no sense and some have difficulty writing even basic computer programs.". Maybe the difficulty the students in the test group experienced had a lot to do with the fact they were complete novices and had no experience whatsoever of any computer language; also the language syntax was not explained to them prior to the test, they had to deduce it during the test time itself (21 mins) from code samples. Note that Python wasn't tested, so the fact that they found Perl syntax difficult to deduce from the samples doesn't necessarily imply that they wouldn't also have had the same difficulty with Python. One of the difficulties reported with Perl was the use of the 'for' keyword to introduce a loop (novices apparently report that 'repeat' is 7 times more intuitive than 'for'). But Python and Perl (and C/C++ of course) both use the 'for' keyword in a loop construct, and maybe all this paper proves is that 'repeat' is easier to comprehend than 'for' (or any other loop syntax)! I remember when I first learned Fortran the 'DO' loop was the hardest concept to grasp (not so much the syntax, but the concept of looping itself, with variables potentially having different values on each pass through the loop): this was followed closely by the FORMAT statement! I think every programming novice finds the concept of looping difficult at first in whatever language they are using: you can often recognise novice code because it studiously avoids the use of loops! Personally I think there's plenty of opportunity to write bad (and good) code in any language; for me the choice of language is a personal one and not one I lose any sleep over. Far more important to me than writing beautiful code is getting the algorithm right, particularly as it affects numerical precision. Debugging the syntax is the easy bit, debugging the algorithm is always the hard part. Cheers -- Ian