From: David Vallner Date: 2006-12-05T10:01:38+09:00 Subject: Re: Question about Ruby philosophy --------------enigB7EA8F549FDFEBD2AB6984A4 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Robert Klemme wrote: > On 04.12.2006 13:04, Zouplaz wrote: >=20 > Others have given good answers that I cannot answer better. However: >=20 >> 3) Why most C#, Java, C++ developper thinks that this approach is >> dangerous and lead to bad practices ? >=20 > Are you sure this is true? True, people frequently are scared of Ruby'= s > dynamic nature - or criticize it. But I would not go as far as to clai= m > that the majority of C# / Java developers thinks this approach is > dangerous. Aaactually, yes, they/we do. The Ruby way presumes reasonably skilled coders, not going overboard on clobbering , sufficient documentation, and test coverage. After having seen my odd share of undocumented, untested messes (usually cobbled together by generations of interns) that are *barely* maintainable -with- the security blanket of type checks, tool support, and no possibility of out-of-sight clobbering changes, I pray /those people/ don't discover Ruby with me having to set eyes on their code. (I'm not accepting that the blame be laid on the language, the problems are usually plain newbiedom, laziness, or copy-pasting snippets of "what everyone before used and worked" instead of cleaning up the design. I've seen it with Java, I've seen it with PHP, I have very little doubts I'll eventually see it with Ruby when it reaches the popularity / hype threshold. Some of that approach I already notice in some of the newbie posts here, though in yet negligible amounts.) Compared with Ruby having a low barrier to entry, followed by a (IMO) steep learning curve to mastery, and the tendency of people in their intern phase to be infatuated by shiny sparkly objects (like, oh, witty eval meta hacks), this scares the heck out of me. (Hopefully, the harmful features are too advanced for the pointy-haired-boss-acting-hip sort of programmers.) Basically, the messiest Java codebase I can imagine isn't nearly as scary as the messiest Ruby one. FUD? Maybe. Personal experience? Certainly - code I have to tackle would invariably be much worse if it abused the wordt of Ruby. But as usual, just a language comparison without context doesn't really say anything, and the above quoted point 3 is an overgeneralising blanket statement; i.e. more often than not, patent nonsense, and at least in this case, horribly phrased. Lack Of A Clue (tm) is what leads to bad practices, the important question is "How bad practices can you have?". Or scratch that, the only practically relevant question is "How bad practices DO you have right now?", anything more general tends to speculation, and in programming discussions, speculations leads to a vapid cloudfest really fast. Provided the assumptions mentioned hold for a project during its lifetime, the dangers of the approach are a non-issue. Except they don't necessarily, and then the security blanket helps a lot - not everyone can afford to wrinkle his nose in disgust at ugly code and quit on a whim. (Need just a *little* more time in the global Fortune 100 entries spearheading the CV before I can consider moving on from "grin and bear the soul-draining horror 75% of the time, read bash.org for the rest of it" employment to being more picky with regards to personally rewarding experiences.) Ruby's critical point of mass adoption is yet to come, and if the blogosphere noise is even remotely representative, I'm halfways sure it -will- come (the mindshare Ruby gets despite not having a single notable sugar daddy is rather spectacular), and I expect Interesting Things (tm) to happen if/when it does. Hopefully, of the good sort (job openings, development funding), but the opposite (widespread language-altering libraries becoming a tangled mess that requires effort to get working in a nontrivial project) isn't entirely impossible. David Vallner Sleep Deprived --------------enigB7EA8F549FDFEBD2AB6984A4 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (MingW32) iD8DBQFFdMTuy6MhrS8astoRAtHsAJ9tZQzg2epXsborpmo5ARgyyDJwJQCeIx0D zenIAwoISdqWhOjxqUKK9ks= =JPbe -----END PGP SIGNATURE----- --------------enigB7EA8F549FDFEBD2AB6984A4--