On 12-01-24 09:36 AM, Ian Tickle wrote:
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
I agree with all of the above but it does not help someone who is asking
about what language(s) to look into for a first foray into programming.
From the original description Yuri is one of the many people who want
to learn computer programming in general and apply it, probably on a
rather infrequent basis, to relatively straightforward tasks that don't
rely on speed, integration with the internet, special libraries etc. In
such cases I think python should be at, or near, the top of the list of
programming languages to look at and perl near the bottom. That doesn't
mean python is not suitable for much more demanding tasks but if you are
going to program on a daily basis or start on a project with special
needs you really should study the strengths and weaknesses of each
language in more detail.
Bart
PS: I think even novices should not have too much difficulty
understanding how the example program below produces the results at the
bottom.
languageList = ["python", "java", "...", "perl"]
print "Ranking of some computer languages based on ease of use"
i = 1
for language in languageList:
print i, language
i = i + 1
result
Ranking of some computer languages based on ease of use
1 python
2 java
3 ...
4 perl