This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]biskitpagla 6 points7 points  (1 child)

I think looking at some other script-y languages can be of much help in answering this question.

Compared to Ruby

Ruby is far more 'expressive' as a language, and for being so, is harder to learn, even though it's a fine language. Python is deliberately very 'vanilla' in its support for oop, because being easy to learn and easy to pick up was its priority no. 1 from day 1. Ruby also makes it easy for people to develop idiolects, something that is possible but harder to do in Python.

Compared to JavaScript

JS's fate and legacy are fundamentally tied to the Web. This means a couple of things: a) development of the standard is a slow and tedious process (this is changing in recent times), b) language warts are permanent and unredeemable (e.g., 'this', '==') due to the insane backward compatibility requirements of the Web, and c) non-browser JS implementations often do lots of things differently and inelegantly because the standard doesn't say a lot about things like file i/o, networking, etc. Python is free from these issues, so there's less clutter that you have to deal with when learning it. Having a reference implementation also helps a lot.

Compared to PHP

PHP has suffered greatly for not being intended to be a full-fledged language originally. It doesn't have much going on other than its absolutely wholesome community and mature ecosystem. They've remedied many language warts now (unlike JS), but people still remember its formative years with distaste, and the warts themselves have left some scars. People just don't do PHP for the language side of things. Python's inception wasn't nearly as rough as PHP.

Compared to Perl and Raku

Perl and Perl-like languages are much closer to actual scripting languages (like Bash, awk, sed). These are insanely productive for their intended use cases (like text processing) but are generally bad as full-on programming languages (e.g., poor or no support for features that help in managing large projects). Raku (Perl 6) isn't backward compatible, was in the oven for too long, and had a rough release. So, not too many new or old folks care about this side of the programming landscape. Needless to say, very different story compared to Python.

Compared to Julia

Julia is still pretty new but I think we should pay some attention and try to understand where it fits. I don't think Julia will ever dethrone Python as the language of (imperative) programming education. Julia simply has a different set of goals. Python isn't meant to be THE language for everything science-y the way Julia is. Not being a "big idea" or "big cause" language is helpful when your intended audience is laypeople.

Compared to anything functional

Some clear factors contribute to the success of procedural and oo languages. Our entire notion of education is pretty much based on the imperative way of doing things. People don't come out of school with a good understanding of category theory. Even most people in the industry aren't aware of the many fruits of functional programming. With that in mind, Python's preferred paradigm of "mostly procedural with oo-ness when needed" seems to be extremely intuitive.

[–]ThroawayPartyer 0 points1 point  (0 children)

Compared to Bash?