4 ms·
> the worst aspect of Pythonic is that people waste so much energy trying not to be unPythonic in order to meet the mores of the community This is why Python i
by empthought 9y ago
> the worst aspect of Pythonic is that people waste so much energy trying not to be unPythonic in order to meet the mores of the community
This is why Python is so successful, and yet you've never heard anything about "Python fatigue." Being "Pythonic" (which as a proxy I will define as not needlessly flouting the principles that `python -mthis` prints out) is valued by most open source projects and most heavy Python users.
With respect to your complaints, they are not "arbitrary biases," they are all the same conscious decision on the part of Guido to favor the use of comprehension syntax over higher-order functions. See https://www.artima.com/weblogs/viewpost.jsp?thread=98196 https://www.artima.com/weblogs/viewpost.jsp?thread=98196
You might disagree with that decision and prefer another language, but it is not arbitrary at all.
- mercer 9y agoI do minimal python programming but your comment made me re-read The Zen of Python. Such a good reminder of what I'd definitely call good practices.
- brudgers 9y agoThe analogy of religion at its core is part of what makes Pythonic such a toxic concept. It provides the Python community an excuse to treat being unPythonic as moral failing and PEP's as revelation. I suppose a true believer could look at double snake case as a convention to denote private methods in lieu of implementing modular code with actual private methods and see something beautiful and simple and explicit and uncomplicated and a good practice. There's nothing wrong with Python except the bullshit that surrounds it.
- brudgers 9y agoI attribute most of Python's growth to being a better general purpose lanaguage than MatLab and BASIC and Java and C++ and FORTRAN in common academic settings and more readable than Perl and more robust than TCL for moderate sized systems in commercial settings. Given JavaScript, there is evidence that the arbitrariness of a programming language's design is at best weakly correlated to its adoption.
- empthought 9y agoBut we're not talking about the language per se; we're talking about the library and application developers and the influence that the notion of "Pythonic" has on them. Imagine there wasn't such a unifying straw man concept or platonic ideal of being good Python. Would there still be single NumPy and SciPy implementations? Or would the work be scattered across smaller, less well-resourced efforts whose contributors disagreed on ultimately trivial things like whether the API makes use of higher-order functions, metaprogramming, or having many ways to do something?
- brudgers 9y agoThere's no Pythonic analog in JavaScript and there are still many useful libraries and applications. There's the entirely orthogonal MINSWAN in Ruby and yet there's Rails. On the numeric side, there's Boost in Cpp and BLAS in Fortran. And NumPy is useful because of the development using C where Pythonic is irrelevant.
- empthought 9y ago> There's no Pythonic analog in JavaScript and there are still many useful libraries and applications. Yes, that's exactly my point, there are many of them, none of which really have the same sort of universal buy-in, because people are constantly disagreeing about .forEach vs. for loops, or promises vs. callbacks, or whatever. Boost has very strict guidelines about its approach to design and implementation[1] -- it even quotes the Zen of Python. I didn't say that the concept of "Pythonic" is necessary to implement high-performing and widely-used libraries. I am merely contradicting your unsubstantiated assertion that the concept is harmful. [1]: http://www.boost.org/development/requirements.html http://www.boost.org/development/requirements.html