Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Social Networks The Internet Programming IT Technology

Twitter Reportedly May Abandon Ruby On Rails 423

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.
This discussion has been archived. No new comments can be posted.

Twitter Reportedly May Abandon Ruby On Rails

Comments Filter:
  • Re:What is Twitter? (Score:5, Informative)

    by revscat ( 35618 ) on Friday May 02, 2008 @11:50AM (#23275592) Journal
    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.
  • Re:What is Twitter? (Score:5, Informative)

    by LWATCDR ( 28044 ) on Friday May 02, 2008 @11:51AM (#23275598) Homepage Journal
    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.
  • by spun ( 1352 ) <loverevolutionary&yahoo,com> on Friday May 02, 2008 @11:52AM (#23275622) Journal
    This [penny-arcade.com] is what Twitter is for.
  • Re:What is Twitter? (Score:2, Informative)

    by svandoren ( 1076277 ) on Friday May 02, 2008 @11:54AM (#23275638) Homepage

    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 /.

  • by mini me ( 132455 ) on Friday May 02, 2008 @12:09PM (#23275882)
    And Penny Arcade is a Rails site!
  • Re:What is Twitter? (Score:3, Informative)

    by garcia ( 6573 ) on Friday May 02, 2008 @12:10PM (#23275892)
    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 [twitter.com] 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.
  • Re:Ruby Can't Scale (Score:4, Informative)

    by ivan256 ( 17499 ) on Friday May 02, 2008 @12:38PM (#23276272)
    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.
  • by Anonymous Coward on Friday May 02, 2008 @12:44PM (#23276362)
    http://twitter.com/ev/statuses/801530348
  • Re:Ruby Can't Scale (Score:2, Informative)

    by Standard User 79 ( 1209050 ) on Friday May 02, 2008 @01:09PM (#23276710)
    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.

  • by arevos ( 659374 ) on Friday May 02, 2008 @01:56PM (#23277316) Homepage
    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.
  • Comment removed (Score:5, Informative)

    by account_deleted ( 4530225 ) on Friday May 02, 2008 @01:56PM (#23277328)
    Comment removed based on user account deletion
  • by claytonjr ( 1142215 ) on Friday May 02, 2008 @02:31PM (#23277832) Homepage
    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.
  • by vux984 ( 928602 ) on Friday May 02, 2008 @03:51PM (#23278884)
    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 [microsoft.com]

    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
  • by keester ( 646050 ) on Friday May 02, 2008 @04:27PM (#23279334)

    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.

  • Re:Ruby Can't Scale (Score:3, Informative)

    by DragonWriter ( 970822 ) on Friday May 02, 2008 @04:36PM (#23279448)

    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).
  • Re:What is Twitter? (Score:3, Informative)

    by achacha ( 139424 ) on Friday May 02, 2008 @06:14PM (#23280312) Homepage
    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.
  • by graznar ( 537071 ) on Saturday May 03, 2008 @01:56AM (#23282560) Homepage
    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.

He has not acquired a fortune; the fortune has acquired him. -- Bion

Working...