InfoQ

News

InfoQ Article: Why Would a .NET Programmer Learn Ruby on Rails?

Posted by Obie Fernandez on Aug 15, 2006 12:42 PM

Community
.NET,
Ruby
Topics
Change,
Ruby on Rails,
Dynamic Languages,
.NET Framework
Tags
Rails,
AJAX,
Patterns

.NET developer Stephen Chu gives us some insight into his transition to Ruby on Rails programming.

"By being loyal to one technology stack, I am bound to unconsciously make biased decisions, which will ultimately hinder my ability to deliver business value."

Read Why Would a .NET Programmer Learn Ruby on Rails?

24 comments

Reply

Speed by Maurice Zeijen Posted Aug 14, 2006 12:14 PM
Re: Speed by Kevin Williams Posted Aug 14, 2006 12:23 PM
Re: Speed by Maurice Zeijen Posted Aug 14, 2006 12:32 PM
Re: Speed by anjan bacchu Posted Aug 15, 2006 4:36 PM
Re: Speed by Jonathan Allen Posted Aug 16, 2006 2:53 PM
You're clearly biased by nick martini Posted Aug 17, 2006 10:21 AM
Re: Speed by Billy Billionaire Posted Aug 18, 2006 6:28 AM
Re: Speed by Rex Rexroth Posted Aug 18, 2006 6:49 AM
Re: Speed by Cameron Purdy Posted Aug 18, 2006 11:31 AM
What the hell is wrong with you people? by Jonathan Allen Posted Aug 18, 2006 4:47 PM
Re: What the hell is wrong with you people? by Stephen Chu Posted Aug 21, 2006 10:46 PM
Re: Speed by Ugo Nwogwugwu Posted Aug 22, 2006 11:19 AM
Re: Speed by nick martini Posted Aug 22, 2006 2:59 PM
Re: Speed by Jonathan Allen Posted Aug 22, 2006 4:51 PM
Re: Speed by Lex Luthor Posted Aug 22, 2006 11:00 PM
Re: Speed by nick martini Posted Aug 23, 2006 10:12 AM
Re: Speed by John Haynes Posted Sep 2, 2006 10:41 AM
Please be respectful by Floyd Marinescu Posted Aug 27, 2006 1:25 PM
Re: Please be respectful by Greg Rebuck Posted Aug 28, 2006 12:37 PM
Re: Please be respectful by Greg Rebuck Posted Aug 28, 2006 1:09 PM
Re: Please be respectful by Floyd Marinescu Posted Aug 28, 2006 3:14 PM
Stability by Iain Delaney Posted Aug 15, 2006 2:10 PM
Installing Ruby on Rails by Renil Abdulkader Posted Aug 30, 2006 9:33 AM
Re: Installing Ruby on Rails by nick martini Posted Aug 30, 2006 1:39 PM
  1. Back to top

    Speed

    Aug 14, 2006 12:14 PM by Maurice Zeijen

    What about speed? I heard that Ruby isn't the fastest script language.

  2. Back to top

    Re: Speed

    Aug 14, 2006 12:23 PM by Kevin Williams

    That's true. However, I don't think it's even an issue until someone develops a site in Ruby | Ruby on Rails that absolutely cannot scale further or perform fast enough. Once someone hits that wall, then it will be an issue worth addressing. And yes, I do .NET by day and Ruby on Rails after hours. :) http://www.almostserio.us/ http://www.castleproject.org/

  3. Back to top

    Re: Speed

    Aug 14, 2006 12:32 PM by Maurice Zeijen

    I have also done Ruby on Rails by night and I liked it. If you don't need a enterprise application then it is a very good choice to think about.

  4. Back to top

    Stability

    Aug 15, 2006 2:10 PM by Iain Delaney

    How about the fact that Ruby and Rails are both open, so that you're not at the mercy of one vendor? How many times has Microsoft changed their web app platform now? There was ASP, then VB 6 WebClasses, then .Net. Each time they changed everything was supposed to be better, faster, easier, but it just ended up costing more time and money.

  5. Back to top

    Re: Speed

    Aug 15, 2006 4:36 PM by anjan bacchu

    Hi There, sometime soon, someone will be forced to publish some benchmark results as compared to jAppServer2004(http://www.spec.org/jAppServer2004/). Everyone knows that ruby is weak in threading and i18n. But for most customers, that is NOT a major concern. Ruby/Rails might not work for 30-40% of customers for various reasons, but once ruby specification is firmed up(similar to .NET or JLS), then a Java implementation will likely be able to beat the C version within a year. Extending existing JAVA/.NET applications will get easier using rails on .NET/JAVA implementations of Ruby. Currently, deploying Rails applications seems strange to people who're used to deploying to a single appServer and little configuration work. Hopefully, with decent implementations in .NET/java, that will be a issue to be forgotten. With the amount of monitoring functionality in Glassfish/Java 5/Mustang, a rails application on Glassfish will be more popular than on, say Apache 2.x. With the noise of Java platform getting open sourced getting louder, deploying java based applications should become more easier. BR, ~A

  6. Back to top

    Re: Speed

    Aug 16, 2006 2:53 PM by Jonathan Allen

    As a .Net programmer, I haven't seen anything that makes me want to learn Ruby, yet. While this list is interesting, everything on it has a .Net equivalent. Time will tell which wins out.

    Do not compile.
    ASP.Net has that now.
    Dynamically enhance the behavior of a class - without a Decorator.
    Last I heard, C# 3 and VB 9 will have this.
    Slim down your code base 10-20% by stripping off all type declarations and interface declarations.
    I think that is a disadvantage. It makes it harder to determine what type is supposed to be passed by looking at the method signature. You also lose the ability to do some forms of static analysis. But if you really want it, VB has had it since version 1. Side note, C# 3 and VB 9 will give you strict typing for local variables without having to specify a type. This is mainly to support anonymous classes and query comprehension.
    Ajax it in no time.
    Atlas for ASP.net (It is still in beta)
    With Rails, you don?t need an O/R Mapper.
    This will be handled by the LINQ functionality in C# 3 and VB 9. (It is still in preview)
    Using Ruby script to build/deploy/release is better than using NAnt.
    MSBuild replaces NAnt. Though you don't need it for ASP.Net.

  7. Back to top

    You're clearly biased

    Aug 17, 2006 10:21 AM by nick martini

    Like this article's author, I do .NET stuff for a living and Ruby stuff in my spare time. I've been doing .NET for 5 years, and admit that it has it's uses; but I'm not closeminded about other technologies.

    As a .Net programmer, I haven't seen anything that makes me want to learn Ruby, yet. While this list is interesting, everything on it has a .Net equivalent. Time will tell which wins out.
    Starting the post off on the right foot! Yay it's a programming language bigot!
    Last I heard, C# 3 and VB 9 will have this.
    Oh hey wow, C# 3, when is that coming out? 2007? 2009? 2552? The point is, ruby does it NOW; we don't need to wait for another 5 iterations for actual useful features to get added to the language.
    Atlas for ASP.net (It is still in beta)
    Sure, Atlas sort of does lets you use AJAX. Poorly. And without any useful documentation at all.
    This will be handled by the LINQ functionality in C# 3 and VB 9. (It is still in preview)
    See previous comment about release dates. Also, I'm 100% certain that LINQ isn't going to be as as easy as "generate model." Try... "setup 900 xml mapping files, generate the class, CRAP I wanted that column to be a boolean gotta go back and change the type and redo all of my mapping."
    MSBuild replaces NAnt. Though you don't need it for ASP.Net.
    MSBuild isn't nearly as easy to use as NAnt. Microsoft really should have just bought NAnt (and NDoc while we're on the subject). Let's not even start discussing the complete lack of a usable unit testing setup. If you want something that is actually integrated with the IDE you have to pay an extra few THOUSAND DOLLARS for msdn. Sure, theres NUnit, but it isn't nearly as simple to use as Rails' unit test framework.

  8. Back to top

    Re: Speed

    Aug 18, 2006 6:28 AM by Billy Billionaire

    Jonathan, You are exactly the kind of developer that the Rails community does not want. Keep defending .NET and stay the closed minded developer that you probably are. I have no doubts that you have invested a lot of time in .NET and struggled through the bad times. You probably have even come up with a proficient way to use/fight against the .NET framework to do anything productive.

    Slim down your code base 10-20% by stripping off all type declarations and interface declarations.
    Your response:
    I think that is a disadvantage. It makes it harder to determine what type is supposed to be passed by looking at the method signature. You also lose the ability to do some forms of static analysis.
    Statements like I do not want to remove code and retain functionality is completely ridiculous. Also adding frameworks like Atlas sounds exactly what you should use when the .NET stack has shortcomings for AJAX. Keep waiting for C# 3 and good luck to you! Please grow old with .NET but do not pollute the minds of real developers that look outside their immediate world. Please do not download Rails and continue waiting for new versions of .NET, C#, and promises that it will be the end all development environment for you. We love you Jonathan, Billy Billionaire

  9. Back to top

    Re: Speed

    Aug 18, 2006 6:49 AM by Rex Rexroth

    Jonathan is a complete moron. Half the things he talks about are "coming". So therefore, .NET does NOT have an equivalent. Microsoft is always behind the mark on technology and apparently so are their developers. Congrats to Nick Martini and Billy Billionaire for keeping this fascist in check. Rex Rexroth

  10. Back to top

    Re: Speed

    Aug 18, 2006 11:31 AM by Cameron Purdy

    Jonathan is not a fascist. He's just a normal Microsoft-focused developer. That's completely normal behavior for customers that have only one vendor, one source of technology, one source of concepts and ideas. For example, replace nant with MSBuild? Why didn't Microsoft just adopt nant? (And why do they still use "make" internally? ;-) Don't expect plebs to think on their own. That's too much, too quickly. Openness, democracy, transparency, independence -- these things take at least a generation to instill. Peace, Cameron Purdy Tangosol Coherence: Clustered Shared Memory for Java

  11. Back to top

    What the hell is wrong with you people?

    Aug 18, 2006 4:47 PM by Jonathan Allen

    The whole point of this article is to convince .Net programmers that they should try Ruby. As a typical .Net programmer, I was just saying those particular reasons were not interesting to me. Instead of giving me other reason's why Ruby might be of interest, you call me a moron and a fascist. That is not the way to win over people. Is this going to be the culture of Ruby? Is hatred of all things Microsoft your definition of openness and free thinking? Do you treat Java programmers the same way? There is no reason to insult people just because they bought their hammer from a different company than you.

  12. Back to top

    Re: What the hell is wrong with you people?

    Aug 21, 2006 10:46 PM by Stephen Chu

    I do not think Jonathan deserves any of the opinions he drew here. I was in fact just like him a few months ago, doing most of my programming in the .NET world. This 1,000-word article merely touches anything to convince .NET programmers to try Ruby. I only wrote about 5 or 6 points of interests I personally find interesting in my due course of learning Ruby/Rails. Now when I look back, I probably have accumulated way more than 50 points of interests: + How is a web framework without using event-driven model implemented/work? + How does a framework that supports database continuous integration work? You can rollback the state of your database in development to a certain point in time by using migration. How? + How far can code generation get you? + You do not have the ability to overload a method in Ruby - yes - the what? + You can easily reopen classes of the framework to override almost anything you want. Remember the pain of creating wrapper interfaces/classes that wraps .NET Framework's sealed classes? + There is no such concept as abstract base class. All classes are concrete. So do you still need those factory patterns? + Dependency injection becomes easy now that you can reopen classes, so would you still need to prefer constructor-injection over anything else? + Everything is an object: including a class. Class methods are instance methods of a class. A whole new dimension of thinking about what kind of behaviors should or could go in there. + Since everything is an object, including integers, strings, and any custom value objects you create, is the Null Object pattern still needed? + You can at run time evaluate Ruby code stored as a string very easily, without rolling your own parser. That is the fundamental of creating a DSL (domain specific language). Everyone is creating (or if you agree, programming) complicated Excel spreadsheets, using Excel syntax. How about create a DSL that the business is familiar with to aid their everyday task? + And the coolest of all, turn a Mac into a Star Wars Jedi weapon... Like many things in life, until you have a second option, you always believe what you know is surely the best ever. All of the above are cool ideas, and many of which I will consider bringing them from the Ruby/Rails world to my future .NET projects. It does not have to be "pick .NET or Ruby" at all.

  13. Back to top

    Re: Speed

    Aug 22, 2006 11:19 AM by Ugo Nwogwugwu

    I honestly think you guys are the ones that are biased. Jonathan just sounds like he likes the tools he knows and doesn't see any reason to switch. As a Ruby developer I'd just say "More power to you Jon, I'm comfortable where I am too and you don't have to join me." And that's all. Fascist? Complete moron? Where did all that come from??? Keeping him "in check"? Did you think only one point of view would be represented here? What utter conceit!

  14. Back to top

    Re: Speed

    Aug 22, 2006 2:59 PM by nick martini

    I honestly think you guys are the ones that are biased. Jonathan just sounds like he likes the tools he knows and doesn't see any reason to switch.
    If any of these latter comments are aimed at me, I'd suggest re-reading my comment; at no point in it did I suggest Jonathan was a complete moron. He obviously isn't, since he is familiar enough with .NET to bring up his points. I did suggest that he is a programming language bigot; I apologize, that may have been a little harsh, especially considering a lot of the Rails people I know of are far worse.
    Is hatred of all things Microsoft your definition of openness and free thinking?
    I work at a Microsoft shop and quite like most of their products, especially the newer Visual Studio and SQL Server products (I'm still pretty ticked off over Vista, but that is a story for another time). So, I guess the answer to this is "no."
    Do you treat Java programmers the same way?
    No, we do Java here as well.

  15. Back to top

    Re: Speed

    Aug 22, 2006 4:51 PM by Jonathan Allen

    If any of these latter comments are aimed at me, I'd suggest re-reading my comment; at no point in it did I suggest Jonathan was a complete moron. He obviously isn't, since he is familiar enough with .NET to bring up his points.
    No, but someone else did merely because I am willing to wait for MS to provide some things that Ruby already has. The thing is, moving to Ruby is too expensive for me right now. The cost in learning time doesn't cover the productivity gain at this time. Ruby really needs some killer features that MS isn't going to offer if you want me to use it as my production language.

  16. Back to top

    Re: Speed

    Aug 22, 2006 11:00 PM by Lex Luthor

    No, but someone else did merely because I am willing to wait for MS to provide some things that Ruby already has.
    Hmm. Well, let's check our definitions: Moron: A stupid person; a dolt. (source: http://dictionary.reference.com/browse/moron ) Ok I can see how this is possibly a bit harsh, if taken literally, and not in the more colloquial sense: Moron: A person lacking in the areas of significant cognition or logical constructs. (source: http://moron.urbanup.com/326511 ) Hmm. Ok let's analyze the next one. Fascist: A reactionary or dictatorial person. (source: http://dictionary.reference.com/browse/fascist ) Well, ok then. And the connotation? Fascist: Someone who believes in a totalitarian state rule by a supreme leader (dictator) who controls everything possible and treats people harshly Hmm. Well, maybe a stretch in this instance, but probably not too far off from where Microsoft's (former?) Cheif Architect would prefer. The point is, any time you come out in defense of a known anti-competetive establishment, you're bound to get backlash, and quite honestly, should be prepared for it. That said, almost all of your rebuttal was in reference to what "will be" rather than not only "what is" but what has been for quite some time in Ruby on Rails (over a year in production capacities). Let's take a look again, as objectively as possible:
    Do not compile.
    ASP.Net has that now.
    While I don't claim to be an 'expert' in all things .NET, I have used it, own VS2003 and VS2005, and have read a few books on ASP.NET. The point is, even ASP.NET's in page 'code behind' isn't the same thing as what's done in Ruby on Rails. Really -- go try it out before assuming it's the same.
    Dynamically enhance the behavior of a class - without a Decorator.
    Last I heard, C# 3 and VB 9 will have this.
    There are multiple problems here. 'Last I heard' isn't a valid point of reference, yet someone will read it as such. Not very responsible unless you add a disclaimer. Secondly, you're assuming that 'this' is the same thing as Ruby's dynamic ability to add features, methods and attributes to a class at runtime. Finally, you alude to a product that currently has no timeline for a company that is notoriously bad at shipping products on time.
    Slim down your code base 10-20% by stripping off all type declarations and interface declarations.
    I think that is a disadvantage. It makes it harder to determine what type is supposed to be passed by looking at the method signature. You also lose the ability to do some forms of static analysis.
    While you're certainly entitled to your opinion, there is nothing in a statically typed language that guarantees any better analysis. For example (excuse the Java -- again I'm not .NET):
    public String sendMessage(String s1, String s2, String s3) { /* do stuff */ }
    Care to take a guess what that does and what it returns? ;)
    Ajax it in no time.
    Atlas for ASP.net (It is still in beta)
    I believe the issue here is 'time'. Sure Atlas can do it, heck developers have been doing AJAX-like stuff for years. Just not as seemless as most basic AJAX functions in Rails. (by contrast, this is a fair amount of code and requires custom JavaScript: http://atlas.asp.net/docs/Walkthroughs/GetStarted/Basic.aspx )
    With Rails, you don't need an O/R Mapper.
    This will be handled by the LINQ functionality in C# 3 and VB 9. (It is still in preview)
    Again, an assumption that LINQ is remotely close to ActiveRecord. Basic ActiveRecord classes require no custom code and no code generation to product basic CRUD methods. By contrast, LINQ looks like an abstraction of SQL (not unlike Hibernate's HQL with a smattering of the Criteria API -- source: http://en.wikipedia.org/wiki/Language_Integrated_Query).
    Using Ruby script to build/deploy/release is better than using NAnt.
    MSBuild replaces NAnt. Though you don't need it for ASP.Net.
    Again, you're assuming that even MSBuild is the same thing as Ruby/Rails 'rake'. I know very little about NAnt or MSBuild (but I know a ton about Ant), and I do know that Ant is no where near the tool that 'rake' is. I can migrate my database (and data!) from one version of a schema to a new one (i.e. add tables, remove/add columns, etc.), run my unit tests, or copy my application to a new location from the same tool, without almost no code or configuration.
    The thing is, moving to Ruby is too expensive for me right now. The cost in learning time doesn't cover the productivity gain at this time. Ruby really needs some killer features that MS isn't going to offer if you want me to use it as my production language.
    Now if you had just said that before all this started, we probably could have avoided the diatribes. :) The bottom line is, when defending a well known, and largely despised organization with promises and prognostications backed by baseless assumptions, you're nearly begging for snide remarks to ensue.

  17. Back to top

    Re: Speed

    Aug 23, 2006 10:12 AM by nick martini

    The thing is, moving to Ruby is too expensive for me right now. The cost in learning time doesn't cover the productivity gain at this time.
    Yeah, I'm with you there; we just renewed our MSDN subscription, so I really doubt my boss would embrace a change. I'm also not as comfortable with Rails as I am with ASP.NET (I've used the latter for 5 years, and the former for 5 months), so I don't think switching horses in the middle of a development cycle would be a great idea. And I'm just going to pretend that I didn't see Lex Luthors post.

  18. Back to top

    Please be respectful

    Aug 27, 2006 1:25 PM by Floyd Marinescu

    Guys, I'd like to ask you to please be respectful. InfoQ is a serious site for serioes discussion. Putting out one's opinion respectfully is ok but resorting to name calling is not. Floyd InfoQ Co-founder

  19. Back to top

    Re: Please be respectful

    Aug 28, 2006 12:37 PM by Greg Rebuck

    Thanks Floyd, and nicely handled. Hey, didn't I meet you at Canada on Rails? I of course remember you from years before, but I'm not sure what site(s). It would appear that the jihad flame wars will NEVER end on languages, OSes and machines (even browsers!) Even if Jonathan had been trashing Ruby/Rails, which I don't see based on his comments, who cares? It's his right. I think he was trying to see the potential of something new/different and probably has much vested in his current situation. Totally understandable, his trepidation. I'm in the Java world but rapidly moving towards Rails. Give up Java completely? At my own peril.....for now. I see a connection between Rails people and Mac people; and make no mistake, OSX is the development platform of choice. It was mind-blowing how many Macs there were at Canada on Rails. In the DeRailed group (Denver Rails) I'm the only one of probably 20 or 25 guys who bring laptops, that actually has a PC. Oh yeah, Rails->Mac connection. It's always been amazing how fierce the Mac-heads have been to defend their [previously] undersupported platform. Personally, while I've always liked the Mac interface pretty much, it was always a nightmare to develop on; until OSX. I still don't plan to switch over anytime soon but I can understand why people like a real UNIX-backed, aesthetically superior (especially to Linux!) machine. Oh, yeah, the connection. :-/ I see so many similarities in behavior with the Rails-heads, a group of which I would say I'm moderately connected. Fierce defenders with an attitude, and definite arrogance. This is not all bad, in fact I totally admire the passion! But I could see how the extreme "join-us-or-die!" approach will certainly turn off some would-be seekers who are genuinely interested in exploring to find the best tools for the job! While DHH's "F*** YOU!" rant was in some ways amusing (I still have the mp3 recording) it's not going to score many points outside of the counter-culture groups, especially not serious business people. Mr. Chu has it completely right: "best *business* value for his clients." I think many developers actually believe the drill is more important than the hole that it creates. I know it's tempting to get caught up in the technology itself, but what's really important in life???? I'd say the life, liberty and the pursuit of happiness deal was a pretty good start.....love your neighbor wasn't bad either. :)

  20. Back to top

    Re: Please be respectful

    Aug 28, 2006 1:09 PM by Greg Rebuck

    Floyd, of course, TheServerSide! And I probably encountered your Design Pattern book as well. Greg. ("oh by the way, which one's Pink?")

  21. Back to top

    Re: Please be respectful

    Aug 28, 2006 3:14 PM by Floyd Marinescu

    Agreed. I think the Ruby community should seek to distinguish itelf through technical excellence and results, not through aggression. Then they will be a cultural draw that could be quite compelling, like Java was back in the early days.

  22. Back to top

    Installing Ruby on Rails

    Aug 30, 2006 9:33 AM by Renil Abdulkader

    I find it is interesting to learn Ruby on Rails. I am working in .NET now. But how can I install this without affecting my current dev environment. I don't want to install Apache server or MySql on my machine? Any help?

  23. Back to top

    Re: Installing Ruby on Rails

    Aug 30, 2006 1:39 PM by nick martini

    I find it is interesting to learn Ruby on Rails. I am working in .NET now. But how can I install this without affecting my current dev environment. I don't want to install Apache server or MySql on my machine? Any help?
    Check out Instant Rails. It doesn't change your system in any way; quite handy for this sort of thing. Locomotive is the same thing, but for Mac users. I prefer doing Rails code on the Mac, but really only because I can't get TextMate for windows.

  24. Back to top

    Re: Speed

    Sep 2, 2006 10:41 AM by John Haynes

    The thing is, moving to Ruby is too expensive for me right now. The cost in learning time doesn't cover the productivity gain at this time. Ruby really needs some killer features that MS isn't going to offer if you want me to use it as my production language.
    Being a 5 year .Net guy married (was) to the MS way... I too made this argument when I did not have any actual RoR experience. Even in my initial Rails learning-curve, my productivity was greater than my productivity in asp.net. With Generators, Scaffolding, Migration and Capistrano... You absolutely can not objectively argue that .Net is a superior choice. I've been using Rails extensively for the last 3 months... It's now incredibly painful to return to c#. I've going to begin using IronPython for all my .Net requirements now. Another observation that a co-worker of mine pointed out the other day... When you want to start getting real creative with abstraction. .Net Compiler just starts barking at you. C# guys actually feel they've accomplished something (been there done that) when they get it to successfully compile, thus, due-dilligence is not given to run-time logic becuase of the mental-fatique incurred by successfully getting your software to compile. With Ruby that is simply not the case. I haven't even mentioned blocks, iterators, mixins and all the language productivity elements that keep me from having to implement CompareTo on every friggin type in the book, much less meta-programming. Where I can do runtime evaluations without resorting to reflection. I'd suggest that you give it (Ruby/Rails) an honest objective effort, because I was exactly where you are just a few months ago.

Exclusive Content

Rationalizing the Presentation Tier

Thin client paradigm characterized by web applications is a kludge that needs to be repudiated. Old compromises are no longer needed and it's time to move the presentation tier to where it belongs.

Agile Project Management: Lessons Learned at Google

In this presentation filmed during QCon 2007, Jeff Sutherland, the creator of Scrum, talks about his visit at Google to do an analysis of Google's first implementation of Scrum.

AtomServer – The Power of Publishing for Data Distribution

In this article, Bryon Jacob and Chris Berry introduce AtomServer, their implementation of a full-fledged Atom Store based on Apache Abdera, which is now available as open source.

An Introduction to Virtualization

It is easy to think that virtualization applies only to servers. In reality the recent resurgence of the concept is also being applied to networking, storage, and application infrastructure.

REST Anti-Patterns

In this article, Stefan Tilkov explains some of the most common anti-patterns found in applications that claim to follow a "RESTful" design and suggests ways to avoid them.

Choosing between Routing and Orchestration in an ESB

In this article, Adrien Louis and Marc Dutoo discuss the differences and relative merits of using orchestration vs. routing in a typical ESB setup, and discuss various implementation options.

Enterprise Batch Processing with Spring

Wayne Lund discusses batch processing, Spring Batch objectives and features, scenarios for usage, Spring Batch architecture, scaling, example code, failures and retrying, and the future roadmap.

User Story Estimation Techniques

Developer Jay Fields draws on his experiences as a ThoughtWorks consultant to describe effective user story estimation techniques.