P
Paul McGuire
Python is not VB and Python is not Java and Python is not Ruby and
Python is not any other language that is not Python.
1. Functions cannot be called without the parens (like in VB)
2. Python uses some naming conventions as programmer cues, such as
leading and trailing double-underscores to indicate some form of
specialness (I'm not overfond of relying on naming for this kind of
information encoding either, but I got used to it)
3. Python does not use braces to demarcate executable blocks of code,
or to define anonymous code blocks (like in Java, Ruby, or Smalltalk)
4. Python does not require every line of code to be enclosed within a
class (like in Java or Smalltalk)
5. Python does not do compile-time type checking on function arguments
or variable assignments (like in Java or C or C++) (yet... and will it
still be Python when it does?)
6. Python does not have interfaces to enforce object type
compatibility (like in Java)
Just because Python has features that are different from those in your
former language X does not mean it is deficient. Python *might* be
deficient - ternary expressions are now part of the language after
years of refugees from C and C++ asking how to write "a = b ? c : d",
and now they'll get to puzzle/gripe over mapping this to "a = c if b
else d". But as a newbie, you need to invest a little more time and
effort and study and reflection (collectively called "experience")
before bandying about lists of personal gripes and reasons why Python
is annoying/stupid/sucks. At least in public. Actually, it might be
of value to keep your own personal list, and then revisit it a month
or a year later and see if the warts are still as offending to your
sensibilities as they originally were.
Newbies, please try to work with Python as it is for a bit. Ask
questions when the documentation is unclear to you or the results of
your efforts confound you. But please hold of on the "reasons Python
sucks" lists. You might find that these "deficiencies" actually
translate into strengths. Despite its warts, Python is being used
productively by at least several dozen people around the world, so it
must be good for *something*.
-- Paul
Python is not any other language that is not Python.
1. Functions cannot be called without the parens (like in VB)
2. Python uses some naming conventions as programmer cues, such as
leading and trailing double-underscores to indicate some form of
specialness (I'm not overfond of relying on naming for this kind of
information encoding either, but I got used to it)
3. Python does not use braces to demarcate executable blocks of code,
or to define anonymous code blocks (like in Java, Ruby, or Smalltalk)
4. Python does not require every line of code to be enclosed within a
class (like in Java or Smalltalk)
5. Python does not do compile-time type checking on function arguments
or variable assignments (like in Java or C or C++) (yet... and will it
still be Python when it does?)
6. Python does not have interfaces to enforce object type
compatibility (like in Java)
Just because Python has features that are different from those in your
former language X does not mean it is deficient. Python *might* be
deficient - ternary expressions are now part of the language after
years of refugees from C and C++ asking how to write "a = b ? c : d",
and now they'll get to puzzle/gripe over mapping this to "a = c if b
else d". But as a newbie, you need to invest a little more time and
effort and study and reflection (collectively called "experience")
before bandying about lists of personal gripes and reasons why Python
is annoying/stupid/sucks. At least in public. Actually, it might be
of value to keep your own personal list, and then revisit it a month
or a year later and see if the warts are still as offending to your
sensibilities as they originally were.
Newbies, please try to work with Python as it is for a bit. Ask
questions when the documentation is unclear to you or the results of
your efforts confound you. But please hold of on the "reasons Python
sucks" lists. You might find that these "deficiencies" actually
translate into strengths. Despite its warts, Python is being used
productively by at least several dozen people around the world, so it
must be good for *something*.
-- Paul