HN2new | past | comments | ask | show | jobs | submitlogin

That concept only works as long as the makers of python really have found the optimum way of doing things. It sounds like it could be stiffling innovation to me. At the very least it doesn't encourage flexibility of the mind - rather you are trained to believe that there is only one right way.

Also, the approach sounds familiar: didn't Java have the same rationale? And of course Apple - to each their own, I guess (I don't like "the Apple way", but others love it - probably would be the same with Python).

That article is really putting me off learning python, to be honest.



it's not the rationale that's important, it's the particular things that are incentivized that's important. I'd certainly argue that Python incentivizes a better set of practices than does Java, despite the fact that they each incentivize things.

Furthermore, language design by its very nature involves incentivizing some things and disincentivizing others. What this blog post is truly claiming, IMHO, is that Python did it willfully and well, whereas many other languages grew by accretion and without intentional thought as to what they were incentivizing.

So don't judge Python because it intentionally incentivizes some behaviors at the cost of others - every language does that - judge the things it incentivizes.


There is a python philosophy that says there should be one and preferably only one obvious way to do things.

You can do things in a million different ways, monkey patch everything under the sun but in the end, having just one way to do things makes code more reliable and readable.

If you don't like the way the framework is built, and its one preferred way of doing things, select a different framework or write your own. Trying to undermine the assumptions of an existing framework has a tendency to cause subtle hard to detect bugs. And trying to support all approaches tend to create stuff that is bloated, ugly and slow.


..having just one obvious way to do things..

obvious is mandatory here.


> flexibility of the mind

Is not a good thing. It leads to curse of choice, analysis paralysis, bikeshedding, and all the related drains on productivity.

I submit that "There should be one obvious way to do it" is the #1 reason devs are/feel more productive with Python.

Sadly Python is growing too many exceptions to that rule.


That's no reason not to learn python. Python is an elegant language with many unique aspects, and for those reasons alone is worth playing with some.




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

Search: