On Sat, Apr 19, 2008 at 10:30 PM, Brian Frank <[EMAIL PROTECTED]> wrote: ... > A primary goal of Fan is enable writing software which is portable > between the JVM and CLR. To give you an example, we bit off writing > our our own DateTime and TimeZone handling to ensure exact portability > b/w the two platforms (because .NET doesn't use Olsen timezones). > Another example is we wrote our own build system, so that build > scripts aren't dependent on a Java tool like Ant. I know Scala runs > on .NET - but is that one of the goals of Scala? I'd be really > interested in hearing more about how Scala is tackling some of these > problems.
Portability between the two platforms was never a high priority for Scala. I'd say the main goal was to bring together object-oriented programming and functional programming in a modern, type-safe language. Given that most people agree now that the functional and object-oriented paradigms should go together, Scala was quite successful in its first goal. I would say there is no way to write really portable Scala code. Sooner or later, one would need to use platform libraries, even for things as basic as I/O. The language designer favored 'seamless' interoperability with the platform to give access to tons of existing libraries. Of course, there could/should be Scala abstractions on top of that, but we don't have them. It's not that it's impossible, or even very hard, but it didn't happen. And since we're at that, how do you deal with platform-dependent code? Say a class on top of File, which uses either java.io.File or the .NET equivalent behind the scenes? Conditional compilation? > I think any new language on the JVM will probably be multi-paradigm - > both OO and functional. In fact even Java and C# seem to be moving > that way. So I don't think that will end up being a distinguishing > feature. Rather key differences will be in features like the type > system and libraries. I'm a framework guy, so over the next few years > you'll see most of my effort in the libraries versus the language > syntax (which we hope to keep relatively simple and stable). For > example, my experience has been that maintaining an indexed database > of installed types effects how you design libraries (such as a webapp > framework) even more than language syntax does. So I think the > divergence really happens in the upper layers of the stack. The part that I find really interesting in Fan is the approach to concurrency. Can you explain a bit more about how it is implemented? Is it mostly in the libraries, or it has some compiler support (for message passing, for instance). Is there a way to pattern match on messages, like in Erlang? Thanks, Iulian -- « Je déteste la montagne, ça cache le paysage » Alphonse Allais --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "JVM Languages" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/jvm-languages?hl=en -~----------~----~----~----~------~----~------~--~---
