Dave Thomas, programming book author and Ruby evangelist presented the keynote at RailsConf2008; “There’s a sound that no presenter wants to hear, and that’s dead silence. And that’s what greeted me when I made a suggestion in my RubyConf keynote […]. I think by the end of the talk, though, most people were convinced.” This is one of the best programming topic presentations I have ever seen. Even if you’ve never written a line of Ruby, you’ll find it perfectly clear-and enjoyable. Watch, and then “read more” for Kroc’s personal commentary on the issues raised.
Ruby is an elegant language created to fill the need for a truly object-orientated scripting language. A new language was needed because you can’t just tack objects onto a language and it be object-orientated. Object-orientated is a way of thinking, and Ruby is likewise, a way of thinking.
In learning Ruby, learning the thinking is not the hardest part. It’s the giant brick wall of capabilities that’s the problem. If you know more than one programming language then you may not necessarily need to learn all new concepts of programming, just a new syntax and a new API. When that API begins to multiply and drill down into hundreds, and then thousands of methods, classes and objects, where do you begin?
Reading the documentation isn’t always the solution when there’s hundreds of classes and you don’t know the name of the one you need. What if the solution you need is a class that’s only returned by a method of another class? Learning Ruby [for me at least] is like being a rabbit, frozen in the middle of the road with the bright lights of functionality beaming at you.
Certainly classic ASP is easy to knock, but the language has so few functions that you can piece together those primitive tools to build what you need, learning ingenuity yourself through solving simple string manipulation problems for example.
Ruby is a language where to begin with, all that ingenuity has been done for you. Somebody has already solved that text problem with a string method, or library – you need only to drag yourself through the painful procedure of finding it.
That said, what tiny experience I have with Ruby, it is a fun language. It trips off the keys and dances across the screen almost like poetry.
So why the need to fork ruby?
Why does any project need to be forked, for that matter? Is it not because a project becomes too many things for too many people and it no longer has that one hammer, one nail design to problem solving?
The keynote demonstrates how Ruby has grown, adopting solutions to problems so much that the programmer creates his solutions with methods, rather than with syntax, to the point there’s many more than one way to skin_a_cat.rb.
Indeed, here’s where I get back on track. Some problems cannot be solved with more methods and classes — without in essence practically implementing a new language on top of Ruby itself. No, it’s syntax that is the bricks and mortar, and methods are just the decorations.
Syntax, despite the very un-English look of it, is much easier to remember than methods. Ever sat there at the end of a period thinking of the method you need? You didn’t have any problem remembering the dot though.
The need to play with the syntax is a running theme throughout the keynote. Methods cannot solve the parallel problem – “If you do it with the current syntax and semantics, you’ll be struggling with the integration of global variables, the non-threadsafe nature of require, continuations, and so on, and so on.” Dave notes in his blog post linking to the keynote.
When dealing with a big project used by many thousands of people, of course you’d want to maintain backwards compatibility or at least not break things too much between minor revisions. Dave asserts though that the locking up of the syntax prevents people from playing with solutions to fundamental problems that cannot be achieved through methods alone.
You can design and improve stairs a thousand ways, but eventually you’ll have to rethink things to invent the elevator. If Ruby needs to change direction, that cannot be achieved on mainline trunk. It is just too large and too slow to swing the ship around. Dave is proposing a number of smaller “scout ships” go ahead and find the way.
Parallelism is tomorrow’s problem, today. We are coming across a chasm of performance as individual processor speeds come to a standstill and cores begin to multiply.
Despite our every ability to create parallel solutions, the syntax isn’t there. The hardware can be designed and crated to be parallel, yet we can’t wrap our minds around an easy way for us to declare to that hardware our intentions.
Dave notes something very elegant about parallelism. We’ve had the answer all along. The equals sign is parallel, it always has been. We’ve just not been making use of that capability of the equals sign to express parallelism.
If we want to solve the problem of spreading solutions across multiple cores easily, we need to be able to instruct the computer easily and not get bogged down in methods and classes and programming structures to do this. Can you imagine trying to program a parallel solution in PHP?!
The “Cluby” example demonstrates the syntax elegance problem by pointing out something that’s technically possible already, but people don’t do it simply because of syntax. Their behaviour is being guided away from an elegant solution because it’s not beautiful to look at. Syntax has to be art, and you cannot produce art if your tools create ugly results even when used skilfully. No amount of talent will make a brick a good choice of brush.
Why are keywords special things? Why is `if` not a function itself? You could say that ‘how can `if` be a function when you would need `if` itself in order to implement it? Impossible!’. It’s a syntax problem. The syntax has not been there to remove these special case keywords from programming languages in general. Even Ruby, therefore, falls short of perfection by falling prey to interpreter-specific special case keywords.
Keywords are procedural. “Cluby” is the first time I’ve seen this problem explained so easily. If I could invent a language, it would be “Cluby”, because I believe the programmer is smarter and more importantly-more artistic than the machine, and solutions should be constructed using syntax rather than forcing the artist’s hand with keywords and methods.
The downside though of course is syntax soup. LISP, Perl — both powerful, syntactically descriptive languages, but difficult to read.
There must be something wrong with us all, or we are simply not being taught correctly, if SmallTalk did this all a long time ago, and yet we are not all SmallTalk programmers. Why do we even have any procedural languages still around?
Clearly then, even after 50 years of general-purpose computing we still haven’t come up with the answer to the final language to describe it all.
If we cannot categorically define art, then we will also never define computer programming once and for all. But why should we define it once and for all, when it’s all supposed to be about enjoyment anyway? Or has it just become about the money, such as art has said to become? Never should that be!
I’m a Python/Django guy. But I did study Ruby/Rails for a while in my 3 year search for the perfect language/framework combo. (Which is Python and Django, BTW. I hope that saves someone some time. ) But if you are going to study Ruby, Rails, and or agile programming, in general, I can recommend Dave’s books without reservation. (Even if he doesn’t write about Python.) I’m still watching this presentation, but so far it has been clearly presented, fun, daring, and of his usual, excellent, quality.
BTW, I just came across a very inspired alternate cover design for one of his books (which may not be work safe):
http://tinyurl.com/8mswdp
(BTW, DHH doesn’t really intrude into the book, so don’t let his name on the cover scare you away.)
Edited 2008-12-27 21:59 UTC
Interesting…your comments sound hauntingly familiar.
This is off the topic of Ruby (a language that I have a great deal of respect for).
I have also been on about a 3 year journey looking for the perfect language/framework comobo. I tried Django early on. As of about a week ago, I’m back on Django again (full circle). I definitely like Python. But, Django didn’t do much for me the first time I tried it. But, now I’m seeing more of the big picture. I think I’m going to be more comfortable with it this time. I do have some fundamental questions (some reassurance I’ve made the right layout decision). If you have time off list, maybe you could assist me. Hmmm. Does OSAlert provide a way to message other users? I haven’t looked.
Yes. But the messaging system is not emphasized for some reason. The “messages” link in the tiny font in the top right area of the page. But here is a direct link to PM me:
http://www.osnews.com/messages?op=compose&uid=2155
I should probably say that although I’ve decided that Python/Django are right for me, I respect the decisions of Rails, TurboGears, and even Tapestry users.
A new language was needed because you can’t just tack objects onto a language and it be object-orientated
I think Common Lisp and CLOS proves otherwise.
Unless, of course, this is unfounded-but-oh-so-familiar-with-ruby-community attempt to discredit Python.
Never used Python, and have only begun to learn Ruby; so no, it’s not a stab at anybody — any insight into programming languages [you] can provide is welcome. I’ve used a number of pseudo-object-orientated languages and it just doesn’t work — the syntax is always needlessly lengthy and you don’t gain any real sudden and easy benefits compared to a language that is inherently object-based.
Kroc, sometimes Ruby enthusiasts criticize Python for using built in functions where Ruby uses methods. For example len(mylist) instead of mylist.length(). Sometimes claiming that Python is not really object oriented because of that bit of what those particular critics consider “impurity”.
Guido van Rossum once countered, when specifically asked his opinion on the matter, that the Ruby style of syntax should appeal to people who also prefer to say things like “John threw grandfather down the stairs his hat”. It’s really just a disagreement over syntactical style. Integers, etc. in Python are objects just like everything else. And anyone who wants to subclass and “throw grandfather down the stairs his hat” is perfectly able and entitled. The language will not throw grandfather down the stairs for you, however.
This may be more than you wanted to know. But I figured I would supply some context for vivainio’s post.
Edited 2008-12-28 00:07 UTC
I apologize for the knee-jerk python defense reaction; the comment amount “necessity to create a new language” just seemed all too familiar from early ruby advocacy documents (about how ruby is “really” object oriented, and python is not).
Note that this line of advocacy is from pre-rails period, whereas currently the main thrust of advocacy is on the Rails front.
But, since the topic of this article is orthogonal to this particular discussion, I don’t have much to add to what was already said.
No, I much welcome your knowledge and perspective here. The community here will have a much wider birth of languages here than I do.
There is one thing I will add though, I don’t do software politics. I write with a purposeful ignorance of software politics other than my own policy, that of code is art.
I don’t involve myself in what one community said to another because I find that irrelevant to if the language is any good or not.
I wouldn’t put Ruby over Python or vice-versa unless I could wield both with absolute mastery. I just chose to look at Ruby because it’s more relevant to my personal work.
Any article that mentions Dave Thomas has no credibility. If you ever watched one of his presentations and thought “What?!” then you’re not the only one. People just keep quiet about it as Zed Shaw’s rant perfectly illustrated, because some people think he is some sort of guru. He isn’t. Anybody who takes him seriously needs to take a long hard look in the mirror.
Dave Thomas has no credibility whatsoever, and his past history has confirmed exactly that. Always on to what he sees as the next big thing, plugging Java features to help him sell more consultancy, trying to use that to sell more of his books and giving Rails even more of a bad name by writing bad material that doesn’t answer anyone’s questions. It gave me a big laugh to see that he has latched on to parallelism as the ‘Next Big Thing'(tm). The Pickaxe book was awful and gave Ruby a ‘Yet Another Language’ reputation, and the Agile Rails development book had a couple of chapters that described a development process that only existed in Dave’s fantasy world. Yet another “What?!” moment for the reader. There’s a reason deployment is skipped over. It sucked and Dave didn’t want to admit it or do anything about it. Par for the course.
Zed Shaw did a pretty accurate commentary on the whole thing that you should be able to find yourself, and Zed has some credibility despite how he might word things because he wrote code, namely Mongrel, without which you would never be able to deploy Rails. I mean never as well. Matz writes code to continue Ruby’s evolution, despite how bad some things might be, and doesn’t mouth off about it. Dave Thomas has done nothing but let his mouth run and talk about things that don’t materialise. Nuff said. This might all even be because Matz likes Merb or something.
Firstly, Ruby needs to continue evolving and to acquire a decent runtime environment (Rubinius or JRuby should have been talked about before anything else) that doesn’t suck memory and everything else before big white elephants like parallelism are ever even remotely talked about at conferences, and especially as keynotes. First thing’s first.
A fork of Ruby headed by Dave Thomas to solve ‘Yet Another Big Thing'(tm)? I’ll believe it when I see it, that’s all I can say. Judging from Dave’s vague blog entry I’d say never.
You obviously have not watched the presentation, and you just made a fool of yourself shooting off your mouth, as per usual, segedunum.
Watch the presentation, and then come back and discuss it rationally, please. After you even know what it was that he actually said.
P.S. I’d also recommend a rabies test. Except that I think that the most affordable kind involves cutting the subject’s head off and sending it to the lab.
Edited 2008-12-28 00:54 UTC
Please don’t tell me what I have and have not seen, because yes I have (and I forced myself to do it because I knew what was coming), and it is certainly not the only Dave Thomas presentation my brain has melted through with the sheer pointlessness of it all as I think about all the things left undone today. Why do you think I wrote what I did? I’m not the only one it has happened to either.
What’s that supposed to mean? Can you not read? The presentation is yet another ‘Next Big Thing’ for Ruby where we’re all supposed to get excited over parallel programming and new ‘Blue Sky’ development branches and paint over the things that need doing today – like a new runtime environment and threading improvements – which I thought would have been a given when talking about a future parallel programming direction. But……….you know.
The presentation is ultimately totally pointless because he doesn’t tell me what code he has written in a branch somewhere to further his ideas, hasn’t demonstrated said code to illustrate what he means, doesn’t demonstrate what would be a good starting point for what he proposes and has a consistently poor track record in doing so. I would dearly love to know what it was he was talking about.
What am I supposed to think?
A Dave Thomas virgin eh? I know he can take some getting over for some people.
Congratulations. You just got ripped off and made a fool of by a well known Rails interferer who has consistently produced irrelevant presentations given Ruby and Rails’s state today, produced books which people have pretended are good because they don’t want to believe they’re that bad and is consistently plugging new Ruby and Rails features to further his consultancy.
Edited 2008-12-28 12:49 UTC
I have nothing to say in this discussion, but I can’t help becoming a bit curious. What is wrong with the current ruby runtime, and is it fixed with 1.9?
Not trying to put you “in place”, I’m just curious.
Why is parallelism even needed for a language that is used primarily to serve web scripts? Each and every thread on the web server is running concurrently… is that not enough?
Erm, afaik rails is not multithreaded. Or has that changed meanwhile? However, there is still the GIL in python and I believe in ruby, too. Before one can think of such parallel constructs one has to remove the GIL. Why is there even a GIL in those languages? Java hasn’t a GIL, not even in interpreted mode (afaik).
That is a *very* common misconception. The GIL is a blessing, and not an impediment:
http://docs.python.org/library/multiprocessing.html#module-multipro…
The performance is astounding. And fibers are on the way to cover the cases where pure multiprocessing is not appropriate. In the mean time, multiprocessing and threading can be combined.
Rails has been thread-safe since version 2.2. Inside a single request, the application can choose to use threads, but doesn’t have to.
The Java and .NET implementations do not have a GIL and are fully concurrent.
Makes implementation easier.
q]Erm, afaik rails is not multithreaded. Or has that changed meanwhile? [/q]
It’s possible to program with threads in Ruby, but Ruby doesn’t support native threads. It simulates them inside the interpretor. This carries a performance penalty with it, as well as causes problems with deadlocks being able to hang the entire ruby interpretor instead of just one thread, not having fine grained control over thread priority levels, and the entire interpretor hanging if one thread takes too long to finish.
So no, Ruby is not multithreaded at the OS / CPU level. But you can do multithreaded programming in Ruby by “soft threads” in the interpretor.
But,
That depends upon how one thinks of Ruby, of course. Is Ruby just “The language that Rails provides”? Arguably, yes. (People might quibble, and correct me for not saying “The language that Rails runs on”. But, practically speaking, there isn’t much difference.) And yet Ruby is a general purpose language, which happens not to have as complete library support as the other two major dynamic languages. But there is still potential. Anyone who wants to see Ruby succeed as a general purpose language might reasonably be thinking about methods of better solving the concurrency issue.
In contrast, PHP categorically has little need to worry about language-based concurrency features.
Edited 2008-12-28 01:14 UTC
Ruby is also relatively young compared to the other two. It would be quite an accomplishment if it had the same breadth of libraries then python, which has four years on it, or perl which has 8
This guy is the bane of RoR…
Please elaborate beyond that cryptic statement.
That’s because you don’t know Dave Thomas, don’t know his reputation, haven’t read his books and haven’t seen presentations and been to conferences where you have discussed what you’ve just seen with others.
You can try reading the interesting parts of Zed Shaw’s analysis of the whole thing as I had said before. You only need to read this chapter as well:
http://www.rubycentral.com/pickaxe/tut_classes.html
It is exceptionally poor object orientation, is a very ill fitting scenario and doesn’t even use standard and accepted Ruby syntax that you see elsewhere. Then there’s this:
http://www.rubycentral.com/pickaxe/classes.html
Nuff said.
You would know exactly what that uncryptic statement means if you knew what you were talking about and could actually defend Dave Thomas. Life is too short to explain here if you don’t know.
I have read everything Zed Shaw wrote about Dave, and I have read large parts of the pickaxe book. I have absolutely *no* dog in this fight, being only a dabbler in both Ruby and Python at present. In fact, I don’t particularly like Rails or the whole Rails mentality, but I find Ruby as a language very intriguing.
But honestly, what’s the acrimony all about? Even if you disagree with Dave’s intelligence or capability, no one’s forcing you to read his books or attend his presentations. I can’t think of anyone who knows anything about the computer industry imagining he is making millions off of this stuff. Most writers of programming books (especially open source) make less for their effort than they would working for McDonald’s. At worst, the guy is sincere but misguided… but then again at best he might just have a different way of thinking than you. Live and let live just a little.
And taking all this from the website of a guy who bills himself as “So F**king Awesome”–yeah it’s trying to be cute and ironic, but still looks like we’re talking about a borderline narcissist here. Zed Shaw strikes me as a very sharp guy with an abrasive personality who manages to piss off just about everyone who deals with him. Maybe not. I might enjoy having a beer with him, but then again I suspect that just ONE thing I might say could be taken wrong and I would gain an enemy for life.
Whatever you think of Dave Thomas, just take his presentation at face value: he is just trying to inspire some things in the Ruby community. What’s so bad about that? He openly admits he doesn’t have a particular solution to each of the possibilities he raises, but so what? Ideas alone are often overvalued, but they are still very useful at motivating people with talent. I particularly liked Dave’s self-deprecating humor at the end. “Tath” indeed… a very apt analogy.
I would LOVE to see any of the forks Dave is talking about, because his presentation pretty much fits exactly with my frustrations about Ruby. It’s so close, but trying to be everything at once that it can’t quite get there in each area.
Segedunum, how can you live with all that hate? Your posts are *full of hate*. I could not live with that. I’d have to do something to purge myself of it. I think that it would feel like having leeches all over my body.
That said, I have read “Agile Web Development with Rails”, and also the Pickaxe book. I ended up choosing Python and Django. But I selfishly wish Dave were writing books on those topics. His books are top notch. This is, I believe, the first, or possibly second, of his presentations which I have watched. You are quick to criticize his accomplishments. But what has Segedunum accomplished in this world that justifies such an imperious attitude toward others? Please provide links.
Live and let live. Respect others’ ideas. IDIC. Peace.
-Steve
Edited 2008-12-28 21:54 UTC
Agreed. How do you live with yourself Segedunum? You are always spewing venom and gall in some form or the other. Is it impossible for you to be nice sometime?
I prefer to be honest and up front, particularly regarding someone who has made a mint off the Ruby and Rails communities and where I do it based off the back of what I have seen and read.
Being politically correct gets you nowhere. Sometimes you just need to call a duck a duck.
That’s why we make comments. Get used to it.
Dave Thomas is the one telling Matz and others what direction to go in. Not me. As soon as he produces code to illustrate what he says in those ten thousand slides in a concrete form then maybe he will be listened to.
Keynotes are intended to make people think. I know of at least two projects that have started based on my RubyConf keynote, so I’d guess this one was successful. Similarly, the keynotes I gave at No Fluff events were intended to get people to think. I know of dozens, if not hundreds, of ex-Java developers now working with Ruby because of them. If they caused so much distress, I assume I wouldn’t have been asked by Jay Zimmerman to give them time after time, year after year.
If my detractors here don’t want to be challenged, simply ignore the keynotes
If you want to talk about coding contributions, I have thousands of lines of source in the current Ruby interpreter.
As for how much I’ve made from Ruby and Rails^aEUR”less than I would if I’d continued consulting. But, frankly, that’s none of your business. It doesn’t change my passion for Ruby, or my motivation for spreading the word.
You don’t know me, and you don’t know why I do what I do. Until you take the time to change that, your posts are meaningless.
I’m outta here.
Comment removed cause I realized he was not responding to my comment, but to someone else’s… My bad. (Editors, please feel free to delete this comment entirely.)
Edited 2008-12-30 05:11 UTC
OK. Let’s start with this first part of your venomous post. Dave was pretty clear in his talk. He made it quite clear, from the beginning, that he loved his software tools. That it is good to love one’s software tools, whatever they may be. He said, early on, shortly after the “Fork Ruby” revelation, that he was going to relent at the end. And he made good on that promise. He asked people, politely, to suspend reality for a bit, and hear out his wild suggestions. The point of the talk was not so much that his particular ideas should be pursued. But that it might benefit Ruby if disparate ideas were pursued by different projects.
You and Segedunum are the ones coming off as prigs in these exchanges. I guess maybe one time you went to one of your Java One conferences, or whatever, and accidentally exposed yourself to something other than Sunthink. I’m sorry that you had to endure such an experience. But this is life. We just kind of have to move on and get over the realities that life throws at us. Or maybe there is something going on of which I am unaware. Maybe he stole your girlfriend, or your wife, or something, on some previous date.
I simply do not see any reasonable reason for these venomous posts. Dave presented a good talk with good ideas.
This sentiment coming from me, a Python fan, who might just have a little motivation to trash Ruby, and Ruby personalities. But I don’t see doing it as being at all beneficial.
Edited 2008-12-30 05:42 UTC
sbergman27,
Please note that I removed this comment after I realized Dave was not responding to me. I thought he was, but he was responding to someone else.
As far as JavaOne, yes I have been there, and no that’s not where it came from. And like i said, I do not have a problem with someone who wants to talk about Ruby and why they like it better than Java. I DO have a problem with PAYING to attend a Java conference and having speakers there tell my why Java sucks and I should be using Ruby. That’s not the kind of content I pay to see when I attend a Java conference.
If I wanted to learn about Ruby topics, I would have attended a Ruby conference, or maybe some sort of generalized open source development conference.
Edited 2008-12-31 06:22 UTC
Good for you.
So when you pay, you are actually paying for the privilege of being insulated from exposure to any “Java has some problems” opinions? Am I understanding you correctly?
Talks at conventions, if they are good, make you think. You are perfectly free to decide that Ruby is not for you. I did. Though I did choose a similar language for my daily work.
But the whole “Dave’s a turd because he moved from my language of choice and then spoke at a conference” attitude just seems so lame.
-Steve
Edited 2008-12-31 06:37 UTC
> So when you pay, you are actually paying for the
> privilege of being insulated from exposure to any
> “Java has some problems” opinions? Am I
> understanding you correctly?
I don’t think you have ever actually seen Dave speak at NFJS have you? If you had, you would not even be making the type of statement that you just made. I am quite aware of what problems Java has, and most of Dave’s points are invalid personal biases that are not real problems (he doesn’t like the fact that it uses braces for example). I pay for a lot of things when I attend a convention, but having someone insult my intelligence by spending a half hour ranting about why Java sucks because of reasons like “it uses braces and parenthesis”, and then spending the next half hour telling me why Ruby is so much better (one of the reasons being that it doesn’t use braces, and parenthesis are often optional) is NOT one of the things I pay for.
I’m not kidding. Granted some of his arguments were are lot better founded and reasoned out, but the two I gave above were actually some of the arguments he made for why Java sucks and Ruby doesn’t. And none of his arguments were things I did not already know.
> Talks at conventions, if they are good, make
> you think.
Talks at conventions, if they are good, are also honest and present both sides of the issue instead of just evangelizing your own choice while trashing someone else’s, and not even bothering to point out that your own choice has some serious problems of its own (no real multi-threading support anyone? Or the fact that it borrows some of the worst “features” of Perl when it comes to syntax?)
Good talks, don’t sound like hour long infomercials trying to sell you something and convince you that it’s the best thing to happen to software development since the the invention of assembly language.
> But the whole “Dave’s a turd because he moved
> from my language of choice and then spoke at a
> conference” attitude just seems so lame.
There’s a lot more to it than that, and I think it is pretty obvious that you have not seen Dave give a keynote at a Java conference. Your criticism and oversimplification of my objections pretty much show that.
Edited 2008-12-31 07:40 UTC
Opinions are good…they spark debate…
Incidentally, I hate braces too…
I would like to go on record here saying that one thing Dave really projected was enthusiasm.
Having only programmed Ruby ~2 years, I was really intrigued by the RubyLite idea. I also thought the concept of forking the main branch to create a parallel set of projects to increase the speed of Ruby evolution is a great idea; a very engineering type of approach using the community to the most efficent effect. I also liked the “everything else is a Gem” idea.
Also, going to that Confreaks website was awesome. Being a hobbyist programmer, I couldnt afford the time or money to go to the con, but after watching about 12 of those lectures, I feel like I got all the non-networking benefit I would have gotten had I been there. (The Training Wheels and GUI development for desktop lectures were great as well.)
I think new ideas are good; I especially like the silence when he said “fork ruby”(the f**k ruby didnt even get that response)…can we say challenge to the paradigm? Excellent keynote Dave…
…anyone with personal vendettas against someone who projects passion should be vented elsewhere…
He was also one of the 17 signatories of the agile manifesto, which is hands down the most important thing that has happened to programming methodologies in the last 30 years or so.
I’ve met Dave Thomas a few times and I really don’t like him. He’s a gifted speaker sure. But half the time his conclusions are unfounded, and when you question him, he blows you off and never gives you a real answer–as if you are some kind of insignificant peasant not worth his time. The real problem of course, is that he can’t defend his own conclusions. So he just blows you off instead.
I agree with the person that said that Dave Thomas is the bane of the Ruby community. He’s only in it for the money because he has a huge financial interest in the Pragmatic Programmer books on Ruby (He’s written books on Ruby, Ruby on Rails, etc., and he makes a ton of money as a speaker on Ruby).
Once Ruby is no longer the “greatest thing since sliced bread, the programming language you have all always been waiting for even if you don’t know it right now”, Dave Thomas will probably move on to whatever the next big thing is where he thinks he can make money off books and speaking.
I have to say that these kinds of comments make me sad. You paint me as an opportunist. If I am, then I’m a very slow one^aEUR”I’m into my 10th year of loving Ruby.
When I first discovered Ruby back in 1999, perhaps a dozen people outside Japan had heard of it. I fell in love with it, and spent over a year of my life writing a book so that others could learn it. That book made very little money.
I spent many years doing the No Fluff tour, a series of mini conferences aimed at Java developers. To get on the tour, I had to talk about Java topics, but I always made sure I injected at least one talk on Ruby. Did I make a lot of money doing that? No^aEUR”I lost money every time I did it, and I did it over 20 times a year.
I spent another year updating the Ruby book to cover Ruby 1.8, and I’ve just finished another year (admittedly not full time this time) updating it to Ruby 1.9. The 1.8 edition of the PickAxe has sold well, and I’ve made some money off it (although, again, not as much as if I’d just been consulting).
I don’t typically get paid to speak at conferences (although I often get in for free because I do speak, and I sometimes get my accommodation paid).
I do it because I love it. The fact that I can make a living from it (and from all the other books we publish, on Erlang, Git, Svn, and so on) makes me lucky.
I’m sorry you don’t like me^aEUR”I’ve never been a particularly sociable person, and find it difficult to talk to new people; perhaps that was the vibe you picked up. But I believe the record shows that^aEUR”sociable or not^aEUR”I’ve been a consistent supporter, contributor, and advocate for the Ruby community through both good and bad times.
Thank you so kindly for visiting Dave. I hope my write up was not demeaning or too far off-topic.
Indeed, I can^aEURTMt understand these comments either. I had never heard of you before this, and I thought the keynote was totally honest, playful and full of zeal and passion for your tools. I watched Matz talk too, and he also expressed the vital need to love one^aEURTMs tools.
These comments then clearly come from hateful people who don^aEURTMt see the tool and have an agenda to hate you to the benefit of themselves or someone else — even if you had stood up and said “PHP is shit” I still would have applauded. I love my tools, but that doesn^aEURTMt mean I don^aEURTMt criticise them too.
Thank you kindly for visiting OSAlert, sorry if it was only to defend yourself.
I second this sentiment. It’s too bad that so many (large, large) parts of the programming community seem to have forgotten the art of polite discourse. It would have been quite possible for anyone who disagrees with you to post substantive criticism in this thread, to which I would have enjoyed seeing your response. Substantive argument is always enlightening, even if both sides are wrong (or right).
Anyway, please come back. Osnews does have some good discussions now and then.
Dave,
The NFJS tours are where I have seen you speak, and met you briefly and had a chance to ask you a couple of questions about some of your conclusions.
I’m sorry to say, but your “I’m not a very social person” tends to come off more as arrogance to me.
You also gave a keynote at NFJS once (which you yourself admit is primarily a Java conference), where you spent half your keynote talking about why Java sucks, and why all the Java developers there should be using Ruby on Rails instead. Of course, you have to expect some hostile kickback from this.
It reminds me a bit of when RMS showed up in comp.lang.tcl and posted the thread “Why you should not use TCL”. If you are gonna use this kind of guerrilla evangelism, you have to expect you are gonna end up with some people who really don’t like your attitude or tactics.
As far as being an opportunist, you are one of the founders of Pragmatic Programmers, which is the top publisher when it comes to books on Ruby and Ruby on Rails, so you definitely do have a strong financial interest in evangelizing Ruby and Ruby on Rails. There’s nothing wrong with being an opportunist. But please don’t try to claim you aren’t when you very clearly do have a strong financial interest in evangelizing this stuff.
Edited 2008-12-29 02:11 UTC
Pantheraleo, does this really belong in the OSAlert forum? Could you maybe take your personal vendetta against Dave somewhere else? OK. So, as you describe, you blurted some question at him at a conference and his answer did not satisfy you. Does that justify the vitriol you have displayed here? I simply do not see that it does.
I think that OSAlert readers could benefit from participation, in our forums, by Dave. Certainly, I feel that I could. I’m just not sure that I can say the same for your recent “contributions”.
Edited 2008-12-29 03:13 UTC
> Pantheraleo, does this really belong in the OSAlert
> forum? Could you maybe take your personal vendetta
> against Dave somewhere else?
It’s not a personal vendetta. After all, I’m not the only one in this thread who raised concerns. I’d say my objections were more thought out and reasoned than some of the things other people wrote about.
> I think that OSAlert readers could benefit from
> participation, in our forums, by Dave. Certainly,
> I feel that I could. I’m just not sure that I can
> say the same for your recent “contributions”.
Then let him do so. I welcome his contributions to OSAlert if he wishes to become a contributor.
But as Professor Scott Fahlman said, “if you can’t take the heat, don’t tickle the dragon”
Dave likes to tickle the dragon. So he better be able to take the heat.
Edited 2008-12-29 05:22 UTC
I just reviewed the story comments, and that particular list is limited to you and Segedunum. If that is the company you care to keep, it is entirely your business. But please do not imply that there are more people on it. I also observed that rather more than just one other person has spoken out objecting to the vendettas and hatreds expressed by you two.
Do something positive and constructive yourself. Don’t just try to tear other people, who are being constructive, down.
Edited 2008-12-29 05:31 UTC
You missed the one by sardaukar then. Which is the one I referenced when I mentioned that I agreed with the person who said something about the “bane of the ruby community”
And someone here is abusing the comment voting system. It wouldn’t be you by any chance would it? My comment in response to ruby threads was voted down. Even thought that comment was a direct response to someone’s question about ruby multithreading capabilities, and to the best of my knowledge, is a technically accurate answer to the current state of ruby threading as it exists right now (no support for native OS threads. All threading is simulated in the interpretor). Whoever voted that comment down is abusing the comment voting system and only voting me down cause they don’t agree with other comments I have made in this thread.
You don’t say.
Once a user has posted under a story title, moderation is no longer allowed by them for posts under that story title. Up or down. Don’t feel to bad, though. I posted about the rather exciting future of Python concurrency and got modded down, too. Someone seems to hate the idea of others commenting on the topic of dynamic languages and concurrency.
Edited 2008-12-29 06:18 UTC
Dave,
If you are still watching this thread, I do want to apologize if I hurt your feelings. I could have chosen my words better and I am sorry I did not. I did not mean I have a personal dislike of you (and I know the words I used made it sound like I did). What I meant was that I dislike your “ruby zealotry” (which is how you often come across in your talks), your guerrilla strategy (such as going to Java conferences to evangelize ruby), and your tactics (which often involve, at least in the keynotes I have seen you in, attacking someone else’s chosen platform as being outdated and full of pointless traditional syntax and such, and claiming we should all be moving to Ruby which is some kind of magic bullet that solves all of the “problems”–many of which I do not believe are problems at all, and some of which I believe have major benefits–of our current / chosen platform. (I can give examples.But that’ probably another discussion for another time)
I know you have been in this business long enough to understand that attacking a man’s choice of development platform is like attacking his religion. You better be prepared for backlash if you do so–especially if you choose to do so on their own home turf (like at an NFJS conference).
So again, I apologize if you felt I personally did not like you. I know I could have worded it better, and I should have said I do not like your conclusions, views, or tactics.
I’m sure that if we were sitting somewhere drinking coffee together, we would probably get along just fine, as long as we avoided software development topics. And even then, we would probably only have a friendly debate about “why my platform is better than yours”.
But really, you’ve been in this business long enough… Right? You do know you are gonna take a lot of heat doing what you are doing don’t you?
Edited 2008-12-29 06:17 UTC
After actually watching the video, I can’t help thinking that Dave Thomas would like Python and Python 3.0 (esp. as far as the “Ruby Lite” part is concerned).
The closure section (“cluby”) is interesting in its own right, but the parallelism part is a bit trivial – map/reduce can be done easily enough without special syntax.
I wish more projects (e.g Postgres) would use something like confreaks for their conferences. Really good clips of the presentations and the wide format (guy talking left, clides right) was brilliant.
If you’re involved in the Postgres community and are interested in confreaks, just contact me, we’ll see if we can get you on the schedule.
Last year’s PyCon events were made available for public download. For all the good it did. Every event was recorded from the back of the (large, echo-filled) conference room. Understanding even a portion of the words the speaker was saying was a continous strain to the ear and brain. And the slides are far too blurry to read, so they don’t help. It reminded me a bit of Charlie Brown’s school room: “Wah wah waaaaaah wah wah waaah wah”. Obviously the teacher is saying something but you have no idea what.
“Why are keywords special things? Why is `if` not a function itself? You could say that ‘how can `if` be a function when you would need `if` itself in order to implement it? Impossible!’. It’s a syntax problem. The syntax has not been there to remove these special case keywords from programming languages in general. Even Ruby, therefore, falls short of perfection by falling prey to interpreter-specific special case keywords.”
Learn yourself TCL, what you are talking about has existed for 20+ years, and it even looks quite elegant. It is simple and incredibly flexible.
Or you could take a look at Haskell. I found a proposal for an extension to the haskell prelude with a veeeery trivial implementation of if as a function here:
http://www.haskell.org/haskellwiki/If-then-else
Boy, what an ass. Does one have to put up with such people all the time as a computer scientist?
A friend of mine wonders why there is so much talk about Ruby & Ruby on Rails and so little software written in it, compared to major platforms (Java, .NET, LAMP). I think that it is a good question.
DG