by oscarfr on 4/27/15, 8:43 AM with 109 comments
by jasim on 4/27/15, 10:56 AM
Unlike almost every other Javascript framework we've so far seen, FOAM makes the data model the primary entity in the system, which is a good idea. In the typical UI-driven development of web applications, the data model often gets modified without much thought and causes cascading complexity across the rest of the system. A lot of the convoluted UI code that I've written could've been kept simple by keeping the data model sane by finding and utilizing equivalences, making implied meaning explicit by extracting names, and normalizing/denormalizing the data appropriately. A data-structure driven development approach should help a lot here.
FOAM also implements another item from my wishlist: being able to see all the UI representation of any given piece of data in one place. It achieves this by keeping all possible templates for a piece of data directly in its object. (http://foam-framework.github.io/foam/tutorial/4-templates/)
In general, this looks like the most declarative (as in, define your business requirements instead of writing imperative code) way of building web applications that I've seen yet. I would like to see what new ideas this library can bring into the 'Perfect UI Framework' conversation, but past experience makes me skeptical of any implementation that overly relies on metaprogramming. Metaprogramming can take us maybe 50% of the way home, but programming unfortunately is often an art in the minutiae. UI code is especially prone to this problem: things that have to deal with humans cannot be absolutely symmetrical all the time, which is where any overly declarative approach to building software breaks down. I often look back to this quote by DHH as a reminder of the dangers in generalization:
On the surface, the dream of components sounds great
and cursory overviews of new projects also appear to be
"a perfect fit". But they never are. Reuse is hard.
Parameterized reuse is even harder. And in the end,
you're left with all the complexity of a swiss army
knife that does everything for no one at great cost
and pain.
- DHH ca. 2005
Also, template based UI frameworks are IMO a relic of the past, of which I'm convinced by the way templates are defined imperatively using code in React. In templating, the UI is a String, but UI should be Code because code is awesome.by seizmo on 4/27/15, 9:26 AM
I find it interesting that after Angular this would the second (3rd if you count GWT) JS framework released by Google with pretty bad performance characteristics (if it actually is made be Google).
by yedpodtrzitko on 4/27/15, 11:01 AM
by jreimers on 4/27/15, 10:56 AM
Inevitably reminds me of this: http://html9responsiveboilerstrapjs.com/
I understand MVC, but what is reactive meta-programming exactly?
by Rifu on 4/27/15, 9:25 AM
by forgottenacc56 on 4/27/15, 10:26 AM
by peeyek on 4/27/15, 10:02 AM
by thomasfl on 4/27/15, 9:54 AM
CLASS({
name: 'Calc'
With babeljs you can use ES6 syntax like this: class Calc {
}
by rattray on 4/27/15, 9:56 AM
by glutamate on 4/27/15, 10:35 AM
http://foam-framework.github.io/foam/foam/demos/DemoCat.html
All the links to "Source" take me to GitHub 404.
I would suggest this is the most important part of showcasing a new project.
by tacone on 4/27/15, 10:57 AM
It has 8,474 commits. The first commit (and also the first issue on Google code) dates back to Jul 30th 2012. And it was just the first public release, not an empty commit (43 files).
(first issue: https://code.google.com/p/foam-framework/issues/detail?id=1 )
by blitzprog on 4/27/15, 11:26 AM
by some1else on 4/27/15, 9:27 AM
[1] http://en.wikipedia.org/wiki/Composition_over_inheritance
by staltz on 4/27/15, 10:13 AM
by exit on 4/27/15, 12:16 PM
https://github.com/foam-framework/foam/blob/master/apps/todo...
it led me to discover that the full text of a function can be reflected through .toString() ...
i'm not sure i'd be happy to see this approach widely adopted though. it feels like a language hack, like maybe js needs a multiline literal string..
by nicksellen on 4/27/15, 11:04 AM
I don't think this is the framework for me.
by bootload on 4/28/15, 2:10 AM
What do I see? It's language centric, that's good and bad. The good bit is you can with a very small JS lib write code to generate a dynamic page. The bad bit: as the language grows and rusts, you have to chase down the removed features. Much easier to grasp in concept and execution than Angular.
Loved this bit in the calc demo source, testing: https://github.com/foam-framework/foam/blob/master/apps/acal...
Q. Is foam an attempt to create a framework for Mobile Apps?
by tn13 on 4/27/15, 9:44 AM
by kgr on 5/6/15, 1:51 PM
by wanda on 4/27/15, 9:26 PM
by pekk on 4/27/15, 4:07 PM
by electic on 4/27/15, 2:45 PM
by brianhama on 4/27/15, 11:45 AM
by nthcolumn on 4/29/15, 12:07 PM
by venomsnake on 4/27/15, 10:51 AM
5 years ago I would have thought that this would have been the title of the tech section of Onion article ...
by elcct on 4/27/15, 12:26 PM