Sean O'Dell wrote: > I don't think you can restrict a language to just one of these paradigms > without narrowly restricting that for which the language can be used. Ruby > allows OO, functional, procedural, imperative and other paradigms because > they all have their uses at some point or other. > > It's up to the developer to say "this application needs X% of this paradigm > here, X% of this paradigm there," etc. It's up to the developer to learn > what to use and when, and when to not. A person restricting themselves to > one set of concepts is a sign that they don't fully understand their > alternatives very well. Even globals and goto have their use, but a lot of > programmers don't fully understand them so they write horrible spaghetti code > with them, or disdain them completely out of fear. > > It's better to have all possible tools at-hand and to learn how to use them, > than to shun the ones you haven't learned to use effectively. > > Sean O'Dell > Well said. Anyone that says OO|Functional|Flow-Based|Procedural is the "One True Way(tm)" probably needs to get out more and try to actually use the paradigm in other fields. Academic discussions can be fun sometimes, but the practical side of me knows that the real world isn't so black and white. :) I happen to like the way Ruby *can* handle being a simple procedural language, but has *much* more power using other paradigms - use them when appropriate. I personally use a hammer to pound nails, but I use a screwdriver on screws. Use the right tool. - David Morton