Yeah, I agree, I've also reluctantly come to the conclusion that significant whitespace as the only option can suck a bit - places too many demands on the editing tools, clipboard etc. Definitely a double-edged sword.
But python is nicer to read and has great libraries for a lot of things. Hey-ho. Can't have everything, eh?
I agree with anonymous coward below - I don't see how list comprehensions and generators are clearer than 'map' and 'reduce' (or is there some other reason you think generators and list comprehensions are better?
I use list comprehensions and generators, and it's fine; but frankly they're not that self-explanatory or intuitive. For a language that aspires to be almost pseudo-code, python sure has its share of weirdness and magic.
kind of answers that one, doesn't it?
perhaps someone ought to fork it and fix it up... http://writeonly.wordpress.com/2010/04/01/whython-python-for-people-who-hate-whitespace/
Herbert did have a point you know
Surely there are different sorts of errors, which would suggest different approaches for dealing with them?
- Programmer error. Should be uncovered during testing; where information about the point of failure and the state of the program at that point is invaluable. However, any remaining code of this sort in a final product should not bother the user with the details, but rather log them for passing back to the developer.
- Installer error. Sort of a mix of 3. and 4. below.
- System error. A problem with the state of the system (perhaps a network connection is down, or the disk is full): as with a user error, the program should do what it can to continue, and tell the user exactly what is wrong so they can do something about it.
- User error. The program should endeavour to continue doing the most sensible thing possible and/or tell the user what they have done, and what they should have done. A user does not want to see Exception messages.
I guess it's pretty hard/futile to deal with most of these issues at a language level, because the appropriate course of action and channels of communication depend on the system. It strikes me that most of this stuff is something a domain-specific framework or API should be handling.
Somebody modded me down for that?
I like python, and use it a fair bit, but the news hardly comes across as an endorsement, does it? To be fair I'm not sure Python is a super-fantastic fit for Google - it may be easy to read, excellent for prototyping, glue, and access to useful (esp. scientific) libraries; but it's not the absolute best language for text processing, web stuff, GUIs or speed.
In my case, was that Google are moving away from Python. Also see the last answer here:-
Perhaps there are some anonymous Googlers out there that are brave enough to comment?
"Lisp in C's clothing"
"Lousy Implementations" to blame