Who are these mongrel ruby developers?

After investigating an unusual stream of visitor referrals onto this blog, I stumbled across this [update: moved here]. Here’s a quote:

… this wonderfully hilarious stack trace (and the comments to back it up). Somehow it doesn’t dawn on the author that his “Business Logic” box is pointing at one line. The comments are full of statements that support this type of design, but I bet half this crap isn’t really necessary. This my friends is the classic Rube Goldberg Architecture.

I was all set to bask in the glory of other geeks discussing my profound words of wisdom in hushed reverential tones – but then I was rudely brought back to earth with a jolt. I realized with horror that the “author” being discussed was poor me! Ouch.

Hmm. I tried to find a “comments” link and then realized to my surprise that this was not a blog. This was part of some so-called documentation for some newfangled Ruby or Rails thing called Mongrel.

Okay, I really have nothing against the Ruby / Rails crowd, but now I tend to agree with a lot of people out there who feel that the attitude of some of these folks needs adjustment.

Well, flame away all you want – but you know, this is just my blog, not a web-site purporting to serve as the face for the hottest new Ruby technology on the horizon. I don’t care if the mongrel developers are suffering from an overdose of dog-food or not – but seizing upon my blog post in this fashion feels somewhat unprofessional. Maybe it’s just me but the Mongrel documentation reads more like some general hand waving and ranting rather than product documentation. You read and decide.

Dear Mongrel Ruby guys, please leave me alone and go pick a bone with Python guys instead. Who by the way responded very gracefully to the Java call stack I posted. To quote Ned Batchelder:

I won’t claim to know whether this is better or worse, just comparing.

Mongrel Ruby guys, go scoff at Ned also for making the oh so “wonderfully hilarious” goof of pointing out that his “Business Logic” is just 3 lines. Heh.

Thanks to Kyle we can see what a Rails stack trace looks like. I took the liberty of posting a picture here. And if you ask me, I prefer using the NetBeans profiler rather than staring at a bunch of random text any day.

[update 2006-07-31: from the comments, note that this may be showing just the database handling part and does not cover business logic, presentation, etc.]

rails_stack_trace.png

About these ads

