I've seen it here before, but yesterday I happened to stumble across it again, learned something new, and figured maybe other people on HN would benefit from it too.
Hidden features in a programming language? Granted, most of these aren't "hidden", but they're nonobvious because the language is incredibly complex and it's difficult to predict from first principles that any of these things would actually work.
Long ago, a rule of programming language design was handed down by the great old hackers, but it has been forgotten and much needless effort has been spent as a result. It's time to remind language designers of the rule again:
"Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary."
Some of those features are just some fancy libraries, or syntactic sugar that you can ignore, if you want to. They don't make the language itself more complicated.
Yes, and some of those `hidden features' are just nice library functions that avoid adding features to the core language. Look at `enumerate' and `zip' for example, which allow Python to get away with one very simple for-loop.
I think Guido is well aware of that rule, and makes a conscious effort not to add unnecessary features to the language. Still, there's no way you can maintain any non-trivial piece of software for 20 years and not have a few unexpected "features" come up.
Well, "import antigravity" is sure enough a hidden feature of python. Well hidden. So hidden that I couldn't find it in any version of the interpreter :)
Why? That's easy: I made a deal with Randall Munrow and as a result I'm legally obligated to post links to XKCD comics all over the web!
Seriously though. I enjoy reading XKCD and the first thing I thought of when I read the title of the post was that comic. Sorry for offending your delicate sense of humor. ;)
- http://news.ycombinator.com/item?id=1512930
- http://news.ycombinator.com/item?id=594210
I don't mind being reminded to see if there's anything new, though.