The End of Coder Influence
zedshaw.com
zedshaw.com
But this essay is like something from the alternate timeline where Donald Trump became a computer programmer.
He pretends to be unconcerned with the issue, despite writing multiple posts this week, each the size of a short book:
"I was tired and not into defending myself so I just deleted Twitter off my phone and go sleep some more. Enjoy the sun. Did some painting. Hung out with friends."
He insults his perceived critics:
"Who gives a fuck about what a bunch of angry lonely coders think about my thoughts?"
He invents weird agglomerations:
"These groups of programmers used to have large sway over what was successful and chosen, but at the same time were horribly uninformed about basic computer science. They ran to Node.js because of “events are better than threads” and had no idea Hoare or coroutines existed. "
So, it is the older and experienced programmers who ran to NodeJS? Does anyone believe that to be true?
I suppose this is at least a refreshing reversal of stereotypes?
"For all their claims of superiority for having once bought a copy of The Art of Computer Programming the previous generation of programmers are sadly uninformed about basic shit."
He validates himself by how much money he is making:
"my sales were up and my traffic was about the same."
Seriously, this is the Donald Trump version of computer programming.
And I say this as someone who has learned a lot from Shaw.
If the analogy has any value, he needs to win anything out of the blue.
BTW, who is the Hillary of computer programming?
It may not look like it from the inside but the HN crowd is a very distinct, and very opinionated, bubble in the wider world of CompSci and Engineering. It looks like a lot of this crowd seems to enthusiastically cheer things that are not worthy of cheering (like overly-complicated solutions to problems, innovations that are really just repackaged ideas from 20/30/40 years ago, blind faith in the cloud, etc).
Now the HN crowd has its reasons -- things are the way they are because of team constrains and ever-present Business Decisions -- but I think a lot of the crowd has become very disconnected from the wider world of computers and engineering in their quest to churn out cloud businesses ad nauseam. There are entirely different communities rocking entirely different paradigms, and frankly they don't usually inflate the pace of change for innovations' sake.
"It looks like a lot of this crowd seems to enthusiastically cheer things that are not worthy of cheering (like overly-complicated solutions to problems, innovations that are really just repackaged ideas from 20/30/40 years ago, blind faith in the cloud, etc)."
I don't feel like getting into a debate with you, but "overly-complicated solutions" was a criticism that was often aimed at Enterprise solutions coming from Oracle, Microsoft, Sun, IBM, Hewlett-Packard and others. Remember Struts? Even Zope was guilty of this, at least until Zope 3. When HackerNews was getting going circa 2005, it was very much part of the rebellion against all that.
The only specific that you offered was "blind faith in the cloud" and yet there have been several articles this month, critical of the cloud, that made it to the front page of HackerNews. So it seems you are either vague or wrong.
I offer this simply as general advice which you might want to consider for the future.
Btw, I am a fan of Zed's books, and think that NodeJS sometimes can be an appropriate tool depending on the problem.
There's plenty of mediocre in Python 3 along with the good. A lot of things that can be done better. If he were spending his time actually trying to fix the problems that'd be great and everybody would be applauding him (and I'm sure more people would keep buying his god damn book). This attitude however, dismissing the criticism he's getting as "whatever, it's because of the Previous Generation", is fucking pathetic.
But hey, he stopped reading HN and proggit. Good for him, avoiding the big bad filter bubble. I'm sure only surrounding yourself with people who think Py3 is the work of the devil, and dismissing any and all criticism of your Word of God as "angry lonely coders" is a healthy, balanced approached to information ingestion.
Let's assume he doesn't have the time or energy to dive into the Python 3 source and then learn the rules for contributions.
Then all he can do is list the problems he has with Python 3. Which he has done.
It seems like the Python 3 community is too defensive. Bad string error message seem to be a longstanding grip. They should focus on improving that instead of complaining about Zed's opinions.
But I'm not here to tell him what to do. My problem is that his attitude is actively harmful to the python community. It's creating divisiveness where there isn't any. Take a look at most libraries: they're 2+3 compatible. Very few are 3-only, because the Python community at large understands how widespread 2 is for existing users, and how useful 3 is for new users.
No shit the community's defensive, he's literally painting a large part of it as "angry lonely coders" and "abusive previous generation".
No shit they complain about Zed's opinions, a lot of developers learned Python with his book. I'm a child of Dive Into Python, but I can attest that you feel emotionally attached to what taught you the language you love.
His attitude is the problem. As for "improving Python 3", I don't know if you noticed but there's been 5 major releases of 3.x since the initial one, with a 6th one approaching. Each and every one of them has improved backwards compatibility and the python 3 rough edges.
He says he gave it a try many times, too, so it's not just blind criticism.
I don't like how he disregards the opinions of communities and how he validates his, but that doesn't mean he totally wrong about the problems of Python 3.
Please read through this: https://eev.ee/blog/2016/11/23/a-rebuttal-for-python-3/
EDIT: Care to explain the downvotes?
This is HN. You don't get explanations. Just downvotes. The good news is that's all karma is good for. Build it up so you can burn it down.
I've not used python in years, I've read this post and the original one and still don't understand why python 3 is so terrible and is inevitably destined to fail.
I see just a few changes, nothing comparable to what happened for example with the Swift language.
"I liked Eevee's blog post from three days ago, which rebutted some of Zed Shaw's complaints about python 3, and provides useful context for the currently-linked note"
I hope today's new coders are moving past that but I worry there may be something in the emotional makeup of people that evokes these sorts of responses.
[1] Fashionista is a derogatory term applied to a person who fawns over things that are considered to be "in fashion" and is derisive of things that were either formerly fashionable but are no longer, or some influential voice in the fashion community has declared to be in poor taste.
Smart guy, sure, but it is difficult to pay attention to what he's saying at times.
I'm not a Python 3 fan, but this seems excessive. Python 3.0 through 3.3 or so sucked for porting, but by 3.4 some of the porting headaches from syntax changes (such as disallowing u"abc") had been undone, the "six" package made 2.7 - 3.4 compatible code practical, and most of the important libraries actually worked both under 2.7 and 3.4.
Reading his previous post about Python 3, I think this description is more fitting to him. His last post discusses such topics as "statically typed strings" which are "not as statically compiled as they could be". You don't need to be an expert to understand the differences between static/dynamic and strong/weak typing (plus he uses both of these terms to mean two different things in the article). Remember that this is written by someone with apparently enough expertise to write a book about C. He states that Python 3 is not Turing complete because a virtual machine for Python 3 bytecode cannot run Python 2 bytecode (but makes no such argument when he mentions other languages that clearly don't run Python 3 bytecode). Yet he constantly references phrases like "it's all in the math!" or "it's basic computer science." All this article amounts to is a bunch of name-calling and damage control for the criticism he got for mistakes in his last article. That he feels so defensive about mistakes to go and bash the people trying to help him makes me much less likely to ever recommend his books. Look back at the "Learn Python the Wrong Way" damage control article, in which he "called out" a programmer who he had (secretly) offered to pay to help make corrections because that guy didn't have time to help out. Rather than going with the corrections from the original article, he attempted to publicly shame the other guy (repeatedly calling him a "beginner programmer" and claiming he has no skills, not to mention lying about his motives). If /r/programming was wrong in unlisting his book because of the contents of it, they were certainly correct in stopping their support of someone this toxic.
To be a good writer you have to hold stubborn opinions until each work is finished or you have too many options and create something confusing, bland, unpalatable and inconsistent. If you hold the same ideas too long and too publicly then the market raises the volume on the jibes against your style since you offer no topics for discussion and it wants to recover your share.
To be anyone else in literary market, you have to fawn over every returning fad as if it were new and great, and be the catalyst for reinforcing the artificial drama in the differences in stubborn views the authors are holding. To do less is to hurt overall market sales and eventually be shunned.
I find it all very interesting to follow, but if you want to be a proper lazy programmer for the long haul then you must learn to stay bellow the radar so no one knows how boring and automatic your solutions are. Those are the authors we all know exist who quietly take ghost writing cuts on a book or more a year, but dont have all the crisises or neurosis to get the role of author on tv.
I'm going to visit and give him SUCH A BIG HUG!!
You can't publish your writing with things like "I don’t worry about the vindictive assholes out there who feel any questioning of their tribal beliefs is an affront to their person." and expect that nobody will point out it looks like you just took questioning of your beliefs as an affront to your person. Maybe I'm missing what he tried to achieve...
It was interesting for me to read that because I'm from that previous generation of programmers, and I've always felt that it's the current generation that's abusive. :)
This book hasn't had offending passages removed or bowdlerised. It's not been removed from bookshelves and the publisher hasn't been order to pulp all remaining copies. "Censorship" is not what's happened here.
I used to defend Zed Shaw, but then I realized recently that he just shoots himself in the face too often. The very public criticism he cannot stomach is often <self-inflicted>.
Telling beginners that Python 3 maybe isn't a real programming language because it's not Turing complete is dishonest.
Zed Shaw used Turing completeness as a launching point for talking about how the Python core devs are incompetent, and how a specific person shouldn't be trusted to understand threads and processes.
The difference between 2 and 3 is <not> such that while Python 2 is the darling of introductory languages, Python 3 is unusable and not a real programming language.
Zed Shaw has accrued reputational currency, the kind that can corral change, but he continually wastes it, and the blowback is mostly self-inflicted.
Sorry to inform you Zed, but the previous generation of programmers are not the ones on HackerNews and (especially) Reddit. Considering the average age of redditors, I doubt most /r/programming readers are <25, with many (maybe even a majority) <20.
I can't think of anything holding people back more from trying and adopting Python for serious projects. Before you can even begin to play with the language, you're forced to make a choice that the most experienced Python developers cannot agree on. If that's not user unfriendly, I don't know what is. Note also that it doesn't matter if my perceptions are right or wrong. You can't expect a Python beginner to have good perceptions about something he has not learned. However, I've read enough information to know that making this decision is not easy, nor is it really doable for a beginner. If I'm going to consider Python as a language for my next project, I have to be able to evaluate it properly and the rift basically now forces me to treat Python as two separate, incompatible languages that have no opportunity to grow, change, or adapt for the future.
No thanks.
There are so many alternatives these days that it's simply not worth dealing with this type of bullshit.
When I look at the C++14 and ES2015 it almost feels like Python is frozen in time.
Funny thing is, most people hate about JS and C++ but think Python is pretty okay :)