I think Zed Shaw is immensely entertaining. I really enjoyed "Rails is a ghetto". I think he did good work on Mongrel/Mongrel2. I first discovered ZeroMQ because Zed Shaw spoke highly of it. He clearly knows some things.
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.
I think that kind of nitpicking is exactly the thing he is trying to avoid.
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.
If you have something you'd like to criticize, you should do so with specifics. Criticism this vague does not add anything to the conversation:
"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.
This is getting comical. He's writing like he's prophesying the coming end of Python 3 and he must be right because his book sales aren't down.
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.
> If he were spending his time actually trying to fix the problems
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.
Nonsense. There's plenty he could do other than "list problems". There's in fact a ton more that hundreds, even thousands have done than him for Python 3 specifically and Python in general. He, of all people, would be able to help a huge amount if he put his mind to it.
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.
There may probably be a lot of things he could do to help Python but why is listing problems any less useful?
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.
I didn't downvote you - in fact, I think the link is a great one. But if I had to guess at a way to improve your comment, it would be to provide more context for the link you provided. (it's also not really "prior" reading - it's useful as context in general.)
"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'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.
Open source sometimes is a wandering caravan, following a rain cloud of shiny new ideas through a dessert. If the crowd would stay, and the cloud would move on- then the legacy-supporters and the innovators part way, and the community is gone.
I have similar emotional responses as Zed (who will never see this because he doesn't read HN :-) to what might be called programmer "taste." There was, and to some extent still is, a very 'fashionista'[1] vibe to writing code at times. And that is very sad indeed because there is so much to learn, and code is so varied, that there is room for everyone.
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.
While there are exceptions, most programmers are just normal, social human beings with feelings and emotions. Who doesn't want to be popular ? But we are also different, we think in different ways, so we'll like different things. But it's hard to think different, you will not be liked.
This is the same "Learn Python the hard way" guy, Zed Shaw, who was ranting yesterday.[1]
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.
>These groups of programmers ... were horribly uninformed about basic computer science
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.
He sounds exactly like the coders he hates, inventing a bunch of strange notions and attempts to validate the reason why he thinks his opinion is superior to others.
Looking at the traditional literary world is where everything becomes obvious to me.
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.
Wow. I must never take what he's taking. So much anger. Yet strangely entertaining as only Zed, Linus and Andy can be, with only the slightest prod or provocation. Or anything really. It's unfortunate that it's often difficult to make one's way past this; I really enjoyed Lamson. But it just comes down to money and anger, so much anger and so little understanding and restraint.
What I'd like to understand is: why did he publish the previous post? I mean, it was an opinion and he knew it's one that many don't agree with. If other people calling him out and disagreeing is a problem, then what was his original intention?
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. :)
My thoughts as well. The previous generation I have found to have constructive criticism. The current generation cares very little about actual engineering quality and just MVP and failing fast. That's of course an over simplification but the new generation has yet to prove they can build anything reliable or that will be around for more than a few years (see: emacs, bash, etc)
Perhaps for Zed the "current generation" of programmers are those who are still learning, rather than NodeJS brothers - since his book focuses on beginners - so for you, you'd be in the previous, previous generation of programmers and both of you are complaining about the same generation.
To put it bluntly, the reddit community responsible for teaching beginners to code censored my book as a power play to get me to force Python 3 on unsuspecting beginners.
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 was a bit offended because I think “events are better than threads” but then I had no idea of coroutines or Hoare. When it comes to parallelism I think it will always be hard, as you have to micromanage to prevent locks, congestion and race conditions. The solutions are the same but different, neither is much better. Where coroutines seems useful I rather use queues though, where "next" shift the queue.
I could probably also name drop and I bet not even Zed would have heard of her, or the HN community deeming her not relevant (smile). You can not know everything though, and the point of this comment is that I do not know shit but neither do you, so please be humble.
I think that Zed often offers good criticism for many issues... but sometimes is unable to accept the fact that a lot of people will yell at him. That's life, don't get angry, man. I've criticized Python many times as a speaker at Europython, and people looked strangely at me ever after... but in the end, such things happen. They never kicked me.
The amount of pure salt and hatred in this thread only proves his point, guys. I thought this was hacker news. Where's the substantive discussion on the impact of hacker news and reddit on the newest generation of programmers?
Zed Shaw's article isn't really about the new generation of programmers, or else I'd have more information on this new generation by the end of his article, but I really don't.
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.
>This industry sucks, and largely because of the abusive previous generation of programmers.
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.
The second half reads like this guy believes he is the center of the world. I don't understand the "Well, he's entertaining", it just reads like narcissism and anger. But maybe I don't know enough about this person and his particular situation.
From an outsider's perspective, the rift between Python 2/3 that's been going on now for so many years indicates that the language has completely stalled and stopped as far as progress goes. I don't see any reason to pursue a dead language that can't resolve its own problems over the course of almost a decade. Think about what that says about the community! People talk about community in the abstract, but here is a concrete example of a divided community that cannot figure out how to move forward. And that's with a dictator leading it!
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.
This is why people got upset about the original post from Zed. One dude whining in a blog does not equal mass dissent in the community. The choice is inconsequential for 99% of programmers and hardly a difficult decision - flip a damn coin if you cannot decide. I make 100x more decisions when it comes to front-end development than I ever have with python 2 vs 3.
That's exactly why I decided to choose anything BUT Python. If it really was inconsequential, the community wouldn't be split. I'm also not going to select my programming language with a coin flip. That's ridiculous.
There are so many alternatives these days that it's simply not worth dealing with this type of bullshit.
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.