I made Phil Ripperger stand in line for an Xbox 360

I get blamed for lots of things. But this is the first time I’ve been blamed for making someone stand in line for an Xbox 360. Phil has a lengthy post including pictures. I love his conclusion: “Scoble, the XBox 360 is going to destroy the Playstation 3.”

But then his note turns sour. He says he’s walking away from Microsoft’s Web development tools. He’s going to Ruby on Rails and won’t be back until we get the magic back. Well, that’s what we’re working hard on and why we’re doing the Mix06 event.

One question, though. Have you checked out the latest ASP.NET and Visual Studio 2005? If so, what about it turns you to Rails?

  • ao

    I’ll echo most of “Louis”‘s comments above. I work with ASP.NET at work and Rails at home.

    ASP.NET even in 2.0 retains an attitude which is, at its core, anti-web. It seems as if its designed and built for people who not only don’t care passionately about web standards and browser compatibility, but by and for people who ACTIVELY DISLIKE THE WEB.

    The simple fact that ASP.NET cannot produce simple, readable, styleable valid XHTML is just plain ignorance. ASP.NET seems to go out of its way to shield me from the very things I want by-hand control over, and to provide me with endless stupid options that are not useful to me. Fuck man, ASP.NET takes over all the #id attributes of my HTML elements! That’s bullshit, just bullshit.

    Rails treats XHTML as a first-class delivery vehicle, assumes I want model validation and user-friendly errors from the get go. It assumes I will design and develop my application in layers that correspond to the principles unobtrusiveness: the CSS layer will not be baked into the HTML; the Javascript will not minimally autogenerated from my framework.

    Plus, yes, Ruby is a deeply beautiful language. Rails extends that beauty to the web framework world. The OS X text editor TextMate is something approaching a work of art. Why would I want to spend my work time in a tool environment I felt any less deeply about?

  • Matt White

    I’m a professional ASP.Net developer and a freelance RoR developer, and I have to tell you that apps in RoR are soooo much simpler and cleaner to implement than those in ASP.Net. All of the database access stuff is gone, which is the stuff that I waste so much time on. I just haven’t seen any good O/R persistence frameworks for .Net yet, and I am simply not interested in building my apps by dragging and dropping components around. That just leads to messy, messy code. RoR frees me from having to do that while giving me a clean, elegant way to interact with my database.

    I’m also a big fan of web standards, and I am sick and tired of how Microsoft’s browser-specific code generation insists on giving Mozilla one thing while giving IE something else. With RoR I have total control over that, and it doesn’t add much development time. I can have clean, compatible sites that behave fine in any browser without having to outthink the system.

    RoR is cheap. I can get a VDS running Linux that gives me my OWN SERVER for $20/month. Can you do that with Windows? Nope… I’ve been trying to get my hands on a dedicated Windows server for years, but the cost of the OS coupled with the cost of the DB (SQL Server) has kept it out of my reach. Not so with RoR.

    Simple, fast, and clean… I really like the idea of less is more, and RoR really embodies that with deb apps. .Net is great for enterprise-wide heavy duty stuff, but that’s not what I do. I build web apps, and for that ASP.Net is just too heavy for me to want to use, unless I have to.

    P.S. Don’t be afraid of the command line! It’s your friend!

  • Matt White

    I’m a professional ASP.Net developer and a freelance RoR developer, and I have to tell you that apps in RoR are soooo much simpler and cleaner to implement than those in ASP.Net. All of the database access stuff is gone, which is the stuff that I waste so much time on. I just haven’t seen any good O/R persistence frameworks for .Net yet, and I am simply not interested in building my apps by dragging and dropping components around. That just leads to messy, messy code. RoR frees me from having to do that while giving me a clean, elegant way to interact with my database.

    I’m also a big fan of web standards, and I am sick and tired of how Microsoft’s browser-specific code generation insists on giving Mozilla one thing while giving IE something else. With RoR I have total control over that, and it doesn’t add much development time. I can have clean, compatible sites that behave fine in any browser without having to outthink the system.

    RoR is cheap. I can get a VDS running Linux that gives me my OWN SERVER for $20/month. Can you do that with Windows? Nope… I’ve been trying to get my hands on a dedicated Windows server for years, but the cost of the OS coupled with the cost of the DB (SQL Server) has kept it out of my reach. Not so with RoR.

    Simple, fast, and clean… I really like the idea of less is more, and RoR really embodies that with deb apps. .Net is great for enterprise-wide heavy duty stuff, but that’s not what I do. I build web apps, and for that ASP.Net is just too heavy for me to want to use, unless I have to.

    P.S. Don’t be afraid of the command line! It’s your friend!

  • dru

    I am a .Net developer that tried to get on the RoR band wagon but couldn’t even get the car started. I just could not get Linux and Apache or lighttpd and MySQL to work. The CLI of linux is very cool but ultimatly I need something that works. Not something that has to have x many things installed before it works. I know part of my issue was a lack of Linux expereince, but I can walk my mom through setting up an ASP.Net site, whereas I had several people on irc fail to help me setup RoR on Linux.

    I agree with some of the statements about ASP.Net and some of their design choice. Particulary the part about trying to hide the things you want control over. There does need to be more support for web developers that want (and because of cross browser issue) and need a high degree of control over the markup.

    O/R support. Bullshit plain and simple. NHibernate, is a perfectly fine O/R toolkit, it gets the job done and is made in development with Hibernate. Don’t like that style take a look at db4o, Bamboo, iBatis, NPersist, etc. There is a lot of support for O/R in .Net and from what I can see .Net 2.0 Generics is going to raise the roof in Very interesting ways.

    If you want the style of development that RoR has, just look at http://www.castleproject.org and what they are doing with a RoR style port for .Net. They have a killer Front Controller pattern going that is MonoRail, the have IoC out the yin-yang covered with their MicroKernel, and the have an ActiveRecord pattern in Castle.MicroKernel. They are also working with Aspect# people to weave AOP support in to the project as well.

    Scoble, take a look at what Hammett is doing over there. I think he is doing some very interesting work for the .Net environment.

    RoR is great as is .Net, and everything language has projects that are a best fit for it, but as a sole developer for my firm I love that I can take the .Net platform everywhere I need to solve a problem.

    dru

  • dru

    I am a .Net developer that tried to get on the RoR band wagon but couldn’t even get the car started. I just could not get Linux and Apache or lighttpd and MySQL to work. The CLI of linux is very cool but ultimatly I need something that works. Not something that has to have x many things installed before it works. I know part of my issue was a lack of Linux expereince, but I can walk my mom through setting up an ASP.Net site, whereas I had several people on irc fail to help me setup RoR on Linux.

    I agree with some of the statements about ASP.Net and some of their design choice. Particulary the part about trying to hide the things you want control over. There does need to be more support for web developers that want (and because of cross browser issue) and need a high degree of control over the markup.

    O/R support. Bullshit plain and simple. NHibernate, is a perfectly fine O/R toolkit, it gets the job done and is made in development with Hibernate. Don’t like that style take a look at db4o, Bamboo, iBatis, NPersist, etc. There is a lot of support for O/R in .Net and from what I can see .Net 2.0 Generics is going to raise the roof in Very interesting ways.

    If you want the style of development that RoR has, just look at http://www.castleproject.org and what they are doing with a RoR style port for .Net. They have a killer Front Controller pattern going that is MonoRail, the have IoC out the yin-yang covered with their MicroKernel, and the have an ActiveRecord pattern in Castle.MicroKernel. They are also working with Aspect# people to weave AOP support in to the project as well.

    Scoble, take a look at what Hammett is doing over there. I think he is doing some very interesting work for the .Net environment.

    RoR is great as is .Net, and everything language has projects that are a best fit for it, but as a sole developer for my firm I love that I can take the .Net platform everywhere I need to solve a problem.

    dru

  • David Richardson

    PoR is an order of magnitude more productive than any commercial platform (and all but a few non-commercial ones), it is well documented, it is deployment platform agnostic, it is written in a language that is a joy to use, it adheres to sound design principles and the developer community is generally technically qualified, responsive and not overwhelmed by the over-credentialed and under-qualified.

    Have used asp.net v.2, asp.net v.1 and associated tools. While v.2 offers a huge improvement over v.1 of the same, it is still too expensive, too unproductive, emits goofy html, is tied to a single grossly insecure and exorbitantly expensive platform, is poorly documented, and has way too much technically unqualified fan-boy noise in its surrounding community. Can’t develop mission-critical apps in something with support as dismal as asp.net has.

  • Julian Leviston

    What’s Microsoft?

  • David Richardson

    PoR is an order of magnitude more productive than any commercial platform (and all but a few non-commercial ones), it is well documented, it is deployment platform agnostic, it is written in a language that is a joy to use, it adheres to sound design principles and the developer community is generally technically qualified, responsive and not overwhelmed by the over-credentialed and under-qualified.

    Have used asp.net v.2, asp.net v.1 and associated tools. While v.2 offers a huge improvement over v.1 of the same, it is still too expensive, too unproductive, emits goofy html, is tied to a single grossly insecure and exorbitantly expensive platform, is poorly documented, and has way too much technically unqualified fan-boy noise in its surrounding community. Can’t develop mission-critical apps in something with support as dismal as asp.net has.

  • Julian Leviston

    What’s Microsoft?

  • David Richardson

    Above should read RoR, not PoR.

  • David Richardson

    Above should read RoR, not PoR.

  • Paul

    The ship is listing to port as the gapping hole lets in more water. There are no ‘true’ hatches and it’s only a matter of time.

  • Paul

    The ship is listing to port as the gapping hole lets in more water. There are no ‘true’ hatches and it’s only a matter of time.

  • Pingback: Microsoft News Tracker » Microsoft to display its Web 2.0 prowess at Mix06

  • Matt White

    Dru’s comments above are well-taken, but I can’t really give it a whole lot of weight because he didn’t really *use* RoR. While there are lots of O/R frameworks out there (for many different platforms), why are there tons of Java developers that have been using Hibernate bailing out for Rails? Because even though Hibernate (and NHibernate) provide the O/R layer, ActiveRecord does it with NO CONFIGURATION. No XML required, nothing. That’s something that is NOT provided by any O/R framework in .Net. (and really can’t be provided, because of the compiled vs. scripted language of .Net vs. Ruby) And quite honestly, that’s a major factor in me not using .Net in some cases. There’s WAY more to RoR than that, but that’s still the one that makes me giggle like a little nerd when start on a new project…

  • Matt White

    Dru’s comments above are well-taken, but I can’t really give it a whole lot of weight because he didn’t really *use* RoR. While there are lots of O/R frameworks out there (for many different platforms), why are there tons of Java developers that have been using Hibernate bailing out for Rails? Because even though Hibernate (and NHibernate) provide the O/R layer, ActiveRecord does it with NO CONFIGURATION. No XML required, nothing. That’s something that is NOT provided by any O/R framework in .Net. (and really can’t be provided, because of the compiled vs. scripted language of .Net vs. Ruby) And quite honestly, that’s a major factor in me not using .Net in some cases. There’s WAY more to RoR than that, but that’s still the one that makes me giggle like a little nerd when start on a new project…

  • http://www.swoofware.com/ Matt Smith

    Why is Ruby on Rails so popular? For the same reason that Firefox is slowly gaining ground on IE. Sure, part of it is because the Anything But Microsoft crowd is piling on, but it’s also because both RoR and FF are just simply done right: they implement standards and patterns as expected; they leave the developer in full control; and they benefit from full and immediate input and direction from the user community (and also lessons learned from all those who have gone before).

    Some things in my opinion that make RoR stand out:
    - MVC for dealing with controlling flow
    - Domain Model pattern for dealing with data objects
    - Built-in validation that looks good from a designer point of view
    - Full control of the generated code which equals standards compliance
    - Aesthetically pleasing URLs (trivial but important)

    On the flip side, .Net offers:
    - The Page model and all the fun of postbacks and viewstate, etc. While these offer great conveniences, they make for a lazy programmer and a bloated page and can lead to their own set of headaches. ebay, yahoo, amazon, etc. have managed to be successful without this pattern.
    - The DataSet model and directly binding from your presentation tier to the data tier. Why is that everyone knows that Domain Model is a really nice way to deal with data but it is nearly impossible to find MS examples?
    - A half-baked attempt at data validation controls in 1.1 that rapidly fell short once you got past basic validation.
    - I’m not sure how VS2003 ever got released without being able to generate compliant pages and still having the ‘feature’ to mangle your hand-crafted html (especially since everyone has complained about that since the earliest days of FrontPage).
    - Having page extensions on all your urls might seem pretty trivial but once you go to ‘clean urls’, you’ll never want to go back. Not only are the pleasing to work with, but they are platform agnostic.

    Don’t get me wrong. Microsoft has been my bread and butter for the past 10 years. I can’t leave. However, I follow a lot of designer types (Zeldman, Cederholm, Meyer, etc.) and am envious of the sites, applications, and tools that come out of their side compared to things that come from the Microsoft community. I just hope that RoR puts a little more pressure on MS just like FF. Competition is a good thing.

  • http://www.swoofware.com Matt Smith

    Why is Ruby on Rails so popular? For the same reason that Firefox is slowly gaining ground on IE. Sure, part of it is because the Anything But Microsoft crowd is piling on, but it’s also because both RoR and FF are just simply done right: they implement standards and patterns as expected; they leave the developer in full control; and they benefit from full and immediate input and direction from the user community (and also lessons learned from all those who have gone before).

    Some things in my opinion that make RoR stand out:
    - MVC for dealing with controlling flow
    - Domain Model pattern for dealing with data objects
    - Built-in validation that looks good from a designer point of view
    - Full control of the generated code which equals standards compliance
    - Aesthetically pleasing URLs (trivial but important)

    On the flip side, .Net offers:
    - The Page model and all the fun of postbacks and viewstate, etc. While these offer great conveniences, they make for a lazy programmer and a bloated page and can lead to their own set of headaches. ebay, yahoo, amazon, etc. have managed to be successful without this pattern.
    - The DataSet model and directly binding from your presentation tier to the data tier. Why is that everyone knows that Domain Model is a really nice way to deal with data but it is nearly impossible to find MS examples?
    - A half-baked attempt at data validation controls in 1.1 that rapidly fell short once you got past basic validation.
    - I’m not sure how VS2003 ever got released without being able to generate compliant pages and still having the ‘feature’ to mangle your hand-crafted html (especially since everyone has complained about that since the earliest days of FrontPage).
    - Having page extensions on all your urls might seem pretty trivial but once you go to ‘clean urls’, you’ll never want to go back. Not only are the pleasing to work with, but they are platform agnostic.

    Don’t get me wrong. Microsoft has been my bread and butter for the past 10 years. I can’t leave. However, I follow a lot of designer types (Zeldman, Cederholm, Meyer, etc.) and am envious of the sites, applications, and tools that come out of their side compared to things that come from the Microsoft community. I just hope that RoR puts a little more pressure on MS just like FF. Competition is a good thing.

  • http://nomadlife.org/ Dody Gunawinata

    “If you want the style of development that RoR has, just look at http://www.castleproject.org and what they are doing with a RoR style port for .Net.”

    Bleh, it has all the learning curve of RoR, none of the elegance.

    “O/R support. Bullshit plain and simple. NHibernate, is a perfectly fine O/R toolkit, it gets the job done and is made in development with Hibernate. Don’t like that style take a look at db4o, Bamboo, iBatis, NPersist, etc. There is a lot of support for O/R in .Net and from what I can see .Net 2.0 Generics is going to raise the roof in Very interesting ways.”

    Nope; wrong. There is no decent O/R support in .Net outside code generators like LLBLGen. Everything else needs bazillion pages of XML configuration.

    db40 is an object db, not a O/R mapper.

  • http://nomadlife.org Dody Gunawinata

    “If you want the style of development that RoR has, just look at http://www.castleproject.org and what they are doing with a RoR style port for .Net.”

    Bleh, it has all the learning curve of RoR, none of the elegance.

    “O/R support. Bullshit plain and simple. NHibernate, is a perfectly fine O/R toolkit, it gets the job done and is made in development with Hibernate. Don’t like that style take a look at db4o, Bamboo, iBatis, NPersist, etc. There is a lot of support for O/R in .Net and from what I can see .Net 2.0 Generics is going to raise the roof in Very interesting ways.”

    Nope; wrong. There is no decent O/R support in .Net outside code generators like LLBLGen. Everything else needs bazillion pages of XML configuration.

    db40 is an object db, not a O/R mapper.

  • http://jroller.com/page/obie Obie Fernandez

    My take on why smart consultant firms are starting to win RoR gigs over .NET and Java is at
    http://www.jroller.com/page/obie?entry=productivity_arbitrage

  • http://jroller.com/page/obie Obie Fernandez

    My take on why smart consultant firms are starting to win RoR gigs over .NET and Java is at
    http://www.jroller.com/page/obie?entry=productivity_arbitrage

  • http://www.gmosx.com/ George Moschovitis

    Even though C# is nice, Ruby is even better. Check out another Ruby Web framework called Nitro:

    http://www.nitrohq.com

  • http://www.gmosx.com George Moschovitis

    Even though C# is nice, Ruby is even better. Check out another Ruby Web framework called Nitro:

    http://www.nitrohq.com

  • Ed W

    If you don’t like the command line bits of RoR then check out RadRails for a phenominal RAD environment for rails:

    http://www.radrails.org/

  • Ed W

    If you don’t like the command line bits of RoR then check out RadRails for a phenominal RAD environment for rails:

    http://www.radrails.org/

  • http://vagueware.com/ Paul Robinson

    I now develop everything in RoR.

    I managed a development of an internet portal system for a University. I was employed for three years (until the end of this month!) and had a project budget of £1.2 million. We built in .NET and based most of the framework on Microsoft Content Management Server. It took 4 developers, 2 SQL boxes, several hundred thousand lines of code and many, many hundreds of thousands of pounds to get something that was so-so together.

    I reimplemented the whole thing in RoR in about a week, on my own, and it was a quicker system when it was finished. I was able to develop on my feeble little iBook, deploy onto a FreeBSD server and plug it into MySQL. The finished product looked identical to the MS solution but was cheaper, quicker and more fun to develop.

    .NET has come a long way since 2002 when we started out the project, but still – the trouble it caused me has left a bitter taste in my mouth. Part of the problem is that RoR’ers tend to be just better coders, whereas .NET’ers for hire tend to be people who learnt to code out of a book because it sounded like a neat idea.

    There are lots of reasons why I am now a full-time RoRer, but principally:

    - I can develop on the OS of my choice
    - I can deploy to an OS of my customer’s choice (even W2k3 if they need, but they normally ask for something which, you know, works)
    - I can develop quicker
    - Ruby is more fun to work with than ASP.NET by a long, long way. That makes me a more productive developer, which is a Good Thing.
    - I don’t need heavy hardware to develop or deploy with – I can get by with a puny 400Mhz celeron if I need to.
    - It’s completely free
    - I have the source code to patch, work around, learn from
    - My customers pay less which means I can now compete with off-shore developers on cost terms: if they’re using .NET and I’m using RoR, I’ll deliver a better system for less money and in 1/10th the time and yet I still have my nice European lifestyle. Sure the off-shorers will catch up, Rails is so quick I can spend more time talking to my customers and understanding their needs better, so I’ll probably still win out.

    It’s a no-brainer. The fact MS can’t see that .NET in its current form is a ridiculous proposition as a development platform for freelance and SME developers makes me laugh. .NET epitomises the Enterprise developer: close-minded, overly complicated, etc.

    Start supporting mono, I’ll think about coming back, but only if VS is ported to OS X and can run as smoothly on my iBook as Textmate does. :-)

  • http://vagueware.com Paul Robinson

    I now develop everything in RoR.

    I managed a development of an internet portal system for a University. I was employed for three years (until the end of this month!) and had a project budget of £1.2 million. We built in .NET and based most of the framework on Microsoft Content Management Server. It took 4 developers, 2 SQL boxes, several hundred thousand lines of code and many, many hundreds of thousands of pounds to get something that was so-so together.

    I reimplemented the whole thing in RoR in about a week, on my own, and it was a quicker system when it was finished. I was able to develop on my feeble little iBook, deploy onto a FreeBSD server and plug it into MySQL. The finished product looked identical to the MS solution but was cheaper, quicker and more fun to develop.

    .NET has come a long way since 2002 when we started out the project, but still – the trouble it caused me has left a bitter taste in my mouth. Part of the problem is that RoR’ers tend to be just better coders, whereas .NET’ers for hire tend to be people who learnt to code out of a book because it sounded like a neat idea.

    There are lots of reasons why I am now a full-time RoRer, but principally:

    - I can develop on the OS of my choice
    - I can deploy to an OS of my customer’s choice (even W2k3 if they need, but they normally ask for something which, you know, works)
    - I can develop quicker
    - Ruby is more fun to work with than ASP.NET by a long, long way. That makes me a more productive developer, which is a Good Thing.
    - I don’t need heavy hardware to develop or deploy with – I can get by with a puny 400Mhz celeron if I need to.
    - It’s completely free
    - I have the source code to patch, work around, learn from
    - My customers pay less which means I can now compete with off-shore developers on cost terms: if they’re using .NET and I’m using RoR, I’ll deliver a better system for less money and in 1/10th the time and yet I still have my nice European lifestyle. Sure the off-shorers will catch up, Rails is so quick I can spend more time talking to my customers and understanding their needs better, so I’ll probably still win out.

    It’s a no-brainer. The fact MS can’t see that .NET in its current form is a ridiculous proposition as a development platform for freelance and SME developers makes me laugh. .NET epitomises the Enterprise developer: close-minded, overly complicated, etc.

    Start supporting mono, I’ll think about coming back, but only if VS is ported to OS X and can run as smoothly on my iBook as Textmate does. :-)

  • Morten

    Rails does not try to outsmart me. Rails does not try to invent its own web standards.

  • Morten

    Rails does not try to outsmart me. Rails does not try to invent its own web standards.

  • http://blog.curthibbs.us/ Curt Hibbs

    dru said:
    “I am a .Net developer that tried to get on the RoR band wagon but couldn’t even get the car started. I just could not get Linux and Apache or lighttpd and MySQL to work. The CLI of linux is very cool but ultimatly I need something that works.”

    Why did you choose to use Linux if you are not comfortable with it? I do all of my Rails development on Windows, and the “Instant Rails” package makes development setup dead-simple:

    http://instantrails.rubyforge.org/

  • http://blog.curthibbs.us/ Curt Hibbs

    dru said:
    “I am a .Net developer that tried to get on the RoR band wagon but couldn’t even get the car started. I just could not get Linux and Apache or lighttpd and MySQL to work. The CLI of linux is very cool but ultimatly I need something that works.”

    Why did you choose to use Linux if you are not comfortable with it? I do all of my Rails development on Windows, and the “Instant Rails” package makes development setup dead-simple:

    http://instantrails.rubyforge.org/

  • dru

    curt said:
    “Why did you choose to use Linux if you are not comfortable with it? I do all of my Rails development on Windows, and the “Instant Rails” package makes development setup dead-simple:”

    I needed to deploy my app to the web server, and this is where I got hosed. I was able to install on a windows box quite easily. :)

    Dody said:

    “Nope; wrong. There is no decent O/R support in .Net outside code generators like LLBLGen. Everything else needs bazillion pages of XML configuration.”

    How does the amount of config releate to the ability of the O/R to perform? I concur that a lot of XML need be written to NHibernate up and running, but I believe that is a problem that can be resolved. As for RoR’s O/R support what do you do when you have to model complex relationships? I plead ignorance here but what if you need to store data in a non-standard way? Does RoR support the concept of IUserType that Hibernate has?

    “db40 is an object db, not a O/R mapper. ”
    - I stand corrected :)

    Ed W. said:
    “If you don’t like the command line bits of RoR then check out RadRails for a phenominal RAD environment for rails:”

    Very cool.

    dru

  • dru

    curt said:
    “Why did you choose to use Linux if you are not comfortable with it? I do all of my Rails development on Windows, and the “Instant Rails” package makes development setup dead-simple:”

    I needed to deploy my app to the web server, and this is where I got hosed. I was able to install on a windows box quite easily. :)

    Dody said:

    “Nope; wrong. There is no decent O/R support in .Net outside code generators like LLBLGen. Everything else needs bazillion pages of XML configuration.”

    How does the amount of config releate to the ability of the O/R to perform? I concur that a lot of XML need be written to NHibernate up and running, but I believe that is a problem that can be resolved. As for RoR’s O/R support what do you do when you have to model complex relationships? I plead ignorance here but what if you need to store data in a non-standard way? Does RoR support the concept of IUserType that Hibernate has?

    “db40 is an object db, not a O/R mapper. ”
    - I stand corrected :)

    Ed W. said:
    “If you don’t like the command line bits of RoR then check out RadRails for a phenominal RAD environment for rails:”

    Very cool.

    dru

  • Jeremy Dunck
  • Jeremy Dunck
  • http://nomadlife.org/ Dody Gunawinata

    “How does the amount of config releate to the ability of the O/R to perform? ”

    It does because it tightens the turnaround from schema to code. Alter your table, and your object model automatically reflect that changes without a single line of code needed to be changed.

    All your columns become your object model properties automatically. So if you want to have composite property (IUserType), just add to your model a property that return or assign values to other fields. And you can override the default column properties to return or access funky stuff that is not a primitive type. (Check out http://api.rubyonrails.com/ to see what you can do with ActiveRecord)

    There is nothing that RoR can do that ASP.Net or other frameworks cannot do or emulate. It’s how it does it is the key.

    ActiveRecords supports 1:1,1:m,n:m relationships with hierarcy, list, and some estoric act_as_taggable mixins.

    You model the relationships directly on your Model class definition with has_many Orders, has_one etc, etc

  • http://nomadlife.org Dody Gunawinata

    “How does the amount of config releate to the ability of the O/R to perform? ”

    It does because it tightens the turnaround from schema to code. Alter your table, and your object model automatically reflect that changes without a single line of code needed to be changed.

    All your columns become your object model properties automatically. So if you want to have composite property (IUserType), just add to your model a property that return or assign values to other fields. And you can override the default column properties to return or access funky stuff that is not a primitive type. (Check out http://api.rubyonrails.com/ to see what you can do with ActiveRecord)

    There is nothing that RoR can do that ASP.Net or other frameworks cannot do or emulate. It’s how it does it is the key.

    ActiveRecords supports 1:1,1:m,n:m relationships with hierarcy, list, and some estoric act_as_taggable mixins.

    You model the relationships directly on your Model class definition with has_many Orders, has_one etc, etc

  • http://nomadlife.org/ Dody Gunawinata

    ASP.Net however is still the most productive and powerful webframework framework if you require a lot of integration with other systems and workflow.

    And right now I don’t care about more libraries from Microsoft. Give us a more powerful and productive language (C# 3.0) and it will improve our productivity in .Net because we can express more with less code.

  • http://nomadlife.org Dody Gunawinata

    ASP.Net however is still the most productive and powerful webframework framework if you require a lot of integration with other systems and workflow.

    And right now I don’t care about more libraries from Microsoft. Give us a more powerful and productive language (C# 3.0) and it will improve our productivity in .Net because we can express more with less code.

  • Louis

    Wow. It was a lot of fun reading the past 70 posts or so. I agree with every one of them. I’ll admit I haven’t played around enough with ASP.NET 2.0, and I’ve seen people develop applications quickly in webcasts and videos at MSDN.

    But when I try to follow along, to do it myself, it only goes that quickly until the demo ends. After that, I’m stuck drowning in the 20 different ways to do something that’s almost what I want to do, but not quite. And of course, stuck in Visual Stuido, which as someone else mentioned above, is really a requirement for .NET development.

    Glad to hear other Zeldman-Meyer types are attracted to Rails. I wouldn’t be surprised if RoR has more designers and artists playing with it than .NET does. That’s the beauty of simplicity.

    Time after time, while working on a Rails application in Ruby, I find myself thinking, “That’s it?” I expect so much more sweat, tears and code to do something simple … but in Ruby, it really *is* that simple.

    There’s no pretense about creating a windows application with HTML, or the godawful avalon markup that reminds me of the worst HTML 3.2 I’ve ever seen. Designers know to separate presentation from data, with CSS and XHTML. No or here, thank you.

    And .NET reminds me of PHP, in the way everything is included in a monster package. Rails relies heavily on packaging features as independent and easily upgradable parts. Rails itself isn’t one thing, it’s made up of 5-6 ruby “gems”, like ActiveRecord for databases and ActionWebService.

    You can download “plugins” for rails, make your own individual classes and modules in the lib folder, or reuse parts of your application as engines or components. And it’s not just Rails, you can easily install “gems” for Ruby, like Rails itself, and then use the new classes with just one line. RedCloth, for example: http://www.whytheluckystiff.net/ruby/redcloth/

    The best part? You only need to know one or two commands. “gem install redcloth” from any cmd prompt, and wham, it’s done. No need for a web browser. “gem update” and you’ve just upgraded everything. Want to try writing an application for EdgeRails – the SVN version?

    “rake freeze_edge” in your Rails application’s folder, and now your local application is running edge rails from the /vendor folder. It’s that easy. 1000x faster than installing a .NET 2.0 beta.

    Worried that your web host doesn’t have the exact gem and rails versions you need? “rake freeze_gems” and your rails gems are copied to /vendor. Other gems are easy to add, because they’re packaged the same way, in one folder for easy xcopy. “rake” does even more, of course. Look over “rake –tasks” – from testing to doc generation to db maintenance, it can help you do it all, quickly.

    Don’t be afraid of the command line. It’s fast, and really not half as scary as you think it is. Lost? Type a command or ruby script with –help at the end. Faster than waiting for MSDN to load …

  • Louis

    Wow. It was a lot of fun reading the past 70 posts or so. I agree with every one of them. I’ll admit I haven’t played around enough with ASP.NET 2.0, and I’ve seen people develop applications quickly in webcasts and videos at MSDN.

    But when I try to follow along, to do it myself, it only goes that quickly until the demo ends. After that, I’m stuck drowning in the 20 different ways to do something that’s almost what I want to do, but not quite. And of course, stuck in Visual Stuido, which as someone else mentioned above, is really a requirement for .NET development.

    Glad to hear other Zeldman-Meyer types are attracted to Rails. I wouldn’t be surprised if RoR has more designers and artists playing with it than .NET does. That’s the beauty of simplicity.

    Time after time, while working on a Rails application in Ruby, I find myself thinking, “That’s it?” I expect so much more sweat, tears and code to do something simple … but in Ruby, it really *is* that simple.

    There’s no pretense about creating a windows application with HTML, or the godawful avalon markup that reminds me of the worst HTML 3.2 I’ve ever seen. Designers know to separate presentation from data, with CSS and XHTML. No or here, thank you.

    And .NET reminds me of PHP, in the way everything is included in a monster package. Rails relies heavily on packaging features as independent and easily upgradable parts. Rails itself isn’t one thing, it’s made up of 5-6 ruby “gems”, like ActiveRecord for databases and ActionWebService.

    You can download “plugins” for rails, make your own individual classes and modules in the \lib folder, or reuse parts of your application as engines or components. And it’s not just Rails, you can easily install “gems” for Ruby, like Rails itself, and then use the new classes with just one line. RedCloth, for example: http://www.whytheluckystiff.net/ruby/redcloth/

    The best part? You only need to know one or two commands. “gem install redcloth” from any cmd prompt, and wham, it’s done. No need for a web browser. “gem update” and you’ve just upgraded everything. Want to try writing an application for EdgeRails – the SVN version?

    “rake freeze_edge” in your Rails application’s folder, and now your local application is running edge rails from the /vendor folder. It’s that easy. 1000x faster than installing a .NET 2.0 beta.

    Worried that your web host doesn’t have the exact gem and rails versions you need? “rake freeze_gems” and your rails gems are copied to /vendor. Other gems are easy to add, because they’re packaged the same way, in one folder for easy xcopy. “rake” does even more, of course. Look over “rake –tasks” – from testing to doc generation to db maintenance, it can help you do it all, quickly.

    Don’t be afraid of the command line. It’s fast, and really not half as scary as you think it is. Lost? Type a command or ruby script with –help at the end. Faster than waiting for MSDN to load …

  • Louis

    Correction: In the 5th paragraph, “No or here” was supposed to say “No (font tags) or (center tags) here”.

    … and even as I talk about rails being simple and less code, I sure wrote a lot. Sorry :p

    Blame it on the extra productivity :D

  • Louis

    Correction: In the 5th paragraph, “No or here” was supposed to say “No (font tags) or (center tags) here”.

    … and even as I talk about rails being simple and less code, I sure wrote a lot. Sorry :p

    Blame it on the extra productivity :D

  • Charles Stapleton

    I have been doing rails for about 2 weeks now, purchased the Agile book and have been playing around with it. There are a few reasons I will not be switching to ruby and I really hope someone can respond to this and prove me wrong because I always love to use the latest and greatest.

    Some background about my business and position I’m in. I own my company, we are not a software company, we are a manufacturer; we do several million a year in sales with a minimal staff. I believe we accomplish what we do because, unlike others in our industry, our software is custom built and allows to have features others can’t compete with except the few big players in our industry without needing the resources. I am a software engineer at heart, one of my degrees is in computer science and I have experience working for large enterprise apps and small startups.

    Why I won’t be doing new development or changing development to RoR:

    1. Testing Before Deployment: I hire developers overseas, I currently have two full time developers on staff. One in Romania and one in India. Right now I can just check out their changes from source control, merge them with whatever little changes or bux fixes I have made, do a compile and it tells me right away what I need to fix. Once the compile time checks are done I do my unit tests with NUnit and fix any remaining errors. I do some basic UI testing or have one of my secretaries check the UI to make sure it works, then I deploy it over the weekend so when everyone comes in on Monday, it just works. How does RoR give me a significant advantage over my current situation?

    2. Development and Maintenance Time: I use LLBLGen Pro to generate my ORM layer. There is no xml configuration, you point it at your database and it gives you objects that work right away. You can easily add validation and display information in a web page. It’s the greatest thing ever and I’ve been using it for 9 months, has increased productivity incredibly. There are no stored procedures to write, you just dive into writing code. This combined with the number 1 above and our maintenance is a breeze.

    3. Refactoring: A few months ago we expanded our software to allows sales people to use the intranet application to open up cases and track their sales and commissions and interact with the office staff while on the road. Problem was we had no real security. There was only admin and user, but now we needed row level security access. Meaning that certain users could see certain rows and not be mutually exclusive. While taking on this task we decided to add history tracking so we could see what users made changes and when. I did it over the weekend while I was visiting the inlaws. 12 hours to refactor the entire application so that every single table has a History table that stores all changes made and to implement row level security. Row level security gives our sales people access to just their customers, but gives our office access to all customers, and gives customers access to only their information.

    4. Visual Studio: With Visual Studio I know exactly what properties all of my objects have so I don’t have to think about it. Our application uses around 40 tables. Wouldn’t it be difficult to always have to look up every name of every column?

    5. Time: I only get to actually write software 1-2 hours a day because I’m on the phone, in meetings, traveling, etc. When there is a critical bug in the software that must be fixed asap I can fire up our exception tracking webpage and figure out exactly where the exception is occuring, even the values of the variables involved in the exception through .Net reflection and create a test case, repeat the problem, and then deploy the fix in a matter of about 15 minutes. Granted, some problems might take a little longer to solve, but we’ve never had a bug keep us down for more than an hour, nothing that is a show stopper.

    6. Other applications: Our intranet application can be given access to the LLBLGen objects because it’s within our internal network, but what about our applications that sit on hosted servers in datacenters? The web apps our customers access? They use .Net remoting, which is VERY fast and doesn’t require us to write much more code. No need for web services with .Net remoting. Also, we have system services and a few desktop integrated apps (fedex and ups integration, some quickbooks integration for AP) that use the SAME objects our web platform does. It was wonderful to write the security into our objects and then have it automatically be used by report generation to ensure no one could generate and print reports they shouldn’t be able to.

    7. More bugs: Duplicating business logic in RoR just creates more places to have bugs. Having a standard set of objects in .Net that my ASP .Net, desktop apps, system services can use makes me feel much more confident.

    8. Salary: This one doesn’t matter for me, but I wonder why other people haven’t mentioned it. I’m a developer at heart and I sometimes wonder what it would be like to go back to the world of programming so I occasionally check the job boards for C# and .Net software engineer positions. In my area I could be pulling down a salary of 80k-150k for a lead developer position. There just aren’t enough .Net developers to fill the positions out there so you’re going to get a great salary rather than learning RoR.

    RoR was great initially. It let me get an app that could search our database for orders up and running quickly, could even let me display the order quickly, but then as soon as I needed to do something more indepth, for instance the security model or communicating with our other services, I found things to be the same level of difficulty (after overcoming the learning hurdles) as using LLBLGen because at least I had the Visual Studio IDE to tell me everything I needed to know about an object.

    I want someone to prove me wrong because RoR is a great product, but sometimes working with it made me feel like I was working with a nice framework built around old ASP.

  • Charles Stapleton

    I have been doing rails for about 2 weeks now, purchased the Agile book and have been playing around with it. There are a few reasons I will not be switching to ruby and I really hope someone can respond to this and prove me wrong because I always love to use the latest and greatest.

    Some background about my business and position I’m in. I own my company, we are not a software company, we are a manufacturer; we do several million a year in sales with a minimal staff. I believe we accomplish what we do because, unlike others in our industry, our software is custom built and allows to have features others can’t compete with except the few big players in our industry without needing the resources. I am a software engineer at heart, one of my degrees is in computer science and I have experience working for large enterprise apps and small startups.

    Why I won’t be doing new development or changing development to RoR:

    1. Testing Before Deployment: I hire developers overseas, I currently have two full time developers on staff. One in Romania and one in India. Right now I can just check out their changes from source control, merge them with whatever little changes or bux fixes I have made, do a compile and it tells me right away what I need to fix. Once the compile time checks are done I do my unit tests with NUnit and fix any remaining errors. I do some basic UI testing or have one of my secretaries check the UI to make sure it works, then I deploy it over the weekend so when everyone comes in on Monday, it just works. How does RoR give me a significant advantage over my current situation?

    2. Development and Maintenance Time: I use LLBLGen Pro to generate my ORM layer. There is no xml configuration, you point it at your database and it gives you objects that work right away. You can easily add validation and display information in a web page. It’s the greatest thing ever and I’ve been using it for 9 months, has increased productivity incredibly. There are no stored procedures to write, you just dive into writing code. This combined with the number 1 above and our maintenance is a breeze.

    3. Refactoring: A few months ago we expanded our software to allows sales people to use the intranet application to open up cases and track their sales and commissions and interact with the office staff while on the road. Problem was we had no real security. There was only admin and user, but now we needed row level security access. Meaning that certain users could see certain rows and not be mutually exclusive. While taking on this task we decided to add history tracking so we could see what users made changes and when. I did it over the weekend while I was visiting the inlaws. 12 hours to refactor the entire application so that every single table has a History table that stores all changes made and to implement row level security. Row level security gives our sales people access to just their customers, but gives our office access to all customers, and gives customers access to only their information.

    4. Visual Studio: With Visual Studio I know exactly what properties all of my objects have so I don’t have to think about it. Our application uses around 40 tables. Wouldn’t it be difficult to always have to look up every name of every column?

    5. Time: I only get to actually write software 1-2 hours a day because I’m on the phone, in meetings, traveling, etc. When there is a critical bug in the software that must be fixed asap I can fire up our exception tracking webpage and figure out exactly where the exception is occuring, even the values of the variables involved in the exception through .Net reflection and create a test case, repeat the problem, and then deploy the fix in a matter of about 15 minutes. Granted, some problems might take a little longer to solve, but we’ve never had a bug keep us down for more than an hour, nothing that is a show stopper.

    6. Other applications: Our intranet application can be given access to the LLBLGen objects because it’s within our internal network, but what about our applications that sit on hosted servers in datacenters? The web apps our customers access? They use .Net remoting, which is VERY fast and doesn’t require us to write much more code. No need for web services with .Net remoting. Also, we have system services and a few desktop integrated apps (fedex and ups integration, some quickbooks integration for AP) that use the SAME objects our web platform does. It was wonderful to write the security into our objects and then have it automatically be used by report generation to ensure no one could generate and print reports they shouldn’t be able to.

    7. More bugs: Duplicating business logic in RoR just creates more places to have bugs. Having a standard set of objects in .Net that my ASP .Net, desktop apps, system services can use makes me feel much more confident.

    8. Salary: This one doesn’t matter for me, but I wonder why other people haven’t mentioned it. I’m a developer at heart and I sometimes wonder what it would be like to go back to the world of programming so I occasionally check the job boards for C# and .Net software engineer positions. In my area I could be pulling down a salary of 80k-150k for a lead developer position. There just aren’t enough .Net developers to fill the positions out there so you’re going to get a great salary rather than learning RoR.

    RoR was great initially. It let me get an app that could search our database for orders up and running quickly, could even let me display the order quickly, but then as soon as I needed to do something more indepth, for instance the security model or communicating with our other services, I found things to be the same level of difficulty (after overcoming the learning hurdles) as using LLBLGen because at least I had the Visual Studio IDE to tell me everything I needed to know about an object.

    I want someone to prove me wrong because RoR is a great product, but sometimes working with it made me feel like I was working with a nice framework built around old ASP.

  • http://sporkmonger.com/ Bob Aman

    I used to be pretty active in the C# world. I even tried my hand at writing an article for the Code Project at one point. (IMHO, a Code Project look-alike is one thing the open source, and especially Ruby/Rails community could really use. Maybe I’ll write it. Should take me maybe a week or two with Rails.)

    At the time, I considered C# to be a really strong contender compared to Java. It had it’s problems, to be sure, not the least of which was Fusion, which I still consider as its real Achilles heel. Although there’s also the ASP.Net deployment nightmares, and the difficulty in getting workable MVC stuff going in ASP.Net, and the obvious lack of XHTML support.

    But overall, I thought it was workable. I got around the Fusion issues by just learning the ugly quirks inside and out. I got around the MVC issues by writing my own custom framework. And I got around the lack of XHTML support by pretty much throwing the entirety of ASP.Net out the window. If you haven’t already figured it out by now, the main reason I was still hanging out in the .Net community by this point was the language itself. C# is reasonably nice. Yeah, it’s an obvious rip-off of Java in many cases. But it’s a damn fine rip-off. You guys stole the good parts of Java and ditched the cruft. The class library actually even makes sense. Kudos.

    But then, one day, I was reading Slashdot. I don’t normally read Slashdot, and if I do, it’s a quick glance and back to whatever. But on this particular day, there was an article by Curt Hibbs on Rails. I had some free time, so I went through the tutorial. And in about twenty minutes, I was hooked. I mean, really, really hooked. Instead of having to hack half the system apart to get it to do what I needed/wanted, it was smart enough to get the hell out of my way and let me do whatever I damn well pleased. I don’t need drag-and-drop crutches. The command line doesn’t intimidate me, I know better. The worthless coders that just barely squeaked through CS or SE might need their hands held, but I don’t.

    In any case, long-story-short, a year later, I find myself using a PowerBook instead, because it has TextMate. For me, TextMate and the Unix command line were the killer apps that switched me off Windows and onto the Mac. Take note!

    Rails works fine on Windows, but it has its quirks. And since I was deploying to a FreeBSD box, it was just a lot more sensible to switch to a system closer in nature to what I was deploying on.

    In the end, the reason Microsoft .Net will fail is simple. It attempted to make coding so easy that anyone could do it. The guys who couldn’t hack it in a CS theory class love this, and will rave about your product. But at the end of the day, all you’ve got is a bunch of guys, who should’ve switched majors, writing really bad code.

    When I visit my bank’s website, I see “.aspx” suffixing each URL. And then I see the login page “protected” by SSL that requires merely a 4 digit numeric pin number and the account number printed on every one of my checks. The site doesn’t employ any countermeasures whatsoever against brute force password attacks, and I was able to pummel my way into my own bank account in about 10 minutes. I was never notified of the several thousand attempts to access my account with an incorrect password from the same IP address.

    Attracting stupid coders is a patently stupid idea. Microsoft has only tried to hire the best of the best for its own coding talent for a long time, but when it comes to their own products, they try to lower the barriers to entry as low as they can make them. The result is insecure code written for an insecure platform and a mass migration of the smart guys in the room to open-source/Apple’s products.

  • http://sporkmonger.com/ Bob Aman

    I used to be pretty active in the C# world. I even tried my hand at writing an article for the Code Project at one point. (IMHO, a Code Project look-alike is one thing the open source, and especially Ruby/Rails community could really use. Maybe I’ll write it. Should take me maybe a week or two with Rails.)

    At the time, I considered C# to be a really strong contender compared to Java. It had it’s problems, to be sure, not the least of which was Fusion, which I still consider as its real Achilles heel. Although there’s also the ASP.Net deployment nightmares, and the difficulty in getting workable MVC stuff going in ASP.Net, and the obvious lack of XHTML support.

    But overall, I thought it was workable. I got around the Fusion issues by just learning the ugly quirks inside and out. I got around the MVC issues by writing my own custom framework. And I got around the lack of XHTML support by pretty much throwing the entirety of ASP.Net out the window. If you haven’t already figured it out by now, the main reason I was still hanging out in the .Net community by this point was the language itself. C# is reasonably nice. Yeah, it’s an obvious rip-off of Java in many cases. But it’s a damn fine rip-off. You guys stole the good parts of Java and ditched the cruft. The class library actually even makes sense. Kudos.

    But then, one day, I was reading Slashdot. I don’t normally read Slashdot, and if I do, it’s a quick glance and back to whatever. But on this particular day, there was an article by Curt Hibbs on Rails. I had some free time, so I went through the tutorial. And in about twenty minutes, I was hooked. I mean, really, really hooked. Instead of having to hack half the system apart to get it to do what I needed/wanted, it was smart enough to get the hell out of my way and let me do whatever I damn well pleased. I don’t need drag-and-drop crutches. The command line doesn’t intimidate me, I know better. The worthless coders that just barely squeaked through CS or SE might need their hands held, but I don’t.

    In any case, long-story-short, a year later, I find myself using a PowerBook instead, because it has TextMate. For me, TextMate and the Unix command line were the killer apps that switched me off Windows and onto the Mac. Take note!

    Rails works fine on Windows, but it has its quirks. And since I was deploying to a FreeBSD box, it was just a lot more sensible to switch to a system closer in nature to what I was deploying on.

    In the end, the reason Microsoft .Net will fail is simple. It attempted to make coding so easy that anyone could do it. The guys who couldn’t hack it in a CS theory class love this, and will rave about your product. But at the end of the day, all you’ve got is a bunch of guys, who should’ve switched majors, writing really bad code.

    When I visit my bank’s website, I see “.aspx” suffixing each URL. And then I see the login page “protected” by SSL that requires merely a 4 digit numeric pin number and the account number printed on every one of my checks. The site doesn’t employ any countermeasures whatsoever against brute force password attacks, and I was able to pummel my way into my own bank account in about 10 minutes. I was never notified of the several thousand attempts to access my account with an incorrect password from the same IP address.

    Attracting stupid coders is a patently stupid idea. Microsoft has only tried to hire the best of the best for its own coding talent for a long time, but when it comes to their own products, they try to lower the barriers to entry as low as they can make them. The result is insecure code written for an insecure platform and a mass migration of the smart guys in the room to open-source/Apple’s products.

  • http://sporkmonger.com/ Bob Aman

    Regarding Charles Stapleton’s comments above:

    1. How does RoR give me a significant advantage over my current situation?

    Assuming we’re talking web applications here, because difficult-to-test presentation logic is better separated, IMHO, you can get a bit more thoroughness in your testing. It’s not revolutionary, but it helps.

    2. I use LLBLGen Pro to generate my ORM layer.

    Sounds neat. I hadn’t heard of LLBLGen Pro before, but it sounds fairly similar in nature to the concept of Rails’ ActiveRecord, just a little less dynamic. In this case, Rails’ main advantage on this point is likely to be cost and the ability to modify it, if necessary, since I assume LLBLGen Pro is not open-source.

    3. Refactoring.

    Depends. On the subject of row-level security, I’m pretty sure I saw a drop-in module for doing this in ActiveRecord just the other day. If I’m wrong on that one, a generic drop-in module would still not be all that difficult to write. Assuming the module fit your requirements, it possibly could have been a 30 minute job instead of a 12 hour job. Hard to say. But I’m quite sure it would not be longer than the 12 hour timeframe you quoted if you had to write it manually.

    4. Wouldn’t it be difficult to always have to look up every name of every column?

    That’s one reason why I use multiple desktops and I keep my PostgreSQL frontend open whenever I’m coding in Rails. If I had to pick one thing that’s nice about Visual Studio, it would hands-down, without question, be Intellisense. If you use the Rails plugin for Eclipse, I believe you get some of this back, but personally, I still prefer TextMate. I expect TextMate to be getting a superior clone of Intellisense pretty much any minute now. That one’s only a matter of time. Obviously, though, if you’re on Windows, TextMate is irrelevant.

    5. We’ve never had a bug keep us down for more than an hour, nothing that is a show stopper.

    The same can generally be said for Rails. Usually the exact location of the problem will be detailed in the stack traces found in the log files. Similarly, it’s usually as simple as adding in a new unit test and fixing the bug.

    6. .Net Remoting?

    Ruby has DRb if you need it. But I would pick a RESTful webservice over remoting any day of the year at this point. I used to do a lot of work with .Net Remoting, and while I completely agree about the speed isue, I personally found the tight coupling to be much too scary for my tastes. The security thing might be a bit trickier.

    7. Duplicating business logic in RoR just creates more places to have bugs.

    No arguement there. Running C# code side-by-side with RoR code that does essentially the same thing would probably be a bad idea. Don’t Repeat Yourself.

    8. In my area I could be pulling down a salary of 80k-150k for a lead developer position.

    RoR is a bit too new to tell for sure, but honestly, I would expect the salary to be about on par with C#. But there can be no doubt that RoR is growing by leaps and bounds and the demand for RoR people is picking up scary-fast.

    “I want someone to prove me wrong because RoR is a great product.”

    Unfortunately, I doubt you’ll find someone to “prove you wrong” because frankly, I think you probably made the most practical choice under the circumstances. You should always use the right tool for the job. And while I’m pretty certain that RoR is not a substantially worse choice, you already have preexisting code, and I see no sufficiently good reason to migrate it to Ruby. If you were starting something from scratch, I would probably have recommended RoR, if for no other reason than momentum, but under the circumstances, I think you made the right choice. But I would constantly keep reevaluating that choice — three months from now, it could very well be the wrong one.

  • http://sporkmonger.com/ Bob Aman

    Regarding Charles Stapleton’s comments above:

    1. How does RoR give me a significant advantage over my current situation?

    Assuming we’re talking web applications here, because difficult-to-test presentation logic is better separated, IMHO, you can get a bit more thoroughness in your testing. It’s not revolutionary, but it helps.

    2. I use LLBLGen Pro to generate my ORM layer.

    Sounds neat. I hadn’t heard of LLBLGen Pro before, but it sounds fairly similar in nature to the concept of Rails’ ActiveRecord, just a little less dynamic. In this case, Rails’ main advantage on this point is likely to be cost and the ability to modify it, if necessary, since I assume LLBLGen Pro is not open-source.

    3. Refactoring.

    Depends. On the subject of row-level security, I’m pretty sure I saw a drop-in module for doing this in ActiveRecord just the other day. If I’m wrong on that one, a generic drop-in module would still not be all that difficult to write. Assuming the module fit your requirements, it possibly could have been a 30 minute job instead of a 12 hour job. Hard to say. But I’m quite sure it would not be longer than the 12 hour timeframe you quoted if you had to write it manually.

    4. Wouldn’t it be difficult to always have to look up every name of every column?

    That’s one reason why I use multiple desktops and I keep my PostgreSQL frontend open whenever I’m coding in Rails. If I had to pick one thing that’s nice about Visual Studio, it would hands-down, without question, be Intellisense. If you use the Rails plugin for Eclipse, I believe you get some of this back, but personally, I still prefer TextMate. I expect TextMate to be getting a superior clone of Intellisense pretty much any minute now. That one’s only a matter of time. Obviously, though, if you’re on Windows, TextMate is irrelevant.

    5. We’ve never had a bug keep us down for more than an hour, nothing that is a show stopper.

    The same can generally be said for Rails. Usually the exact location of the problem will be detailed in the stack traces found in the log files. Similarly, it’s usually as simple as adding in a new unit test and fixing the bug.

    6. .Net Remoting?

    Ruby has DRb if you need it. But I would pick a RESTful webservice over remoting any day of the year at this point. I used to do a lot of work with .Net Remoting, and while I completely agree about the speed isue, I personally found the tight coupling to be much too scary for my tastes. The security thing might be a bit trickier.

    7. Duplicating business logic in RoR just creates more places to have bugs.

    No arguement there. Running C# code side-by-side with RoR code that does essentially the same thing would probably be a bad idea. Don’t Repeat Yourself.

    8. In my area I could be pulling down a salary of 80k-150k for a lead developer position.

    RoR is a bit too new to tell for sure, but honestly, I would expect the salary to be about on par with C#. But there can be no doubt that RoR is growing by leaps and bounds and the demand for RoR people is picking up scary-fast.

    “I want someone to prove me wrong because RoR is a great product.”

    Unfortunately, I doubt you’ll find someone to “prove you wrong” because frankly, I think you probably made the most practical choice under the circumstances. You should always use the right tool for the job. And while I’m pretty certain that RoR is not a substantially worse choice, you already have preexisting code, and I see no sufficiently good reason to migrate it to Ruby. If you were starting something from scratch, I would probably have recommended RoR, if for no other reason than momentum, but under the circumstances, I think you made the right choice. But I would constantly keep reevaluating that choice — three months from now, it could very well be the wrong one.