On 03-May-10 09:38 AM, Samuel Williams wrote:
Dear Chris,

Thanks for reading further into the site.

Yes, it is complicated to provide a good comparison. It isn't always accurate 
and I welcome feedback.

Please be aware that orange does not mean problem - it simply means take note that there 
may be potential issues that you need to consider. It is highly subjective, so I 
appreciate your feedback. The red dot is when there is definitely an issue that needs to 
be taken into consideration. It isn't "Okay, Warning, Error" because it isn't 
possible to make this kind of judgement without being omnipotent.

There are several reason why I decided to rate the syntax as not being simple.
        1) Indentation model is not appreciated by everyone - I think its a 
good model, but feedback from some other people has been that they don't like 
it. Also, I've had perfectly good Python code fall to bits after editing in a 
different editor. I'm not saying that this was the fault of Python, but in an 
educational context it might be a problem, since people are fairly limited and 
don't understand these issues.

Nobody likes indentation at first, it is different. There is no begin/end and not {}.

That feeling might last for an hour. People welcome the absence of clutter. Indentation makes it easier to read and understand the code.

Coding errors are easily found with a good IDE, such as PyScripter

Colin W.

        2) I don't think that the list comprehension integrates well with the 
rest of the language. It is an additional syntactic construct which seems to be 
separate from the rest of the language. It would be nice if list comprehension 
was implemented in a way that was more general, using a general closure syntax 
for example. This is just my opinion, and it might not be valid (I don't 
research this point very heavily).

I appreciate that in general the Python syntax is good and concise. It is hard. 
Some teacher might want to consider these issues more carefully. Do you think I 
should change that spot to green? I don't have a problem with doing that, as 
long as it makes sense.

Thanks for providing the syntax images, they are very interesting.

With regards to Perl, yes, this is probably something I need to investigate 
further. It is not always easy to do a comparison of this nature. From my 
experience, Perl generally seems to have a robust object model that is 
consistently implemented (even if the syntax is pretty wonky at times). 
However, in a sense, it is no better or worse than Python implementation... so 
why is it green dot? Do you think I should change Perl to orange or Python to 
green.

The main criteria is whether it is going to be an issue in an educational 
context - this means, for new programmers, or those who might make error easily 
(syntax, semantic), etc.

Also, I wonder if Visual Basic needs to be reevaluated on this criteria too. I 
guess what is important is the relative importance.

I will bring this issue up on the Perl mailing list in order to get advice.

Would you recommend changing Perl to orange?

Thanks for your well thought out response, it is very helpful.

Kind regards,
Samuel

On 4/05/2010, at 1:06 AM, Chris Rebert wrote:

On Mon, May 3, 2010 at 5:29 AM, Chris Rebert<c...@rebertia.com>  wrote:
On Mon, May 3, 2010 at 5:05 AM, Samuel Williams
<space.ship.travel...@gmail.com>  wrote:
Dear Friends,

I'm looking for some help from the Python community. I hope this is the
right place to ask for information.

I'm putting together a website aimed at high school students and teachers,
and would like to make sure the following page is as good as possible:
http://programming.dojo.net.nz/languages/python/index
In particular, "Why would I learn this language?" section needs to have a
few paragraphs. I don't use Python predominantly so I hoped that you could
provide the main reasons why Python is a language someone would want to
learn about.
<snip>
- A very clean syntax and elegant design, compared to other languages

Also, I take issue with your classifying Python as orange with regard
to "Is the general syntax simple and concise?" on
http://programming.dojo.net.nz/resources/programming-language-comparison/index
Python's syntax is at least as simple, if not simpler, than Ruby's,
which you rate as green. Ruby may be /slightly/ more concise than
Python in certain cases due to its Perl influences, but those
instances of specialized syntax also make it more complex.
To wit, I refer you to
http://webcache.googleusercontent.com/search?q=cache:dyugd_KlqvcJ:blog.nicksieger.com/articles/2006/10/27/visualization-of-rubys-grammar+ruby+grammar+visualization&cd=1&hl=en&ct=clnk&gl=us
Note the complexity of the graph for Ruby's grammar. By comparison,
here is the same graph for Python (generated from a file linked to in
the post's comment thread):
http://rebertia.com/images/python_grammar_graph.png
(Disclaimer: Neither of the graphs are current.)

Additionally, you rate Python orange but Perl green for "Does the
language provide a useful and consistent set of object oriented
constructs?". Could you explain your reasoning for this? While neither
Python nor Perl have the level of object-oriented purity of Ruby or
Smalltalk, my understanding is that short of using CPAN libraries for
Perl or dealing in Perl 6, Perl and Python have a substantially
similar object model, so I don't how Python could rate below Perl in
this area.

Cheers,
Chris
--
http://blog.rebertia.com


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to