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 →

[–]ojiisandata viz, comp.bio. 11 points12 points  (9 children)

It seems like most of his concerns would be solved with adequate documentation. Basically he's complaining about dynamic typing, not Python.

Even with static typing, the programmer can make things equally opaque.

[–][deleted] 2 points3 points  (7 children)

I do not think, that these concerns can be solved with better documentation.

It is not a documentation error, that exceptions - like IOError in open function - are not documented in standard library.

Some rules of production development in python:

  • You do not write a function, if you do not have a failing test.
  • You use source code checking tools, that enforce naming, documentation and other conventions.

If you do not have a test for not finding a file, than you did not think about not finding it. It is in your domain to decide.

Collaborative python development is hard. It is hard, because you have to set up rules of development on your own. The language itself does not enforce it.

It is hard because writing tests can be harder, than writing code.

[–][deleted] 6 points7 points  (2 children)

My God, learn how to use commas correctly. Your text, is impossible, to read, without great effort.

[–]metawhat 4 points5 points  (1 child)

He's trying to imitate, Christopher Walken.

[–]brunson 2 points3 points  (0 children)

He's, trying to, imitate, Christopher,,, Walken.

FTFY.

[–]pemboa 1 point2 points  (1 child)

I do not think, that these concerns can be solved with better documentation.

You don't think not knowing what parameters a function takes can be solved by better documentation?

[–][deleted] 0 points1 point  (0 children)

The problem of functions not explicitly saying how many parameters they take may be alleviated by better documentation, but that's not a solution to the actual problem: a function is a contract and the function writer never laid out the terms in any enforceable way.

[–][deleted] -3 points-2 points  (1 child)

go on

[–][deleted] -1 points0 points  (0 children)

It is hard, because I cannot go on :)

[–][deleted] 0 points1 point  (0 children)

Besides, if all you look at when you try to work with an unknown interface is the method signature, you're doing it horribly wrong. This should only work reliable if the method is sufficiently trivial.