One thing for sure, and I'm not the first to say this, Fan doesn't have an inertia problem -- new stuff comes fast. Partly I think that means it's a well-designed system, refactoring isn't hard; and partly it's that Brian and Andy and the rest seem to really know what they're doing, and what they're trying to do.
A few random comments on the latest: I've been updating my pep, pfui, and fanfold projects to work with tip.
Using * as the new field-accessor was startling -- it looked a bit like some C code accidentally appeared. But it seems to make sense.
I noticed that mis-placed fandocs are now an error (at least in some places) where before they were silently treated as normal comments. This is probably good, and I'd rather they be an error now than down the road. (I'm guessing that parsing * for fields made ** for misplaced fandocs be a problem)
Type safety on facets is nice, a couple times the compiler told me what I should have done, saved a runtime exception.
There's a compiler bug when you override a method that had a facet, and don't put the facet on the overridden method: in my build.fan I did
for convenience, forgetting the @target facet, and got a walkback.
Syntax on the symbol stuff (the ats and hashes discussion) is a bit confusing at least while it's new; my feeling is that this stuff is for the few things that have to take the place of global variables, and shouldn't be proliferated, so shouldn't need a whole bunch of extra complexity.
If Fan was heading in the direction of wildly-dynamic, say runtime assignment of slots in dynamic objects or something, then syntax would be more important.
KevinKelley Fri 24 Jul 2009
One thing for sure, and I'm not the first to say this, Fan doesn't have an inertia problem -- new stuff comes fast. Partly I think that means it's a well-designed system, refactoring isn't hard; and partly it's that Brian and Andy and the rest seem to really know what they're doing, and what they're trying to do.
A few random comments on the latest: I've been updating my
pep
,pfui
, andfanfold
projects to work with tip.Using
*
as the new field-accessor was startling -- it looked a bit like someC
code accidentally appeared. But it seems to make sense.I noticed that mis-placed fandocs are now an error (at least in some places) where before they were silently treated as normal comments. This is probably good, and I'd rather they be an error now than down the road. (I'm guessing that parsing
*
for fields made**
for misplaced fandocs be a problem)Type safety on facets is nice, a couple times the compiler told me what I should have done, saved a runtime exception.
There's a compiler bug when you override a method that had a facet, and don't put the facet on the overridden method: in my build.fan I did
for convenience, forgetting the @target facet, and got a walkback.
Syntax on the symbol stuff (the ats and hashes discussion) is a bit confusing at least while it's new; my feeling is that this stuff is for the few things that have to take the place of global variables, and shouldn't be proliferated, so shouldn't need a whole bunch of extra complexity.
If Fan was heading in the direction of wildly-dynamic, say runtime assignment of slots in dynamic objects or something, then syntax would be more important.
Tha's all for now...