Slashdot Mirror


Twitter Reportedly May Abandon Ruby On Rails

Raster Burn writes "According to TechCrunch, Twitter has plans to abandon Ruby on Rails after two years of scalability issues. Candidates to replace Rails are said to be PHP, Java, and Ruby without the Rails framework." The post links a brief comment (at 139 characters, probably a tweet) from Twitter founder Ev Williams saying it ain't so. The comments following the post embody the controversy over whether or not RoR sucks.

423 comments

  1. What is Twitter? by Matt+Perry · · Score: 0, Redundant

    What is Twitter and why is it significant that they are abandoning it as opposed to anyone else?

    --
    Slashdot: Failed Car Analogies. Amateur Lawyering. Anecdote Battles.
    1. Re:What is Twitter? by caramelcarrot · · Score: 1, Insightful

      They're a very high volume site.

    2. Re:What is Twitter? by revscat · · Score: 5, Informative

      Twitter is a major site, even if you yourself have never heard of it, with many tens of thousands of users. As such it is felt by many to by *the* flagship RoR application. Unfortunately it has suffered from numerous outages, some of these lasting days at a time.

    3. Re:What is Twitter? by LWATCDR · · Score: 4, Informative

      twitter is a microblogging system.
      You can twitter from your cell or PC.
      I think it is one of the most usless things on the face of the earth but it seems popular for some strange reason.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    4. Re:What is Twitter? by Facetious · · Score: 1

      Well, Chandler, it's a site that lets people blog in minutia with a big emphasis on social networking. It has become quite a big deal, and the only "big deal" I am aware of that runs RoR. Or, it is the username of a Linux enthusiast on slashdot. Take your pick.

      --
      Let us not become the evil that we deplore.
    5. Re:What is Twitter? by svandoren · · Score: 2, Informative

      What is Twitter and why is it significant that they are abandoning it as opposed to anyone else?

      It's a service to announce to your friends what you're having for dinner, how satisfying your bowel movements are, and whether or not you intend to see the hip concert that is happening next week in your neighborhood.

      It's the blog without the content, the conversation without the words, the letter to a friend without the feeling, and the kiss goodnight without the tongue.

      As for the significance of them allegedly leaving RoR, that's anyone's guess. Probably to incite more PHP vs. RoR battles on /.

    6. Re:What is Twitter? by Matt+Perry · · Score: 1

      Well, Chandler,

      You think I sell candles?
      --
      Slashdot: Failed Car Analogies. Amateur Lawyering. Anecdote Battles.
    7. Re:What is Twitter? by ebolaZaireRules · · Score: 1

      there _are_ times when not to use your mobile...
      http://www.penny-arcade.com/comic/2008/4/23/

      --
      The Bible: Historically verifiable fact from an observers point of view
    8. Re:What is Twitter? by nine-times · · Score: 5, Insightful

      I think it is one of the most usless things on the face of the earth but it seems popular for some strange reason.

      Most popular things are useless.

    9. Re:What is Twitter? by Facetious · · Score: 1

      No, I think you are one of the actors from the TV show "Friends." What, you're not?

      --
      Let us not become the evil that we deplore.
    10. Re:What is Twitter? by Anonymous Coward · · Score: 0

      Twitter is useful because it's been a whole 10 minutes since your above post and yet we haven't had an update on what you've been doing in your life in all that time.

      Twitter means no-one ever has to ask again, ever.

    11. Re:What is Twitter? by gatzke · · Score: 3, Funny


      In my day, we had talk, finger, vi, and elm and we never complained! Green vt100 terminals were all anyone really needed! Get off of my lawn!

      Seriously, talk had advantages over IM. You actually could see what the other person typed as they typed it, including backspaces...

      And finger worked great. I knew a nerd that had his .plan updated automatically to show where he physically was logged in. As if anyone cared?

      The more things change, the more they stay the same.

    12. Re:What is Twitter? by Anonymous Coward · · Score: 0

      I thought he was the guy who was at the helm when Transmeta was digging itself a big ditch.

    13. Re:What is Twitter? by Anonymous Coward · · Score: 5, Funny

      See Hilton, Paris

    14. Re:What is Twitter? by garcia · · Score: 2, Informative

      I think it is one of the most usless things on the face of the earth but it seems popular for some strange reason.

      It depends on what you use it for. For what I use it for it's quite useless but if you're into notifying groups of friends what you happen to be doing and want it to be delivered by their preferred method of receiving that information, then it's great.

      I want to tell 10+ people that I'm going away for the weekend and I don't want to deal with two SMSs, three e-mails, four IMs and one phone call so I just fire off a message on twitter and it's all done and everyone gets the information quickly and easily.

    15. Re:What is Twitter? by sm62704 · · Score: 1

      twitter Audio Help /twtr/ Pronunciation Key - Show Spelled Pronunciation[twit-er] Pronunciation Key - Show IPA Pronunciation
      -verb (used without object)
      1. to utter a succession of small, tremulous sounds, as a bird.
      2. to talk lightly and rapidly, esp. of trivial matters; chatter.
      3. to titter; giggle.

      4. to tremble with excitement or the like; be in a flutter.
      -verb (used with object)
      5. to express or utter by twittering.
      -noun
      6. an act of twittering.
      7. a twittering sound.
      8. a state of tremulous excitement.
      ***

      Twitter is a free social networking and micro-blogging service that allows users to send "updates" (or "tweets"; text-based posts, up to 140 characters long) to the Twitter website, via short message service (e.g. on a cell phone), instant messaging, or a third-party application such as Twitterrific or Facebook.

      Updates are displayed on the user's profile page and instantly delivered to other users who have signed up to receive them. The sender can restrict delivery to those in his or her circle of friends (delivery to everyone is the default). Users can receive updates via the Twitter website, instant messaging, SMS, RSS, email or through an application. For SMS, four gateway numbers are currently available: short codes for the United States, Canada, and India, as well as a United Kingdom number for international use. Several third parties offer posting and receiving updates via email.
      Toilet was blogged once. A day to clear it, it took." --Yoda on blogs
      --
      mcgrew's razor: Never attribute to stupidity that which can be explained by greedy self-interest
    16. Re:What is Twitter? by Anonymous Coward · · Score: 0

      Um, wasn't Chandler a character?

    17. Re:What is Twitter? by sm62704 · · Score: 1

      Most popular things are useless

      Yeah, like cars, telephones, computers radios, houses, food, utensils, tools, books, clothing, water, the internet...

      --
      mcgrew's razor: Never attribute to stupidity that which can be explained by greedy self-interest
    18. Re:What is Twitter? by Matt+Perry · · Score: 1

      As such it is felt by many to by *the* flagship RoR application.
      Thanks, it makes sense now. That was the important info missing from the summary.
      --
      Slashdot: Failed Car Analogies. Amateur Lawyering. Anecdote Battles.
    19. Re:What is Twitter? by Dog-Cow · · Score: 1

      Popular. Ubiquitous.

    20. Re:What is Twitter? by Anonymous Coward · · Score: 0

      and myspace or facebook

    21. Re:What is Twitter? by Anonymous Coward · · Score: 0

      What is Twitter and why is it significant that they are abandoning it as opposed to anyone else?

      I used to think twitter was for people so vapid and self-absorbed that normal blogging just wasn't enough, people who want to be able to moblog every time they scratch their asses thoughtfully, see a dog with a puffy tail, or take what they consider to be an interesting dump.


      But I now suspect that the Soylent Green Company is behind the technology, which they will soon use to hunt down tender nerd meat for their fine products.


      In any event, it's popular, but so is cat juggling in some cultures. As to the stats in other replies to your question, "many tens of thousands of users" doesn't mean popular. I certainly hope they have more users than that.

    22. Re:What is Twitter? by Roxton · · Score: 1

      I'm sick of this elitism. If someone likes something, it's useful. Just because someone else doesn't think like a robot doesn't mean their values don't matter.

      If flesh and blood humans exhibit this kind of bigotry, what chance do we all have when the robot insurrection comes?

    23. Re:What is Twitter? by tmarthal · · Score: 1

      Also, since it is fully "Web2.0" with a fully functional API, if you update your twitter status with "what you've been doing in your life" in the last 10 minutes ... you can automatically push that status to Facebook, Myspace, AIM Status, livejournal, irc, all from one completely free microblogging site.

      And its not just cell text integration, with an iphone web application like hahlo, an IM interface twitter@twitter.com on gmail, an SMS messaging interface not to mention the plain old web interface. So, it is a nice service, and the one that I use.

    24. Re:What is Twitter? by Facetious · · Score: 1

      His username is Matt Perry. Keep up, AC.

      --
      Let us not become the evil that we deplore.
    25. Re:What is Twitter? by Poltras · · Score: 4, Funny

      and digg, reddit. Not slashdot though.

    26. Re:What is Twitter? by LWATCDR · · Score: 1

      Well I feel it is useless because most people's lives are deadly dull. Minute to minute updates? Sure for some people it may be interesting but for the most part I really don't care what somebody ate for lunch.
      Notice though before you get your knickers in a knot.
      "I think it is one of the most useless things on the face of the earth."
      I didn't say, "It is one of the most useless things on the face of the earth."
      My statment is without question factual since that is how I feel about it. If you find it useful well then you disagree and that is fine.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    27. Re:What is Twitter? by mgblst · · Score: 1

      Not that useless if you can get close enough...

    28. Re:What is Twitter? by Anonymous Coward · · Score: 0

      Sex is pretty popular, and it's hard to call that useless.

    29. Re:What is Twitter? by 4d4m · · Score: 1

      Twitter, in 10 words: Twitter's purpose is to clutter the internet with useless drivel.

    30. Re:What is Twitter? by ed.mps · · Score: 1

      Yet that useless if you are a slashdotter ;)

      --
      !sig
    31. Re:What is Twitter? by petermgreen · · Score: 2, Interesting

      Seriously, talk had advantages over IM. You actually could see what the other person typed as they typed it, including backspaces...
      ICQ actually offered a "chat session" feature that did that. but it required direct client-client connection which made many people (me included) abandon it. Also it apparently had fairly high network overhead.

      I tend to think being able to compose your thoughts before letting the other end see them is probablly a good thing anyway.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    32. Re:What is Twitter? by Neil+Hodges · · Score: 1

      Not only that, you can use the API from Python. You can just write a simple script to do it, rather than dealing with regular annoyances from web pages.

    33. Re:What is Twitter? by bheer · · Score: 1

      Twitter does have its uses though. Being able to blog from your mobile is pretty useful sometimes...

    34. Re:What is Twitter? by nuzak · · Score: 0, Offtopic

      Little offtopic, but your sig:

      > Without the Death Penalty there can be no justice.

      Consider that there are many who oppose the death penalty because they also believe in the converse (or more technically, that the proposition stated in the affirmative is biconditional)

      --
      Done with slashdot, done with nerds, getting a life.
    35. Re:What is Twitter? by xiaomai · · Score: 1

      I think that yellowpages.com, hulu.com, pennyarcade.com and many other "big deal" sites are running on RoR.

    36. Re:What is Twitter? by us7892 · · Score: 1

      It is useless. I just wish I had thought of doing it first. $$$

    37. Re:What is Twitter? by sm62704 · · Score: 0, Offtopic

      He should journal his thoughts on the matter. A statement like that without attribution or explanation is the mark of an unenlightened fool (and I am an unenlightened fool for saying so).

      There are IMO 2 things wrong with the death penalty. First, it is final. "Oops, my bad, we just found out that the cops planted that evidence. Too bad you're dead." One of the founding fathers iirc (and I may not rc) is that it is better to let ten guilty men go free than to jail one innocent man.

      Secondly, all of us are on death row, every one of the six billion inhabitants of this small muddy rock. The difference between us and murderers in the US is that our deaths mostly will be horrible, terrible, agonizing deaths. Cancer, heart disease, accident, fire, drowning, etc. while murderers are "put to sleep" painlessly and humanely as if they were a beloved pet dog. THAT is NOT justice. Let them rot in prison the rest of their lives and die horribly like I surely will when my time comes.

      --
      mcgrew's razor: Never attribute to stupidity that which can be explained by greedy self-interest
    38. Re:What is Twitter? by circletimessquare · · Score: 1

      no, that's twatter

      --
      intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
    39. Re:What is Twitter? by LurkerXXX · · Score: 4, Insightful

      Or you could just email them all.

      Unless you are claiming there are a substantial percentage of folks who use twitter but don't use email. I'll want citations for that though, because I don't believe it for a minute.

    40. Re:What is Twitter? by heelrod · · Score: 1

      People gotta die somehow. Me personally.

      metalocalypse - Ya know that episode where they launched the prisoners on rockets and blew em outta the sky.

      Yea, awesome, totally awesome

    41. Re:What is Twitter? by mixmatch · · Score: 1

      Not to mention, earn their living while they are there...

    42. Re:What is Twitter? by spud603 · · Score: 1

      Actually, the means used by the state to kill criminals is generally thought to be too cruel to use on animals.
      It's really designed to make it easier on the people watching, not on the people being killed.

    43. Re:What is Twitter? by 47Ronin · · Score: 1

      Twitter has been immensely useful... as a microblogging system some companies have successfully used it as an emergency broadcast system of sorts. KPBS.org used it as a way to communicate major brushfire conditions and emergency shelter updates over SMS and RSS. Barack Obama's campaign sends out daily Twitter updates that alert campaign supporters and organizers of upcoming events, locations, and meeting times. That gets disseminated over the web, SMS, and RSS feeds via Twitter's extensible API.

      --
      Those who laugh at you for you having a Mac.. are the people who constantly call you to fix their PC.
    44. Re:What is Twitter? by flibuste · · Score: 1

      Thanks for mentionning it.
      This sig always makes me sick when I see it.

    45. Re:What is Twitter? by 47Ronin · · Score: 1

      Email is targetted. However if you really need to distribute a high volume of information immediately without dooming your own infrastructure, Twitter is great. It's not targetted because the demand for the informaion comes from the followers to the source, instead of the other way around. See how KPBS.org used this information to spread evacuation and relief updates during the California wildfires:
      http://www.news.com/8301-10784_3-9802911-7.html

      --
      Those who laugh at you for you having a Mac.. are the people who constantly call you to fix their PC.
    46. Re:What is Twitter? by Anonymous Coward · · Score: 0

      It's obviously not popular with the ugly nerds populating reddit, digg, twitter and all the nerdy trendy social networks. People who do sex tend to be found on more casual websites like myspace.

    47. Re:What is Twitter? by 47Ronin · · Score: 1

      Your assumption that the service provides garbage may be true for the majority of the stuff that gets cranks out but a tiny majority is vastly useful. I've seen Twitter being used for liveblogged news headlines, traffic updates via SMS, emergency evacuation information, and event coordination... just to name a few examples.

      --
      Those who laugh at you for you having a Mac.. are the people who constantly call you to fix their PC.
    48. Re:What is Twitter? by LurkerXXX · · Score: 1

      High volume was not his example. It was letting 10 people know he would be out of town, and the excuse for using twitter was that he'd need to email 4, SMS 3, pone 1, etc.

      Email would work perfectly fine in that situation for all 10 people in 99.99% of situations.

    49. Re:What is Twitter? by STrinity · · Score: 3, Funny

      Twitter is a site popular with a small coterie of techies who talk about it incessantly, but which no normal person would ever use.
      Fixed that for you.
      --
      Les Miserables Volume 1 now up with my reading of
    50. Re:What is Twitter? by STrinity · · Score: 1

      Digg is extremely useful in keeping me informed about how Barack Obama is the One True God. Twitter is only useful if you want people you've never met to keep you updated every time they take a crap.

      --
      Les Miserables Volume 1 now up with my reading of
    51. Re:What is Twitter? by jo42 · · Score: 1

      No $$$ yet - they haven't figured out how to "monetize" it yet. So they need someone to buy them out to keep it running (at a loss).

    52. Re:What is Twitter? by Anonymous Coward · · Score: 0

      From what I understand from all the replies, it has to do with blogging.

      And since blogging is mostly the "Web 2.0" version of people with websites about their pets, you don't need to bother about it.

      Just move along.

    53. Re:What is Twitter? by monkeyhouse · · Score: 1

      The fact that many users use it to microblog about their bowel movements doesn't make it entirely useless for everyone... I run a spinning class at my workplace, and it's a nice way to get out cancellation notices, changes of instructor, etc. in a nice, concise, broadcast-only method, for anyone in the class who subscribes.

      We have a blog as well, but that's typically used for info requiring more than one sentence at a time.

      And it was perfect for Beer of the Day, but they don't seem to have posted lately. How sad...

    54. Re:What is Twitter? by LWATCDR · · Score: 1

      Yes and a hovercraft that can carry many tons of cargo is also useful. Just not for more people. Your examples are good uses of twitter and they make up what .001% of the users of twitter?

      Again it is an opinion. That is why I said that "I think it is useless". I also think that seafood is gross, $300+ video cards for gaming are a huge waste of money, and that 99.99% of all blogs a waste of electrons. Hey I don't get to rule the universe based on my will so don't worry about twitter going away anytime soon.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    55. Re:What is Twitter? by Anonymous Coward · · Score: 0

      Why is the first post in an article, which is asking a meaningful question, considered redundant?

    56. Re:What is Twitter? by johnw · · Score: 1

      All spelling and grammar errors are intentional. Grammar Nazis' need entertainment. Grammar Nazis' what need entertainment?
    57. Re:What is Twitter? by sxtxixtxcxh · · Score: 0

      maybe not everyone following him on twitter is constantly tied to an email inbox. imagine that!

      --
      for a minute there, i lost myself...
    58. Re:What is Twitter? by LurkerXXX · · Score: 1, Insightful

      Instead they are tied to a twitter site. imagine that!

      6 of 1, half a dozen of the other. Sorry, I just don't see any amazing reason to use twitter over email for that kind of stuff.

    59. Re:What is Twitter? by sxtxixtxcxh · · Score: 0

      what part of SMS didn't you understand? and that's just one of many other options for accessing twitter.

      --
      for a minute there, i lost myself...
    60. Re:What is Twitter? by LurkerXXX · · Score: 1

      Because you can't have your email sent to SMS messages on your phone any other way already if you wanted to. Oh wait, on Google you can find about a million ways to do it already.

    61. Re:What is Twitter? by kadnan · · Score: 2, Funny

      Most popular things are useless.

      Like Windows?
    62. Re:What is Twitter? by Irish_Samurai · · Score: 4, Insightful
      They have figured out how to monetize it.

      Actually, all of these free social networking services have figured out how to monetize it.

      Twitter is the honeypot to collect a group of users. After a density of users is reached, larger communication companies will start looking at purchasing Twitter so they can "integrate" their service. Nevermind that integrating a free service with an available API doesn't require purchase.

      What the larger company is actually doing is buying customers.

      From the TOS:

      Business Transfers Twitter may sell, transfer or otherwise share some or all of its assets, including your personally identifiable information, in connection with a merger, acquisition, reorganization or sale of assets or in the event of bankruptcy. You will have the opportunity to opt out of any such transfer if the new entity's planned processing of your information differs materially from that set forth in this Privacy Policy. Build Service - Grow Userbase - Sell Demographic data.

      It's the web 2.0 business model, all coated in a lovely veneer of altruistic "doing it for the love of geekiness" bullshit.
    63. Re:What is Twitter? by Anonymous Coward · · Score: 0

      Windows...

    64. Re:What is Twitter? by sxtxixtxcxh · · Score: 0

      are you specifically ignoring the convenience and flexibility of twitter for sake of argument or are you really just not getting it?

      --
      for a minute there, i lost myself...
    65. Re:What is Twitter? by kashani · · Score: 1

      tens of thousands of users is a major site now? Hell some blogs have that many. Talk to me when you have millions of users. Everyday.

      kashani

      --
      - Why is the ninja... so deadly?
    66. Re:What is Twitter? by garcia · · Score: 1

      What if I don't know their e-mail address? To be honest, I rarely give mine out these days because it's the last place I want to be contacted. It's almost become as sacred as my phone number.

    67. Re:What is Twitter? by LurkerXXX · · Score: 1

      I'm really just not getting it. For the example provided, contacting 10 people about being out of town, I see absolutely no benefit of it over email. I can already get email on my phone if I want to. Via webmail or SMS.

    68. Re:What is Twitter? by Anonymous Coward · · Score: 0

      No, I see his point. In his scenario, he gets to tell people he's out for the weekend passively (as opposed to actively, if he'd email, IM or SMS them), that is, he just leaves a tweet saying that, and whoever subscribes to his tweeter will get the message.

      That would only work well though if at least most of his friends subscribe to his tweeter. Maybe that works fine for him, but it certainly wouldn't work for me, and most people more bounded to the real world - I spend a lot of time on the 'net, but most of my relationship circle doesn't spend as much time on it as me, and they wouldn't bother getting their head around a concept with so little usefulness as tweeter.

    69. Re:What is Twitter? by achacha · · Score: 3, Insightful

      Personally I would never run a high volume site on top of a scripting language platform. While RoR is pretty nice on getting a site up and running and integrated with a database, it is still poor in the scalability department.

      For a medium to large site they should consider using servlets and java and avoid J2EE.

      For a very large site I would recommend C/C++ and maybe java if they have the budget for hardware.

      The toughest part is getting developers that can code webapps (not just CGIs) in C/C++ (while easy to do C/C++ developers overall are hard to find and are not as cheap as ruby/perl/python ones and even java ones; this is from experience of trying to hire them). So they should check their developer base and see what is the fastest language they feel very comfortable with and go with it. From experience they may have to settle for java since that will provide them a large pool to pick developers from and the learning curve is slightly less steep than C/C++.

      I suspect they fell into the trap of building a demo fast using RoR and then just going with it into production, I have seen this way too many times unfortunately.

    70. Re:What is Twitter? by LurkerXXX · · Score: 1

      So you don't give business contacts or friends your email address, but you do give them a url for your twitter page. I find that... odd.

    71. Re:What is Twitter? by Eli+Gottlieb · · Score: 1

      Hey, Reddit has theme-trolls! On there you can meet: Death, George W. Bush, Paris Hilton, Ayn Rand, Zombie Jesus, the 9/11 truther troll ("WAKE UP SHEEPLE!!!1!" makes for major lolz), the sheeple ("I'M AWAKE!"), and numerous others!

    72. Re:What is Twitter? by LurkerXXX · · Score: 1

      You get to tell people you are out for the weekend passively as well with email. It's called a vacation message. Most email servers support the feature. If someone emails you while you are away, it emails back with your message saying you are on vacation/etc.

    73. Re:What is Twitter? by Anonymous Coward · · Score: 0
    74. Re:What is Twitter? by lgw · · Score: 2, Interesting

      Wow, generating and serving web pages in C/C++ - does anyone still do that? Are there any modern libraries that, for example, make your tables look good by emitting different HTML based on the browser? That layer of abstraction is key these days, but I've only seen people doing it in PHP.

      A modern C++ library that takes an abstract layout description and creates browser-specific HTML to match that description would be a very cool thing. A C++ library that merely generates "standard HTML, verified by the W3C" would be a nighmare to work with/around.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    75. Re:What is Twitter? by thePowerOfGrayskull · · Score: 1

      Also, since it is fully "Web2.0" with a fully functional API, if you update your twitter status with "what you've been doing in your life" in the last 10 minutes ... you can automatically push that status to Facebook, Myspace, AIM Status, livejournal, irc, all from one completely free microblogging site. And yet we complain when our "right to privacy" is presumed upon ;)
    76. Re:What is Twitter? by fm6 · · Score: 1

      Twitter is a well-known Slashdot troll. It's news to me, though, that he uses RoR. I guess all his sockpuppets are automated!

    77. Re:What is Twitter? by 47Ronin · · Score: 1

      Twitter also notifies via SMS (phone, pager) and RSS... that frees you from ever going to their website at all (I never even go to their site) and you can embed updated content to any number of websites if you want. SMS is probably the most-used method since you can send and receive twitter updates from cell phone. So instead of sending a text message to 500 recipients, you send one single SMS and Twitter will SMS anyone who is following you: be it 500 or 50,000.

      --
      Those who laugh at you for you having a Mac.. are the people who constantly call you to fix their PC.
    78. Re:What is Twitter? by HobophobE · · Score: 1

      Depends how you use it. If you 'follow' people who twitter their garbage collection you'll see that. You could use it for something else entirely.

      For example, you could use it to allow you to remote control your computer from your cellphone, if you were so inclined (I'd imagine having unlimited text message plan would help).

      --

      -HobophobE
      Nothing laughs forever.
    79. Re:What is Twitter? by EggyToast · · Score: 1

      Not to mention that the small coterie goes there incessantly, rather than "saving up" for a post every few hours. If it's treated like an "IM-blog," it's going to see a lot more traffic. That doesn't mean the content is any better; you just gotta refresh more often to see it.

    80. Re:What is Twitter? by pionzypher · · Score: 1

      And most likely, 8 of those people would email me back asking why the hell I sent them an email that they didn't need because they were already busy for the weekend. It's a good point even if I prefer the "disappear with no trace for the weekend, 00 style" method.

      --
      I'll believe in corporations having personhood when Texas executes one... - advocate_one
    81. Re:What is Twitter? by Anonymous Coward · · Score: 0

      a hotel chain and the capital of France, both not useful?
      that's not nice!
      hotels are useful

    82. Re:What is Twitter? by 7Prime · · Score: 1

      Too bad ICQ was a steaming pile of screen-realestate-stealing crap, though. Laggy bitch too.

      --
      Multiplayer Gaming (defined): Sitting around, discussing single-player games with my friends, at the bar.
    83. Re:What is Twitter? by achacha · · Score: 2, Informative

      Actually yes and majority of the huge sites on the web use C/C++ (having worked on several where 10 million hits a day is an easy load). Most places have their own but stl + boost is pretty damn nice and will do most of the things you want. You would probably want to look into writing ISAPI extension or apache modules which is not difficult at all and the performance difference between say C and java is significant. One point to note, java garbage collector under severe loads is not pleasant to tune (I have to deal with that currently and it's a pain). Its not uncommon for java process to spike to 1GB+ in a matter of seconds before GC has a chance to kick in and slow things down :) In C you can allocate and release memory in a much more controlled way thus controlling the server's footprint under spikey loads.

    84. Re:What is Twitter? by Nemo's+Night+Sky · · Score: 1

      Twitter recently got lots of attention as a not-so-useless thing when Egyptian police forgot to take away an American student's cell and it was used to inform his colleagues that he had been arrested for political reasons. Several people attending the same demonstration without twitter access have disappeared from the earth. I don't personally draw any conclusions from that but I figured making the story available wouldn't be a bad thing.

    85. Re:What is Twitter? by Anonymous Coward · · Score: 0

      Its not uncommon for java process to spike to 1GB+ in a matter of seconds before GC has a chance to kick in and slow things down :) In C you can allocate and release memory in a much more controlled way thus controlling the server's footprint under spikey loads There is no memory management in standard C. You have to do it all manually. Statistics show that there are only a handful of good programmers who will avoid "adding" nasty bugs when they are in the process of fixing existing ones

      I set let the other idiots play with Java and leave C and C++ to the professionals.

      [yes yes, even good programmers use java if it suits the purpose, but my statement is correct in principle]
    86. Re:What is Twitter? by lgw · · Score: 1

      C memory management require a certain programming discipline. It's not really that hard, but like any engineering discipline: it takes a couple of years of doing it before it becomes so natural you don't even think about it. Since kids aren't getting this discipline in college any more, it's a real problem in practice, unless you can staff your project entirely with us old-timers.

      OTOH, C++ has the best memory management around. It's also a learned engineering discipline, and even harder to get right, but you *can* do all memory management in carefully policed library functions, meaning you only need a couple of people with the proper discipline to support a swarm of junior programmers, which is totally practical.

      Java and C# have real problems in that it *still* requires engineering discipline to make sure that resources other than memory get managed properly (e.g., ensuring a file gets closed or a lock gets released whenever you leave a given scope), but students don't learn how important it is, because you don't learn the memory management discipline. And you're back to eveyr programmer needing this discipline (though it's possible to find most offenses through clever searching, which is a big plus over C).

      --
      Socialism: a lie told by totalitarians and believed by fools.
    87. Re:What is Twitter? by lgw · · Score: 1

      Boost is nice and all, but I didn't see anything in boost to generate browser-specific HTML. That's really where the magic is IMO, the layer that can generate HTML from an abstract layout description native to the programming language - but I guess it wouldn't be *that* much harder to create that in C++ than PHP or Java or something.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    88. Re:What is Twitter? by kestasjk · · Score: 1

      Wow, what is it about Ruby and bitterness/euphoria? In one ear I'm hearing how stupid I am for using PHP and that I could write all the code I've ever written in one line of RoR, in the other ear I'm hearing disillusioned RoR users who are on the brink of suicide over some grievance (and are offering to pay to rent a boxing ring in which to fight me, wow).

      Is this a house of cards collapsing under its own hype or .. or what? (I can't help but feel some schadenfreude after the smug "RoR vs PHP/Perl/etc" videos and attitude coming from the ever obnoxious evangelists)

      --
      // MD_Update(&m,buf,j);
    89. Re:What is Twitter? by LWATCDR · · Score: 1

      and calling or texting somebody with the same message wouldn't have done the same thing?

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    90. Re:What is Twitter? by fbjon · · Score: 1

      Slashdot isn't that popular though, at least when compared to some other massive sites, so the theory still holds. Besides, slashdot does not actually possess popularity attributes, slashdot has tenure.

      --
      True confidence comes not from realising you are as good as your peers, but that your peers are as bad as you are.
    91. Re:What is Twitter? by mrbcs · · Score: 1

      And here I thought Twitter was just a Slashdot Troll / Microsoft fanboy... silly me.

      --
      I'm not anti-social, I'm anti-idiot.
    92. Re:What is Twitter? by Hal_Porter · · Score: 1
      Have you noticed that the people having sex seemed to have poor grammar and a general disinterest in written or spoken communication

      Sample one

      It's obviously not popular with the ugly nerds populating reddit, digg, twitter and all the nerdy trendy social networks. People who do sex tend to be found on more casual websites like myspace. Will not have sex ever.

      Sample two

      hi i am lilydesu2471 ~~~~_^^:: i cute girl 26 in LA, USA!!111. here is a picture of me with my friend lilydesu2470. I like my cat, he called naruto :-))) ~ san dimas high school football rules ^_^ Will have lots of sex.

      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
    93. Re:What is Twitter? by Daengbo · · Score: 1

      What about the student who was arrested in Egypt recently and only rescued because he managed to get off a message to Twitter (read by hundreds of people) before his phone was taken away.

    94. Re:What is Twitter? by njcoder · · Score: 1

      Wow, what is it about Ruby and bitterness/euphoria? In one ear I'm hearing how stupid I am for using PHP and that I could write all the code I've ever written in one line of RoR If you used Zope/Plone you wouldn't even need that one line of code. Seriously!?!?!

      By the way, the guy is off with his Java Servlet/JSP example. It doesn't need to be as hard as he showed it to be.
    95. Re:What is Twitter? by Serious+Callers+Only · · Score: 1

      Twitter will SMS anyone who is following you: be it 500 or 50,000. And people wonder why they have scaling problems.
    96. Re:What is Twitter? by Anonymous Coward · · Score: 0

      Are you being facetious?

    97. Re:What is Twitter? by raynet · · Score: 1

      Say what? Me emailing you a message saying 'out of town this weekend.' is active, but if I use Twitter to do it, it is passive. How so? Twitter will actively send that message via email, sms, whatnot. I'd call that active messaging too.

      --
      - Raynet --> .
    98. Re:What is Twitter? by Big_Mamma · · Score: 1

      For a very large site I would recommend C/C++ and maybe java if they have the budget for hardware.

      And throw away the near perfect scalability of the J2EE stack so you can reinvent the wheel again? I'd love to see someone try to do something like JBoss AS + clustering in plain C/C++, there's no way that you can get a decent ROI from such a project with the current hardware prices.

    99. Re:What is Twitter? by xhydra · · Score: 0

      tweeter is useless. A typical twitter post would go as follows: "Having toast bean and egg sandwiches for supper. Going to fart all night"

      --
      "Drawing closer to world domination, keystroke by keystroke."
    100. Re:What is Twitter? by Matt+Perry · · Score: 1

      No, I think you are one of the actors from the TV show "Friends." What, you're not?

      Ah. I've never seen it. I'm more of a scifi fan.
      --
      Slashdot: Failed Car Analogies. Amateur Lawyering. Anecdote Battles.
    101. Re:What is Twitter? by achacha · · Score: 1

      I would not generate HTML using C++, stick to MVC model, let C++ handle the controller stage and build the model then hand it off to any number of technologies setup for cross browser compatibility (XSLT, templated HTML, SOAP, RSS, XML or emit the model as JSON and use ext toolkit). There are a lot of ways and I have used ext with a lot of success, their code is really solid and lets you prototype a site quickly then attach JSON model and ajax calls (which are really nice to have in C++ so that the site feels responsive under load).

      Sure PHP and JSP is nice due to ease of getting things running quickly but when the load gets really high you are then faced with difficult problems which in some cases more hardware can solve but more often it requires a rewrite.

      Don't forget hardware is not just buying a computer, it also involves power consumption, cooling fees (air conditioning is quite expensive), network costs, storage/hosting costs, etc. I have worked in too many places where executives just state that they will throw more hardware at the problem and then complain when IT bills for infrastructure reduce their precious ROI to rubble :)

    102. Re:What is Twitter? by Anonymous Coward · · Score: 0

      ConsultantBarbie being worthy of mention too.

      Posting is hard, let's go shopping.

    103. Re:What is Twitter? by BaphometLaVey · · Score: 0

      Example twitter usage (Garcia): Taking a dump in the Superior National Forest. Wiped with McDs napkins. Waved to Craig and Chuck. about 23 hours ago from web

    104. Re:What is Twitter? by DarrenBaker · · Score: 1

      Thank god for MSN... I mean... Live Messenger! So much better, or so it tells me.

    105. Re:What is Twitter? by lgw · · Score: 1

      Yes, using C++ on the back-end makes sense. It's the idea of using C++ to emit HTML that had me scratching my head. No reason for the C++ code to know that there's a web server involved.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    106. Re:What is Twitter? by ThirdPrize · · Score: 1

      Considering it is all that Twitter does, I am suprised that more apps like Facebook haven't started doing it themselves. Once Facebook lets you text your innermost thoughts to all your friends Twitter will cease to exist.

      --
      I have excellent Karma and I am not afraid to Troll it.
    107. Re:What is Twitter? by Anonymous Coward · · Score: 0

      See Hilton, Paris If you think Paris Hilton is useless, you obviously have never seen the video that made her famous. The guy in the video found a lot of uses for her.
  2. There's a whole monty python sketch for this shit by Anonymous Coward · · Score: 1, Funny

    ...and maybe it won't? Maybe the moon is made of cheese, but maybe it isn't! who's to say?! This isn't news, it's a conversation starter for people who enjoy arguing.

  3. I'm surprised they didn't do it sooner by drix · · Score: 2, Insightful

    How complex can Twitter be on the inside? In the 1.5 years they've been publicly grousing about Rails they could have redone it ten times over.

    --

    I think there is a world market for maybe five personal web logs.
    1. Re:I'm surprised they didn't do it sooner by moderatorrater · · Score: 4, Funny

      You're obviously underestimating the amount of effort it takes to store usernames, passwords, and phone numbers in a database, then associate them with messages no more than 120 characters in length.

    2. Re:I'm surprised they didn't do it sooner by neoform · · Score: 5, Funny

      That sounds like advanced stuff to me.

      On an unrelated note, is anyone here good with hello world programs? Mine keeps crashing.

      --
      MABASPLOOM!
    3. Re:I'm surprised they didn't do it sooner by moderatorrater · · Score: 4, Funny

      I'm fairly certain your problem is trying to talk to the whole world at once. Your computer program's seeing that, and it's trying to yell too loud. Try doing "Hello user" and see if that helps.

    4. Re:I'm surprised they didn't do it sooner by ubernostrum · · Score: 1, Insightful

      You're obviously underestimating the amount of effort it takes to store usernames, passwords, and phone numbers in a database, then associate them with messages no more than 120 characters in length

      Yeah, because message queues and SMS gateways and email-parsing daemons just write themselves, freeing you up to belittle things on Slashdot!

    5. Re:I'm surprised they didn't do it sooner by Bogtha · · Score: 2, Insightful

      Yeah, because message queues and SMS gateways and email-parsing daemons just write themselves

      Twitter don't use Rails to handle most of that though, do they? I don't think drix is suggesting that they rewrite every piece of code they have, just the Rails portion.

      --
      Bogtha Bogtha Bogtha
    6. Re:I'm surprised they didn't do it sooner by prockcore · · Score: 2, Interesting

      Don't forget the aim bot.

    7. Re:I'm surprised they didn't do it sooner by ubernostrum · · Score: 1, Funny

      Grandparent asked "How complex can Twitter be on the inside?" Parent asserted that there's nothing more to it than a few database tables. Parent is ignorant, a jackass, or possibly an ignorant jackass.

    8. Re:I'm surprised they didn't do it sooner by Anonymous Coward · · Score: 0

      Humm sounds like a scaling problem, you're probably trying the whole world ... just try a little at a time

    9. Re:I'm surprised they didn't do it sooner by Wavebreak · · Score: 1

      I realize it's bad form to comment about specific moderations, but *informative*? Oh god.

      --
      Nobody expects the British Columbia Human Rights Tribunal.
    10. Re:I'm surprised they didn't do it sooner by vidarh · · Score: 1

      No, they don't, but on the other hand none of the things you listed are even remotely hard to write either (yes, I've written all of them, and yes they've been highly scalable - one of my message queue apps was even written in Ruby). It's hardly rocket science.

    11. Re:I'm surprised they didn't do it sooner by neuromancer23 · · Score: 0

      Actually they do:

      http://activemq.apache.org/

    12. Re:I'm surprised they didn't do it sooner by kalirion · · Score: 1

      Either that or use multicasting.

  4. Rails is a Ghetto by nacturation · · Score: 1
    --
    Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
    1. Re:Rails is a Ghetto by Anonymous Coward · · Score: 0

      Zed Shaw is a fuckhead, and if I ever see him on the street, I'm going to kick his ass.

    2. Re:Rails is a Ghetto by sm62704 · · Score: 1

      Horizontal scrolls in 1024x768? What a lamer! If that guy wants me to read a web page about technology he'd better learn to code a fucking web page. I mean jesus, HTML ain't exactly assembling machine code by hand.

      Does anybody have a javascript snippet to automatically go back a page if the idiot who wrote the page you landed on has a horizontal scroll? I'm too lazy to write the two lines needed (actually you could probably do it in just an anchor tag).

      Even though I didn't bother reading the page, It was informative: as it was a page about Ruby, it told me that Ruby users are fucking idiots and I'd better stay the hell away from Ruby. And Twitter.

      --
      mcgrew's razor: Never attribute to stupidity that which can be explained by greedy self-interest
    3. Re:Rails is a Ghetto by xant · · Score: 1
      --
      It's rare that you're presented with a knob whose only two positions are Make History and Flee Your Glorious Destiny.
    4. Re:Rails is a Ghetto by Hatta · · Score: 1

      Are we supposed to take the technical opinions of someone who threatens to beat up people who disagree with them seriously? All I saw was a bunch of personal insults and no technical opinions. Ruby on Rails may suck, but that's not going to convince anyone.

      --
      Give me Classic Slashdot or give me death!
    5. Re:Rails is a Ghetto by ZenDragon · · Score: 1

      I read that whole thing! lol I totally understand his frustration I have been in situations like that so many times before (though obviously in different areas). He says a lot of things the way I wish I could have said it. Very amusing read.

    6. Re:Rails is a Ghetto by FishWithAHammer · · Score: 1

      He's (mostly) joking. It's part of a very angry act.

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    7. Re:Rails is a Ghetto by hostyle · · Score: 1

      please post photos when you do. i know at least seven other people who care about some random ranter on the internet getting his comeuppance.

      --
      Caesar si viveret, ad remum dareris.
    8. Re:Rails is a Ghetto by segedunum · · Score: 1

      Are we supposed to take the technical opinions of someone who threatens to beat up people who disagree with them seriously? All I saw was a bunch of personal insults and no technical opinions.
      Most of it was tongue in cheek, but there was some stuff that made you wonder. The semi-colon in URLs always made me seriously wonder about the Rails people. Even then though, he still thinks Ruby is a good language and Rails is a decent framework in the hands of the right people.

      Yer, it was a bit of a rant, and I found parts of it quite funny, but the fact is that Zed Shaw has written solid code for Mongrel, which is pretty much the only way you can deploy a Rails application these days. When I first looked at Rails and saw the whole FastCGI deployment thing I shrieked in terror. For that reason, I have some respect for Zed and respect his point of view.
    9. Re:Rails is a Ghetto by gustolove · · Score: 1

      WTF? 1024x768? are we still in 1998? oh wait that's just you. Welcome to 2008.

    10. Re:Rails is a Ghetto by Serious+Callers+Only · · Score: 1

      the fact is that Zed Shaw has written solid code for Mongrel, which is pretty much the only way you can deploy a Rails application these days. Not any more - see mod_rails
    11. Re:Rails is a Ghetto by segedunum · · Score: 1

      Not any more - see mod_rails
      It matters little. The fact is that, despite a lot of hype from some people, without Mongrel Rails simply could not be deployed. mod_rails (mod_whatever) has been talked about for absolutely ages, and should have been around pretty much from the start.

      You just can't afford to what for _insert cool new Rails thing here_ to come along.
    12. Re:Rails is a Ghetto by sm62704 · · Score: 1

      Not only that, but my TV set is analog and has 512 scan lines. Guess what? The resolution on this monitor doesn't need to be any higher.

      If your web page has a lot of white space on the sides, or if it has horizontal scroll bars at any resolution, your site sucks and everybody but you knows it. Deal with the fact that people go to your site and instantly know that it was constructed by an incompetent coder.

      --
      mcgrew's razor: Never attribute to stupidity that which can be explained by greedy self-interest
  5. Does a clean architecture matter? by BadAnalogyGuy · · Score: 5, Interesting

    I have an argument with a coworker frequently about architectural orthogonality vs performance. I fall on the "architecture should be clean and easy to understand and maintain" side of the argument and he falls on the "speed, memory, and response time at all cost" side.

    What is more important? Is developer time and productivity over the software lifetime more valuable than CPU cycles? If the price of that productivity imposes a maximum limit on performance, how much optimization should be undertaken?

    It's a hard question to answer. On the one hand employees are expensive and hardware is cheap. On the other hand, you can't simply forego developing for performance just because of some religious belief that architecture should be clean.

    1. Re:Does a clean architecture matter? by magical_mystery_meat · · Score: 1

      If a platform won't scale, it is by definition not good for production usage, unless your volume is low and you have no intention or hope of growing in usage.

      Twitter outgrew its platform. It happens. If you're lucky, anyway.

      I'm more in favor of your co-worker's position. Code always tends toward sucking over time, and the longer the time, the more probability of hacks. Eventually your beautiful clean object model will become hacked and coupled and your shop will require specialized domain knowledge to maintain it. That's unavoidable unless you rewrite every so often.

      You could also make an argument that "clean architecture" is Taylorism in disguise.

    2. Re:Does a clean architecture matter? by Timesprout · · Score: 1

      Personally I come down on the side of clean architecture and consider performance to be an aspect of the overall architecture. A 'perfect' architecture is of no use if it does not meet the customers performance requirements and similarly an uber performant app quickly becomes redundant or forces the business into certain processes to accomodate it because its too fragile or too difficult to modify. I am prepared to compromise on design when necessary to achieve the requisite perfomance (assuming we started out using the appropriate tools in the first place) but I will not tear a design to bits just to save a few bytes or clock cycles.

      There is a lot to admire about Rails but performance has been an issue from day one. Rails proponents themselves have frequently commented that to get better performance the best solution was to throw more hardware at the problem but even that only goes so far.

      --
      Do not try to read the dupe, thats impossible. Instead, only try to realize the truth
      What truth?
      There is no dupe
    3. Re:Does a clean architecture matter? by quanticle · · Score: 1

      Frankly, I think Twitter is doing the wrong thing here. Its a very rare case for the actual architecture of the program to inhibit performance. Usually, the bottlenecks occur in one or two suboptimal modules, that, when optimized, significantly increase program speed.

      On the other hand, perhaps the bottlenecks are somewhere inside the Rails framework, and the Twitter team thinks that it'd be simpler to move to a new framework than to invest the effort to fix Rails.

      --
      We all know what to do, but we don't know how to get re-elected once we have done it
    4. Re:Does a clean architecture matter? by Abcd1234 · · Score: 1

      Yes, I bet you're right... I'm sure the Twitter people have never heard of profiling before.

    5. Re:Does a clean architecture matter? by Iraneus · · Score: 1

      The architecture needs to match the problem as well ... which is not the case here. Twitter is a modest msg routing problem, RoR sticks a DB into the flow of every msg, and DBs make really, really bad routers. No surprise that it's run into problems this early.

    6. Re:Does a clean architecture matter? by Penguin+Programmer · · Score: 2, Insightful

      I think Twitter has probably done it right: use the clean architecture to build the app cleanly and quickly, then put developer cycles into making it fast and efficient, possibly losing some of the niceness of the architecture in the process.

      That said, I don't really think that clean architecture and speed are orthogonal goals. Frameworks like Rails add overhead because they are general - they allow you to do all sorts of things on top of them, and still support all those things even when you're only using some of the functionality. You can maintain your clean design while improving efficiency. What you lose is the ease of adding new features, since you strip out the generality and agility of the framework.

    7. Re:Does a clean architecture matter? by vux984 · · Score: 4, Insightful

      On the other hand, perhaps the bottlenecks are somewhere inside the Rails framework, and the Twitter team thinks that it'd be simpler to move to a new framework than to invest the effort to fix Rails.

      That would be the crux of it, as I read it.

      The rails framework is aptly named. Its like driving a train. You follow the rails. Its easy, simple, and those are its strengths. But if one day, you decide you want to cut across a field save a few hours of travel, well, you probably shouldn't have chosen 'train' as your mode of transportation.

      The simpler and easier a framework is the harder it is to change its behaviour in ways the designers didn't expect. Its like using Microsofts web rendering controls in an application... they are drag and drop simple to use and that's great. But if you want to tweak them so they handle a particular css element in a different way [read standards compliant way], its not going to happen. The -best- you can hope for is to pre-parse the document to rewrite it in a way that the rendering control will get the appearance right, because you are NOT going to change the rendering behaviour itself easily. Better by far to just switch to a different rendering engine.

      Conversely the more robust a framework is, and the more hooks they give you to inject/alter behavior, the more complicated and bug-prone it is to develop with.

      Rails is a trade off... great when it fits what you need, abysmal when it doesn't. And rails in particular from what I've heard is especially frustrating when its 'oh-so-close-but-not-quite' what you need.

    8. Re:Does a clean architecture matter? by nuzak · · Score: 1

      > Is developer time and productivity over the software lifetime more valuable than CPU cycles?

      For development, you bet it is. For production, I'd rather pay developers to work on a faster platform than have to purchase and manage five times more hardware just to make the thing scale. The "hardware is cheap" argument runs hollow when you start literally running out of data center space all because the software is crap.

      --
      Done with slashdot, done with nerds, getting a life.
    9. Re:Does a clean architecture matter? by samkass · · Score: 3, Insightful

      While system responsiveness is often a product of optimization, scalability rarely is. When a system can scale across orders of magnitude, it's because of a clean, maintainable architecture that allowed components to be completely revamped and swapped in, identified and eliminated high-polynomial (or worse) growth patterns, and allowed more developers to be spun up on it fast enough to keep up with demand.

      On the other hand, if you spend all day pondering the ultimate architecture, you'll never ship and if you do you won't meet requirements. Learning where those tradeoffs are is all about experience and is why the engineers with over a decade of real world experience earn more.

      --
      E pluribus unum
    10. Re:Does a clean architecture matter? by nuzak · · Score: 1

      > DBs make really, really bad routers [appistry.com]

      I was expecting some actual explanation, but this just reasserted the point without any support. A sort of blog spam I suppose, but I guess no more obnoxious than all those "trackbacks" and "pingbacks".

      Most JMS systems use a database for a message store. So does MQSeries. Big Erlang apps also tend to use a database like MNesia, but I'll admit that's a different sort of thing, and it's also fully distributed.

      Come to think, Erlang's a right nice candidate for Twitter. Shame the language itself is not terribly fun to work with (chars as 4-byte ints, but no unicode support. Wacky.)

      --
      Done with slashdot, done with nerds, getting a life.
    11. Re:Does a clean architecture matter? by Spliffster · · Score: 1

      I have an argument with a coworker frequently about architectural orthogonality vs performance. I fall on the "architecture should be clean and easy to understand and maintain" side of the argument and he falls on the "speed, memory, and response time at all cost" side.

      I prefer: use "architecture should be clean and easy to understand and maintain" until it starts to fly, then rewrite crucial parts as in "speed, memory, and response time at all cost"

      It's not rocket sience really.

      all those frameworks help you get something done rather quickly, when it gets popular you are supposed to make some money and can affrod a rewrite of the crutial parts. If not, something went wrong

      -S
    12. Re:Does a clean architecture matter? by Anonymous Coward · · Score: 2, Insightful

      What is more important? Is developer time and productivity over the software lifetime more valuable than CPU cycles? If the price of that productivity imposes a maximum limit on performance, how much optimization should be undertaken?

      It's a hard question to answer. On the one hand employees are expensive and hardware is cheap. On the other hand, you can't simply forego developing for performance just because of some religious belief that architecture should be clean. This position presents a false dichotomy: a choice between achieving passable performance through good design, versus optimizing for developer efficiency. Efficient use of resources and ease of development are not mutually exclusive -- why should they be?

      When developers say "Hardware is cheap" in response to poor architectural choices, what they're really saying is that "Our hardware costs are externalized".

      This has little to do with "speed, memory, and response time at all cost", and everything to do with architecting for your problem space, avoiding grossly inefficient architectures -- you must model the natural concurrency of the system, use only the RAM you need to get the job done (not the RAM you need to run 50 duplicate interpreters), etc.

      The basic architecture of shared nothing, fork()-based scaling in Rails is flawed in this regard, and that has little to do with developer productivity and everything to do with poorly thought out architecture, and poorly implemented abstractions.
    13. Re:Does a clean architecture matter? by anomalous+cohort · · Score: 1

      This argument is relevant. I cannot speak for twitter but I have seen many a company develop a poor architecture in-house, experience poor results, rewrite the whole thing at great cost, and blame the technology instead of the architecture for political reasons. It's an easier sell to the CEO to ask for the rewrite when the blame game is targeting someone who can't defend himself.

      There is some confusion here about the issue. The post here seems to be about performance whereas the original article referenced scalability as the issue. Performance and scalability are two different things.

      The argument is a false dichotomy. You can have an architecture that is both clean and performs well. This is usually brought about by a lot of reliance on caching. I am not a rails guru but it is my understanding that rails attempts to support caching via the query cache, page caching, action caching, and fragment caching. If the application uses javascript and XHR on the web browser, then consider using the HTML and HTTP cache directives.

      Here is a more interesting dichotomy. Can you have an architecture that performs well and is scalable? It is not possible to optimize for both. There is always going to be some trade offs here so the job of the architect is to pick a judicious and relevant combination of the two.

    14. Re:Does a clean architecture matter? by mini+me · · Score: 1

      And rails in particular from what I've heard is especially frustrating when its 'oh-so-close-but-not-quite' what you need.


      Frustrating because you have to code what you what instead of letting the magic do it for you? Rails is incredibly easy to modify and extend to do exactly what you want it to be thanks to the monkey-patching abilities of Ruby. But you can't expect the magic to work in every situation.
    15. Re:Does a clean architecture matter? by Anonymous Coward · · Score: 0

      Wow, did you really just advocate monkey-patching as a means of working around implementation deficiencies?

      Holy crap, the Rails community *REALLY IS* a bunch of amateur dipshits.

    16. Re:Does a clean architecture matter? by mini+me · · Score: 1

      Who said anything about deficiencies? If I want a method to work like this, and Rails works like this, I can just overwrite the method. That doesn't mean the Rails way is wrong, just different. It is a system that works very well in the real world.

      No framework is going to always work 100% exactly how you want it to, but at least Rails makes it easy to change it to your exact specifications.

    17. Re:Does a clean architecture matter? by shutdown+-p+now · · Score: 1

      Its like using Microsofts web rendering controls in an application... they are drag and drop simple to use and that's great. But if you want to tweak them so they handle a particular css element in a different way [read standards compliant way], its not going to happen. The -best- you can hope for is to pre-parse the document to rewrite it in a way that the rendering control will get the appearance right, because you are NOT going to change the rendering behaviour itself easily. Better by far to just switch to a different rendering engine.
      The rest of your post is sound, but this particular snippet is simply technically incorrect, assuming we're talking about ASP.NET. All stock Web controls provide a protected non-sealed virtual method named "RenderControl" (actually, they all inherit it from their common base class). You can always override that in a derived class, and do what you see fit in your implementation, without any preparsing.
    18. Re:Does a clean architecture matter? by jeremyds · · Score: 1

      Premature optimization is the root of all evil.
      - Donald Knuth


      It's never a good idea when developing an application to prematurely optimize everything for performance at the expense of clean, well-structured, and easy to maintain code. You simply don't know where your performance bottlenecks will be until the application is in production. Only then does it make sense to go back and optimize the code.

      I've generally found that you only need to optimize a very small percentage of the code for large performance gains. Thus you end up with a very clean code base that is both easy to maintain AND has excellent performance.

    19. Re:Does a clean architecture matter? by Shados · · Score: 1

      You don't even need that much. In ASP.NET you can dump a separate component adapter that will change the output of the control without having to touch (or inherit from) the original control. Its pretty handy honestly, since it allows you to change the output of a web site without touching the web site code.

    20. Re:Does a clean architecture matter? by vux984 · · Score: 2, Informative

      The rest of your post is sound, but this particular snippet is simply technically incorrect, assuming we're talking about ASP.NET.

      That would be an incorrect assumption. I was actually referring to a winforms web browser control:

      e.g.
      http://msdn.microsoft.com/en-us/library/2te2y1x6.aspx

      This is a control that takes an url or webpage as input and renders it in a control. Its basically an embeddable web browser. And of course it relies on the Internet Explorer (Trident) rendering engine. I use them, for example, for printing in quick and dirty utility apps. Suppose I've got some data structured as an xml document -- its SOOO easy to just write a quick xsl transform, and push the xml through it to an attractive formatted html/css document and feed it to this control which renders it, and can also print it.

      Instant attractive report printing, and as a bonus I've got attractive onscreen display that copes with rezizing etc, the option to save as html/css. or even as an xml/xsl pair. Which makes it easy for someone else to work with the data, and view it attractively.

      Contrast with the effort of developing something to print 'manually'. Which just gets me printer output and is a TON more work.

      The big handicap though is that I'm basically embedding 'Internet Explorer', and leveraging its features... but I get all its warts too, and have little real control over the rendering.

      All stock Web controls provide a protected non-sealed virtual method named "RenderControl" (actually, they all inherit it from their common base class). You can always override that in a derived class, and do what you see fit in your implementation, without any preparsing.

      All true, and I'm a big fan of ASP.NET because of this. The only things that really bug me about asp.net rendering output is that:

      a) some of the defaults really suck (but can be easily fixed as per above),

      b) the fact that they seem to have disowned maintaining the browser-capabilities which is why safari 3 gets treated as 'downlevel' for items like certain menu control configurations when it's more than capable of handling the uplevel code correctly. And worse the company they handed it off to... 'cyscape' has even less interest in maintaining it... no they want me to pay for their product that does it.

      If Microsoft wants to support uplevel/downlevel browsers and send custom code to different browsers, that's great. But I shouldn't have to manage this myself except maybe for bleeding edge beta browsers. And I certainly shouldn't have to bloody pay for it.

      c) the __VIEWSTATE and a couple other item names that piss off 'html tidy' and don't validate as strict xhtml. I've never found a good way of 'fixing' that. I've seen a few idiotic solutions that run a regex on the incoming requests and outgoing pages to fix it, but that's a stupid performance hit just to get a 'green-checkmark'.

      -cheers

    21. Re:Does a clean architecture matter? by Sinical · · Score: 1

      I would say that premature optimization should be avoided per Knuth's epigram, but at least where I work, hardware is only "sorta" cheap. Sure, it's $100k+/year of salary per developer, but if you have 10k machines deployed, a 10% increase in performance saves you 1k machines. Alternatively, think about it in terms of user time. If we offer responses 10% more quickly, I'm sure that adds up to thousands of man years in days or weeks when we're serving hundreds of thousands of requests per second. Plus it can be a competitive edge to say "We can support 2*X users for the same cost as competitor ABC supporting X users."

      Also, I think that keeping performance in mind, even if not as the chief focus, can really improve a design. I don't think that performance necessarily means "Horrid Hacks R Us".

    22. Re:Does a clean architecture matter? by bill_kress · · Score: 3, Insightful

      Premature Optimization is the root of all evil.

      I've never seen anything saying otherwise.

      Follow any of these sets of rules:

      http://c2.com/cgi/wiki?RulesOfOptimization
      http://schwern.org/~schwern/talks/What_Works/What_Works/slide016.html
      http://www.cs.cmu.edu/~jch/java/rules.html

      Or my version--
      1) Don't optimize, no really, don't.
      2) If you absolutely have to, write it unoptimized, test it, write it optimized, then:
      2a) If the first is anywhere in the ballpark, throw away the second,
      2b) If the second has enough of a proven, documented speed gain to get you past some accept/no accept barrier, comment out the slower one, but keep it so the next guy can follow the "Good" code.

      If you don't document exactly what you did in the code and why, I'm going to refactor it into something readable the second I see it.

      Also--know how to program. Choosing a linked list instead of an array list for an insertion sort is just programming correctly. It's not an optimization.

      -1 offtopic... Just wanted to help the parent out with his cow-orker.

    23. Re:Does a clean architecture matter? by Anonymous Coward · · Score: 0

      it requires an understanding of rails internals which limits it's practicality. see the parallel discussion about asp.net being designed for extendibility.

    24. Re:Does a clean architecture matter? by 16K+Ram+Pack · · Score: 1
      You're both wrong :)

      The correct answer is to use what's appropriate and think in terms of cost (including long term). If you were at Google and wanted to rewrite the search engine, you'd be working in C++ for most of it. You'd possibly be thinking about how you store each piece of data for optimised storage and retrieval speed.

      That solution needs it. On the other hand, if you're building an information application with 1000 hits/hour peak, speed isn't your critical matter. It's developer time. You want something that makes code maintenance cheap and that means something like Java or .net, with well-defined classes, the simplest use of data, and barely any tricksy optimisation.

      The real challenge is when something small gets bigger. I worked in a business where a system for a business area that they thought would be small hit big. It had been deployed on a really nasty architecture, and they had to rewrite it to make it work properly.

    25. Re:Does a clean architecture matter? by Evil+Pete · · Score: 1

      Make it work. Make it Right. Make it Fast. In That order!

      Architecture first, design next, get it doing what it is supposed to do. Optimise for speed. Maybe iterate over the design if a new algorithm is needed. And yeah there are sure to be exceptions. There is no algorithm for correct software implementation.

      --
      Bitter and proud of it.
    26. Re:Does a clean architecture matter? by chez69 · · Score: 1

      I just to make sure everybody realizes this about JMS/MQ: the DB is for storage not for routing. The message brokers like DBs because ones with proper transaction support makes it easier on them. It's easy to determine the message got stored in the queue if the database insert succeeded. After the insert, send the ack to the sender. Otherwise, they'd have to save the message, take some checksum, and make sure it got written ok before sending the ack.

      Getting back to his blog entry, yes, it's lame. I can draw from my experience on why it's a bad idea. I used to work on an application where the manager didn't trust messaging at all. we had a bunch of daemons polling a database, we used it as a router! We had several parts of our system that depended on events and to know if those events happen, we had to poll the database. This works ok for low load, but once the load went up, it killed us. We had lots of processes constantly bugging the DB for work, which generated locks, which blocked other stuff, etc... I re-wrote some of the stuff form C to java and changed some of the notification to use sockets instead of table notification. That one part scaled much better.

      This was a situation where messaging (JMS/MQ/whatever you like) shines, because your processes just sit in a sleep state until something they care about happens.

      --
      PHP is the solution of choice for relaying mysql errors to web users.
    27. Re:Does a clean architecture matter? by GileadGreene · · Score: 1

      What is more important? Is developer time and productivity over the software lifetime more valuable than CPU cycles? If the price of that productivity imposes a maximum limit on performance, how much optimization should be undertaken?
      The answer to that question depends on the customer, the project, and the end-user. The tradeoff (to the extent there is one - and as others have already pointed out, there doesn't have to be) must be resolved in the context of whatever project you're working on. For some customers, performance will be critical, and they'll be willing to pay large amounts to get it. Others just want something cheap that runs "fast enough". Finding the right answer for a particular customer and project is part of the software engineering effort.
    28. Re:Does a clean architecture matter? by Anonymous Coward · · Score: 0
      On the other hand, you can't simply forego developing for performance just because of some religious belief that architecture should be clean.

      That makes no sense. Why would a belief that architecture should be clean lead to foregoing developing?

    29. Re:Does a clean architecture matter? by Anonymous Coward · · Score: 0

      Both! I would decide how the app is SUPPOSED to operate and make sure it's design is clean. Write clean modules and get the app operating correctly. THEN, worry about optimizations. Two purposes here:

                1) Bugs! If you're writing up a new app, you want to make sure it works before making it hard to read and debug. Murphy's law dictates that those cunning optimizations being put in from the start will make some hard-to-find bugs later on. Making the code work first, then introducing bugs via optimizations, makes it easy to "roll back" to the working version while the buggy one is debugged.

              2) You have a "reference design". When and if you want to replace, port, etc. this code later, instead of being "I don't know what the heck this code is doing", you can be "I don't know what the heck THIS code is doing, but here's the simply-coded reference design."

    30. Re:Does a clean architecture matter? by hackstraw · · Score: 1

      What is more important? Is developer time and productivity over the software lifetime more valuable than CPU cycles?

      There is no Moore's "law" regarding developer productivity.

      Also, an architecture that is clean an easy to understand an maintain makes people happy a) keeps them around b) when they do leave, new people can understand what in the world is goin g on.

      I have the unfortunate temporary situation where I have neither a clean design, nor a performant one. I'm also talking with two other employers...

  6. According to Penny-Arcade: by spun · · Score: 4, Informative

    This is what Twitter is for.

    --
    - None can love freedom heartily, but good men; the rest love not freedom, but license. -- John Milton
    1. Re:According to Penny-Arcade: by Enderandrew · · Score: 1

      Verily, you speak the truth.

      --
      http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
    2. Re:According to Penny-Arcade: by mini+me · · Score: 2, Informative

      And Penny Arcade is a Rails site!

    3. Re:According to Penny-Arcade: by dubbreak · · Score: 1

      Okay poop is coming out
      Ah yes, twitter users are create at expelling excrement.
      --
      "If you are going through hell, keep going." - Winston Churchill
    4. Re:According to Penny-Arcade: by Anonymous Coward · · Score: 0

      What a shitty comic.

  7. Re:There's a whole monty python sketch for this sh by nine-times · · Score: 1

    ...and maybe it won't? Maybe the moon is made of cheese, but maybe it isn't! who's to say?! This isn't news, it's a conversation starter for people who enjoy arguing.

    Isn't that what we do here?

  8. RoR dev team by Anonymous Coward · · Score: 0

    With douchebags like "Zed" (of "Zed is So Fucking Awesome" fame) working on RoR (you might remember his "rant" which was featured here on slashdot a few months ago - he basically threatened to beat everyone else in the world up because he's such a bad ass), why would we expect RoR to be anything other than a steaming pile of shit?

    1. Re:RoR dev team by Anonymous Coward · · Score: 0

      RoR is the bomb, meaning that it causes things built using it to crash, burn, and explode.

    2. Re:RoR dev team by segedunum · · Score: 1

      With douchebags like "Zed" (of "Zed is So Fucking Awesome" fame) working on RoR
      He didn't work on RoR, and his blog was a rant against the people who are. He wrote code and produced the only feasible way of deploying Rails applications so they didn't need restarted ten times a day - Mongrel.
  9. In one summary we get an issue that is not real + by 1_brown_mouse · · Score: 1

    one debate that is yet to be resolved, if ever.

    The whole cause is not real and debunked. But the crowd is spoiling for a fight.

  10. "Probably" a tweet? by nevali · · Score: 1

    Given that the linked "comment" is a status message on Twitter, it's most definitely a tweet. No "probably"Âabout it. Half an ounce of logical thinking would have told kdawson that.

    1. Re:"Probably" a tweet? by Sockatume · · Score: 1

      Half an ounce of RTFA, you mean. Of course, this being the internet...

      --
      No kidding!!! What do you say at this point?
  11. Ruby Can't Scale by Foofoobar · · Score: 5, Insightful

    And for all those Ruby people in denial to the fact that people have been saying this for years, here is your proof yet again. Of course I will be marked down as being a troll for pointing this out by the RUBY comunity but it is time that they acknowledge the inherent achilles heel of the language.

    --
    This is my sig. There are many like it but this one is mine.
    1. Re:Ruby Can't Scale by mini+me · · Score: 1

      From all the statistics I can gather, Yellowpages has quite a bit more traffic than Twitter and it seems to be performing just fine. Without seeing the code, their experience is mostly meaningless. I can write a program in assembly that will perform worse than the same program written in Ruby if I wanted to. Does that mean assembly won't scale?

    2. Re:Ruby Can't Scale by PylonHead · · Score: 1

      So, your proof is a rumor that has been immediately denied by the people actually running the site?

      QED! QED! You go man!

      --
      # (/.);;
      - : float -> float -> float =
    3. Re:Ruby Can't Scale by Sancho · · Score: 1

      Rails has its place. It's a toy that you can use to build small-scale sites, and it's a tool that can be used for rapid prototyping in preparation for coding with a more appropriate tool. The problem is that people try to build large-scale, production sites using Rails, and they find that it just isn't elegant anymore due to the hacks that you have to do to get it to support large volumes of users.

      Of course, by then, they're committed, both in development time and emotionally to the project. It's hard to let go of that, so rather than spending a little time rewriting the site in a more suitable language, they just try to fix Rails over and over. I hate PHP, by the way, but it's quick and efficient. One might try Python, though, if they're trying to get away from Ruby, or Django if they're trying to get away from Rails.

    4. Re:Ruby Can't Scale by ivan256 · · Score: 3, Informative

      They're complaining that the framework can't scale. Not the language.

      Please refrain from commenting when you don't know what you're talking about. The desire to stir up a flamewar is not sufficient justification.

    5. Re:Ruby Can't Scale by Anonymous Coward · · Score: 0

      Hello Mr. troll. The twitter developers chose to use a full stack high productivity framework for a simple website, that just can't use caching properly. It became popular and it doesn't scale.. oh my.. call me shocked. Well I for one think you should first worry about having the users in the first place, and then bash ruby/rails for being slow. I just fail to grasp, why "Rails cant scale(TM)" is even an issue, if you don't have any users to begin with. You're afraid you'll end up like twitter .. very popular ..

    6. Re:Ruby Can't Scale by Masters+Champion · · Score: 2, Interesting

      What is it exactly, about the framework/language that makes it difficult to scale? Honestly, I've heard this complaint about RoR for years, but no one I know has enough knowledge to verbalize the issues. Can someone who is knowledgeable in RoR give a few points here?

    7. Re:Ruby Can't Scale by Firehed · · Score: 1

      I think the slew of 37 Signals/BaseCamp stuff is also RoR powered, and I don't remember ever hearing about scalability problems for them. I think the issue with Twitter is that every time someone tweets, a mail message goes out to tens to tens of thousands of people, and mailservers tend to not really care for that much activity especially when real time messaging is expecting. Architecturally, a tweet is just an INSERT query followed by a SELECT with some not especially complex JOINs - it's just that every row of the SELECT result requires a message in some format (primarily email, assuming they're using the phonenumber@carrier.com approach for texting, though they also have an AIM service - AFAIK all of the other clients are pull services rather than actually having content pushed to them).

      You try sending out several hundred emails every time someone clicks a button on your site when there are thousands of users clicking that button several times a day and try not having scalability issues on any platform. My own experience with Ruby/RoR has been minimal but unpleasant, but unless they're doing something god-awful with their databases like I did with my very early code (read: foreach loops in the scripting language instead of a single join in the sql), I think the issue lies outside of the language/framework.

      --
      How are sites slashdotted when nobody reads TFAs?
    8. Re:Ruby Can't Scale by Standard+User+79 · · Score: 2, Informative

      Sure, the problem is that 1) Rails isn't thread safe/no native threads and 2) Ruby processes are very expensive in memory.

      So. Since rails isn't thread safe you have to use a process model where one process handles one request. Now these ruby processes can get up to 100MB in ram (depending on application). That means it takes 100MB to post a comment, display a page,etc.. This is an extremely unforgiving environment when you are trying to scale. There are many scenarios where just a little extra i/o wait in your system will cause everything to crash and burn.

      A lot of RoR developers are looking at merb. No native threads but it is thread safe and solves the problem I described above.

    9. Re:Ruby Can't Scale by Standard+User+79 · · Score: 1

      According to Zed Shaw, 37 signals was restarting their servers 400 times a day. This is one of the problems with 37sig; they won't speak on any negative aspects of RoR, you just have to figure it out by yourself.

    10. Re:Ruby Can't Scale by Foofoobar · · Score: 0, Flamebait

      They are debating on whether the language can scale. That's why they are thinking of using JAVA or PHP instead. If they thought the language could scale on it's own and they already had fully trained staff of RUBY developers, it wouldn't be a debate now would it? Think about it genius... I'll give you some time since you are a RUBY dev and it takes you twice as long to process.

      --
      This is my sig. There are many like it but this one is mine.
    11. Re:Ruby Can't Scale by Anonymous Coward · · Score: 1, Insightful
      Well for starters, active record and the notion that everything always should go to the database. In the rails world, caching refers to page generation where in like the ASP and J2EE worlds, there is also data caching from the database. On your desktop, with your blog, a database query is cheap and fast, on a real system it can be expensive and slow. Active record is remarkably chatty to begin with. If you can make the database fast enough then in theory you can have an army of rails servers blasting it for every page hit, that's hard to do though, very very hard when you reach certain volumes.

      No threading or service module notion. Everything is tied to servicing a web page. Long lived jobs mean long lived web page renders. It also forces you to scale via page hits scaling rather than in other ways. There are more fined grained ways to break tasks up to scale.

      Ruby itself is kind of pokey at a lot of things. Sure it's "fast enough" for a lot of things too but are you sure its "fast enough" for the things you intend to do? Or will you write them in some other language and then interface and shim it in? Which may make it perform faster but take a different amount of development time. The scaling of dev time is also a variable, not just the upfront zero to a database CRUD time, but zero to a delivered product time and then the next release time.

      The short of it, if you ask me, is a more fundamental issue: it's just not built for big tasks. The architect(s) of Rails approach enterprise software and the various technologies to build it with disdain and look at it like a lot of meaningless engineering for the sake of engineering. There is definitely a dose of that that actually exists in the world but you're a complete fool if you think that the industry as a whole has arrived where they are in that regard without need. There are a lot of high volume, high performance j2ee systems out there that don't do a lot of exotic things; there are no high performance Rails sites that don't do almost everything in an exotic fashion. That all begs the question to me... There is no "Rails way" to do high performance. Unless that means completely unconventional and custom.

      That being said, fire up Rails or Grails (if you go that way) and bang out some AJAX enabled CRUDs and I promise you, you'll fall in love with it. Compared to setting up some EJB (pre v3) and building some servlets, it's a fucking dream.

    12. Re:Ruby Can't Scale by ivan256 · · Score: 2, Insightful
      You don't have to RTFA. Just read the fine summary:

      Candidates to replace Rails are said to be PHP, Java, and Ruby without the Rails framework.


      If the language were a problem, then Ruby without Rails wouldn't be an option, now would it? Think about that, genius.

      And actually, I'm not a ruby developer. Nice try though.
    13. Re:Ruby Can't Scale by Captain+Spam · · Score: 1

      It's the Life of Brian conclusion. Because the rumor was denied, it must be true!

      "I'm not the Messiah! Will you please listen? I am not the Messiah, do you understand? Honestly!"
      "Only the true Messiah denies His divinity!"
      "What?! Well, what sort of chance does that give me?"

      --
      Demanding constant attention will only lead to attention.
    14. Re:Ruby Can't Scale by mini+me · · Score: 1

      Look a little closer. He says they were restarting the application maybe once a day. Still not ideal, but nowhere near 400 times. Unfortunately, his choice of words to anyone who hasn't deployed a Rails application will make it look like it really was 400 times a day.

    15. Re:Ruby Can't Scale by DragonWriter · · Score: 1

      And for all those Ruby people in denial to the fact that people have been saying this for years, here is your proof yet again.


      Since when is an unconfirmed second-hand report "proof" of anything. And, anyway, even if the reports were true, they don't prove that Ruby can't scale since one of the things they are reportedly considering dumping Rails for is Ruby without using the Rails framework.

      Rumor is not the same thing as proof, and, even if it was, a particular user finding a system doesn't scale well for them doesn't prove that that system can't scale, and, even if it did, Ruby is not the same thing as Rails.

      Nice try, though.
    16. Re:Ruby Can't Scale by Foofoobar · · Score: 0, Flamebait

      They don't know whether RUBY can or can't scale and threw it in just because they have dedicated so many resources and now have to evaluate it without the framework coded in RUBY... which seems odd as other languages which have frameworks coded in their native language seem to scale just fine. Hmmm.... 2+2, genius. Again... I'll give you some time to process. RUBY developers still haven't processed this and it seems they are in an infinite loop of denial.

      --
      This is my sig. There are many like it but this one is mine.
    17. Re:Ruby Can't Scale by DragonWriter · · Score: 1

      It's a toy that you can use to build small-scale sites


      Define small-scale sites and explain how that definition applies to yellowpages.com.

    18. Re:Ruby Can't Scale by Sancho · · Score: 1

      So what do the Twitter folks think is going to change by going to another platform? If the problem were really just the scale of the messages, as you suggest, then the obvious solution would be to pass those messages off to specialized servers designed to handle them. If server load isn't the problem, then adding bandwidth would help.

      Something just doesn't seem right here. Either the problems that they're experiencing aren't just message passing (as you suggest) or the Twitter folks haven't done enough tests to see where the bottleneck is, and jumping to another platform using a similar design won't help them.

    19. Re:Ruby Can't Scale by DragonWriter · · Score: 1

      They are debating on whether the language can scale. That's why they are thinking of using JAVA or PHP instead. If they thought the language could scale on it's own and they already had fully trained staff of RUBY developers, it wouldn't be a debate now would it?


      Even granting, arguendo, that the rumors TechCrunch is reporting should be treated as fact, that doesn't follow. If there concern is not with the languages scalability, but the framework, then they would evaluate other frameworks, including possibly those based in other languages, especially if they've decided that they really don't want to right their own framework from scratch, regardless of what the language could support if used right. Having Rails experience may be a plus in favor of another Ruby framework (especially one that was similar), but its doesn't limit the search space for replacements to other Ruby frameworks if you have a problem with Rails, its just a factor you weigh in considering replacements.

      BTW, neither Java nor Ruby are initialisms, and they shouldn't be presented in all caps.
    20. Re:Ruby Can't Scale by Foofoobar · · Score: 1

      Ruby os not the same thing as Rails? I'm sorry but what the hell do you think Rails is programmed in??? C #? PHP? No, it's programmed in RUBY as well... So if Ruby with Rails (Ruby) does not scale, I doubt another framework is going to do any better. It's funny though that other languages like Java and PHP have frameworks programmed in their native languages that scale just fine and Ruby doesn't ... and yet Ruby developers STILL insist that Ruby scales perfectly well.

      --
      This is my sig. There are many like it but this one is mine.
    21. Re:Ruby Can't Scale by FishWithAHammer · · Score: 1
      No, he said that they were restarting the application 400 times a day. Quote:

      (15:11:12) DHH: before fastthread we had _400 restarts/day
              (15:11:22) DHH: now we have perhaps 10
              (15:11:29) Zed S.: oh nice
              (15:11:33) Zed S.: and that's still fastcgi right?

      Notice how it took me a few seconds to reply. This one single statement basically means that we all got duped. The main Rails application that DHH created required restarting _400 times/day. That's a production application that canâ(TM)t stay up for more than 4 minutes on average.

      Let me put this into perspective for you: I've ran servers that needed to be restarted once in a year. They were written in PHP, Python, Java, C, C++, you name it. Hell, I've got this blog on a server I've restarted maybe 10-20 times the whole year.

      Now, DHH tells me that he's got 400 restarts a mother fucking day. That's 1 restart about ever 4 minutes bitches. These restarts went away after I exposed bugs in the GC and Threads which Mentalguy fixed with fastthread (like a Ninja, Mentalguy is awesome).

      If anyone had known Rails was that unstable they would have laughed in his face. Think about it further, this means that the creator of Rails in his flagship products could not keep them running for longer than 4 minutes on average.

      Repeat that to yourself. "He couldn't keep his own servers running for longer than 4 minutes on average."

      Assuming his statements are true (which we may never know) he basically duped us all. Thank you, come again.
      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    22. Re:Ruby Can't Scale by mini+me · · Score: 1

      You are misinterpreting what he is saying. A Rails application could easily have 400 instances. They were restarting them once or twice a day. I'm not sure where it is off hand, but there is a DHH quote that confirms what I am saying.

    23. Re:Ruby Can't Scale by Doctor+Faustus · · Score: 1

      Define small-scale sites and explain how that definition applies to yellowpages.com.
      I don't have a full definition (I suspect it's going to be different for each tool), but "very few updates" would be part of it.

    24. Re:Ruby Can't Scale by DragonWriter · · Score: 1

      Ruby os not the same thing as Rails?


      Correct. Ruby is not the same thing as Rails. Rails is one of many web application frameworks written in Ruby, and it has many differences relevant to performance (and development) to any of the other ones. In fact, the motivation to develop many of the ones that are newer than Rails has been to address things that people found problematic in Rails. Rails having a problem doesn't mean that Ruby has that problem, any more than the fact that a particular piece of C code doesn't work right means that C is broken.

      So if Ruby with Rails (Ruby) does not scale, I doubt another framework is going to do any better.

      Ruby on Rails is not the same thing as Ruby, again. Its a framework. Its design is not the only framework design possible on Ruby, and if it really doesn't scale (something which many people argue without any concrete demonstration or apparent factual basis other than "someone else reportedly said it didn't"), those design choices and not the underlying language may be involved. Rails not scaling (if it doesn't) does not say anything about Ruby, and putting Ruby in parentheses after the name to imply that it is valid to generalize about Ruby from Rails doesn't change that.

      It's funny though that other languages like Java and PHP have frameworks programmed in their native languages that scale just fine and Ruby doesn't ...


      Its far from established that Ruby doesn't in any sense that those other languages do; first, because its not established that Rails doesn't scale, and second because Rails isn't the whole universe of Ruby-based web application frameworks; what is true of Rails is likely not true of Merb (whose main motivation was addressing performance issues), or Waves or Nitro or Camping or ...

    25. Re:Ruby Can't Scale by Anonymous Coward · · Score: 0

      but it is time that they acknowledge the inherent achilles heel of the language. ... which is...?

    26. Re:Ruby Can't Scale by shutdown+-p+now · · Score: 1

      Ruby as a language can scale no worse than Python; it's the default implementation that sucks. However, I've heard that JRuby is doing noticeably better on the performance front, and, with DLR being specifically tuned for dynamic languager, my hope is that IronRuby will be even better.

    27. Re:Ruby Can't Scale by FishWithAHammer · · Score: 1

      You are misinterpreting what he is saying. A Rails application could easily have 400 instances. They were restarting them once or twice a day. I'm not sure where it is off hand, but there is a DHH quote that confirms what I am saying. Given how mindnumbingly idiotic DHH is, I'll go with Zed on this one.
      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    28. Re:Ruby Can't Scale by ivan256 · · Score: 1

      What do trolls eat, exactly? Logic? Should I keep pointing the faults in yours out to keep you well fed?

      Why bother. I'll just call you an idiot and forget about this thread... Enjoy, and make sure your last-word response is sufficiently clever. I wouldn't want you to miss out on that happy feeling you'll get when you imagine me struggling not to quip back.

    29. Re:Ruby Can't Scale by Foofoobar · · Score: 1
      Well you seem to think Rails was written in Portuguese and not Ruby then and that somehow something other than the language it was written in is causing this mysterious scaling issue that people have been 'making up' for years about poor old Ruby. It must be a myth or else you would be wrong wouldn't you and thousands of other developers in Python and Java and C and PHP and companies that have adopted Ruby and then dumped it would all be so very right. What a horrible thing that would be.

      If I built a house out of cheese with a hammer made from cheese and the house began to crumble, would you say it's because of the hammer made from cheese or because cheese isn't a stable building material? Because right now you are saying it's the cheesey hammer and you're sounding like an idiot.

      --
      This is my sig. There are many like it but this one is mine.
    30. Re:Ruby Can't Scale by Foofoobar · · Score: 0, Offtopic

      I have 5 insightful mod points that say I more logical than you so nyah! :)

      --
      This is my sig. There are many like it but this one is mine.
    31. Re:Ruby Can't Scale by abigor · · Score: 1

      Why do you write language names in all caps? They aren't acronyms - ie it's "Ruby", not "RUBY", and "Java", not "JAVA". Just wondering.

    32. Re:Ruby Can't Scale by randyest · · Score: 1

      Why be such a dick about this? You know, I have no dog in this race, but after reading your mean-spirited replies, I've decided to just assume you're wrong and the guy with whom you're arguing is right.

      Just FYI, in case you might care about how well you're persuading people to agree with your views.

      --
      everything in moderation
    33. Re:Ruby Can't Scale by ivan256 · · Score: 1

      That last comment wasn't trying to persuade him, because he wasn't looking to engage in a discussion. He was looking to stir the pot. If I thought I could persuade him of something I would have been nicer about it.

      Look at his last post.

      "other languages which have frameworks coded in their native language seem to scale just fine. Hmmm.... 2+2, genius."

      "RUBY developers still haven't processed this and it seems they are in an infinite loop of denial."

      And look at his posting history.

      So I was just a dick right back at him. Doesn't matter anyway... His incorrect, trolling comment got modded up to +5, so he has a karma bonus with which to troll in other threads now.

      If I wanted to be persuasive, I'd have mentioned how you can code inefficiently in any language, and how there are bad frameworks in the other languages he's mentioned, and how Rails itself has been copied by other languages. But there's no point. He wanted to sling mud. My mistake was replying to his post in the first place.

    34. Re:Ruby Can't Scale by Anonymous Coward · · Score: 0

      Actually, you only got two "Insightful" mod points.

    35. Re:Ruby Can't Scale by IntlHarvester · · Score: 1

      RoR has scaling problems on all levels. Ruby is slow. Rails is (or can be) slow. The application servers have issues. Everything is bloated.

      Its not like you can point at one element and say "there's the problem", its really a top-to-bottom issue.

      --
      Business. Numbers. Money. People. Computer World.
    36. Re:Ruby Can't Scale by DragonWriter · · Score: 1

      Both Waves and Merb are thread-safe; when (and they might already, I'm not sure) they can run on JRuby or Ruby 1.9 they'll be able to use native threads. (Without a GIL on JRuby, with one on Ruby 1.9, for now.)

    37. Re:Ruby Can't Scale by Perky_Goth · · Score: 1

      What do trolls eat, exactly? Logic? Should I keep pointing the faults in yours out to keep you well fed?
      I might disagree with you, but that was hillarious. I don't think I agree he deserved it, though.
    38. Re:Ruby Can't Scale by moderatorrater · · Score: 1

      I can write a program in assembly that will perform worse than the same program written in Ruby if I wanted to. Does that mean assembly won't scale? Try it and report back in 20 years. You'll probably get a slashdot story out of it!
    39. Re:Ruby Can't Scale by DragonWriter · · Score: 2, Informative

      Well for starters, active record and the notion that everything always should go to the database. In the rails world, caching refers to page generation where in like the ASP and J2EE worlds, there is also data caching from the database.


      Using memcached to cache, among other things, ActiveRecord objects instead of always hitting the database has been a common practice for people using Rails (and lots of other frameworks, Ruby and otherwise) for years. So, AFAICT, you're just plain wrong here. Now, it may be a valid complaint that database caching isn't integrated into Rails, but its certainly not something foreign to the Rails world as you suggest.

      No threading or service module notion. Everything is tied to servicing a web page. Long lived jobs mean long lived web page renders.


      Assuming you write the long-lived jobs in Rails, which is just the wrong way to do it. You are right that everything written in Rails is centered around servicing web requests; if you need to trigger off long-running processes from that that are themselves only indirectly bound to the request-response cycle, you do that outside of Rails entirely. I would guess the easiest way to do that would be to use the database as the communications vehicle between Rails and whatever system you build to handle the long-running processes using ActiveRecord on the Rails side (and, if you are using Ruby "off the Rails" for the other end, possibly on that end as well), though there are other options.

      Rails isn't even conceptually aimed at being a general alternative to the kind of technologies you hold it up against (J2EE in particular).
    40. Re:Ruby Can't Scale by DragonWriter · · Score: 1

      If I built a house out of cheese with a hammer made from cheese and the house began to crumble, would you say it's because of the hammer made from cheese or because cheese isn't a stable building material?


      Well, I'd say it was the cheese because I know from information outside of the hypothetical that cheese generally isn't a stable building material.

      OTOH, I've also known lots of structures made of wood, concrete, steel, etc., to collapse, not because of deficiencies of those as a building material, but because of the particular design features of the structures involved. Would you say that because some buildings made with those have collapsed, they are categorically poor building materials? Or would you recognize that the use of the building materials makes a difference?

      Similarly, if -- and again, no actual concrete evidence has been presented to support this assertion -- Rails is incapable of scaling, that in and of itself proves nothing about Ruby. Now, if you can show both that it can't scale and that the reason it can't is an intrinsic feature of Ruby, then you have something to say against Ruby. But if it can't scale but you can't show that the reason is something intrinsic to Ruby, you've got nothing.

      More concretely, its worth noting that one frequently-pointed-to limitation of Rails that is claimed to be implicated in scaling problems (that it isn't threadsafe and thus relies on multiple, expensive Ruby processes to handle multiple requests) is not true of several other Ruby web-app frameworks (Merb and Waves, for instance.)

      When you've got something specific you can point to that shows (1) the inability of Rails to scale, and (2) the source of that inability within the Ruby language, perhaps you'll have an argument. As it is, all you've got is a highly emotional rant and a series of baseless insults.
    41. Re:Ruby Can't Scale by hostyle · · Score: 1

      link please.

      --
      Caesar si viveret, ad remum dareris.
    42. Re:Ruby Can't Scale by Foofoobar · · Score: 1

      ooohh semantics is what you have to argue on? fine. I have + 5, Insightful and you are still an anonymous coward... happy now? Ruby still isn't going to scale, semantic boy. :)

      --
      This is my sig. There are many like it but this one is mine.
    43. Re:Ruby Can't Scale by Foofoobar · · Score: 0, Flamebait

      So we finally agree... that Ruby is the cheese and therefore it can't scale. Now shutup and eat the cheese.

      --
      This is my sig. There are many like it but this one is mine.
    44. Re:Ruby Can't Scale by arevos · · Score: 1

      I have + 5, Insightful Yes, but hopefully some mods who know something about programming will mod that initial comment down.

      Of course Ruby can scale. You can have as many Ruby interpreters running as you like. The problem is that they all have to access the same database, and there is your bottleneck.

      "Ruby can't scale" - I mean seriously, how can you call yourself a programmer and come up with nonsense like that?
    45. Re:Ruby Can't Scale by Foofoobar · · Score: 1

      Truth always comes as a bitter surprise to those who cannot handle it. Ask your mom for a hug.

      --
      This is my sig. There are many like it but this one is mine.
    46. Re:Ruby Can't Scale by MrWa · · Score: 1

      RAILS...the discussion is about Rails. Not Ruby. I think you will find many people in the Ruby community that would agree with your statement after making that change.

    47. Re:Ruby Can't Scale by segedunum · · Score: 1

      The twitter developers chose to use a full stack high productivity framework for a simple website, that just can't use caching properly.
      Caching is the answer to everything in the Rails community.
    48. Re:Ruby Can't Scale by Anonymous Coward · · Score: 0

      Ummm, where is the proof you are referring to?? The article points to a link from the CEO saying they are NOT moving from RoR.

    49. Re:Ruby Can't Scale by Anonymous Coward · · Score: 0

      No reply at all would have been better, but mean-spirited replies were justified. Foofoobar is a troll who accidentally scored a +5 Insightful by overestimating the intelligence of ./ers. Undertrolling? Overtrolling? Whatever you call it, his post wasn't recognized as a troll, so it was appropriate for somebody to explain why he was wrong.

      Anyway, it's Rails that doesn't scale. Ruby is slow as molasses but that doesn't mean it doesn't scale. This point is so obvious that Foofoobar's first post should have been recognized as a troll. I'm sure he was shocked when it was modded up.

    50. Re:Ruby Can't Scale by Overly+Critical+Guy · · Score: 1

      What is it that's causing the scaling problems? A slow framework? Ruby?

      --
      "Sufferin' succotash."
    51. Re:Ruby Can't Scale by Overly+Critical+Guy · · Score: 1

      Seems to be working fine for YellowPages.com.

      --
      "Sufferin' succotash."
    52. Re:Ruby Can't Scale by Firehed · · Score: 1

      That's really what I was getting at. Of course my post is almost entirely wild speculation, but given the simplicity of twitter (I expect that most experience coders could replicate at least 90% of it in an afternoon), I think it's unlikely that Rails is the entire problem here.

      That said, my own experiences with Rails have not been good, and I've got a friend trying to deploy a Rails blog (not using the screencast that everyone was talking about, mind you) and is having a hell of a time between whatever webserver app his host is running, complete removal of functionality rather than deprecation between versions, and an extremely unclear architecture. Of course I think the latter is true for most frameworks and isn't specific to Ruby/ROR, but the whole semi-compiling thing that Rails seems to do doesn't help much for performance given that it dumps the cache after five minutes of inactivity and has to rebuild the entire site - not at all unlike recompiling a .NET site after an IIS restart, except somehow much slower and much more frequent.

      --
      How are sites slashdotted when nobody reads TFAs?
    53. Re:Ruby Can't Scale by Anonymous Coward · · Score: 0

      And yet your are posting your incorrect opinion on a site that runs Perl, which runs at about the same speed as Ruby.

      If you look at the data, you'll see that high-level text operations like regexes run at about the same speed in interpreted languages as the do in compiled languages.

      If you want to generate fractals, scripting languages aren't so great. But for operating on html and sql, and dealing with hashes, you cant beat them.

    54. Re:Ruby Can't Scale by IntlHarvester · · Score: 1

      I wasn't implying that you couldn't have a successful site with RoR (I have one). Just that compared to about anything else, it's slow from top to bottom.

      The Ruby Rails App Server finger pointing misses the point IMO.

      --
      Business. Numbers. Money. People. Computer World.
  12. Re:View of a tech dinosaur by mini+me · · Score: 1

    You're right. Ruby is ugly if you try to write Ruby like you'd write PHP, or Python, or whatever language you think is beautiful. And although Ruby lets you code in that style, to really realize what Ruby has to offer you have to understand that Ruby is quite different than most other languages and use that to your advantage.

  13. Hype vs. reality... again. by revscat · · Score: 4, Insightful

    Rails was the cat's pajamas two years ago. The future. The in-thing. Revolutionary. Exciting. Radical. Amazing!

    Then like so many similar times before, reality set in. It turned out to be buggy, unstable, less performant, and heavily dependant upon an evangelical base.

    Ruby the language is interesting. Not my personal cuppa, but I have nothing against it. Rails, however... After having analyzed it and developed a prototype application for my company, I came to realize that there are other frameworks out there that are more worthwhile, epecially in an enterprise environment. The problems I've seen Twitter experience only solidify this.

    If you are doing green-field development Rails should probably not be your first choice. Yes, Rails is interesting. No, it is not the end-all-be-all, and it certainly has some rather major warts.

    1. Re:Hype vs. reality... again. by captnitro · · Score: 1

      Yeah, but sometimes engineers blow off something that really is neat and exciting because of their silly, unscientific, emotional views about the way things should work.

      Rails has its share of issues -- deployment is way complex, performance sucks, and the community can be rabid in the same unscientific, emotional ways -- but buggy and unstable? Come now, that's disingenuous.

      When Twitter opened it was handling 11,000 requests per second and doing it well. Twitter has gone from nothing to sensational in a very small amount of time. If you hit the ground running that quickly, your growing pains will be evident regardless of what framework or language choice you're using.

    2. Re:Hype vs. reality... again. by nine-times · · Score: 1

      I feel like it's important to note that, most often, "hype" is not "just hype".

      What I mean is, lots of things in life are over-hyped, but the hype usually comes from somewhere. There is something within the over-hyped thing that people are genuinely excited about, impressed with, or desirous of. They may have trouble explaining the true source of their excitement, but if you can find that source of excitement, you'll usually find something worthwhile.

      So although Rails was over-hyped by some people, we may not want to throw the baby out with the bathwater.

    3. Re:Hype vs. reality... again. by Anonymous Coward · · Score: 0

      I love your post - it's like a post with details and a valid technical argument, but with 100% less details and 100% more hype.

      Wow, You're right! This *is* "like so many times before.

    4. Re:Hype vs. reality... again. by Anonymous Coward · · Score: 0

      When Twitter opened it was handling 11,000 requests per second Were those web requests through rails, or IM and SMS requests handled by some other daemon?
    5. Re:Hype vs. reality... again. by Shados · · Score: 1

      The hype came from people not realising that Rails offers little to nothing that hasnt been mainstream in the professional world for years before RoR got its name. People unaware of that saw Rails as a revelation. The rest of us yawned.

    6. Re:Hype vs. reality... again. by revscat · · Score: 2, Interesting

      When Twitter opened it was handling 11,000 requests per second and doing it well. Twitter has gone from nothing to sensational in a very small amount of time. If you hit the ground running that quickly, your growing pains will be evident regardless of what framework or language choice you're using.

      That I'm going to have to disagree with you on. For starters the most recent troubles that have plagued Twitter happened as recently as a few days ago. They have had plenty of time to mature their stack, but they are still seeing major downtime.

      Second, I work for a major website and over the past two years we have *never* experienced downtime like what I've seen on Twitter, and we get far more traffic. We're on a J2EE stack, and without getting into evangelism I wonder how much of an impact that has had. It certainly has a better track record for us.

      Now, large-scale enterprise applications are difficult (if not impossible) to meaningfully compare. But one can't help but notice these things. Twitter goes down a lot, and it's not all that complicated of an application. Why? A lack in a robust QA group? Operations? Rails itself? All of the above?

    7. Re:Hype vs. reality... again. by Anonymous Coward · · Score: 0

      I think David Heinemeier Hansson has an amazing perspective on software development - one way to make great software is to keep programmers happy. This is achieved though conventions and abstraction, and is done very nicely by using the Ruby language.

      Remember, Rails wasn't created to be a enterprise super scaling hyper system that could run digg.com. It was created to make it easy and effortless to develop apps, which Rails is very, very good at.

    8. Re:Hype vs. reality... again. by Anonymous Coward · · Score: 2, Interesting

      Standard prologue: I work at yellowpages.com, a Rails site that gets millions of searches a day. The site went from 125,000 lines of Java to around 14,000 lines of Ruby and shrinking. For more details, see our presentation at RailsConf.

      How many servers has your operations group had to add? What has been the increased cost for co-location space?

      Decreasing the lines of code doesn't require stick ing a fork in scalability. Servers, power, and cooling are NOT free.
    9. Re:Hype vs. reality... again. by Anonymous Coward · · Score: 0

      Do the experienced people who pointed all of this out two years ago win?

      It seems like every new generation of programmers has their shiny bright.

      It's why I had my programmers work in pairs. One older experienced guy (mainframe experience turns out to be great for architectural design and communications work), one younger fresh into the professional world "hacker dude". Code and testing was the responsibility of the pair. Bonuses were earned as a team.

      It worked really well. Experience mixes with edgy.

    10. Re:Hype vs. reality... again. by njcoder · · Score: 1

      You mentioned you went from 125,000 lines of code to 14,000 with Ruby on Rails. Why did you chose to move to RoR in the first place? What was the impetus to write 14,000 lines of code, retrain the development team, etc.

      Were you using some sort of Java framework like Struts, Spring, JATO, Websphere, etc? If not it doesn't seem fair to compare LoC. I can't say that my Java apps don't have a lot lines, but most of that code is automatically generated for me. Things like getters and setters to allow me to control access to private properties which the IDE generates, as well as the data access layer which is automatically generated for me as well. I use my own reusable webapp framework so when it's time to build an application the only hand coding I do is in defining what the application does, which is solely dependent on the complexity of the application.

      I'm not trying to suggest that RoR doesn't have an edge in terms of LoC, but are we really comparing apples to apples here? Struts does tend to have a lot of configuration in xml files, which adds to the LoC count. I did find it a pain which is why I came up with my own.

    11. Re:Hype vs. reality... again. by njcoder · · Score: 1

      So based on what you said I still hold to my original point that your comparison of Java to Rails seems meaningless. You can't compare an application framework to a language.

      If the original application didn't use a well established and mature web framework, then similar gains in "agility" and maintainability could have been made by staying with Java and using one of the available frameworks.

    12. Re:Hype vs. reality... again. by Anonymous Coward · · Score: 0

      What is this downtime you people are speaking of? We use mod_perl and haven't heard of such a thing.

    13. Re:Hype vs. reality... again. by njcoder · · Score: 1

      I can't provide technical details on the Java site because I am not a Java developer. I've seen the code once. I was asked to port some functionality we missed on the rewrite, so I took a look at the Java class that was a few hundreds lines long. I closed the window in anger, and rewrote the same functionality from scratch in a few minutes.

      It isn't a "Ruby is Great, Java Sucks" argument. It's as simple as "Java Suck." Thanks for your informed opinion.

      You want to see some of the things you can do with Java (and even Ruby) in a very quick and easy manner, have a look at some of the screencasts of Netbeans
    14. Re:Hype vs. reality... again. by Anonymous Coward · · Score: 0

      Hey, look, a Java tard desperately trying to avoid acknowledging that someone successfully moved from Java to RoR.

    15. Re:Hype vs. reality... again. by Anonymous Coward · · Score: 0

      I believe, for launch, all servers were just re-provisioned from the existing setup. No new colo space was necessary.

      We'll need more space in the future. Since the relaunch, we've been breaking our traffic records. So either:
      - Your old site scaled extremely poorly
      - Your available capacity exceeded your real requirements
      - Ruby is as fast and memory efficient as Java, even when running multiple processes using a fork() scaling architecture.
      A combination of the first two seems more plausible.

      If every user means more money, and you scale linearly, who the fuck cares? The operational costs don't scale linearly. Co-location space is not provisioned "as-needed" -- it is necessary to acquire new space weeks or months in advance of actual utilization by paying customers. There's no harm in improving the bottom line -- why not get MORE money per customer?

      If you can't acquire space in the same co-location facility, then you will find yourself solving the "multiple disparate locations" problem much sooner than otherwise necessary.

      The reason why I bring this up is because these costs are -- to you -- an externality. It's a very real cost that doesn't seem to be directly factored into your recommendation of the framework.
      As a software engineer who has spent significant amounts of time worrying about capital and operational expenses, I can state unequivocally that these expenses are considerable, and in most cases, can be significantly lowered simply by making intelligent architectural choices: not throwing away efficiency by chasing after this false dichotomy of scalability vs. development ease.

      I have a feeling that you, like most web developers, don't consider (very often) that cycles == power == heat, and none of that is very cheap to deal with. The colo facility, and the operations team necessary to run it, can easily be more expensive than your engineering department.
    16. Re:Hype vs. reality... again. by captnitro · · Score: 1

      Giles Bowkett has written on this here: http://gilesbowkett.blogspot.com/2008/05/twitters-scaling-problems.html

      I'd guess it's that downtime is easier than non-downtime, and it's a free service. It's not like anybody can say they're not getting what they paid for.

  14. The original statement? by UnknowingFool · · Score: 1

    There is no link to any original statement at all only a link to the response. If it was a twitter was the original statement: "ROR: Fail". :P

    --
    Well, there's spam egg sausage and spam, that's not got much spam in it.
  15. Abandon Ruby on Rails? by drinkypoo · · Score: 1

    What will it take to get twitter to abandon Slashdot?

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    1. Re:Abandon Ruby on Rails? by Anonymous Coward · · Score: 0

      I suggest buttfucking him with a lead pipe.

  16. twitter by hansamurai · · Score: 1

    In related news, twitter (104583) reportedly may abandon his use of sock puppets due to numerous outages.

  17. How about the fact they're running it on Slowaris? by Anonymous Coward · · Score: 1, Interesting

    And the scalability issue is not the x86 Slowaris systems they're running it on? Scalability of a platform is rarely just a RoR issue...

  18. What's better? by mkcmkc · · Score: 1

    Your karma-blow would be more useful if you'd say what you think is better...

    --
    "Not an actor, but he plays one on TV."
    1. Re:What's better? by mlwmohawk · · Score: 1

      Your karma-blow would be more useful if you'd say what you think is better...

      Then it wouldn't be a troll now would it?

      Seriously, OK. What is a "better" language? Its hard to say exactly. For web sites, there is a subtle difference between the need for mere "scripting" on top of a database (like a CMS or something) and more extensive software development.

      I guess, PHP is good enough for scripting and Java useful for more extensive development (as a rule of thumb, not a law), but don't ignore the utility of C/C++ for back end service system like databases, search, and recommendations systems. I don't see the value of adding a perl or python if you are already using one interpretive system. (Yes, java is "interpretive" and no, I'm not going to debate "if you run it like..." arguments.)

      Answers to complex questions are difficult to make simple and clear cut. There is a lot of common sense in the notion of using the right tool for the job, but many people use personal preference over a dry technical evaluation of the requirements. There are also some tools that are "better" in quality than other irrespective of the job, for instance MySQL vs PostgreSQL. PostgreSQL is better.

      (And yes, on Slashdot showing a preference, say for PostgreSQL over MySQL, marks you as a troll, but there are technical reasons to use PostgreSQL over MySQL while the converse is hardly true. So flame away and mod me down, like I said, I expect to be seen as a troll.)

    2. Re:What's better? by Not+The+Real+Me · · Score: 1

      "...PHP is good enough for scripting and Java useful for more extensive development (as a rule of thumb, not a law),.."

      Pretty much anything that can be done in Java can be done in PHP5. The problem with PHP is that most of the literature on PHP is written in PHP3 style, which is utterly 1997, predates .NET and is chronologically equivalent to Java 1.1

      With PHP 4.3 and higher, you can do your OO programming and wrap your objects into classes, however most PHP books treat OO and classes as if they were radioactive. Blame the authors of many PHP books for being stuck in the PHP3 mindset and passing on bad/archaic programming and design techniques.

    3. Re:What's better? by mlwmohawk · · Score: 1

      Pretty much anything that can be done in Java can be done in PHP5. The problem with PHP is that most of the literature on PHP is written in PHP3 style, which is utterly 1997, predates .NET and is chronologically equivalent to Java 1.1

      With PHP 4.3 and higher, you can do your OO programming and wrap your objects into classes, however most PHP books treat OO and classes as if they were radioactive. Blame the authors of many PHP books for being stuck in the PHP3 mindset and passing on bad/archaic programming and design techniques.

      Is it a rule on Slashdot that if you disagree with someone you have to automatically assume they do not know what they are talking about or know less than you?

      AFAIK, my account on PHP.net still has commit access. I have written several PHP extensions, one of which is being used at a MAJOR internet service provider.

      I "know" PHP well and I still stand by my opinion.

    4. Re:What's better? by nuzak · · Score: 1

      Is it a rule on Slashdot that if you disagree with someone you have to automatically assume they do not know what they are talking about or know less than you?

      It's not just slashdot. Idiot.

      (is joke ha ha)

      --
      Done with slashdot, done with nerds, getting a life.
    5. Re:What's better? by njcoder · · Score: 1

      The problem is that people keep trying to make web programming easier and more accessible. To do that you have to hide more and more stuff from the developer. More advanced guesswork needs to be made by the application framework.

      One of the things Ruby On Rails fans always boast about is how few lines of code it takes to write an application. Assuming that RoR isn't ignoring the instructions that normally are done by other languages, it means that the RoR framework is doing it behind the scenes for the developer. When frameworks do this they usually have to be as generic and flexible as possible which can attribute to some overheard. At least from what I've seen.

      If you wanat really good performance you can write your application in C/C++ but you're going to have to write in all the scalability infrastructure yourself.

      Java web application servers are designed with scalability in mind so that it can be easy to make your application scale. There are also other frameworks that you can use to make developing your application faster as well.

      I use my own home grown webapp framework. Back when I tested it with PHP4/Apache1.3/mod_php I was able to get better performance with Tomcat/Apache2 testing against applications that were doing basically the same thing. Actually the java application was doing slightly more work. At the time there were threading issues with using Apache2 with PHP and a lot of scripts weren't able to use it. I'm not sure what the current state is now if php modules have been updated to be thread aware.

      To get PHP apps to run fast the best option is to use mod_php in apache. This is great if you have a VPS or dedicated server. If you're in shared hosting environment, mod_php runs every user's script using the same permissions and if you're not careful you could have some problems. One of my clients were on a shared hosting site and even though they don't use PHP another user's PHP script was able to deface all the pages on that server.

      There are ways to try and isolate mod_php to only have write access in a particular directory but a script can be setup to ignore something like that. The best way would be to use FastCGI to run a separate instance of the PHP engine for each user under their own account. Though this will decrease the performance compared to using mod_php. Though PHP files seem to compile faster than JSP files, compilation only happens once and from then on acess time is very fast. When you're running a separate out of process instance of the PHP engine for each user, you're also going to be using more memory.

      When RoR first came out, a lot of people were saying that it was a great way for prototyping applications but wouldn't trust the performance for production. I guess not much has changed.

      A lot also has to do with the backend data store you're using and how it's scalability integrates with the application.

      Joyent.com is one of the few places that are using OpenSolaris as a hosting platform. They provide Solaris Containers (Zones) for users. Similiar to other types of VPS options from other providers. Twitter was originally hosted at Joyent but due to performance problems they moved to a different provider. One of Joyent's claimed benefits is that they are an RoR shop and can help with Rails apps. So I don't think anyone can say that Twitter was just written incorrectly but people that didn't know what they were doing. It's a shame that Joyent got the bad press when Twitter left. Though from what I understand they were having some network issues at one point and a big problem when one of their Thumpers (Sun X4500) got corrupted. Joyent seems like a good platform run by some good people and what I'm basically saying is that I'm glad to see that Twitter's problems weren't Joyent's fault. I don't have any financial interest in Joyent and don't know any of them personally nor do I have an account with them. I was just looking into them but I wound up getting a dedica

    6. Re:What's better? by frank_adrian314159 · · Score: 1
      ...say what you think is better...

      One word: Seaside. Better language, too.

      --
      That is all.
    7. Re:What's better? by mlwmohawk · · Score: 1

      That was a pretty good post and I agree with 99% of it. I would add only one thing to it and that is with regards to Java.

      In general I don't think Java is bad given a known specific problem set, but one thing that somewhat bothers me is the treaded vs process model on *NIX platform.

      I know this could start a flame war, but I prefer a process model more than a threaded model. Conceptually and in practice, they tend to be a bit more robust. Java is a threaded model and multiple Apache processes are served with threads. If your JVM gets screwed up, all the processing entities tend to as well.

  19. The answer: by teknopurge · · Score: 0, Redundant

    JRuby.

  20. As always... by Anonymous Coward · · Score: 0

    ...there's not one size fits for all. Rails maybe perfect for some kinds of apps, but it can't be the silver bullet for all. And it's the same for J2EE, PHP, etc...

  21. They are saying that they will sitck to RoR by cuerty · · Score: 1
    --
    >Linux is not user-friendly.
    It _is_ user-friendly. It is not ignorant-friendly and idiot-friendly.
  22. Re:View of a tech dinosaur by doti · · Score: 1

    No, Rails is ugly.

    Ruby is not just beautiful, but great.

    Rails is just making bad publicity for Ruby.

    --
    factor 966971: 966971
  23. Twitter has no plans to abandon RoR... by Anonymous Coward · · Score: 1, Informative

    http://twitter.com/ev/statuses/801530348

  24. unrelated note by Anonymous Coward · · Score: 1, Interesting

    Is it just me, but how in the world did Twitter get $5.4M of funding? It's a pretty simple system and I just don't get it - granted I'm sure it's not cheap to run a system so many use but it can't be that bad...

    Do the funders think that people are going to be okay with little ads being on each tweet people send out eventually or did they just want a cool new web 2.0 toy themselves?

  25. Re:View of a tech dinosaur by Anonymous Coward · · Score: 0

    Ruby, the Cobol of the new millennium.

  26. The problem is ruby by mdipierro · · Score: 4, Interesting

    The problem is Ruby. It is a very slow language (http://www.blognone.com/node/4385). My tests confirm it is 20 times slower than python in simple loops. Java is a dinosaur and PHP is not easy to maintain. I would go with Django or web2py. If they use web2py (http://mdp.cti.depaul.edu), I will help them. web2py scales very well because allows you to bytecode compile the models, the controllers and the views (so there is no parsing when serving a page) and cache every function in ram.

    1. Re:The problem is ruby by e4g4 · · Score: 1

      The problem is the stock (1.8.x) ruby interpreter. As the language matures, better and better implementations of the interpreters are cropping up, and it seems that ruby 2.0 will easily catch up with python in terms of performance. There's nothing wrong with the language - blaming the language for the failure of the interpreter is tantamount to blaming C for the difference between the output of intel compilers vs. gcc.

      --
      The secret to creativity is knowing how to hide your sources. - Albert Einstein
    2. Re:The problem is ruby by Anonymous Coward · · Score: 0

      I wanted to read your test but the text did not display with an english character set.
      I got stuff like this.

      àààààà Python ààà£ààà£à±àsààà£ààààà(TM)ààà£ààà£àààsàs OOP ààààoeààààààààààààà(TM) OOP ààsàsàà à ààààà(TM)àààzà--àOE OOP àà¥àààààààà--ààààà"àfà(TM) Python (public, private, protected, interface, abstact calss, etc.) àààà--à±ààà--ààààààààfà(TM) Python àààààààààààààààà(TM) Object àààà£à±àsàà(TM)à--àààà£ààà(TM) àààSà Software Engineering àà£àà Software Architect àà ààààà£àààààà(TM)àà±às Python àààààà-àààààààà(TM)àà±à(TM) àààààààààà¥ààà(TM)ààà-ààà--à"àà--à(TM)àà"ààà"à Meta- ,

    3. Re:The problem is ruby by Anonymous Coward · · Score: 0

      True but Python is just the next step towards Lua which will eventually show everyone up. Lua is tiny, fast, easy to extend, and simple yet powerful enough to do anything the other scripting languages can do (the LPeg extension is especially excellent).

      Although there is no real web framework for Lua, it's only because no one has taken the time (the Kepler project has done some work in this area but I don't really care for their stuff).

    4. Re:The problem is ruby by Anonymous Coward · · Score: 0

      You call Java a dinosaur and yet Python predates it.

    5. Re:The problem is ruby by mdipierro · · Score: 1

      I did not run that test I just found it. My tests are not published but they are consistent. Anyway, in that page there are charts at the bottom with english labels.

    6. Re:The problem is ruby by mdipierro · · Score: 1

      The fish predates the dinosaur and it is a fish. Anyway, I was referring to the size of code you need to get things done.

    7. Re:The problem is ruby by DragonWriter · · Score: 2, Insightful

      My tests confirm it is 20 times slower than python in simple loops. /blockquote

      Since in many simple tests, JRuby and Ruby 1.9 are 10+ times faster than Ruby 1.8, I wouldn't be really impressed that on some simple tests Python is 20x faster than Ruby 1.8. Not that any of the speed tests in the tables on the linked page show a 20:1 ratio in either direction between Python 2.4 and Ruby 1.8; and the only one that is over 10:1 in favor of Python doesn't use similar methodology in the Python and Ruby tests.
    8. Re:The problem is ruby by Just+Some+Guy · · Score: 1

      blaming the language for the failure of the interpreter is tantamount to blaming C for the difference between the output of intel compilers vs. gcc.

      You're inadvertently correct. C is to blame for the difficulties in compiling it. For example, constructs like "union" are really slick for certain operations, but cause havoc when the compiler is trying to figure out if it can use certain optimizations. Similarly, the existence of pointers means that you can't ever guarantee that a constant is really a constant. I don't know much about Ruby, but it's certainly possible for a language's design to make it difficult to implement efficiently.

      --
      Dewey, what part of this looks like authorities should be involved?
    9. Re:The problem is ruby by abigor · · Score: 1

      Or to use an analogy: Java is the new Cobol. Wordy, non-clever, clunky...and a de-facto IT standard.

    10. Re:The problem is ruby by Anonymous Coward · · Score: 0

      Ruby 1.9 is a bytecode interpreter, as are python, perl, php and anything other decent language.

      -1, Troll

    11. Re:The problem is ruby by chromatic · · Score: 1

      My tests confirm it is 20 times slower than python in simple loops.

      If they ever optimize away all of the network programming and end up with only simple loops, they should consider migrating to Python then.

    12. Re:The problem is ruby by Anonymous Coward · · Score: 0

      It is a very slow language (http://www.blognone.com/node/4385)
      I can't read Thai. I couldn't decipher any implementation details. But you seem to have tested Ruby 1.8.4 which is two years old. Ruby has improved a lot since then performancewise.
    13. Re:The problem is ruby by Overly+Critical+Guy · · Score: 1

      You haven't seen Twitter's infrastructure. You have no idea what the problem is.

      According to other informed posts in the know, it has nothing to do with RoR at all and everything to do with how they're using their database. But I get that the Slashdot storyline is that RoR was the overhyped trend a few years ago that is now being "exposed" or something. People love a good storyline in their news.

      --
      "Sufferin' succotash."
  27. Reactionary BS by Anonymous Coward · · Score: 1, Interesting

    All of these slashdot conversations about rails have no technical details in them, describing which parts of rails are failing, which parts are preventing concurrency. The programmers on here can be just as stupid, unscientific, and reactionary as anyone else. As an example, you!

    The funny thing is, for social networking sites, this is almost expected and par for the course. MySpace, and more famously Friendster had HUGE problems with availability due to their unexpected success. It's taken years for them to stop being buggy. Writing applications to handle this kind of load ain't easy.

    Also, the one case of twitter's downtime being rails' fault, that I'm aware of, was due to Rails' lack of multiple db connections, which was fixed within days. And that wasn't really a bug, but a feature that was missing because no one using rails was dealing with twitter's requirements at that point.

    1. Re:Reactionary BS by IntlHarvester · · Score: 1

      Even ASP has db connection pooling :/

      The biggest problem with Rails is that everyone involved is a huge zealot, and it's difficult to find any sort of objective assessment of where the faults are. To discover any of this stuff requires wading hip-deep in various blogs and mailing lists.

      The whole "nobody told me this" is a terrible situation to find yourself in when you're in production.

      --
      Business. Numbers. Money. People. Computer World.
    2. Re:Reactionary BS by Forbman · · Score: 1

      No, ADO has database connection pooling, which is probably what most people in ASP world would use to connect to database... The connection pool is a black box to ASP and IIS (and the developer...).

    3. Re:Reactionary BS by IntlHarvester · · Score: 1

      If you're going to nitpick, it's COM+ (with IIS) that manages the connection pool. Inproc ADO doesn't have it.

      --
      Business. Numbers. Money. People. Computer World.
  28. ...and MonkeyMan may tie her to the tracks. by Anonymous Coward · · Score: 0
    Twitter Reportedly May Abandon Ruby On Rails

    I sure hope there isn't a train coming.

  29. On Twitter by therpham · · Score: 1

    I don't really get Twitter as a social thing, but it's damn useful for interfacing with Remember the Milk through SMS when I'm away from my computer. That's the only reason I have a Twitter account.

  30. Rails Gives Fast Development, Not High Performance by randyjparker · · Score: 2, Interesting
    Twitter was smart to use Rails to develop their business, and is also smart to move the performance-critical message queueing and posting portions to a higher performance technology when it got big and mature. The evolving parts are best left on Rails.

    Rails remains the best way to develop solid and maintainable web apps. But it will not compete with C for speed. Once you understand your business process, and have developed a mature algorithm to make the business work, there is nothing wrong with writing the core infrastructure in C. There are lots of C libraries that do the core part of Twitter. But the company would have been idiotic to start with them, and would be foolish to move new development off Rails.

  31. I saw it on the Internets, it's true by CommandoCody · · Score: 2, Insightful

    So, er... TechCrunch says "multiple sources claim that Twitter is abandoning RoR."

    The guy who founded Twitter says, "no, not really."

    And TechCrunch says, "but we have MULTIPLE SOURCES."

    Guess what? I have MULTIPLE SOURCES that say the Earth is flat!

    Must be a slow news day.

  32. rails was bullshit anyway by justdrew · · Score: 0, Flamebait

    stop replying on crackpot frameworks. a framework system that crashes at all is useless.

  33. maybe erlang? by grrrgrrr · · Score: 1

    Twitter is probably more of an erlang kind of thing as it is a giant switch for messages . Does not mean that ruby sucks or that erlang is the best for all projects.

  34. Re:There's a whole monty python sketch for this sh by discogravy · · Score: 1

    I think the OP's point is that worded like this, the article is rumor-mongering, not news. Many /. discussions may devolve into pointless arguments but they are not solely, intentionally that.

  35. Examples? by mckwant · · Score: 1

    I'm just starting to muck about with Rails, and am interested in where, exactly, it fails miserably. Not trolling, just curious.

    Thanks.

    --
    ceci n'est pas un sig.
    1. Re:Examples? by beldraen · · Score: 4, Interesting

      Having worked with Rails for a year, I have found listening to people who talk on any web forum about any language draws out nothing but hyperbole. So, I would take most of what is said here with a grain of salt since it is obvious that most of the people commenting here are stating "truths" from religious wars.

      The framework operates a multiple levels. At the highest, a complete page can be generated from scaffold that automatically hook model to controller to view. I have found the scaffolds to be lack luster. From a completely database-centric view, there are some neat things that are automatically generated. For instance, verification methods in models are use to display errors on the page and mark input fields in red. My personal experience has found scaffolds to be lackluster.

      Most well-designed applications revolve around the application's use, not its internal data representation. Using scaffold strongly ties the interface to data representation which creates the situation that "the user can be wrong." You see this in Microsoft Access databases where you can enter something in or choose options that are mutually exclusive. Because the application lets you see that data, the program generates an error if you are wrong. From what I have seen, the gripe is that the full scaffold is too specific and rigid. Well, duh?! That's the point of each layer of scaffold--to provide a guide for usage.

      Personally, I have shunned most of the page scaffolding and tend to rely on creating my own use flow. I use the controllers to present that choices are possible and to manipulate the models as opposed to the common practice of having the controller just load a set of records and pass it to the view (which formats the output). The advantage is that the user is never wrong. Options that are logically inconsistent are never presented. Add to this the ability to monkey-patch (the extension of predefined classes) and lambdas, the code is clean and concise. Both can be used to refactor procedural code into functional code and move it out of the controllers and models. Most importantly, the design allows you to think about what you want to manipulate and then after the fact extend the functionality. A common example of the is the statement:
      1.day.from_now
      The numeric class is extended in Rails so that you do not have find and use a static date class, but can state simply the desired result.

      So, where does it fail miserably? So far, I have not found any great place that it does. It performs as well I need it to serve about a dozen users on a lowly Pentium 4 machine with 256 megs of RAM. So far, the application has been 99% maintenance free. A date verification package I am using had a Feb 29th bug in it. The cool thing is that since I can see the source, I could fixed it. Perhaps there are issues with scaling, but from what I understand, the system was designed around a non-centric design. In theory, a correctly designed application should be able scale horizontally.

      Given that there are other high-profile, high-use web sites written in Rails that do not suffer from Twitter's issues, I am left thinking that its failure in general looking for a specific reason. Rails has been very stable and easy to extend, but then I write for maintenance and ignore hype.

      --
      Bel, the mostly sane.. "Of course I can't see anything! I'm standing on the shoulders of idiots." -- Me
    2. Re:Examples? by tacocat · · Score: 1

      Dude! I did 100 users on half that machine in Perl... It's a chubby little train.

    3. Re:Examples? by lewp · · Score: 1

      Having dealt with it for a couple years now, and deployed a few "important" apps with it, here's my take:

      1) Rails makes easy things very, very easy. Simple CRUD apps are easier to do in Rails than they are in pretty much anything else -- other similar-level frameworks like Django excepted, of course.

      2) Rails makes hard things possible. You can dig into the nuts and bolts of the framework and there's usually some way to do anything you might possibly want to do. This is more about Ruby than Rails, because Ruby lets you do just about whatever you want to just about any object you want. Monkey patching is a pretty powerful technique, and

      #1 is great. #2 would be great except that:

      1) Rails is still lacking up to date documentation in many places. This means you have to read the source code to do anything that is "off the beaten path". For example, Rails has nice web helper functions that make generating forms tied to objects and such a snap. Unfortunately, they generate code that some people might call "crappy". You can make it better by writing your own FormBuilder, and the web helpers even accept a :builder option to make that easy, but the FormBuilder class has zero documentation; so the best way to learn to do it is to Google until you find someone else who has already done it. You wind up doing things like that a lot with Rails.

      2) That wouldn't be so terrible, except Rails uses pretty much every Ruby metaprogramming technique in the book. If you want to become a Ruby expert, try to understand the non-trivial sections of the Rails code. Rails is basically the de facto "test suite" for new Ruby implementations: if they can run Rails, they can probably run any Ruby program. Let's face it, most new Rails developers are new Ruby developers too, so reading source code written by experts for experts isn't going to be their strong suit. I know Ruby inside out and I still find code in Rails from time to time that makes me scratch my head.

      3) Some of the conventions it uses are documentation-and-developer-unfriendly too. For example, almost every method in Rails accepts keyword arguments. Unfortunately, Ruby doesn't officially *do* keyword arguments. This means that the documentation for a method that accepts a thousand different arguments often looks like this:

      method some_complicated_method(opts)

      If you're in a well-travelled piece of documentation, they'll spell out every option you can use along with the defaults. If not, you're off to source code land. Unfortunately, those options are often passed up, down, and all-around unchanged or processed one at a time in dozens of different locations in the source code; so just understanding which options are available to you when you call a given method can be an hour-long undertaking.

      I have a lot of individual gripes with Rails itself, and I wish Merb+DataMapper would hurry up and mature so I could use it more often in place of Rails, but mainly it comes down to this:

      Rails expects you to do things its way. At the same time, almost any non-trivial webapp is going to have to do at least one thing that the developers of Rails didn't build in a handy little facility to do. You will run into that problem constantly, and many times the only way around it is to grok the exact way the framework works. Unfortunately, Rails is huge and oftentimes the code doesn't make it particularly easy to do this -- and while the documentation for the traditional "developer" interfaces of the framework are fine (for the most part), there exists huge swaths of code that have either zero documentation, or documentation that has nothing to do with how the framework currently works.

      Depending on your outlook, Ruby bears some responsibility for Rails' problems too. It's ridiculously easy to muck with the internals of objects that you really shouldn't have access to. I subscribe to the ideals of personal responsibility and think that it should be up to the developers to not abuse the facilities Ruby has

      --
      Game... blouses.
    4. Re:Examples? by Anonymous Coward · · Score: 0

      Dozen users! Please, continue sharing your great experience with this framework. Seeing as it works with as many as twelve distinct(!) persons AT THE SAME TIME, I see no potential for scalability issues and will go right ahead and use this for the next millions hits/day-site our team will be building. Don't hesitate to contact us if you need work. I man with you experience will be greatly appreciated, but I'm sure your offers just keep rolling in :(

    5. Re:Examples? by mckwant · · Score: 1

      Thanks.

      --
      ceci n'est pas un sig.
  36. The problem is the database by arevos · · Score: 2, Informative

    I don't think the problem is Ruby. Whilst I'm not associated with Twitter, I have seen some of their presentations on subject of performance, and the major bottleneck seemed to be the database, and ActiveRecord's unoptimized querying of it.

    MatzRuby 1.8 is somewhat slow, but it does proportionality very little work compared to the MySQL and Memcached back end. Quite frankly, I've never seen a performance profile of a Rails site where Ruby was the problem; it's almost always the database, or too many AR queries.

  37. Comment removed by account_deleted · · Score: 4, Informative

    Comment removed based on user account deletion

  38. Evan Williams Denies It by evand · · Score: 1
    1. Re:Evan Williams Denies It by writermike · · Score: 1

      Thanks for pointing this out. All of these arguments in here over whether RoR is good or bad for Twitter are meaningless considering the founder says it ain't happening! ;-)

      --
      If Nalgene water bottles are outlawed, only outlaws will have Nalgene water bottles.
  39. This is why Perl is still around by outZider · · Score: 1

    And this is why there is a big push back to Perl for new development. It's fast, proven, plenty of tricks for speed, and a very fast database framework. Even with DBIx::Class on top of it, it's insanely fast.

    If you haven't looked at Perl in a while, now's the time. Between Moose and Catalyst, developing in Perl is fun again.

    --
    - oZ
    // i am here.
    1. Re:This is why Perl is still around by abigor · · Score: 1

      There is no big push back to Perl that I can see. I have not had a single client request it, and in fact I haven't heard of any large-scale new developments done in Perl in years. It's a legacy language, for all intents and purposes.

    2. Re:This is why Perl is still around by outZider · · Score: 1

      I guess you aren't seeing what I'm seeing, but then again, you probably aren't even looking at it. I haven't seen this number of job reqs, contracts, and new work in some time. Perl is having a renaissance, and I'm loving every minute of it.

      --
      - oZ
      // i am here.
    3. Re:This is why Perl is still around by abigor · · Score: 1

      Interesting...well, if you're right, then it's good you're having fun and making money at the same time. More power to you.

    4. Re:This is why Perl is still around by Blackknight · · Score: 1

      Perl is a great language for web apps but my personal preference is python. One of the biggest assets in perl is CPAN and I haven't see any other language match that, sure there's the python cheese shop and PEAR but they're not the same in sheer size. There's also a few very high traffic sites I know of that use perl, Fark and Slashdot for example.

      Perl with Mason is almost just like coding in PHP, you can embed perl objects wherever you want and build templates for them.

    5. Re:This is why Perl is still around by outZider · · Score: 1

      Mason makes me want to cry. :)

      --
      - oZ
      // i am here.
  40. Two years would be a long time... by GameboyRMH · · Score: 1

    I once needed to make a web application to generate reports from an existing MySQL database, and I abandoned Ruby on Rails (for PHP) after just one and a half days of scalability issues. I only wish I'd done it sooner.

    --
    "When information is power, privacy is freedom" - Jah-Wren Ryel
  41. Re:Sense, you're not making any... by dyefade · · Score: 1

    What don't you understand?

    * It's "a major site." ("Major" here means important, big).
    * With many ("tens of thousands of") users. (This means it will have lots of traffic.)
    * It's ("felt by many to be") the flagship RoR application. (It should be clear from the title, let alone the summary that RoR = Ruby on Rails.)
    * It has suffered from numerous outages, some of these lasting days at a time. (So they clearly are having reliability issues. Since the article concerns them possibly abandoning "RoR", it doesn't take much to use some logic and work out that they may be pointing the finger at "RoR").

    Granted, the summary might have mentioned what "Twitter" is, but the majority of Slashdot users will likely either know already, or will use something called "Google", which operates over something called the "Web", and can answer these sorts of queries.

  42. Re:Sense, you're not making any... by hairyfeet · · Score: 1
    As one old guy to another(judging by your sig) allow me to try to explain. From what I have gathered Twitter is one of those chatty things that the kids love so much that irritate the hell out of me,and RoR is one of those ultra trendy programming languages. You know,how every couple of years a new programming language will come out and the trendies will go "Oooh!" and all head over saying it's the best thing since sliced bread. Like AJAX,Lua,etc. Meanwhile us old guys that actually have stuff to get done stick with what works for us,be it C,C++,Java,or in my case good old VB6.


    I know that it gets really hard to keep up with the ever changing names, but just remember 9 times out of 10 it is just the same stuff we have seen the trendies do a million times. Now as to whether the stuff is any good or not I have no idea as I have things to do. Now get off my lawn!

    --
    ACs don't waste your time replying, your posts are never seen by me.
  43. Re:Sense, you're not making any... by claytonjr · · Score: 2, Informative

    The RoR is a movement that depends on it's public perception. If Twitter abandons the RoR framework, then RoR could lose (if it hasn't already) a lot of steam, and appeal to the general public.

    The RoR community does not want this to happen.

  44. You're both wrong by tknd · · Score: 1

    I have an argument with a coworker frequently about architectural orthogonality vs performance. I fall on the "architecture should be clean and easy to understand and maintain" side of the argument and he falls on the "speed, memory, and response time at all cost" side.

    You're both wrong. The choices made in design and implementation need to reflect the requirements for the project. Therefore, there is not "one size fits all" shoe. You can't take a great design and force it into a real-time system. You can't take a real-time system and force it to work for a subset of problems tomorrow. There are trade-offs and the requirements will dictate the decisions you make in design and implementation.

  45. Re:Rails Gives Fast Development, Not High Performa by chromatic · · Score: 1

    Rails remains the best way to develop solid and maintainable web apps. But it will not compete with C for speed.

    Do you really think Twitter's bottleneck is anything other than IO? How does C improve network latency?

  46. Who are you working for? by LKM · · Score: 1

    Ask yourself who you are working for. Most likely, you are essentially working for the people who end up using your application. If they don't like it, you have failed. Thus, the first priority should be to satisfy users.

    If the application runs too slow and your users abandon you, the prettiest back-end architecture won't help you one bit.

    In my opinion, maintainability should never come at the expense of the end user.

  47. Re:Sense, you're not making any... by Anonymous Coward · · Score: 0

    YHBT. YHL. HAND.

  48. Re:Sense, you're not making any... by secolactico · · Score: 1

    Let's stop feeding the troll. I have the feeling he is the guy that tells everybody that he doesn't watch TV (insert obligatory Onion link here...)

    --
    No sig
  49. Re:Sense, you're not making any... by TJamieson · · Score: 1

    Hahaha nice troll... "good old VB6"

    --
    For the last time, PIN Number and ATM Machine are redundancies!
  50. Yes, in fact, RoR DOES suck (WARNING: RANT.) by pseudorand · · Score: 4, Interesting

    Pardon the off topic rant (please feel free to mod appropriately), but I have to agree that RoR DOES SUCK. (At least I didn't set up my own blog just to rant about it.) The RUBY language is the best thing since sliced bread, but Rails isn't. And I'm not talking about the installation and management issues like everyone else. I mean from a developer's perspective, RoR is horrible. Here's why:

    1) Automated copy-n-paste is still copy-n-paste
    Maybe it's changed since the last time I used it, but creating a rails application COPIES a bunch of files from the distribution into the app directory it creates. How do you upgrade? Painfully, that's how. I have numerous small applications that break when I upgrade rails and it's dependencies because the copied files don't work with the newer version. My applications should be 100% code I write directly. Everything else should be kept separate and accessed via includes so emerge/apt/yum/gem dependencies can keep the rails code compatible with itself and I never have to "fix" code I didn't write.

    2) RoR gives you the 1% that's used 10% of the time, not the 10% that's used 90% of the time.
    So you set up a RAILS app, create your database table, and run 'generate' to get your pseudo-MVC (seen #4 below). You've got everything you need to edit a single table via the web, but that's not even close to an application. It probably saved me about 1/2 of setting things up by hand. That's simply not good enough. It should be able to create an app that supports validation (both JS and server-side for obvious stuff like numeric and lengths), sorting, filtering, searching, relationships, and css skins. It could do this just from the information available in the database metadata, which would get you 90% done. And a huge number of simple apps could be completed simply by writing a custom CSS skin and adding some graphics.

    3) No UI components, which are the hardest part of web development.
    Most of what rails does buy you is the back-end stuff. It's an easy way to get stared with ActiveRecord, which does the heavy SQL lifting. AR, the one shining gem of RoR, is a great object-relational model and I believe it is responsible for 99% of RoR's popularity. But SQL isn't that complicated in the first place. The real tough part of web development is getting rich, graphical, reusable UI components that work across web browsers. Prototype/Scriptaculous are a wonderful starting place, but I need code that I can feed an AR class (and possibly a list of columns and/or related tables+columns) that will generate cross-browser compatible HTML view of the table complete with searching, sorting, filtering, and paging. There could be functions/objects that render it as a table, a list, a tree, etc. You're probably thinking I should just use .NET and it's various components, but I don't want to work on Windows, I don't want to work with IIS, I don't want to write VB or C#, and .NET really does a bad job of layouts and makes a lot of other stuff more complicated. And it's ORM simply can't touch ActiveRecord. Rails does only a tiny amount of what it could and should.

    4) It's NOT MVC
    The Model-View-Controller design pattern is about limiting the amount of communication necessary by having one instance of some code (the controller) that all access to data (the model) from other code (the views) goes through. Views subscribe to a model, get their data and then do their thing without worrying about other views. If some other view changes the model, the controller notifies all other subscribed views of the change. Rails MVC is something totally different that doesn't solve the same problem. Rails does provide data validation via AR, which is part of true MVC, but it still misses the point of MVC, which is a coherent and always up to date set of views into the model. In fact, an MVC is impossible to implement over the web because communication is one way: the browser must initiate all communication with the web server. (For those that don't "get" this,

    1. Re:Yes, in fact, RoR DOES suck (WARNING: RANT.) by Fished · · Score: 1

      1) Automated copy-n-paste is still copy-n-paste Maybe it's changed since the last time I used it, but creating a rails application COPIES a bunch of files from the distribution into the app directory it creates. How do you upgrade? Painfully, that's how. I have numerous small applications that break when I upgrade rails and it's dependencies because the copied files don't work with the newer version. My applications should be 100% code I write directly. Everything else should be kept separate and accessed via includes so emerge/apt/yum/gem dependencies can keep the rails code compatible with itself and I never have to "fix" code I didn't write.
      This alone realizes just how low the SNR is on this comment. The "copied" files, in a default rails generation, are something along the lines of: class Blah When you upgrade rails, the upgrade comes along automatically unless you deliberately peg to a particular version. Likewise, most of your other comments simply don't make sense in the default case. It seems like you are doing a bunch of stuff that is deliberately "non-Railsish" and that's the source of your problems ... and if that's the level of control you want, then, no, Rails is not the framework for you. My opinion.
      --
      "He who would learn astronomy, and other recondite arts, let him go elsewhere. " -- John Calvin, commenting on Genesis 1
    2. Re:Yes, in fact, RoR DOES suck (WARNING: RANT.) by Anonymous Coward · · Score: 0

      As for S/N, what about cultish terms like "non-Railsish"?

      He's right on for many of his points, and you can see this in many open source rails apps

    3. Re:Yes, in fact, RoR DOES suck (WARNING: RANT.) by keester · · Score: 2, Informative

      You are wrong about MVC. In classic MVC, Vs access Ms directly. Cs manage changes to Ms and select Vs to be displayed (which in turn access Ms). Web frameworks do not implement classic MVC. What you're describing is something that used to be called model 2 in the struts world.

      The /*/view mapping is a way to have "restful" URLs and are the result of browsers (and I guess HTML) not fully supporting/integrating with HTTP. In general, they are good thing, and you'll see them outside of Rails, of course. "view" just happens to be a bad one because browsers support GET which is what a view is going to be.

      --
      Take it easy? I'll take it anyway I can get it . . .
    4. Re:Yes, in fact, RoR DOES suck (WARNING: RANT.) by pavera · · Score: 1

      you are wrong here.

      I have had that experience way more than once. Install rails, generate your rails app, build some models... everything is looking good... Upgrade rails itself... now the rails scripts, the ones the got copied into your app, not the ones you wrote, no longer work. They are importing things from the rails framework, and function calls have changed, parameters have been moved or removed, in short the rails API is not stable.

      When this happens a bunch of code you didn't write, and don't control, and have no reason to control or update, or know how it works, makes it so your app is broken.

      In contrast to this, look at Django. You install the django framework, when you generate your application it creates 1 file with some settings in it and a directory structure with some files with 0 lines of code in them. The django API is not stable either, but, all of the code in your application is YOURS. If you upgrade django and your app breaks because you were using a function that is deprecated, or in some other way the API changes, well it is YOUR code that is broken. In rails, even if you are 100% up to date on the changes going on, the functions that are going to be deprecated, the things that will be moved around... that doesn't matter, because you created your application on version 1.14, and a 1.14 app makes calls to functions that are no longer available in 1.23 or whatever version it is on now.

    5. Re:Yes, in fact, RoR DOES suck (WARNING: RANT.) by Anonymous Coward · · Score: 0

      Wow. You really don't understand what Model-View-Controller means.

    6. Re:Yes, in fact, RoR DOES suck (WARNING: RANT.) by Serious+Callers+Only · · Score: 1

      1) Automated copy-n-paste is still copy-n-paste
      Maybe it's changed since the last time I used it, but creating a rails application COPIES a bunch of files... My applications should be 100% code I write directly. rails myapphere

      creates a bunch of folders with a file structure within. The files are virtually blank, usually about 6 lines of which 4 are comments. You're probably talking about scaffolding, which is an optional step to get a CRUD interface up and running. If you don't want it, don't use it, it's deliberately minimal, and completely optional. It's quite possible to build an app without it.

      2) RoR gives you the 1% that's used 10% of the time, not the 10% that's used 90% of the time....It probably saved me about 1/2 of setting things up by hand. That's simply not good enough. hmm, so it creates too many files for you, and yet it doesn't do enough, which is it?

      It should be able to create an app that supports validation It can, see validates_presence_of.

      sorting, filtering, searching, relationships, and css skins. Most of these are trivial until adapted for a particular app, and if you'd like them, look into examples on the web, you'll find them. The whole point of the framework is to try to stay out of the way - if you want a CMS in a box, use something like Drupal, or one of the Rails CMS attempts.

      3) No UI components, which are the hardest part of web development...Rails does only a tiny amount of what it could and should. Some UI components would be nice, but it sounds like you want it to write your app for you. If you think this is important, you should start working on a widget set, or investigate those already available in HTML/javascript. Seriously.

      4) It's NOT MVC
      The Model-View-Controller design pattern is about limiting the amount of communication necessary by having one instance of some code (the controller) that all access to data (the model) from other code (the views) goes through. This is exactly what Rails does, and if you refresh your browser, you'll see changes to the model, or if you like your app can refresh using AJAX when the model changes (if you really must have a real-time view?). Your definition is not the generally accepted one of MVC. What problem do you have that you needed this for?

      5) And on the topic of "MVC", why would anyone want a framework that forces you to use MORE RESTRICTIVE urls. Can't imagine. I can imagine most people enjoying a sensible default mapping though - it's better for users and better for developers to be consitent. You can in fact organise hierarchies. What did you find impossible to do with routes.rb?

    7. Re:Yes, in fact, RoR DOES suck (WARNING: RANT.) by graznar · · Score: 2, Informative

      You're obviously very misinformed or your information is out of date or something.

      1) Yes, it copies things into your Rails directory. Know how to fix that little upgrade problem? rake rails:update. Done. They made a task to do exactly what you describe.

      2) There are plugins available that do all the things you describe, but the Rails framework is meant to be a very slim platform to build applications on. If you want all the bells and whistles, look up things like ActiveScaffold, Magic Models, etc. The point of Rails isn't to make an application for you like Joomla or something; it's a framework/platform to build things like Joomla on top of.

      3) Again, plugins. It isn't Rails job to generate your HTML designs for you.

      4) It's as close to MVC as you're going to get on the web. It IS MVC in a loose design pattern sense, but of course I'm not a purist so who cares.

      5) You don't have to use mod_rewrite. Rails has extremely rich routing. You can make any URL point to any controller, action, and even provide custom parameters to that action dependent on the URL. I don't think Rails has used mod_rewrite in something like 3 years. Even further, most heavy duty deploys of Rails these days use nginx, not Apache or Lighty as you describe.

      It seems that your opinions are based on an old version of Rails or something. So, I adjure you to go check out the new version. It's matured a lot in the past 1.5-2 years.

      --
      [ check out my ruby book @ http://ww
    8. Re:Yes, in fact, RoR DOES suck (WARNING: RANT.) by An+Onerous+Coward · · Score: 1

      I think he may have a point with #2. Rails could be generating much more sophisticated scaffolding. My ideal: you put more validation information in the migration, then auto-generate the model and views from that. You tell the DB that the information in this field will be no more than five characters long. It not only keeps that constraint in the database (which is good), but the model also protects the DB from seeing invalid information. The view can also be generated to reflect the information (the field is automatically five chars wide, and disables the submit button if the user overfills it). validates_format_of could even prevent a form field from accepting characters that make no sense in its context.

      Hmmm... Maybe I do want Rails to write the app for me.

      Maybe this isn't a great idea, but it's always been one of my pet peeves about rails: you have to duplicate validation information between models and their migrations. Want to change zip_code from a 5 character input to 10? Changing validates_length_of in the model isn't enough. Can't forget to write a new migration to rejigger the DB. So I mostly leave such limits out of the migrations, even though it would be nice to have the DB enforcing them. After all, multiple apps might interact with the DB.

      --

      You want the truthiness? You can't handle the truthiness!

    9. Re:Yes, in fact, RoR DOES suck (WARNING: RANT.) by Anonymous Coward · · Score: 0

      Someone with mod points and half a brain cell please mod this up. The parent post is full of FUD and worse, yet it's +5.

      Everything the parent poster claims is wrong with Rails is addressed by the above.

    10. Re:Yes, in fact, RoR DOES suck (WARNING: RANT.) by pseudorand · · Score: 1

      I just upgraded to rails 1.2.6 and ran `rails rails_test`. The file that cause most problems in previous versions was dispatch.rb, which looks like it has been greatly reduced, as is should be. There's still the changing API issue, but I yield on point 1, as this latest version seems much improved.

  51. Re:Sense, you're not making any... by hairyfeet · · Score: 2, Insightful
    Uh,thanks,but if you'd read any of my past posts you would know(probably to your horror)that i wasn't trolling. When you need to whip off a simple interface to a database EXTREMELY fast for a little Mom&Pop shop IMHO nothing beats VB6+either Access or MySQL(depending on what is handy and the size of the shop).


    I know it isn't considered trendy,although "Good Old VB6" is still in the top 5 of programming languages(number 3 to be precise) and as long as you aren't trying to build some gigantic multi-use program it really works great. Of course I've been using BASIC since the days of the VIC 20(recording my programs to a cassette,boy THAT was fun) so for me it just works.YMMV of course and I've known guys that can do the same in Java,C++,etc. IMHO if it does the job you need it to and the customers are happy I say go for it.

    --
    ACs don't waste your time replying, your posts are never seen by me.
  52. Wake Me Up When by sexconker · · Score: 1

    Twitter abandons the internet.

  53. Re:There's a whole monty python sketch for this sh by Hognoxious · · Score: 3, Funny

    it's a conversation starter for people who enjoy arguing.
    No it isn't.
    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  54. And what would that be? by Anonymous Coward · · Score: 0

    The fact that it is interpreted? The extremely conservative GC strategy that is being used? Green vs. native threads? All these are being addressed in the 1.9 development release as well as alternative implementations (see http://headius.blogspot.com/2008/04/promise-and-peril-for-alternative-ruby.html). If you're referring to the fact that Rails is not written or intended to be thread safe, take it up with DHH (and he will appropriately tell you 'then don't use it' or as I would, 'go shove it'). If you're just frothing at the mouth to hear yourself type then a.) you came to the right place, and b.) you either hacked that post out in a hurry, or you don't know jack about Ruby as a language and should refrain from faking an valid opinion until you learn something about it.

  55. ah, finally... by nous · · Score: 1

    quality of service instead of amateurish, stubborn preoccupation with the hyped-up framework of the month. congratulations to twitter for growing up.

    -- nous

  56. Yes, please stick to your old ways by Anonymous Coward · · Score: 0

    I'm really enjoying the productivity, tremendous time-to-market and business value that I can provide to my customers using Ruby and Ruby on Rails.

    Part of my success is due to the fact that people still code using PHP, Java and all the rest. Those projects turn mostly late, without all/most of the agreed features and need to go through multiple revisions and debugging rounds just to hit 1.0 and go live.

    So please, keep using your old stuff and stick to your old ways. You are doing me a huge favor by helping me to clearly differentiate in a very positive way from you and your solutions. And rewriting your apps properly in 30 days is profitable business.

    Thank you.

  57. Wrong. by Qbertino · · Score: 1

    Rails was the cat's pajamas two years ago. The future. The in-thing. Revolutionary. Exciting. Radical. Amazing!

    Wrong.
    Actually it wasn't. Never was, never will be, and, dare I say, never was meant to be. Ruby on Rails is, believe it or not, relatively standard fare when it comes to frameworks. And no, they did *not* invent Active Record. And, as far as I can tell, aside from the usual marketing 'ours is the best' even the Rails people never insisted that RoR is the start and end all of all webkits.

    In fact, IIRC, the RoR crew speak fairly respectfull of other frameworks aswell - like the django project. AFAIK the teams even are drinking buddies - or some equivalent of that. No, Rails never was the "Revolutionary. Exciting. Radical. Amazing!". Not with experienced web developers anyway. It was the Java communities darling because they like Ruby and RoR came at a time Ruby was getting some attention and PHP and others were caving in on Java *and* thus the Java crew needed something to join the fray without loosing face. Enter Ruby/RoR. That aside, there are far more innovative and mature projects out there that can serve as the bar for all things serverside than RoR - and most people doing web stuff know that.

    There is one thing however that Rails did better than anybody else and with which Rails actually has changed the face of the Open Source Web forever: Marketing. Before Rails OSS projects would present themselves on the crappiest of sites you could find on the web and displayed no intention whatsoever of moving towards end-users and end-developers in order to win them over for a solution. Rails changed that by 180 degrees within months. They practically invented screencasts and the now obnoxious '15 minute weblog' video presentation which basically has replaced "Hello World" in the webkit community. And boosted the revenue of Macromates, the makers of TextMate - nothing much more that a grafically pimped Emacs for OS X - by doing so. It is because of said marketing spree that Rails has gained such a widespread following within the Java community. Which goes to show that these people fall for good marketing - no matter what the truth or reality behind it. And given that Java devs - after a decade of non-web but Enterprise progamming - have a standing as opinion leaders with management, it is only natural that RoR took off. It's since Rails there is no new project in the world that can dare to enter the community with a crappy presentation. ... Ok, Glassfish maybe (*cringes at recalling the website*). But that's Java. They got the big gigs anyway - they don't need marketing.

    Prado, Zope, Mojavi, Ars Digita and other solutions are ancient by RoR standards, and some are way ahead technology wise. And most of the professionals I talk to are aware of that. ... Except for maybe some post-grad, still-wet-behind-the-ears tweens who are just out of college and weren't there for the first bubble.

    RoR is a neat framework and scores 30+ hits on a booksearch on Amazon. Which bodes well for RoR. But no one with real world web experience I know of was all that mesmerized by RoR as you claim.

    --
    We suffer more in our imagination than in reality. - Seneca
  58. What sort of framework to use then? by Hyperspite · · Score: 1

    Hey guys, I'm working on a website and we are trying to decide on a Django or Rails implementation. This article kind of scares me because we are thinking big.

    Personally, I wouldn't mind if Django is a little bit harder to develop in if it is significantly faster than rails and has more options (also I like python). On the other hand Rails has profiling and the ActiveRecord thing going on.

    I've done research but I'm still kind of deadlocked.Do any of you have any advice? It would be very much appreciated in making a decision.

    1. Re:What sort of framework to use then? by Alpha830RulZ · · Score: 1

      Django is not hard. We use it over Rails, and have had no complaints. We're just in dev, though, I don't have high volume experience. We chose it because of a better reputation on the net, which has not yet been contradicted by my experiences. I've only been using it for about 4 months. No complaints yet.

      --
      I was taught to respect my elders. The trouble is, it's getting harder and harder to find some.
    2. Re:What sort of framework to use then? by Serious+Callers+Only · · Score: 1

      I'm sure either would do fine. Why don't you mock up a simple app in both and see which you prefer. Or take a look at this video.

      Django has far more admin/auth stuff built in, so if that would be useful to you, it might have a head start. Also, do you have existing experience/skills in Ruby or Python?

      Both are nicely done and both will scale with a bit of work on them or the db, despite the ranting of ignorant internet pundits.

      Twitter seem to be doing a huge amount of messaging, which is unusual for a web app, so unless you're planning a clone, you probably wouldn't run up against a similar situation. I don't understand why they don't have a back end built with something like xmpp, and have the web app just talk to that.

    3. Re:What sort of framework to use then? by Hyperspite · · Score: 1

      Wow, Thank you for that link, that was really really helpful!

      I'll make sure my team watches that so that we can have an informed discussion.

      For the record, I did a little python a while back (but I forgot it), and one of my team members has experience with RoR so we are slightly biased in that direction.

      Thanks again!

    4. Re:What sort of framework to use then? by Hyperspite · · Score: 1

      Thanks for responding!

      Do you remember why specifically you chose it over rails? Better performance? Easier to work with?

      Good luck with your project :-)

    5. Re:What sort of framework to use then? by Alpha830RulZ · · Score: 1

      We chose it in response after reading a thread here on /., when Twitter was having performance probs a few months back. I looked it up after it was mentioned here, and found a lot of good things about it.

      --
      I was taught to respect my elders. The trouble is, it's getting harder and harder to find some.
  59. Does Rails Scale? by dr_leviathan · · Score: 1

    They must have read this webpage:
    http://doesrailsscale.com/

    --
    Religion is poison to rationality, and we lose sight of that at our own peril. -- Lurker2288
  60. Re:Sense, you're not making any... by devjj · · Score: 1

    Speak for yourself. Many of we Rails developers would be a lot happier to see Twitter go, because that's the one app everybody points to when they need an example of a Rails app that has problems scaling.

    RoR is my bread and butter, but I'm not one of these typical RoR fanboys who preach like Rails is the second coming of Christ, and will cure cancer while simultaneously letting you build the next Slashdot in five minutes.

    You want the truth? RoR isn't suited to every task, and Twitter is a perfect example of that! We're talking tiny text messages posted to an account. Then you have the concept of followers. That's pretty much it. It's a bonehead simple service that's built around extremely high volume and relatively low complexity. This thing should have a C/C++/Java backend and a thin and light frontend, where Rails would likely have no difficulty filling the job. Neither would Django, or Cake, or the languages themselves (Ruby, Python, PHP, etc).

    If Twitter ditches Rails it won't say a single thing about Rails' ability to scale beyond that it didn't work for them. What it does say is that choosing the wrong tool from the get-go is an ideal way to doom your app to having such issues.

    I don't know how many times I have to say it, but Rails is still a baby in the grand scheme of things, and so is Ruby. There was a time when people used to joke about writing high-performance applications in Java, but those days are over. Why? Lots and lots of brilliant people came together to figure out how to make Java fast, and they've done a really great job. Anyone who thinks that Ruby's issues with speed and Rails' exacerbations of them is going to be a constant has made an error in judgment. Then again, you can't really blame them.

    Said it before.. will say it again: people hate Rails because there are too many fscking Rails fanboys out there. Bad programmers who like Rails because it makes them look like stars. It makes those of us who take a practical and pragmatic approach have a rough time on sites like this. Anyone who's ever attended a RailsConf knows that there's a lot of enthusiasm, but the people who make it out to the conferences and pay their dues are - in general - very level-headed about what Rails can and can't do, and are actively working on solving those problems Rails has. Phusion Passenger (mod_rails) was born out of necessity, and I can speak from first-hand experience that it does exactly what it says.

    Everybody take a step back and relax. You didn't hear this kind of bitching when YellowPages ditched their system to rebuild in Rails, and in case anyone hasn't noticed, they're looking to hire even more Rails developers. Oh, and they're doing a great job scaling. If Twitter ditching Rails is evidence of Rails' failure, what does YellowPages' success with it tell us? Or, for that matter, any of the other large and successful Rails apps?

    FWIW, Twitter isn't *the* Rails app to most bonafide Rails developers. Basecamp is.

  61. Re:Sense, you're not making any... by Anonymous Coward · · Score: 0

    VB6's web support was a complete abortion. I know what you're saying, but its kinda silly to pump tech in a completely different domain.

    Better example in this case might be modperl or coldfusion. old and crappy but it works.

  62. Missing tag by felipekk · · Score: 1

    aprilfools

    Seriously, they aren't. Check the facts.

  63. Re:There's a whole monty python sketch for this sh by smittyoneeach · · Score: 1

    You missed the point. This is a stealth ad for twitter and RoR.
    Both of which are probably important, albeit not to me.

    --
    Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
  64. Follow the script by fm6 · · Score: 1

    I can't comment on RoR, but your generalization about scripting languages represents a standard misconception. A native code platform isn't automatically more efficient than one that's based on an interpreter or a virtual machine. If you need to do something that hogs the CPU for extended periods (such as scientific number crunching) then yeah, you want to use C+ or Fortran or something else that compiles to native code. (Though some VM designers claim they can beat native code with on-the-fly optimization.) But for a typical web application, the CPU time used by scripts that generate the pages is not a big bottleneck. Here's an example you may be familiar with.

    1. Re:Follow the script by achacha · · Score: 1

      I would say that you generalization that script languages are fast enough is a standard misconception. I have been writing web apps since 1993 and have used C/C++, java, perl, python, ruby, and even lisp and honestly I have yet to encounter a script language that can handle high load environments. Perl comes closest but is a nightmare to support if the dev team is more than a few people. Python while a great language for system scripts, not so good for web apps. Ruby is a nice language but doesn't scale so well under load. Java better than interpreted language. C/C++ fastest way to execute web apps but also more difficult (unless you know it well already).

      While I agree that interpreted language is great for low-medium server loads, under high loads you have to either start throwing hardware at the problem or rethink your language of choice.

    2. Re:Follow the script by fm6 · · Score: 3, Insightful

      C/C++ fastest way to execute web apps but also more difficult If all your web apps are faster with C/C++, you must run some very strange web apps. The efficiency of C++ comes from the fact that it compiles to machine code. Machine code only has an advantage when the CPU is the bottleneck. What kind of web application is CPU bound? Network and disk, more likely.

      And indeed, your experience differs a lot from that of thousands of web developers. Perl in particular had been called the Duct Tape of the Internet.

      Speaking of Perl, I notice that your complaint it is not that it's slow, but that it's hard to support. That's a legitimate complaint, but it says nothing about the relative efficiency of scripting languages.

    3. Re:Follow the script by chromatic · · Score: 1

      Perl comes closest but is a nightmare to support if the dev team....

      ... can't or won't write good Perl.

    4. Re:Follow the script by Kent+Recal · · Score: 1

      This is utter nonsense. Worse yet, if you *really* had implemented real apps in all these languages then you wouldn't be talking like that.
      If you feel an urge to "show off" on slashdot then please do it on a subject where you at least have a remote clue and don't spread FUD, kthx.

      Anyone who has implemented a large scale webapp (or other n-tier app fwiw) in any language knows that per-node performance becomes less relevant with every node you add. The static overhead of one language over another is only relevant very early and *very* late in the scalability curve and normally the productivity benefits outweigh that overhead easily. The significance of such overhead is further reduced by Moore's Law (CPUs only get faster) and by the fact that most apps are primarily I/O-bound.

    5. Re:Follow the script by mysqlrocks · · Score: 2, Funny

      I have been writing web apps since 1993 and have used C/C++, java, perl, python, ruby, and even lisp and honestly I have yet to encounter a script language that can handle high load environments.

      Have you tried PHP? I hear it runs several high load websites ;-)

    6. Re:Follow the script by cheater512 · · Score: 1

      Yeah the biggest sites on the net often run on surprisingly simple systems.

      Sure making your own custom web server in C with your web app integrated right in would be faster, but it simply wouldn't be worth it.

      You trade raw efficiency for development time.
      And most people are perfectly happy with that.

    7. Re:Follow the script by achacha · · Score: 1

      You've never done this have you, but in theory your argument sounds feasible.

    8. Re:Follow the script by achacha · · Score: 1

      I find it hard to write good perl, there are so many ways to write something that invariably people will use what they are comfortable with but necessarily what someone else would use, so you get a lot of different coding styles which make it very hard to debug and support.

      Personally I don't do perl for that reason, was on a project long ago where I inherited some perl scripts and they were downright painful to work with.

    9. Re:Follow the script by achacha · · Score: 1

      I've seen many kinds of applications: CPU bound, DB bound, network bound, etc. If the app is going to be DB bound or network bound then it does make sense to stick to a script. However if suddenly the DB is no longer the problem (local caching, bigger DB cluster, faster internal network), then the scripted application becomes a bottle neck and often much more difficult of a problem to solve by comparison (unless you find that adding more machine/CPU to be viable). If scaling and hardware costs are not a problem then by all means, scripting is fine.

      I worked in a place that went from C++ to java and the machine count went from 300 to over 5000 to maintain the overall performance and handle the growth at the same time. Needless to say supporting 5000 machines is not as easy as 300 and the IT costs really cut into the overall profit.

    10. Re:Follow the script by chromatic · · Score: 1

      ... there are so many ways to write something that invariably people will use what they are comfortable with but necessarily what someone else would use, so you get a lot of different coding styles which make it very hard to debug and support.

      I've found the same in any language, when you take into account maintenance concerns regarding naming conventions, indentation and bracing styles, the length of functions and methods and classes and modules, the presence or absence of design patterns, custom libraries, and domain knowledge. You can look up syntax in the manual.

      If you want coding standards for Perl (and if you want to produce maintainable code in any language, agree on some sort of coding standards within your team), start with Perl Best Practices and use the Perl::Critic distribution to identify places for improvement. Then, of course, practice all of the other important development practices such as comprehensive testing, refactoring, code review, and the like.

      After that, if you still can't produce maintainable Perl code, I'll buy you a cookie.

    11. Re:Follow the script by fm6 · · Score: 1

      Ooh, you switched to Java and your software was 16 times less efficient! Gosh, that Java really sucks!

      No, wait, that figure is meaningless. As you said yourself, some those extra 4700 systems were needed to handle the growth of your company. How many? How many page hits per machine were you serving when you had 300 machines, and how many when you had 5000.

      Perhaps switching to Java made you less efficient. Perhaps it made you more efficient. Perhaps it had no effect at all. The statistics you tell us nothing about that.

    12. Re:Follow the script by Anonymous Coward · · Score: 0

      Sure making your own custom web server in C with your web app integrated right in would be faster, but it simply wouldn't be worth it. Unless you're google [1] [2] [3].
    13. Re:Follow the script by Kent+Recal · · Score: 1

      I worked in a place that went from C++ to java and the machine count went from 300 to over 5000 to maintain the overall performance and handle the growth at the same time. Needless to say supporting 5000 machines is not as easy as 300 and the IT costs really cut into the overall profit.

      Dude, as I said in my other post, you're full of it.
      That figure is not only highly unrealistic, it is also totally meaningless without context.
      If you really have been involved in such a high profile operation then you surely won't mind to describe some of those tasks that forced you to "suddenly and unexpectedly" scale out by factor 16 after switching to java?

      Needless to say supporting 5000 machines is not as easy as 300 and the IT costs really cut into the overall profit.

      Yes, owning and operating half of a midsized datacenter "by accident" may cut a tiny bit into the bottomline.
      Enough so that it makes your story sound like total bullshit.
    14. Re:Follow the script by Kent+Recal · · Score: 1

      Oh, I am working at a company that designs such applications for a living and have been involved with fairly large scale deployments (~15 racks), too.
      Furthermore I can do basic math.

      You on the other hand don't even seem to realize that you're talking about investements in the upper two digit range here.
      Nobody spends that kind of money without a prior evaluation.
      Nobody spends that kind of money when the evaluation suggests that operational costs will explode by a factor of 16.

    15. Re:Follow the script by achacha · · Score: 1

      Well last place I worked in that shall remain nameless, went from 500 machine C++ website to almost 5000 machine java website to maintain same response times. Their best engineers and architects planned the move for over a year and initially the machine count was 1000 and the plan was to use j2ee to server common application logic to a cluster of servers. Development took roughly a year for 10% of the site (including the foundation work), over 400 people worked on it.

      QA ran perf tests and found that the performance was abysmal (RPC calls, inter-node communication, general j2ee slowness, etc), after much effort this was converted to jsps and servlets to regain some performance but it was nowhere near the 2x that Sun was claiming. There were a lot of factors that affected this but mostly it was the fact that java is slower than C++, java doesn't allow fine grained memory control, java almost requires you to have a lot of objects and small methods (thanks to plugins like codestyle, checklipse, etc).

      So here we had a lot of PhDs, top level architects and lots of developers get things working but it was not meant to be within a plan.

      While the overall costs did not explode by a factor of 16 it was close to a factor of 10, the decision to make the change mostly comes from above (CTO/chief architect level) and the real problem is not quite as easy.

      Unfortunately the problem is always a constraint on budget that has people underestimating (or their project will not be approved) then trying their best only to realize they need more hardware.

      Since you do this for a living I am sure you have ran across this at customer sites, it is very hard to accurately estimate the hardware requirement before the site is built but the budget for it has to be approved before the contracts are signed so you have the chicken/egg problem and often just hope for the best. If the site was already built and profiled, then obviously, estimating hardware is trivial.

    16. Re:Follow the script by achacha · · Score: 1

      It may sound that way but it happened (the 300 was a type, 500 was the initial machine count, not that it changes things too much).

      In my other post I went into it in my other post to you, but it was mainly j2ee which the architects claimed they profiled but when the code got written it turned out to be slower than expected. Other issue was using java based libraries for some critical rendering (can't go too much into it due to security) and had to be reverted back to old C++ code via JNI which was faster but not native. There were many other issues.

      Deep down inside the architects knew that they would need way more hardware but no way CTO/CFO would approve of the whole thing, so I feel there is a lot of "optimism" involved here.

    17. Re:Follow the script by achacha · · Score: 1

      I just won't go down the path of perl personally. I may read that book and do it right, but the code gets supported by many people of varying level of coding skill and you can't force everyone to read book. I have seen some simple and straightforward code become unreadable after 3 months of people adding features to it.

      I agree that this is possible with any language but perl's syntax can be deadly if an advanced perl user makes changes and then mid/entry level perl developers work on it also.

      Ultimately it comes down to what people are comfortable and what they know well, so I won't preach not using any specific language, whatever makes 'em happy. For my projects I'll stick to java/C++ for coding and python for scripting; just a personal preference.

    18. Re:Follow the script by Kent+Recal · · Score: 1

      Well, at least you're not caving up as I would have expected, so I'll give you the benefit of the doubt. ;-)

      Yes, technical projects get out of hand very often. What made me suspicious was the scale you claimed while at the same time blaming it single-handedly on a programming language.

      If this royal screwup really happened as you described then I assume it has been due to the usual mixture of sheer incompetence and unrealistic ambitions.
      From a technical POV there are *very* few areas where I could imagine the raw java (JVM) performance to become a bottleneck. In a well architected system the choice of programming language simply doesn't matter much in terms of scalability because it's static overhead. Highly optimized C or even assembler code may get you 1000 OPS/sec out of a machine instead of 800 OPS/sec with java. The ongoing effort (bugs, maintenance, expensive specialized staff) to sustain such micro-optimizations usually dwarves the benefit, though, and is only really done when you're dealing with something that can not be scaled out and is very expensive to scale up (i.e. big iron).

    19. Re:Follow the script by Kent+Recal · · Score: 1

      Well, sounds like your "j2ee architects" didn't know what they were doing. Not uncommon in that profession if I may add...

      So next time just stick blame where it belongs: on the incompetent staff.

      Even if java was too slow for a particular task in your environment then it's not java to blame but the people who chose to use it.
      Or can you imagine a brick&mortar architect to blame it on his ruler when one of his buildings collapses?

    20. Re:Follow the script by chromatic · · Score: 1

      ... the code gets supported by many people of varying level of coding skill and you can't force everyone to read book.

      If that's really true, then your problem is not Perl, is not technical, and no language will solve your problem.

    21. Re:Follow the script by achacha · · Score: 1

      It is a very real problem however and one that now spans continents (and language (human kind) barriers).

      Not sure there is an easy solution to this but sometimes it is easier to give people rubber mallet than box cutters, the collateral damage is less.

    22. Re:Follow the script by achacha · · Score: 1

      It did happen, and to one of the biggest sites on the web and the only reason it was not a big deal is due to their very high profit margin at the time. They could afford the hardware and data center fees. Smaller companies would have had real impact to their profits.

      The problem with java is not just raw performance, it's a combination of many things that I have noticed (ignoring the obvious nature of interpreted code):
      - Garbage collector instills a false sense of safety, so peaky allocations often deplete resources much quicker without an easy way to release them (in C you delete them when done with java you wait for GC and if load is sudden and high it can get out of hand)
      - java IDEs allow very easy refactoring which results in lots of classes and lots of 2-5 line methods which create huge call trees and if an exception occurs its not uncommon to see 100 lines deep in the stack trace
      - there is no real const so objects get passed around as copies where modification may not be desired (final is not a const, the reference is constant while underlying object is not), requires usage of interfaces on objects to limit access
      - too many huge jars (which not a coding issue) it sucks up deployment time when you have 50 jars that are 3-5mb in size

      among other minor issues. While I use java daily at work I find that with C++ I was a lot more productive and build took way less time despite compiled nature of the code.

      Another minor annoyance is distribution of code, while it is easy to send your jar file (which is say 100k) and execute the code, it often depends on other jars which are huge by comparisson and have to be shipped as well. For example xalan/xerces are 5MB zipped which in C++ you can just use the static libs and the resulting executable for the same code is 50-60k total, maybe not a big issue but an annoying one.

      No language is perfect but I am betting C++ will be making a big resurgence with so many ajax based apps coming to the web with sub-stellar usability and response... just a guess and a hope.

    23. Re:Follow the script by chromatic · · Score: 1

      Not sure there is an easy solution to this but sometimes it is easier to give people rubber mallet than box cutters, the collateral damage is less.

      The solution is not to hire barely-competent monkeys if you care about the results.

    24. Re:Follow the script by achacha · · Score: 1

      Well unfortunately the market for good developers is quite thin with a lot of not so good ones leftover from the boom and the upper managements' constant push for offshore development teams to save money. This of course is part of a large problem where good developers are expensive and rightfully so and financial people can't see it as a justified expense allocate pittance of a salary. What we get is either semi-competent developers or off-shored ones and in either case you never know what you are getting.

      "It's like a 'surprise ball' sometimes you get a raisin and sometimes you don't, that's the surprise." - Yosh Schmenge

    25. Re:Follow the script by Kent+Recal · · Score: 1

      You're mixing too much personal taste and preference into this.

      I don't like the java language either but the concurrent gc exists (which mitigates GC spikes), IDEs and coding practices are free for you to decide and your
      (maybe justified) antipathy for "lack of const" or "jar hell" are very minor aspects in a decision for or against a programming environment.

      Further, if you take a look at the real world you'll notice that dynamic languages like python and ruby are gaining ground against java, not C++. That's because developer productivity matters above everything else and many people begin to realize that these languages provide better ROI for common web tasks - despite being slower in terms of instructions per second.

      Nobody writes webapps in C++ because the language is not suited to the task.

  65. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  66. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  67. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  68. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  69. Re:Sense, you're not making any... by segedunum · · Score: 1

    When you need to whip off a simple interface to a database EXTREMELY fast for a little Mom&Pop shop IMHO nothing beats VB6+either Access or MySQL(depending on what is handy and the size of the shop).
    I agree with you. I don't know why on Earth people have a pop at VB, other than in the hands of a bad programmer it can be a joke (like everything really). I've seen people experienced with other languages, such as C++, Python, Ruby etc. get to grips with VB very quickly, produce some pretty impressive GUI applications and write some nice, neat and maintainable code with stuff separated into UI layers and business logic DLL layers and where they would never consider using anything else for creating user interfaces. Just because you can dump everything into one click event, it doesn't mean that everybody does.
  70. Why was the parent modded insightful? by arevos · · Score: 1

    Any language with fork() can scale. Claiming that Ruby can't is ridiculous.

    Whether Rails can scale or not is another matter, but the bottleneck in Twitter was not Ruby, but the MySQL database.

    This should, I hope, be common sense. It doesn't matter how slow your web server is, because you can always add more web servers. The point of failure is always going to be the database, because distributing writes is really tricky.

    Now, I do realise that the internet is full of people who don't consider ignorance of a subject as a handycap to talking about it. However, can we not mod up people who make claims without the remotest bit of logic or evidence to back them up?

    1. Re:Why was the parent modded insightful? by Foofoobar · · Score: 1

      You assume that Ruby is ACTUALLY threaded when it is NOT. It FAKES threading and is supposed to be adding REAL threading in the NEXT version (or so they say). So you just proved my point.

      --
      This is my sig. There are many like it but this one is mine.
    2. Re:Why was the parent modded insightful? by An+Onerous+Coward · · Score: 1

      Huh? It "fakes" threading by using independent processes that communicate via the database. Somebody tell those UNIX posers that they're not fooling anybody.

      It's like saying that a dog is faking being a cat, because it has fur.

      --

      You want the truthiness? You can't handle the truthiness!

    3. Re:Why was the parent modded insightful? by arevos · · Score: 1

      It doesn't matter whether Ruby is threaded or not. You can use fork() to create a new child process, and even if you didn't have that, you could still just start the interpreter twice.

      If I want to scale Ruby, I can just create another Ruby process. I can create a hundred independent Ruby processes if I want, on several different machines, all talking to the same database. Ruby is easy to scale; the database is not.

      Saying Ruby doesn't scale implies that you believe that only a fixed number of machines on earth can ever run Ruby.

      I hope that you're just trolling, because the alternative is that you're just a very stupid person.

  71. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  72. Just google it by yabos · · Score: 1

    All the time you wasted posting those two comments you could have just typed in twitter in google and found your answer.

  73. Groovy on Grails instead? by LionMage · · Score: 2, Interesting

    I wonder if they've considered Groovy on Grails instead of Java or PHP? Groovy has all the dynamic language features that make Ruby and JavaScript popular with developers, but is essentially 100% backward compatible with Java (since it's running on top of the Java VM and is implemented in Java). Groovy also leverages Java and any other language that can be hosted on the Java VM because it interoperates with all of that stuff, and itself runs on the same VM. You also get legitimate closures and simplified syntax for many things. It can even give you Java 5 semantics (generics, enumerations, etc.) under JDK 1.4.

    Grails is very similar to Rails, but is not a straight port -- more "inspired by," as it's described by its proponents. Grails also doesn't have the problem that Rails has in terms of scalability and performance, since it's built on Groovy/Java (which have a real threading model). No screwing around with creating a zillion Mongrel instances to scale your site, etc. And if you don't care to use the built-in web server that comes with Grails, you can have the Grails framework generate a WAR file which you can deploy in any container like Tomcat or Jboss.

    At a recent 3-day Grails training session taught by Scott Davis, I was surprised to hear that some major corporations have jumped on the Groovy/Grails bandwagon, including Mutual of Omaha. For a conservative company to make that kind of leap says something. (Furthermore, they used to be a COBOL shop -- the rationale appears to be that it's easier to get COBOL programmers to make the leap to Groovy first, then switch slowly to Java, as opposed to migrating directly to Java.)

    After that 3-day training, I was pretty impressed. The biggest win for Grails seems to be rapid development and deployment, but all the other stuff you get for free in the package makes it something you'd like to stick with. I'd say the thing that most impressed me with Grails was GORM, which makes Hibernate even easier to work with. GORM spoils me, since it obviates the need to write SQL most of the time.

  74. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  75. They're All Wrong by segedunum · · Score: 1

    Basically, RoR wishes that it was Zope. It's not. People here haven't even touched on the biggest clusterfuck in terms of wasted development time - deployment.

  76. Re:Sense, you're not making any... by hairyfeet · · Score: 1
    EXACTLY! Just because VB can blow up in your face in the hands of an unexperienced programmer it has always seemed everyone treats it like the red headed stepchild. But let's be honest-What programming language WON'T blow up in your face in the hands of a bad programmer. I have seen bad C++,Java,C,VB,etc. And while I am no programmer for the kind of work I do VB6 fits the bill and having been taught functions and classes by a very experienced teacher I have built up a nice selection of code snippets which allow me to whip off something fast,which is always the most important thing when you have a customer who needs it done yesterday.


    And as for the earlier poster complaining about VB6 web support and me "pumping it", I thought I had been clear when I said whatever works for you and keeps your clients happy is what you should use. And with all the web exploits we are constantly hearing about I'm personally VERY glad that VB6 isn't really "webcentric". IMHO the world would be a lot better place if everyone didn't try to stick everything on the web. While there is a place for the web in business applications this push I've been seeing to have everything web based is just a bad idea. Too many black hats,too many programmers that don't understand all the different attack vectors available on the web, and too big a risk for little to no gain for a lot of businesses.


    If your business gets tangible benefits from moving an app to web based and you have good security conscious programmers who can do it,great. But I guess I'm old fashioned like the VB6 I use. If it ain't broke,don't fix it and certainly don't chunk it just cause "web 2.0" sounds good to marketing. But as I said earlier that's my 02c and if your customer is happy with whatever language you use that is all that should matter.

    --
    ACs don't waste your time replying, your posts are never seen by me.
  77. Credulity rides again by thethibs · · Score: 1

    TechCrunch is speculating and clearly getting it wrong. Arrington's article comes out on the same day as an as an eWeek interview where Twitter's Britt Selvitelle talks about how they scaled up with Rails and offers some advice on the topic.

    As to abandoning Rails:

    Selvitelle told eWEEK that reports of Twitter abandoning Rails are "Not true in any sense. We use Ruby as our primary language. We have plenty of back-end architecture in other languages. Especially prototypes. We still use Rails and have no plans to discontinue this in the future."

    --
    I'm a Programmer. That's one level above Software Engineer and one level below Engineer.
  78. it depends on what you're doing by Trepidity · · Score: 1

    As C/C++ apps get more complex, I've found that many in effect start reimplementing garbage collectors, only in really buggy, inefficient ways.

    In simple apps, you can exactly police your memory patterns, and everything is created and freed in carefully defined locations. The only real complication here is that you usually (for efficiency) want an allocation strategy other than literally getting memory from the OS and returning it every time you do something minor, which fortunately C++ allocators can let you do.

    But things get complicated pretty quickly, when objects can be accessed from lots of places, and there's no obvious "ok now we're done, free it" point. The usual first step is to manage this with reference counting. Encapsulations like autopointers can help make this easier to use. This is in effect a really crappy garbage collector---not very fast, and prone to memory leaks.

    So what do you do next? Usually the first step is noticing that you have a bunch of memory leaks due to your reference counting leaving mutually-referential garbage. So you write a some code to look for objects with non-zero reference counts that aren't referenced by any 'real' live objects (Firefox just recently did this part). Now you have a slightly better ad-hoc garbage collector: reference counting plus cycle collection.

    In many cases, by the end you would've been better off in all respects, including efficiency, if you just used an off-the-shelf garbage collector.

    1. Re:it depends on what you're doing by lgw · · Score: 1

      C++ will have a garbage collector (opt-in) in the coming standard, but I've never found one necessary (and I've worked on C++ project with millions of lines of code). If there's not an obvious "now it's done, free it" point for every object, you have serious, fundamental design issues. I've found that 95% of the time, there's a scope that appropriately defines an object's lifetime, and the other 5% the object is part of some global container (which had better have well-defined rules for when objects are removed), or is being handed off from container to container as part of some well-defined workflow.

      But an object lifetime can always be defined as either "in this scope" or "in this container" until being either deleted or handed off, and containers are of course objects for which the same rule applies. It's not about efficiency, it's about understanding the workflow for each object.

      Scope-based object lifetime is not "really crappy garbage collection", it's just good design.

      I hate reference-counted anything, as there's always some impossible-to-find bug in the reference counting implementation itself that nails you when you least need it.

      --
      Socialism: a lie told by totalitarians and believed by fools.
  79. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  80. Starling by Anonymous Coward · · Score: 0

    Twitter wrote their own message queue based on the memcache protocol named Starling. It is actually quite awesome, and I've been using it at work lately.

  81. Lua... no. by Safiire+Arrowny · · Score: 1

    Having done both, I will vote that Ruby is much easier to extend with C than Lua.

    It was also next to impossible to extend Lua in an Object Oriented way, aside from one effort that was impossibly messy and in the programmers way.

    In fact, if the project/library/whatever that you want to make into an extention uses C++, you will need to create a wrapper function for every single C++ class's methods (or make them all static, boo) , because the signature for a Lua exported function must be a regular C function signature.

    Not to mention that you have to get intimate with Lua's stack as you pop each of the functions arguments, etc. etc.

    Ruby, writen in pure C, is possibly the most clean, and easy to extend scripting language I've seen yet. In fact when writing the extention itself, the C code almost exactly mirrors Ruby to the extent that you are basically writing Ruby code in C.

    Since Lua has essentially no libraries compared to the major scripting languages, and writing exentions is painful, I don't see it hosting the next big web anything framework any time soon.

    1. Re:Lua... no. by Anonymous Coward · · Score: 0

      Having done both, I will vote that Ruby is much easier to extend with C than Lua. I have also done both. Although Ruby is very easy also (much better than Perl or Python), Lua is better. I can tell by your response you have not spent much time with Lua.

      It was also next to impossible to extend Lua in an Object Oriented way, aside from one effort that was impossibly messy and in the programmers way. The entire Lua design is object oriented and fully dynamic. I highly recommend reading Programming in Lua or just the documentation. You have no idea what you are talking about.

      In fact, if the project/library/whatever that you want to make into an extention uses C++, you will need to create a wrapper function for every single C++ class's methods (or make them all static, boo) , because the signature for a Lua exported function must be a regular C function signature. This is no different than Ruby. There are C++ helper wrappers for both Lua and Ruby.

      Not to mention that you have to get intimate with Lua's stack as you pop each of the functions arguments, etc. etc. Ruby has the exact same thing it's just that you are using a helper wrapper. Lua has the same stuff.

      Ruby, writen in pure C, is possibly the most clean, and easy to extend scripting language I've seen yet. In fact when writing the extention itself, the C code almost exactly mirrors Ruby to the extent that you are basically writing Ruby code in C. Uh, Lua is pure C also, even moreso than Ruby. One of the key original goals of Lua was to be as close to 100% ANSI C as possible. They have specifically left out certain features to meet these requirements.

      Since Lua has essentially no libraries compared to the major scripting languages, and writing exentions is painful, I don't see it hosting the next big web anything framework any time soon. LOL, obviously you have never heard of LuaForge.
  82. Re:How about the fact they're running it on Slowar by njcoder · · Score: 1

    And the scalability issue is not the x86 Slowaris systems they're running it on? Scalability of a platform is rarely just a RoR issue... Uhm. Check your facts, Twitter is running on Linux

    The used to run on OpenSolaris when they were with Joyent. They tried to blame their outages on Joyent and changed hosting. That their still having problems can't be blamed on either Linux or Solaris in my opinion.
  83. ar1024 by ar1024 · · Score: 1

    Maybe they should switch to django, python-based framework. Google sure believes it can scale well. (hint: app engine) :-)

  84. The trouble is Rails by malbrech · · Score: 1

    Twitter is basically a database application, where a lot of the stress comes in getting things into and out of the database at high speed.

    How can you expect high performance from a framework that basically hides the sweat from good db programming? Any framework, not just Rails will fail. When you get a load higher than, say 600 reqs per second, you have to come down to understanding how to scale db performance -- take the framework away and start doing serious work.

  85. my twitter by aqk · · Score: 1

    right now, I'm currently having a laff at this time.

    -

    .

  86. Re:Sense, you're not making any... by Kirkoff · · Score: 1

    Basecamp eh? Finally I have a reason to dislike Rails!

    --
    There are exactly 42,935,718 letter sized sheets in a square mile.
  87. Maybe they should check out Flaming Thunder by David+Parker · · Score: 1

    Statically-linked compiled CGI scripts are usually a lot faster than anything that's interpreted.

  88. Re:Sense, you're not making any... by chriseyre2000 · · Score: 1

    I have yet to see a well structured VB6 app. The power of VB6 came from the third party controls market and they are slowly losing support/documentation.

  89. Re:Sense, you're not making any... by Anonymous Coward · · Score: 0

    Uh,thanks,but if you'd read any of my past posts you would know(probably to your horror)that i wasn't trolling. When you need to whip off a simple interface to a database EXTREMELY fast for a little Mom&Pop shop IMHO nothing beats VB6+either Access or MySQL(depending on what is handy and the size of the shop). Guess what, Ruby on rails is ideal exactly for that kind of apps, especially once you get familiar with rails plugins and add-ons, like active scaffold to make admin interface for related tables. Works like a charm in any OS except windows, where I found it to be quite slow. Django is a good alternative. Does vb give you a decent performing client server app with no seats restriction, where every web enabled device can be a client?

    I also use rails with lighttpd for slightly more crowded apps, I would have rewritten twitter in php, anyway.
  90. Re:Sense, you're not making any... by hairyfeet · · Score: 1
    Well,you see the problem is my clients ARE using windows,so there is one problem. For another the LAST thing I'd want to do is have web enabled ANYTHING with the shops since the apps I usually cook up for them(I'm mostly a hardware guy who just happens to still remember his BASIC and VB6 from the old days) are nearly always for internal record keeping such as client lists,mailing list,billing records,etc. And as I said we are talking little Mom&Pop shops like major appliance repair,car repair, even a little junk yard which I gave a little app that lets them keep up with parts and where on the backlots the dead cars are placed.


    So while I have no doubt in an experienced set of hands RoR could probably do what I use VB6 for, in my line of work it would be total overkill,add unneeded overhead and security risks that a nice VB6 client/server app on an internal network simply doesn't have. Not to mention it would add time that my clients wouldn't appreciate and I doubt I'd be able to make up in billing just to run RoR whereas with VB6 I have saved several years worth of code snippets that allow me to very quickly whip off a simple client server app using either VB6 and Access or MySQl,depending on how big i think the database might grow to. But as I said in an earlier post,if RoR gets the job done and makes the clients happy,I'm glad it works for you. I just hated the way some folks would look down on VB6 like it was just a waste of time when it the right situation it is just as valid a solution IMO as anything else. Maybe more so if you have situations like I get where time is a factor. But that is my 02c,YMMV.

    --
    ACs don't waste your time replying, your posts are never seen by me.
  91. Re:Sense, you're not making any... by TJamieson · · Score: 1

    Ok, now I understand more of what you mean. I will wholeheartedly agree that VB is great for mockups, and strangely it's a great testbed for WinAPI calls.

    But still, what happens when the day comes that MS pulls support for VB6? Or is there simply too much inertia in the language to prevent them from killing it?

    --
    For the last time, PIN Number and ATM Machine are redundancies!
  92. Re:Sense, you're not making any... by hairyfeet · · Score: 1
    I honestly don't see how they CAN kill it,as I've run into so many mission critical apps written in VB(and as I've posted earlier apparently I've written a few mission critical of my own,at least to hear my customers tell it) that to try to make a version of Windows where VB won't run would probably be the business kiss of death.


    But,let us say for the sake of arguement that someone REALLY stupid in MSFT decided "VB6 MUST DIE!" and Windows 7 wouldn't run it. I seriously doubt that given the simplicity of the underlying code that it would be very hard for someone who is a better programmer than I to come up with a little VM that allows for the simple VB client/server model to operate. Hell,didn't VB6 still have support for DOS,since it was originally released in '98? If so I bet it wouldn't be hard to tweak FreeDOS to be a host for a single VB6 frontend to connect to whatever backend you have the database sitting on. And with the size of today's HDDs you could easily push out the VM to the desktop of everyone who needed it. Then the user could simply double click on the VM and have it launch the app running in a FreeDOS environment.


    But I'm probably over complicating it here. As my VB6 teacher Mr. Mikesell once said "Don't go tearing the server apart before you've even checked the Ethernet cable.". I'm sure someone has already come up with a way to run VB6 in a virtual machine. I just don't have the time ATM to go searching Freshmeat and Sourceforge to check. But as long as there are VB6 apps out there running little jobs that makes a business run a little easier(which is what I always thought VB6 excelled at) I'm sure there will be guys figuring out how to get it to run on newer software/hardware. But that is my 02c,YMMV.

    --
    ACs don't waste your time replying, your posts are never seen by me.
  93. Hypoinformation. by jotaeleemeese · · Score: 1

    Why do your friends need to know you are going away during the weekend?

    Answer: they don't.

    In 99% of what passes for communication nowadays, the need for saying or informing other people about something it completely and utterly artificial.

    --
    IANAL but write like a drunk one.
  94. You missed the arrival of mobile phones and 3G by jotaeleemeese · · Score: 1

    Do they have those technologies in the planet you just recently arrived from?

    --
    IANAL but write like a drunk one.
  95. That is not scaling. by jotaeleemeese · · Score: 1

    Scaling means that you don't hit performance issues for a particular resource or that you hit them in a lineal fashion.

    An application that does not scale will stall at some point for some resource (CPU, disk, network, whatever) and just throwing more resource at the problem will not sort it.

    Throwing machines at a problem is a typical case of an application that is not scaling at all, you would expect that an application that is going to scale requests CPU in a linear fashion until a second machine is needed, tha usage scales linearly in both until a third machine is needed and so on.

    If you have a process that all of the sudden needs 2 or 3 more machines most likely you should rethink your whole design...

    --
    IANAL but write like a drunk one.
    1. Re:That is not scaling. by arevos · · Score: 1

      Irrelevant. Firstly, we're talking whether Ruby can scale, not whether a particular application or framework can. Ruby processes are independent of one another; they don't magically communicate unless the developer explicitly specifies a common communications channel, such as a database.

      Can you scale a set of independent processes? Obviously you can. Barring a faulty OS, independent processes scale linearly. Ruby scales perfectly because there is no implicit interaction between Ruby processes.