News for hackers. Stuff that matters.
Re:The Python Paradox Is Now the Scala Paradox (2009) by ubernostrum on Saturday September 17, 2016 @04:36PM (#12522333)
You'll sometimes see Python people use not the word "smart", but the word "clever", with bad connotations. "Clever" programming, in this context, means valuing line/character count or showing off unusual algorithms or language tricks only the "clever" programmer knows, at the expense of clarity and maintainability.

So, for example, the mundane way to square a number in Python would be:

    def square(n):
        return n**2
The "clever" way would be:

    from itertools import count, ifilter, islice
    s = lambda n: sum(islice(ifilter(lambda n: n % 2, count()), n))
The first one was clear, readable, easy to understand and maintain. The second one is tricky to read, requires some thought to work out what it's doing, and is written to show off knowledge of a slightly-obscure algorithm and the way to implement it in Python.
Re:The Python Paradox Is Now the Scala Paradox (2009) by marxama on Saturday September 17, 2016 @06:14PM (#12522787)
It's an interesting problem. I always strive to write clear code, but clear and obvious code for me could be confusing, weird and "clever" to others.

I joined a .NET shop two and a half years ago. At the time they were targeting the 2.0 runtime, so one of the first things I did was to include LinqBridge for all the Where, Select, etc IEnumerable extension methods. I'm used to functional programming so that kind of stuff is what I use all the time. Not everyone was familiar with it and got clearly confused, but they picked up quickly, saw the utility, and today everyone is onboard.

So, I think there are two sides to it. Of course overengineering without considering understandability and maintainability should be avoided. But you shouldn't shun or even forbid language features because you don't understand them. I know of places where async/await are banned because the programmers cannot be bothered to learn how to use it. That's not what I think the programming profession should be about. C# regularly gets new language features, and I make sure to pick them up and use the ones I find useful. If someone thinks we shouldn't use some feature, I'm happy to have that discussion, and I will abide to what my team agrees to, but the reason better not be "because I don't understand this feature"!

Re:The Python Paradox Is Now the Scala Paradox (2009) by noobermin on Saturday September 17, 2016 @04:41PM (#12522350)
What you call "clever" seems more like "complicated".
Re:The Python Paradox Is Now the Scala Paradox (2009) by ubernostrum on Saturday September 17, 2016 @05:16PM (#12522495)
Yes, but there are people -- I've encountered them! -- who look on this as a way to show how "clever" they are, and consider it a good thing.

It's like Perl golf take to an extreme.

(admittedly, some of my co-workers and I have been known to golf our interview questions into ridiculous one-liners, but we do it for amusement value, not because we'd ever write production code that way)

Re:The Python Paradox Is Now the Scala Paradox (2009) by jordanb on Saturday September 17, 2016 @08:46PM (#12523335)
It's a reaction to the Perl community, which whom Python once competed. Perl programmers absolutely loved writing very clever "one liner" programs (look up Perl Golf). Python programmers therefore took pride in writing code that wasn't "clever."