Dear Reddit, Hacker News...
zedshaw.com
zedshaw.com
Whoo for respectful debate over essays!
Yep. We are primates. Purely logical communication is rare amongst us -- a speaker's body language, inflection, status, and arousal level all affect how we hear what they are saying.
People who do not respond in this way are considered weird; those who cannot, receive a diagnosis.
Good hacks continued to come out, the language was still fun to write in, and Rails and Merb continued to move forward.
Perhaps I don't follow enough on twitter, or something. I get the sense enough energy was wasted in the past year to power several nations.
Merry Christmas all, glad Zed is doing what he enjoys as always, we should all strive to live each day that way.
I don't find that so hard to believe. Artificial personalities can get addictive, but spending time in Zed's head must get tedious fast.
On the other: you like us? All right, c'mon, group hug.
Zed has obviously contributed a lot, and was being trolled by the Ruby community (know what 'fuzed' stands for?) before he started ZSFA.
You can be pissed off and rude and not be a troll. If you do, the people calling you out as a troll are often trolling themselves, albeit more benignly.
No, really, there aren't. Go read about Zed.
Don't bullshit me. The fact that Zed talks the talk doesn't automatically mean he's walking the walk. He wrote a webserver. There are 100 Ruby developers who have written more --- and more important --- code than Zed, and I haven't heard about any of the crank calls they've gotten.
It's very Valleywagish actually.
I have noticed this throughout the years - there is a whole lot of testosterone around and it only gets worse. I like his mention of the OO book covers in the early days ;)
Of course, he's flattering us, and he got voted way up...
I still think this site has more signal-to-noise than any other social news site except Metafilter, which is a good sign. I can still look at the top stories each day and find perhaps 20-25 that're worth at least a look, and 10 or so that generate discussions that I'm interested in participating in.
So thanks Zed for going back to writing thoughtful essays :-)
This makes him a "half-way Reddit". Because Reddit is a place where most posters say stupid stuff in a very obnoxious way.
So, in a way, he was made for the environment. Sorry to see him leave.
He had some good points a year ago. Now, not so much.
He has done some very interesting work in recent days using Python (vellum, SoS ...).
Compared to all the drama that goes on in the Ruby (should I say Rails?) world, reading Python blogs on planetpython.org is a learning experience.
I don't know you well enough to answer the second part of the question.
- I don't like the overall community. That is not to say I do not like Ruby hackers, period -- a number of my friends fall into the category. However, I do not like the general holier-than-thou attitude that much of the community takes and the fact that they seem to spend more time talking about how fucking awesome Ruby is than they spend actually writing code. In many ways the community is young and I believe it has a lot of maturing to do. Once again, this obviously does not apply to everyone, but one of the most important attributes of a programming language (at least to me) is its community on the whole.
- I don't give a damn how "cool" a language is and this seems to be not only a general argument for it, but also a method by which many tutorials and other literature explain or introduce the language.
- I am of the opinion that Ruby is far more ad-hoc than it is elegant, and I think many are simply confusing the two. Sometimes you need (), sometimes you don't. Some people think the lack of "unnecessary" parenthesis makes the language more elegant, I just say it makes it harder to determine if something is an attribute or a method, for example. I don't believe there should be 50 different ways to do the same thing; there should be a couple different ways and one of them should almost always be considered "the best".
- What's intuitive for one person may not be so for another; it's not a universal thing and as such I do not find the language as intuitive as hyped. For instance, I find the following completely unintuitive:
['list',...]. each { |food| print( food.capitalize ) }
Why? Because it looks nothing like a standard for loop. In Python, I can do a similar one-line loop over a list, but the syntax is far more intuitive to me because it looks like a loop: for food in [...]: print food.capitalize()
There are class variables and instance variables and constants and globals and you define one of them using @@ and CapFirst for another and... it just feels like a cluster-fuck to me.- Despite all the Ruby community hand-waving about how "Ruby can't scale is a myth" and so forth, the fact remains that it is a (relatively speaking) young language which has many significant shortcomings -- shortcomings that even its own creator acknowledges. Except, many try to ignore these when they shouldn't.
Do I think Ruby has nothing going for it? No. Do I think it has no hope of improving and growing? No. I do, however, believe that it has a lot of growing, improving, and maturing to do before it is even half as godlike as so many feel it is (or just feel they need to say it is). That being said, I don't think I will ever use Ruby -- for these and other reasons (this is already too long). I imagine I will at least be civil towards it... eventually ;)
And i really liked the point about the language being not intuitive for everyone. Not many say it as it goes against the core 'cool' feature of ruby, but it's far more easier to crank up a good amount of messy code with this language, if one is not careful enough.
This is exactly the position taken on both sides of religious language wars. Don't consider yourself above the fray unless you can get over these emotions.
Because it looks nothing like a standard for loop.
I'm reading: "Because [language feature in A] doesn't look like [language feature in B]." This argument is frequently made by Blub programmers. I can say that I find the first way more intuitive simply because it matches all the other kinds of iterator functions in Ruby. Will you accuse me of immature fanboyism?
There are stupid fanboys and uninformed wannabes in the young Ruby community. Try not to let them influence you as much as they are now. If you want to divide programmers up like that, then try to imagine someone similarly minded on the Ruby side. What they might see in you is a Python guy on a mission against Rubyists. There is plenty of room to interpret your comments as a manifestation of a "holier-than-thou" attitude.
I can come up with just as many silly reasons to hate Python with all of my heart and soul. There have been plenty of times when I have programmed in Python and have stumbled across something I can rant about. So what? I can go rant about it, and then someone will rant back at me, and pretty soon we're having an idiot contest.
Ruby and Python are both stupid, over-hyped, and totally awesome. Their communities are both full of morons, trolls, anti-{Ruby|Python}ists, and really smart and nice people.
I'm not saying that we shouldn't argue about languages. I like to argue about languages. I'm saying that "that doesn't look like a for-loop!" and "I hate Perlisms!" are vacuous, and I'm also saying that being anti-fanboy is no better than being a fanboy.
Think independently and make your own conclusions that are uninfluenced by all the people on the Internet that are wrong.
Well, obviously. It's not like I'm arguing that Ruby's syntax is for The Gays because it differs from Python's. I find nothing fundamentally wrong with it, other than the fact that it is not intuitive to me, having seen hundreds of incantations of the for loop. An oft-touted "feature" of Ruby is that it is intuitive; I find it to not be intuitive. This is entirely my opinion.
In the end, a large portion of one's opinion of a language is based off of personal preference. There are undeniable, factual problems with Ruby in terms of performance, community maturity, complexity, language features, etc. There are even more opinion-based, subjective reasons why I feel it is a poor language choice. I make no attempts to justify these reasons beyond making it clear that they are merely my opinions. And I was quite clear on that.
If you can come up with as many silly reasons (some of my reasons aren't silly by any definition, but I digress) to hate Python, then go right ahead. I certainly don't care. I wasn't ranting about it to try to convince anybody of anything; why I like a language isn't important enough to make a soap box out of it. I was asked a question, I answered that question. That's all.
He didn't force a rant to spark endless political-like debate. Someone politely asked his opinion, which is by definition filled with his own preferences & biases, and he politely gave it.
There are advantages to the Ruby version as well, the Python version uses special syntax; a control structure one must memorize the semantics of. Semantics which are slightly different for different control structures in the language like knowing boolean expressions in if statements short circuit their evaluation, or the body of a loop is evaluated once for each iteration of the loop.
The Ruby version, copied from Smalltalk, is using a more general technique of building control structures in the library rather than as special syntax all built upon passing lambda/anonymous functions/blocks, whatever you like to call them, around to higher order functions like each. The benefit being you can see the delayed evaluation and build custom control structures in your own libraries without the need to memorize new semantics that aren't visible in the code as with procedural keyword control structures like if/when/do/while/switch, etc.
Admittedly, I think Ruby's version is a bit ugly, I'm a Smalltalker and find this much better...
{'list'} do: [:food | food capitalized print ]
And to me that looks totally like a loop. Once you have a concise notation for lambdas like [ ] or [:arg | ] you find much less need for special keywords and tend to want all control structures in the library rather than the language.Lispers feel the same about their macros. To a Ruby programmer, each screams loop just as loudly as for to you, or do to a Smalltalker.
As you noticed, I tried to make it obvious that some of my reasons were in no way objective.
Smalltalk does it right, blocks are real objects and have only one syntax for creating them and don't require being passed as the last arg to use the sweet syntax.
What Smalltalk has that Ruby doesn't have is a simple, regular structure at its core that everything else is defined in terms of. Although it may not seem like it, that's far more than an academic point. It has enormous consequences for the programs you can write - for the programs you can think of. Most of the computing world has yet to catch up with this insight.
In the meantime, we get kitchen-sink languages that are good enough for the classes of programs that we already know how to write and are looking to make incrementally easier. I'm tempted to compare Ruby to PL/I. But that's unfair since Ruby at least was invented by a programmer who wanted to make a language he would enjoy.
Sometimes you need (), sometimes you don't. Some people
think the lack of "unnecessary" parenthesis makes the
language more elegant, I just say it makes it harder to
determine if something is an attribute or a method, for
example.
Well, this is because Ruby, like Objective-C, is a strict OOP language, and there's no such thing as an "attribute" (all instance variables are private). When something looks like an attribute, it's a reader method that returns the attribute.Oh, and Zed: "Any more" is written "any more" when referring to additional items. "I will not write rants anymore" would be grammatically correct, however. Just a bit of constructive criticism. :)
Troll and Man’s Man™ are different beasts. But trolling works too.
I doubt that C++ or Lisp's success has anything to do with stern looks.
C++ doesn't seem so popular in the last decade. Lisp was That Language That Abuse Was Written In to a lot of people.
I doubt that C++ or Lisp's success or a lack of it has anything to do with stern looks.