Hacker News new | past | comments | ask | show | jobs | submit login
Language Design Is Not Just Solving Puzzles (2006) (artima.com)
23 points by luu 9 days ago | hide | past | web | favorite | 4 comments

Great post. It's not a coincidence that Python became successful. Guido is principled. He can say "No". He has a clear design vision that helps him differentiate between cool features and real user problems. I like how he lets himself be guided by implementation complexity concerns and notes that these complexities are in the end also a burden to the user (they can't be hidden).

I've always looked at not only languages, but libraries and APIs, as user-interfaces. It's not just about what it lets you do, it's about how much sense it makes. Interfaces should be shaped to guide the user into proper usage, to adhere to assumptions the user will make about the underlying behavior, and to leverage things like Gestalt principles to draw connections between different facets.

I don't find his arguments about things like the double colon at all convincing. They just seem like arbitrary subjective points that you could take almost any position on and claim it's a principle. It seems like a weird kind of bikeshedding for a language designer (as opposed to an overly opinionated user) to have such strong, yet clearly arbitrary, positions on.

Besides, this is a language that likes to surround special identifiers with double underscores, which is almost objectively ugly.

One thing, he pointed out that his objection to the double colon is not why he rejected the proposal.

Another thing, reading closely I think what he wanted to say (but maybe failed to communicate clearly) is that the double colon is a problematic lexical choice because in the slice syntax, it's already possible to have two colons in a row, but these should be lexed as separate tokens!

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact