From: David Pollak Date: 2006-05-04T01:38:32+09:00 Subject: Re: Sharp knives and glue ------=_Part_48533_15590314.1146674301042 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On 5/3/06, James Edward Gray II wrote: > > On May 3, 2006, at 10:46 AM, David Pollak wrote: > > > Ruby forces the developer to do more work and think more. This is > > okay if > > you've got a small team that has a mind-meld. This is more and more > > difficult when you have larger and larger teams. It's not a > > question of > > dicipline or quality of developers, it's a question of how much > > people can > > hold in their heads. > > Do you use unit tests? Yes. And they work just fine for small project, but the cross-product of methods that can pass parameters to other methods in other classes that get passed down the line, etc. cannot be confidently tested with unit tests... especially when delegates are introduced into the mix. Unit tests are not a substitute for programmers defining the rules in their code and having a tool check/enforce those rules. > Ruby would be better if I could > > say, "only the following classes/modules can change the behavior of my > > classes" so that some MixIn that I know nothing about changes > > something in > > my code. > > If some code you know nothing about is changing your code, they are > breaking the rules and should know to expect the consequences, in my > opinion. Well... what are the consequences? For example, Instiki 0.11 works just fine under WEBrick, but breaks running under FastCGI because of a load sequence issue with the 0.8.x rails libraries that are shipped with Instiki and whatever version of stuff is in my Gems directory. The consequences of this is I can't use a Rails app in my normal production environment. Sure, I could figure out what's going on... but that's a wast= e of my time (I've already lost 3 hours of consulting revenue trying to install Instiki as a FastCGI rather than a port-forwarded WEBrick app.) The consequences of this is I'm screwed. The consquences of this is I can't recommend Ruby to my enterprise clients because they can't predictably deploy applications unless they have a freeze-dried perfectly versioned system that will never change because of the unpredictability and instability of changing library versions. Oh... BTW -- Instiki passes its unit tests because the load sequence is correct for the unit tests... but it's not correct when Instiki is launched as a CGI or FastCGI. So... the consquences of this is that you can't trust unit tests in Ruby because they can be impacted by Module/Class load sequences. James Edward Gray II > > -- -------- David Pollak's Ruby Playground http://dppruby.com ------=_Part_48533_15590314.1146674301042--