Having never worked with Ruby on Rails, I looked it up on Wikipedia. It says
It is intended to be used with an
Agile development methodology that is
used by web developers for rapid
development.
This got me asking how a given language/framework can be more appropriate for given development methodologies. Are there certain languages that are more friendly for pair programming, for instance? Are there language features that make certain methodologies are more appropriate? Are there features that make certain methodologies impossible?
My initial reaction is to dismiss the connection (the design process is a business process, which is more dependent on business needs that language features). But I’m an only programmer within the firm, and I’m a partner, so I get to decide the business needs. What do you think?
Also, if the SO community finds that certain languages point towards certain methodologies, what methodology is most common for c#, which is what I use most of the time?
I certainly consider different languages to promote certain methodologies as much as they entail different philosophies
Object-oriented languages are suitable for larger groups since code can be neatly decoupled. Dynamic languages instead will allow much more explorative and straightforward approaches due to the possibility of interactively testing code (e.g. interactive shells) without long compile times.
Convention-over-configuration like practiced by RoR is suitable for rapid development whereas advanced functional type systems like F#’s or Haskells promote a types first approach.
And of course, it’s even easier to prove opposite – You can’t rely on types in an insufficient type system, you can’t decouple by interfaces where they’re all implicit and you can’t easily explore a problem by try and error in languages like C++. So yes, there is a connection.