I have been using python for about 4 years, since my sabbatical in Palo Alto. I started teaching it in a systems programming a year or two after learning it. While initially I was a bit concerned about both how stable and healthy the language would be, and how well it would be accepted. Well, python is clearly becoming a very prevalent and popular language.
The students in my class really like it. In 15 years of teaching, I
don't think I have seen a language embraced this enthusiastically before.
Why is it so good? I think the manner it enforces indentation helps. I think the fact it's a scripting language helps. Also, there are a few data structures and operators are well delivered and that have a huge impact. In particular, I think the support for
slicing and dictionary (hash) data structures are really important. Type conversion is done well.
Python does have flaws and limits:
- For large projects, the flexibility it allows can faciliate hidden
bugs.
- It does less compile-time analysis than langauges like C, Java, and C++ so there is a greater risk of obvious bugs being hidden
undetected in code paths that haven't be tested. This is a serious issue for a big project.
- A problem with object-oriented langauges, in my opinion, is losing track of where things are inherited from (and this is even worse with multiple inheritance). Python allows a constuct of
the form import XX from YY where the name XX
can be used in a module without a qualifier [i.e you can say XX(3) instead of YY.XX(3)]. This can make small modules a bit easier to write, but it's a really really bad idea if you want to create maintainable code.