I love structural typing, you can be very explicit with the compiler about where you want to use reflection and make the trade-off against performance.
If you're also creating objects (and they're not coming out of a factory defined in some library), then another trick is to mix-in an abstract trait, something like this: trait Closable { def close() : Unit } val f = new File with Closable I can then mix that trait into ANY type that has a close method. Structural types not required... On 9 September 2010 10:34, B Smith-Mannschott <bsmith.o...@gmail.com> wrote: > > > On Thu, Sep 9, 2010 at 08:28, Casper Bang <casper.b...@gmail.com> wrote: > >> > I still have some hope for Fantom because I don't think it crossed that >> > threshold yet, but it's getting dangerously close to it. >> >> What speaks to Fantom's advantage is it's dynamic typing feature, >> something Scala ignores completely - in spite of various luminaries >> view that the static and dynamic world will inevitably merge down to >> opt-in semantics. Unfortunately Scala seems to run with all the >> attention, regardless of the bad taste in the mouth it leaves with lot >> of people. >> > > You can get much of the benefit of dynamic typing by using Scala's > structural typing: > http://codemonkeyism.com/scala-goodness-structural-typing/ > > This has been part of the languge since at least 2.6 (July 2007). (3 > years!) > > I'm more and more convinced that the "bad taste in the mouth" people > complain about is born of ignorance. It's just the natural reaction many > have when confronted with something new and unfamiliar. Of course one feels > like a klutz at first, working with a new language with new concepts, > conventions and syntax. That's normal. Anyone who's learned more than one > language must know this by now. I found Clojure pretty weird when I started, > and that despite previous exposure to Scheme. Now I find, I can appreciate > its advantages. I'd encourange those unfamiliar with Scala to cut it some > slack or get familiar with it before spouting nonsense. > > // Ben > > -- > You received this message because you are subscribed to the Google Groups > "The Java Posse" group. > To post to this group, send email to javapo...@googlegroups.com. > To unsubscribe from this group, send email to > javaposse+unsubscr...@googlegroups.com<javaposse%2bunsubscr...@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/javaposse?hl=en. > -- Kevin Wright mail / gtalk / msn : kev.lee.wri...@gmail.com pulse / skype: kev.lee.wright twitter: @thecoda -- You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to javapo...@googlegroups.com. To unsubscribe from this group, send email to javaposse+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.