On 4/22/06, Tim Dysinger <[EMAIL PROTECTED]> wrote: > > On Apr 22, 2006, at 9:51 AM, Phil Tomson wrote: > > > On 4/22/06, Tim Dysinger <[EMAIL PROTECTED]> wrote: > >> It's curious that the Java, C# and Ruby (w/ Rails) camps are like the > >> French, English and Natives in the new America. It's all OO > >> programming right? > >> > > > > Well, yes and no. There are other axis of measurement than OO; > > dynamicity for example. > > Ruby is much more dynamic than the other two. You can do things like > > add methods to an instance at runtime. > > Cool. Does ruby have reflection? I was thinking about that > yesterday. I guess I could google that.
Lots of reflection. > > > Ruby's dynamicity makes > > metaprogramming quite easy and as such you run into it even in the > > standard libraries. Ruby also has closures (though I hear C# is > > getting them). And Ruby is strongly-dynamically typed as opposed to > > being statically typed as Java is. > > So Ruby is in the same camp as Python (strongly-dynamically typed). > I like that, but it seems that it makes it harder to write IDEs for > such languages that can be helpful in such things as refactoring > (because of things like not explicitly declaring the parameter class > type in method declarations for example). > > I do like the idea of strongly-dynamically typed languages a lot. I > just wish there was a rippin IDE. I haven't used VI in 10 years for > anything serious. There was an article linked on reddit a week or so ago where someone wrote a very good blog entry about how there are IDE people and there are language people. The IDE people like and need their IDEs because they're programming with statically typed languages where an IDE can really increase productivity. The language people prefer to use a different type of language (usually a dynamically-typed language) and they aren't concerned with having to learn the new language (or with the fact that the new language may not even be 'popular'). For Ruby you don't need an IDE nearly as much as you might for a statically typed language. I'm not an IDE fan myself. Give me gvim any day. But I can see that if you were doing Java programming and you decided that a particular variable needed to be of a different type after it had already been referred to and passed all over creation then the IDE makes it easier to change the type all over the place. But in a language like Ruby you never have to do that. > > For example, in Java (and C#), we use the hell out of AbstractFactory > patterns or IoC containers to get around the fact that we want > dynamic type features but we are stuck with static. Similar things happen in the C++ camp, though I have to say that there are some pretty crazy uses of templates these days (and I mostly mean 'crazy' in mostly a good way) that even allow things like metaprogramming. I kind of wonder if Java would have taken off if the boost libraries had been around in, oh, say 1996 and if people where using some of the C++ template programming idioms that are now popular. To me, it seems that Java didn't move far enough from C++ to make it compelling (and especially not now) - but I digress. Phil _______________________________________________ PDXRuby mailing list [email protected] IRC: #pdx.rb on irc.freenode.net http://lists.pdxruby.org/mailman/listinfo/pdxruby