33 Responses to Who are these mongrel ruby developers?

  1. Mikael says:

    These are children drawing on the walls with crayons with some crayon salesmen egging them on. They won’t understand why it isn’t a good idea to draw on the wall until they grow up a bit and understand the context of why people live in houses, what it takes to get a house and so on.

  2. Surya says:

    I do not know if I am qualified enough in making remarks. I am about to get my first job in a Java development environment. I studied a lot of J2EE and I am an SCJP. Not a big deal. I think my perspective is as unbiased as possible because I am a noob compared to most Java developers who are posting blogs and comments. I love Java as a programming language. It is a wonderful experience and there are some amazing IDEs out now that make coding truly a pleasure like Netbeans, Eclipse, IDEA and JDeveloper. I have and use all 4 of these IDEs on an almost regular basis. I am geeky that way.

    So having considerable experience in Java but not enough in J2EE, once I understood Servlets, JSPs, EJBs etc…it made sense why it needed to be this way. But now having a bit more experience and knownledge and I would consider myself almost almost almost close to being an advanced J2EE user, I have to ask the question, can it not be made easier? Then I got involved in Spring and Hibernate and though I am still trying to wrap my head around what they bring to the table and how to extract the most benefit out of it, I must say I would take these frameworks any day over J2EE! Especially Entity Beans! JSPs and Servlets are indispensible. But do Entity Beans really need to be that complicated? Why Sun created the monstrosities of all EJB versions before 3.0 I do not know. Am I the only one who feels this way or are there plenty of other people? Due to my lack of knowledge on Ruby on Rails, I am not well versed to talk about their point of view on J2EE but I honestly think that J2EE is ridiculously complicated. I have read some of the marketing speak for JEE 5 but I am still not convinced.

    My 2 cents.

  3. Peter Thomas says:

    Surya that is really well thought out – and I agree with most of what you are saying.

    Mikail at comment #1 – lol, the crayon analogy is something I’m going to use a lot in the future :)

    I think I can rightfully claim to know first-hand the value that what the mongrel ruby developers would dismiss as “Rube Goldberg” and “enterprisey” frameworks – bring to the table. The first version of my pet project did not use Hibernate, Spring WebFlow and Acegi. I actually know the difference these frameworks made – because I rewrote the whole thing from scratch.

    And I have tried out Ruby on Rails – in fact I spent some time pondering whether to use it to re-write the app I mentioned above. Mainly because of Spring and Hibernate, and because of a few other reasons I will save for another post – I chose the Java way.

  4. Zed A. Shaw says:

    First off, sorry you feel the brunt of a joke, but you did post the stack trace, and it does show quite the architecture. If you didn’t want people to comment on your design and implementation then you should have obfuscated it somehow. I freely accept criticisms of my published works, and will easily admit when I’m wrong. That’s how I learn.

    But, wow, it must have taken you weeks to find the one stack trace in Ruby on Rails that is that long. You found your published trace by accident.

    Considering the average Rails trace is very nicely printed out to an easy to read little HTML page (rather than some deep multi-click interface in a completely different GUI than the browser) I’d take a rails stack dump any day. In fact, this same behavior is a feature of Tapestry, so why is it a boon there but a bane here?

    That stack trace is actually from Rails’ database session management code. Not really a business logic part of the system eh? Couldn’t imagine what that same blow-up in the session system would look like on Tomcat or WebSphere. God, I’ve choked tomcat with stack dumps from it’s bowels.

    In the end though, you shouldn’t take it personally. Nothing against you, it’s more that you truly do have a monster architecture here that could use some serious simplification. It’s not a Rails vs. Java thing, it’s a complexity vs. simplicity thing. What you have is *way* too complex no matter what it does.

    I bet if you were truly interested you could burn your architecture down to not include half that stuff and be way ahead of the game to boot. Take it as a learning experience that someone finds your architecture way overkill–even other Java folks. Yes, I show this to other Java heads and they laugh too. It’s not Ruby on Rails, it’s your architecture.

    Your’s in sincere apology, Former Java Guy In Recovery Zed A. Shaw.

    P.S. nice job cutting it off at the dispatcher such that it looks like the stack trace goes on and on.

  5. Zed A. Shaw says:

    Hmm, now this:

    http://kylecordes.com/files/rails_stack_trace.txt

    is the actual stack trace. Kind of sneaky that you’d put it into notepad in order to make it look a lot worse.

  6. Ulysses says:

    I agree, the stack traces can get a little unwieldy to read thru. That’s why when you’re developing your app, the default trace will show you only the frames from your application. (See a typical rails rescues page.)

    Also, keep in mind that in Ruby, a single method invokation may appear in the trace multiple times due to blocks.

    And finally, let’s not pretend that the depth of the stack really matters. There may be those who write frameworks with stack minimization in mind, but for everybody else the issue is just an useless pissing context.

  7. Peter Thomas says:

    If you didn’t want people to comment on your design and implementation…

    You now say it was a joke, but my main point is that I think it is out of line for product documentation. You claim to “easily admit when you’re wrong”. *hint*

    But, wow, it must have taken you weeks to find the one stack trace in Ruby on Rails that is that long.

    Yeah, right.

    I’d take a rails stack dump any day. In fact, this same behavior is a feature of Tapestry…

    I never used Tapestry. I am talking about the NetBeans profiler. You may be satisfied with raw text and HTML, but I beg to differ.

    That stack trace is actually from Rails’ database session management code. Not really a business logic part of the system eh?

    What! You mean there’s more?

    It’s not a Rails vs. Java thing, it’s a complexity vs. simplicity thing. What you have is *way* too complex no matter what it does.

    Please see comment #6 – yes IMHO the size of the call stack does not matter. Let me repeat – I have seen the difference that WebFlow, Acegi and Hibernate makes. Of course you will *never* agree – so let’s leave it at that.

    Kind of sneaky that you’d put it into notepad in order to make it look a lot worse.

    Maybe you prefer plain text to be shown in a browser? Or you were expecting syntax coloring?

  8. Sam Griffith says:

    I find it amusing that Java folks will crap on other tools (not just Rails and Ruby) about the quality, tools, IDE’s, etc. They seem to forget that Java has had 11 years now to get what is there now. As someone who’s used Java since 1995, I remember quite well when Java was in the same crappy state of affairs. So watch what you crap on, because just like Java took over Enterprise and Web development, you might find yourselves looking at a simliar future. Maybe the new toolset will run on the JVM, who knows, but Java was not all that great and niether was the whole servlet, JSP, etc. stuff at first. So keep in mind that this stuff is but 1.5 years old for Rails. Scripting will continue to grow and as machines get more powerful so will the ability to write programs that are “good enough” using those tools. Ruby, Ruby tools and Ruby/Rails IDE’s are coming along well too. Look here:

    http://www.radrails.org/

    Yes it’s based on Eclipse, but it serves the Ruby and Rails developers quite well and they freely will acknowledge that they are not trying to be all things to all people….

    Also, as Java people we have a compunity that had the same attitude towards C++, Smalltalk and various other languages as these Ruby guys do, so it’s like the pot calling the kettle, black…. Plus we have our own attitude problems now to deal with anyway. For example, we still don’t have a quality desktop platform to code too and will soon get our hats handed to us by the Vista and XAML work that MS has done. It beats anything for GUI’s we have in the Java world by orders of magnitude….. for that matter so do the Mac Cocoa frameworks.

  9. Peter Thomas says:

    Sam take it easy. I don’t think you should generalize me as one who trash talks anything that resembles competition to Java. I am just comparing the NetBeans profiler and the equivalent for Ruby / Rails – that’s all.

    Please.

  10. Zed A. Shaw says:

    Peter, c’mon man, you got caught fudging the stack trace look with notepad screen shots rather than just linking to the text for people to see. That’s not good form.

    Either way, I’ll be nice and remove the link to your stack trace shortly. I want to leave it up during this post so people can see what you’re complaining about in full context and make up their own mind.

    But, as I mentioned before, if you don’t want people to comment on your stuff, then don’t publish it. I mean, you even have comments on your blog that are tons worse than my criticism of your choice of tools.

    And, Mongrel is not a product. It’s an open source project that just has an OK web site. I’m pretty much entirely responsible for making you feel bad, so again my apologies. Doesn’t mean I agree with you, just means I didn’t think you’d get so bent over criticism of your choice of tool.

  11. Peter Thomas says:

    …you got caught fudging the stack trace look with notepad screen shots rather than just linking to the text for people to see. That’s not good form.

    Please. That’s my choice of presentation. Saves people an extra click. Call it Web 2.0 if you like. Don’t feel so bad – it wouldn’t have looked much better anyway :) And I did have the actual link available in “good form”. Nice try.

    And, Mongrel is not a product.

    Hmm. But I believe you have funding for this. Right?

  12. bryan liles says:

    What was this disagreement about again?

  13. Dave Newton says:

    Boys, boys, settle down now.

    As a long-time J2EE programmer and 1-yr RoR programmer I feel qualified to comment.

    J2EE is complicated, almost no matter what. Things like Spring are layered on top of it precisely _because_ it is so complicated. Yep, there’s a learning curve. The end result is that Java, a fairly inflexible environment, gains some flexibility.

    This complexity _does_ have a place in the world, but that place (IMNSHO) is _not_ for simple web wrappers around a database, prototyping applications or functional blocks, quick utilities, etc.

    I use both J2EE and Ruby/RoR all the time, each in their suitable application space. When I encounter a huge stack trace like the one that started this thread it doesn’t really bother me. Yep, it’s complicated. I’m really smart, though, I know most of the layers involved, and I focus on the part that’s actually causing the problem.

    RoR has warts as well: try validating two models on the same page, ordering the validation messages, and using something other than the database column name for the error. That doesn’t even include I18N or validating the same model on different pages, things that are trivial in any of the J2EE application frameworks I use regularly.

    A stack trace may be one indication of complexity, but with that complexity comes functionality.

    Finding the right balance for each application is the key.

  14. Val says:

    >> Considering the average Rails trace is very nicely printed out to an easy to read little HTML page (rather than some deep multi-click interface in a completely different GUI than the browser)

    Ha ha, that’s really a lame attempt to FUD against the NetBeans profiler.

  15. Surya says:

    I may be daft but how is that Notepad presentation of the Ruby stacktrace making it look a lot larger than it really is? I fail to see why people are attacking Peter with such ferocity. As far as I see it, Peter never said anything about Java not being complicated.

  16. Brendan Taylor says:

    Because most of the characters there are in the names of the files the code is contained in, and because of this Notepad’s wrapping makes the trace look about twice as deep.

  17. Surya says:

    Thanks Brendan, but all one has to do to realize how big or small the stack trace is to look at the image posted in the blog and look at the scrollbar. The scrollbar is still quite long implying that the stack trace is in no way as huge as the Java stack trace posted here previously.

  18. Sharon says:

    Peter, you might want to have a look at what I wrote after reading your post.

  19. Pingback: "[Ruby developers] are children drawing on the walls with crayons" : August's Troll Of The Month

  20. Erik says:

    Peter, as far as the size of stack traces go, you seem to be going against the flow. Even James Duncan Davidson, the guy who started Tomcat, thinks stack traces should be shorter. I saw him speak at a JUG meeting a few years ago, before the whole Rails thing exploded on the scene, and he basically said a stack trace that doesn’t fit on one page is too long. He was commenting on where Tomcat was going and how to write better code. Maybe that’s an oversimplification on his part, but the point is still there. The longer the stack trace, the more complex your system and the less understandable it is.

    (In the interest of full disclosure, Mr. Davidson is now very pro-Rails and Ruby, but this is why I mentioned that his comment came *before* the Rails phenomenon.)

  21. Peter Thomas says:

    as far as the size of stack traces go, you seem to be going against the flow.

    I honestly don’t think so – I am just writing a web-application and merely use Tomcat (by the way I switched to Jetty) and a couple of frameworks – and the code that *I* write is reduced. But I respect that as one opinion. One of the points of this post is – if that argument is true – other stacks are equally guilty.

    You are welcome to look at the architecture of the application in question. You can install it in seconds because it embeds a database and a web-app server. Feel free to run performance tests on it and post the results. Here is where you can view the source code.

  22. David H. Ahl says:

    well, i’ve done my time with j2ee frameworks. i’ve eaten all the refried enterprise java beans i can stand. no more.

    i threw it all away over a year ago. i think it was the combination of catalina, spring, acegi, hibernate and treecache finally drove me away.

    yes, i laughed at your stacktrace, too (along with the petulant attempt at misrepresenting one from Ruby). it was a rueful, ‘well, i’ve been THERE before, and boy am i glad i’m not there anymore’ kind of laughter. not a derisive sort.

    that shit is just way, way, WAY more complex than it needs to be.

    you may not be able to see it, but a lot of other people have had the mote removed from their eye.

    still, there are clearly people who like complexity, and enjoy it, for its own sake.

    that’s fine, but i’m not hiring any of those people (anymore) and i have no sympathy for their whining and sniveling when they are sneered at and deemed foolish, by people with further evolved concepts of what qualifies as useful, effective, and pragmatic applications of computer science.

    in just about any case, complexity for its own sake sucks. engineers who engineer things just to stroke themselves are wasting their time and i refuse to let them waste mine, to any meaningful degree, at this point.

    if you want to spend two weeks re-inventing a wheel in order to teach yourself something about programming, that’s cool. but don’t do it on my dime; and if you publish the results, bring a thick skin, because people are going to criticize it.

    and no, we are not exempting the kids chugging RoR kool-aid from thus kind of critical attention. some of them are on the verge of making, or already have made, some of the same mistakes.

  23. Peter Thomas says:

    To David H. Ahl (above):

    By the way I never used enterprise beans, “refried” or otherwise. You know, I did try Ruby on Rails. As I mentioned before, I have nothing much against it.

    Its guys like you who think stack traces represent the complexity of the architecture (and even the personality of the person posting it!) that I beg to differ with. I laugh too seeing you jump to all sorts of conclusions like I’m a guy who gets turned on by complexity and wow, where on earth did you hear that I spent “two weeks re-inventing the wheel” and doing it “on your dime” :)

    Its good that I couldn’t figure out how to include things like network packets, bytecode, assembler code, and silicon chip voltage level fluctuations in the diagram. You’d probably have died of laughter.

    Or maybe not, because you are a person “with further evolved concepts of what qualifies as useful, effective, and pragmatic applications of computer science”. Amen.

    Out of general curiosity (nothing more!) – do make it clear which company you “hire” for.

  24. Usercontrol says:

    RoR doesn’t support Unicode. Enough said.

  25. George says:

    but i think you can if you set an variable to make the charictors unicode with seting $KCODE = ‘u’

  26. tomt says:

    So came across this through a RoR site. I used to write text adventures when I was 12 but my parents didnt get a computer again until I went to uni so I ended up falling out of Computer Science. Now I’ve started trying to learn RoR really as a hobby. I think it would be fun to build something/anything. Anyway reading this post and comments about Java guys C++ guys Ruby mongrel children makes me feel like my choice of language (driven entirely by the fact I found a decent tutorial in it) is a lifestyle/political decision. How is this such an emotive topic?

    __
    I’m sure I’ll understand better when I have actually written and published something myself ;)

  27. Vet says:

    Coming from mainframes, legacy related languages and some decent 4GL background with some pure java, it was so complicated to get an small application in J2EE, it is not just complicated but way too much complicated.., yes springs+hibernate other combination is no different, but to get started, RoR was a great one. Will be able to comment on the RoR and how complex once I get my (pet) enterprise project up and testing. how by the time some key issues like threadsafe etc., will be taken care. Will not attempt change/add anything to the framework in the process, as it will be a pure we based application development.

  28. Peter Thomas says:

    it was so complicated to get an small application in J2EE, it is not just complicated but way too much complicated.., yes springs+hibernate other combination is no different

    Yeah all RoR fanboys say that :| J2EE used to suck yes, not any more, if you say Spring + Hibernate also is no different, I disagree, since I use this stuff on a daily basis and have working code to show for it. And from what I hear, things like Grails etc. take it to a new level.

  29. Mircea says:

    The difference between Java J2EE architectures like Spring and something like Rails is the difference between software engineering and “hacking a quick mock-up that looks nice”. I’ve tried everything… Ruby on Rails, PHP with cakePHP, .NET’s ASPX but hell, there’s nothing like J2EE’s feeling if software engineering is your final destination.

  30. Bob says:

    Hmmmm, looks like this person does not really agree with your statement nor sentiment.

    http://www.internetnews.com/commentary/article.php/3763871

  31. werutzb says:

    Hi!

    I would like make better my SQL knowledge.
    I red that many SQL books and would like to
    read more about SQL for my position as db2 database manager.

    What would you recommend?

    Thanks,
    Werutz

  32. Brenton says:

    I was recommended this web site by my cousin. I’m not sure whether this post is written by him as no one else know such
    detailed about my trouble. You are wonderful! Thanks!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 31 other followers

%d bloggers like this: