Fantom language discussion ; what are your thoughts ?

I was very surprised that a search on LtU did not find any discussion on Fantom ( ). It seems elegant and the home page gives a good summary. So this thread is to 'kick-start' the discussion.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

The language looks fairly

The language looks fairly well designed and engineered, but to a PL enthusiast it might not look so interesting since it doesn't seem to be bring anything new to the table. At least a languages like Scala pushes the PL envelope in certain direction (extreme type inference, extensible pattern matching). Fantom seems to be an itch that's being scratched, which isn't a bad thing, but probably won't attract much discussion here.

Fantom was Fan

I'm guessing they changed the name to make it easier to find on the internet. Fan has been discussed before on LtU:

I don't like it because the authors felt that parameterized types (called "generics" in Java) were not worth the complexity. They just built in a few parameterized types (list, map) and left it at that.

But also, yeah, there's nothing new there that I'm aware of.

swimming against the grain

@pushing the envelope
@not worth the complexity

i am also somewhat unlikely to switch to using Fantom full time, but it worries me to see the other comments here because they make it sound like pushing the envelope + complexity are somehow in and of themselves good worthy goals, which i think runs in the face of usability.

the Fantom folks have posted about their inner thinking several times, and they tend to jive with what I hear about gscript.

I thought the point was

I thought the point was merely that languages that don't push the envelope are less interesting as far as LtU discussions go, not that it is a worthy goal in and of itself. Naturally, a language can push the envelope as regards usability, and this would make it worthy for discussion!

Personal bias.

Sean and Ehud said it better, but yeah, I didn't mean to say that playing it safe isn't useful -- just less interesting. I do like that they've put effort into packaging and deployment, though, which is a mess in Java.

Then again, I'll probably never get over the lack of generics... The Go language doesn't have generics either, but the authors aren't opposed to the idea. They just wanted to get something working soon. I can sympathize because generics are hard to design and implement (though adding generics after the fact can be difficult; see Java).

The Fantom people, on the other hand, say that generics aren't worth the complexity, which I take to mean "complexity for the programmer", which I believe is untrue. I think a lot of the fear of generics comes from bad experiences with Java's notoriously corner-case-ridden design. There's probably a sweet spot that achieves, say, 80% of the benefit of Java's generics with 20% of the programmer-visible complexity of Java's generics.

There's probably a sweet

There's probably a sweet spot that achieves, say, 80% of the benefit of Java's generics with 20% of the programmer-visible complexity of Java's generics.

Yes, it's this extension call ML. ;-)

vs. Scala?

ok, i'm curious how people feel -- which generics are the ones that taint the idea to a Joe Programmer? vs. which ones are pure and light and pristine and joyous and graceful?

* Java's
* C#'s?
* Scala's
* ML's?
* Haskell's?
* ...?