The Ruby train goes blah blah blah

on July 8th, 2011 at 5:20am 12 responses

In reply to the latest and greatest article about how the ruby train is all choo choo. This started as a comment on the said post, but grew too large into justifying a post here.

 

A couple of pre-words on me in case you got here from that article and you’re not familiar with me.

I've been doing web related and (other kinds of) software development for quite a few years. Just in the last couple of years I did so with Java, .NET, Ruby, Javascript (and to a lesser extent also with python and php, even perl). I actually moved from “fat-client” to web with .NET (circa 2003) and discovered rails later (but quite early – @mid 2006) so I fall into the “.NET devs discovering rails” group. My machine of choice (actually bought it myself)  is Macbook Pro.  You cannot put any fanboy hat on my head.

 

And I think that Rails is a cool platform, I really do.

And I like the ruby language.  A lot.

 

BUT
 
here is my take on the takeaways from that article:

1. RoR is mainstream in Silicon Valley startup scene. Even non devs (business guys and VC types) that I talked with were all chanting about "how ruby is cool and all startups must use rails". It is far from mainstream on any corporate environment, at least the ones I've been in contact with. Why? I have a idea but there isn't enough room here for that. But it is getting a huge traction outside of early adopters circles (along with other disruptive stuff like node.js, tornado, lift etc 

 

2. Rails *is* more enjoyable from *crappy* vanilla .NET environments. But vanilla rails (with no gems) is much worse. Now if you use modern tools and libraries on .net (monorail/fubo/nancy/windsor/nhibernate/etc.) then .NET is at least as "enjoyable" if not more, since you do not have to deal with crap-load of conflicting, questionable-quality gems. As for productivity  - this is a whole different story - it is more about the developer's abilities and mindset than about the tools he's using. I know COBOL devs that are super productive, and Rails guys that are destructive at best.  Perhaps others think differently than I do, but you should scrap the "every, single, one" bit (or at least the undo the colouring). I might just be that one, and I know more than a few more.

 

3. Far from being a fanboy MS (with regards to server dev tools) has loads to offer. C# is wildly more advanced and feature rich than any other mainstream language, and the upcoming things in c#5 making it even better. And the BCL of .NET is better and richer than perhaps any other built-in class library today in orders of magnitude. The VM , typesystem and core runtime are very robust and filled with features.  Real features, like the advanced concurrency controls etc. So, true that Rails comes with nice sugars that appeal to some people, but once you need to do more than "read from DB render to html" you start hitting walls. While on the other end, if you start with a solid baseline (like .NET's or Java's) you are far less likely to get stuck, and it is easy to find the right sugar to sparkle on-top (there are countless snappy MVC frameworks for Java and .NET, and language choices - even compatible rubies, but far more options).  Java 7 got dynamic dispatch, and if Java 8 will at last get closures (and if it will be supported in the runtime and not in the compiler) then we are looking also at good news from Oracle-land.
Btw - if stagnation is the issue - when would the rubyists finally give up on 1.8, and on the hybrid 1.9, and get a proper 2.0?

 

4. Almost every professional I know that is involved in .NET, is *not* identifying himself as a .NET developer, but as a Software Developer, and they are open for ideas, and they are not religious about their tools. On the other hand, apart from one, all of the Rails related professionals I know of are behaving as if they are the warrior-priests of DHH, spreading arrogance (we saw the light - you will too!, my life were so bad, but now it's all flowers and barbecue, blah blah blah) FUD and loudness everywhere (whitespace is crap! static typing is crap! tabs instead of spaces? crap!). And they ALL identify themselves as "Rails developers".

It is much worse than what the Java community used to be before they started opening up for stuff like groovy, scala and clojure. 

 

My takeaways:

1. As a developer – always strive to be better. Know the tools of the trade. Know the tradeoffs of the tools.

2. As a person – always strive to be better. Know that the are (usually) no black-and-white decisions. know the tradeoffs.

tony tony on July 8th, 2011 at 2:46pm

So true. I make my living in .net. I enjoy working with ROR and I think using ROR before asp.net MVC really helped me get a handle on asp.net MVC. That being said all of the junk I see being thrown at .net from the ROR community annoys me and for awhile did a good job of keeping me away from the platform. I always thought the idea was to attract people to your cause by showing them a better way, rather than throwing junk their way about how they earn money.

Mike Mike on July 8th, 2011 at 3:59pm

The sites I am pulling together now are stacked on node.js for the simple reason that the community (so far) is far more friendly and less arrogant than the ruby community (sorry, generalizations have their roots in truth). I recognize not all projects should go this route, but hopefully the 'approachableness' (sic) of the node community with persist as it is adopted.

Peter Peter on July 8th, 2011 at 4:30pm

Thanks for the comment-as-post. I don't take offense as you make some good points. I will however point out:

1 - Azure uptake is big in .NET land. And I'm not just talking about developers (who are suckers) getting excited about new tech--enterprises are paying to build Azure apps. I see "cloud" as an entry point for Ruby and an eliminator of the biggest roadblock for Ruby in the enterprise (the enterprises I see anyway)--deployment. What's more, people I know are getting Ruby jobs, independent of each other. It's not mainstream yet, but I'm claiming it's "crossing the chasm".

2 and 3 - points taken. Ian Cooper (@icooper on twitter) had similar arguments about how he has intentionally chosen .NET over Ruby because he is able to assemble his own little mini-stack in .NET that is better than the Ruby equivalent. I think I messed up my point in the blog post about platforms--instead of emphasizing how good ruby is, I should have emphasized how little I care which platform is better.

The big idea is that I shouldn't care if .NET is worse or not, I should just pick the better platform for me. Whether the better platform for me is .NET or Ruby is less important, the point is to lose the identity of being a .NET developer and lose the territorial mindset of "us" versus "them".

I think I messed that up because my other goal was to emphasize how good a platform Ruby is. Many of my coworkers/associates I meet still think JavaScript is as painful as it was in 2001, and still think Ruby is a toy language. Still. So I probably went a little overboard there emphasizing Ruby's good-ness.

My only big disagreement is with point 4, in that I only see .NET developers who don't ever peek over the walls. I work for a gold partner so maybe that has something to do with what I see.

Mark Nijhof Mark Nijhof on July 8th, 2011 at 4:40pm

You know what I think is interesting? That almost everybody says Rails developer and not Ruby developer ... what's up with that? You are comparing .Net/Java with Rails, ehm that is comparing a Platform with a Framework, Apples and Pears. Now if Rails is not a good fit then that does not mean you are stuck in Ruby, because yes Rails is good for CRUD. But there is a load more where the most famous other one would be Sinatra (you know where Nancy is based on) offering you all the freedom you might need. So simular as with .Net or Java there is a big baseline for you to go from. Personally I pick Sinatra over Rails. Anyway something I am always surprised about. Further .Net also has a huge load of lesser quality libraries just like the Ruby Gems, your list is a selective list I am sure you can list a similar list for good Gems, which is probably going to be longer as well. Now do you know what the real difference really is? That is the community, yes the Ruby community has some very opinionated people like DHH, but you know what even he responds in a good way to questions you have (whether it is questioning him or just stuff you don't know). I can ask (and I do) some really stupid questions and I always get helpful help, in my experience much better then I get in the .Net world (many individuals excluded of-course, you know who you are). Anyway this is already to much text, not structured very well, but here you go.

Nigel Ainscoe Nigel Ainscoe on July 10th, 2011 at 7:55pm

Dear Rob,

It is always a pleasure to read your passionate rants on subjects like this. Please keep up the good work.

Kind regards, Nigel Ainscoe an ex VFP developer

David David on July 10th, 2011 at 8:42pm

You just made the exact same case a COBOL develop could and has made.

Rails people can be annoying, but ask yourself why these previously normal people turn into 'evangelists' (unpaid, unlike the hired MS ones)? It's just over-enthusiasm, and it's normal. When .NET first came out the same people were gushing and it's great to 'spread the word' when you feel you've found something better; especially if it solves your pain.

I see posts like this and I agree with them, but can't help but think you might regret posting this one day, as Rob say's 'Google has a long memory'. You might be the guy remembered as the guy clinging on to .NET...

It's also very normal to adopt a defensive position if your livelihood is threatened by change - everyone is human, and for a lot of .NET guys that grew up with this stuff it's going to be a hard transition. Just like VB6, VFP, COBOL and all the other changes we've had.

Good luck!

Dave Dave on July 10th, 2011 at 8:50pm

Thing is, I don't see Rails advocates as over-enthusiastic evangelists, gushing because they found something good. They all come across as straight-up smug assholes. What I'm hearing from them is not "hey man check out this great new thing!". What I'm hearing is "hey man you're a moron and a loser for using something as horrible as .NET on a platform as horrible as Windows, you should probably stop programming or maybe just kill yourself now."

Now, I've been mostly .NET focused for a few years now, and I've got no reason to jump ship: at present, the platform is advancing more rapidly than ever, it's providing me with both a successful career and entertaining hobbyist development. But I was looking around for greener grass on some other side, I wouldn't even glance at Ruby - just too revulsed by the horrific "community" that they're all so proud of. I can't imagine ever to interacting with those zealots by choice.

Ken Egozi Ken Egozi on July 8th, 2011 at 5:23pm

@Peter - regarding point #4 - not-looking-over-the-wall is a common practice in the less-experiences, less-professionalist fanboys. But the .NET (or Java or whatnot) fanboys are not nearly as loud as the rails ones.

@Mark - I also would take Sinatra and extend it a bit rather than pick Rails and fight with the bits I don't want. I also do this with .NET (using Nancy, Manos or my own WebOnDiet over MSMVC and Monorail)

@Mark 2 - It is true that the .NET space (like every space) has bad libraries. But it between the in-the-box BCL and the large, super-quality OSS, you are almost 100% covered. You just do not need so much extensions as the baseline is very rich. At Java world, the baseline is shit, but once you through Apache.Commons with a little Guice on top, you end up with a solid, high-quality baseline. IMO it is somewhere in between the Ruby and .NET ecosystems.

Again - you can be productive, smart and useful with any environment. I just don't like missioners and mud throwers, and they happen to be more common in the Rails (not Ruby) community. Maybe it has to do with the lower average age, donno.

Ken Egozi Ken Egozi on July 10th, 2011 at 9:06pm

@David (and @Rob if you're reading this) - where exactly did I imply that I am "clinging to .NET"?

was it in the phrase "Just in the last couple of years I did so with Java, .NET, Ruby, Javascript (and to a lesser extent also with python and php, even perl)"?

I don't have problem with people who live what they do and teach others about it. On the contrary - that is a great thing. But I do not like bashers and crappers. Not that any of the people involved in this current wave is, but I've heard and read too many of them in the last couple of years.

Paul Cowan Paul Cowan on July 11th, 2011 at 4:01pm

Why are these types of posts always presented as a binary choice or one platform is better than another?

Each has strengths and weaknesses and knowing both will serve you better as a developer.

I am a .NET developer by day, I am also developing a product in JRuby in my spare time.

I chose JRuby because I am using specific oss from Java and Ruby.

This guided my choice and not what my emotional preference is or which platform I know better.

Choose whichever one is right for the situation.

Charles Feduke Charles Feduke on July 11th, 2011 at 4:43pm

Y'all cannot see the forest for the trees. Really there is only one web, uhm, thing we should be concerned with, and that is COLDFUSION.

Need I say more? Probably.


On a more serious note: a lot of these articles miss something that is very important, and its something my company is experiencing first hand. When you scale Windows servers its EXPENSIVE. Like, way, way more expensive. Surprise!

I think your takeaways are spot on. We're keeping as much of our old .NET code base as possible, expanding for scaling using Ruby to glue together a lot of the new tech we think will make our product much more performant, and saving a lot of cash by eschewing Windows along the way.

Regarding self-ascribed .NET Developer vs. Rails Developer: its part platform maturity and part casting to fit the role. Back in the day those VB6-cum-.NET devs were proud of their graduation and the self-casting would land them jobs in droves.

(Personally I find the Rails community highly approachable. There probably is a slew of elitism out there, but I can't help but think most of it is perhaps imagined out of... jealousy? Frankly I don't care. These communities help me get my job done and I value them both because of it.)

silliemunkie silliemunkie on July 12th, 2011 at 3:46pm

I'm going to have to agree with Charles, I have also found the Rails community to be highly approachable. Everytime I have had a question, I have gotten very helpful responses.







Comment preview:

Follow

Statistics

Posts count:
447
Comments:
950