
Introducing the Famous Framework - dumindunuwan
https://blog.famous.org/introducing-the-famous-framework/
======
roelvanhintum
Here is an example of a simple useless todo app, good luck with your complex
multipage layout... \- Every js framework ever

~~~
ramses0
There's a reason for that: [http://todomvc.com/](http://todomvc.com/)

~~~
JustSomeNobody
That's not a reason.

------
exacube
For a UI framework, show me a pretty demo with some example snippet code next
to it and I will read on. Otherwise, I'm not motivated -- this is not the way
you want people to read about your UI framework.

~~~
cjoun16
Checkout [http://milk.samsung.com](http://milk.samsung.com) built using
famous.

Stackoverflow has lots of famous snippets.

~~~
oneeyedpigeon
Not a _great_ example: a) US-only b) breaks the back button

~~~
L-four
Doesn't work on mobile either.

~~~
hluska
Whoever built that site has an interesting approach to error messaging.
Consider this scenario:

Environment:

iPhone 5c iOS 8.3 Safari

1) Go to milk.samsung.com

2) Milk displays a message suggesting that you access the site from either a
desktop or a 'select Samsung device'. For some insane reason though, they
provide a link to "Go to milk.samsung.com.

3) Click the 'Go to milk.samsung.com' link.

Result:

You receive the error message, "You are still on the phone".

My conclusion:

If they know that I'm on a phone that they don't support, why give me another
link milk.samsung.com??

------
couchand
_We use dependency injection to match State names to parameters of Behavior
functions—the State numberOfStates gets injected into any Behavior function
that lists is as a parameter, like function(numberOfStates)._

We need to have a talk. First, this isn't dependency injection - you're
passing in data. These "Behavior" functions may _depend_ on the data, but that
doesn't make this a _dependency_.

Oh, I can understand how you're confused. You see Angular doing it and
reverse-engineered the term. But notice how in Angular it is used to pass
services into controllers, services that the controller has a _dependency_ on.

Also, notice how this "feature" is broken in production. Any website worth its
salt will minify the assets, which changes function parameter names. You did
notice that, right, that your clever little hack works great in your
development environment but totally breaks when you minify your code? You are
testing things minified, right?

Why would you spend any time at all working on a feature that is fundamentally
broken in production? Kill your darlings.

~~~
JustSomeNobody
Wait, are they seriously trying to say that "function(numberOfStates)" is
dependency injection?

~~~
mikeryan
In angular that's basically how it works. The framework actually calls
toString on the functions which actually allow you to parse out the arguments
names so the callers know which arguments (dependencies) need to be passed.

------
currywurst
Asking 10 people to explain what MVC is, and you'll get 11 answers ;) ! Having
recently done a dive into this area, I would really recommend interested folks
to patiently read this great article by Martin Fowler:
[http://martinfowler.com/eaaDev/uiArchs.html](http://martinfowler.com/eaaDev/uiArchs.html)

The web community has been done a great disservice by people popularising the
phrase "MV*".

~~~
voyou
Yep. There's also some good discussion on the Portland Pattern Repository,
particularly this discussion[1] about how the meaning of "Controller" changed
from it's original Smalltalk meaning (where it is the component that updates
the model in response to user input) to the way it's sometimes used today (as
an object which mediates communication between the model and the view).

[1]
[http://c2.com/cgi/wiki?WhatsaControllerAnyway](http://c2.com/cgi/wiki?WhatsaControllerAnyway)

------
regularfry
It took me quite a bit of scrolling to figure out that Famous is some sort of
JS UI system.

~~~
richmarr
Tell me what it is.

Tell me what it is.

Tell me what it is.

Tell me what it is.

Tell me what it is.

Tell me what it is.

Oh.

~~~
wyldfire
Hmm...it's got a user and a machine...k...

Inspired by turtles, LEGO and ICs, k...

"Or with JavaScript in general" \-- there's a hint

"Web Frameworks: Given that we're building a web framework" \-- well, I
wouldn't call it a _given_ , but -- mystery solved!

~~~
emilioolivares
Ha, this was exactly my thought process when I was reading!

------
thomasfl
The core of famous is really an request animation frame loop that does css
transitions to do animations with physics. Their demos uses absolute
positioning on everything to get flickerfree animations. On top of that
they've created various abstractions like angular directives and react
components. It's very cool, but for simple animations in react or angular I
turn to snabbt.js.

There are some open source projects that adds turn key components to famous,
like famous-flex [https://github.com/IjzerenHein/famous-
flex](https://github.com/IjzerenHein/famous-flex) by Hein Rutjes. If you want
demo's, then there's the famous "fan site"
[http://famousco.de/links/](http://famousco.de/links/)

~~~
gardnr
> that does css transitions to do animations

I thought it used WebGL to render animations.

~~~
Polarity
you can choose your render target. thats why there is so much abstraction.

------
TheAceOfHearts
Link to the framework page [0]. I couldn't find any demos there or in other
pages, though. I couldn't figure out how to run the examples [1] and there's
no live links of em either.

This is not specifically directed at Famous... Why don't you [framework
creators] show off REAL freaking apps? Show me a reasonably sized application
that handles sophisticated user interactions. How do you handle routing? Data
fetching / caching? Production builds? Testing environment? Dealing with your
everyday CRUD? It's alright if your framework is meant as a framework that
only handles some specific things, show a real-world example of the framework
to highlight how it makes things easier/better/simpler/faster. I don't want to
see TodoMVC or single-file examples. I know it's absolutely NOT sexy, but it's
most of what I'll be having to deal with in my day-to-day work as a developer.
(The only frontend framework that I know of that does a tremendous job at this
is ember. I don't use ember, but I have nothing but the utmost respect for its
developers.)

Specifically to famous: You touch on the topic of building large applications
with Famous in this link. Your lack of reference applications (although not
necessarily unreasonable, as you just announced the alpha) does nothing to
gain my trust as a developer. I'd love to see a non-trivial example
application that shows the full picture of what an app would look like.

[0] [http://famous.org/framework/](http://famous.org/framework/) [1]
[https://github.com/Famous/framework/tree/develop/lib/core-
co...](https://github.com/Famous/framework/tree/develop/lib/core-components)

~~~
tracker1
Thank you... even in TFA, the handlers all seem to be synchronously bound...
how do you tie these into async communication channels?

It really bugs me in this day and age, that frameworks are build without async
client-server being a first-class behavior at least by example.

While I really appreciate the various demos for say TodoMVC, which allow some
framework comparison.... what I would _love_ to see (from TodoMVC or similar)
would be an abstracted interface that is expressly async (even if only using
setTimeout) via callbacks or promises for the data access. It's part of the
story that is very important. Also, a very simple router... perhaps requiring
a hello/login/register screen (user:user) and the todo screen.

I know TodoMVC was supposed to be just trivial enough to show something
between the various frameworks... that said, I think we really need just a
hair more.

------
scotch_drinker
When I came to the realization this isn't satire, another piece of my soul
died.

------
easytiger
Is this satire? I can't tell. :/

~~~
supjeff
I was certain that it was satire until about 50% of the way through. I
scrolled to the bottom and sure enough... Github repo...

~~~
eterm
But then the repo has things such as: [http://famous.org/framework/hello-
framework.html](http://famous.org/framework/hello-framework.html)

Which has the gem: "Check out the 'Hello World' example below. When reading
through the code, think of the tree as Famous-enhanced HTML and the behaviors
as CSS styles on steroids."

So "behaviors" are styles? Why is the first line of a "Hello World" example a
load of styles I don't understand?

And it's even more confusing: It talks about "components" but there are IDs
which means any resuse would duplicate those IDs on the DOM (I think?) which
isn't valid html.

------
phatbyte
"please don't let it be another JS framework, please don't let it be another
JS framewo....ahhh man !" :P

------
jondubois
The front-end framework space is highly competitive - There are lots of great
options to choose from. Many companies are trying to gain developer mindshare
in that area.

Famous, AngularJS, Polymer, React, RiotJS, CanJS, ... All really great
options.

I think Famous will have trouble competing with React, Polymer 1.0 and the
upcoming AngularJS 2.0 in the current 2D browser-based market. I think if
something like Microsoft's hololens gains traction, Famous would greatly
benefit - Its 3D features would help it stand out.

Most of the value of a 3D interface is lost when you project it on a 2D
screen.

~~~
woah
I have the suspicion that actual game dev tools will have the upper hand for
VR. Sort of how native development is the way things are done on mobile. I'd
love to see the web be universal, but I think there will just be too many
shortcomings.

------
progx
I hear from Famous as UI System, but what is (in simple words) Framework -
Engine - The Machine - The User... the blog post is really confusing.

Got it after watch the Website:

"The Famous Framework is a new JavaScript framework for creating reusable,
composable, and interchangeable UI widgets and applications. It balances
declarative with imperative and functional with stateful, and it's built on
top of the Famous Engine."

------
untilHellbanned
Famous is probably most famous for making the front page of HN.

It does look like a cool JS framework though.

------
pluma
Seeing how Famous is pretty much yesterday's hype, I'm curious to see whether
it can still become relevant.

~~~
facepalm
What is today's hype?

~~~
pluma
Last time I checked? Mercury or Om. But neither of them comes even close to
the level of hype famous had (back when it was famo.us).

~~~
wyldfire
Wow, things move really fast in this space. Is "back when" May 2015? The only
context I have is the "Didn't you just release Famous in May?" quote from the
article.

~~~
plorkyeran
Their first launch was May 2014. The thing they released then mostly didn't
actually work, but was very heavily hyped anyway.

------
kyllo
Days since last new JavaScript Framework: 0

~~~
BFay
Don't worry, my new Flux implementation will take your mind off of that!

------
datashovel
From the blog post it looks like alot of good work is being done here. I think
most apps out there probably don't reach the level of complexity that would
require a rethinking of MVC, but I have seen it and agree that some web
applications have reached the need to think beyond what MVC can provide.

If I had to guess, I think some of the first web-related work (on what post-
MVC web will look like) began several years ago when 'reactive' programming
started becoming a hot topic.

Since it seems a new JS framework comes out pretty much every week, and some
people express frustration in trying to filter through the noise, I would say
to them that this one is definitely one to keep an eye on.

------
jakejake
One thing that I like with a JS framework is when I can actually play around
with a demo or two without cloning the repo. Call me lazy, but I don't see why
a framework that is entirely client-side can't just put the demos up?

------
spankalee
A shame they don't even mention Web Components or custom elements, considering
that much of what they are addressing in terms of composability and interop
with other frameworks is exactly addressed by these standards.

------
sootn
This BEST stuff looks great and I'm looking forward to using it. But it will
be a nightmare to search for if this stuff takes off. You should consider
changing it to something more unique.

------
brightball
The Javascript framework space isn't competitive...it's saturated for the
exact same reason that the PHP framework space was saturated.

Javascript and PHP frameworks are all built on top of a language that does
everything you need for the web before you even start the framework.
Frameworks in both languages are basically an exercise in arranging things
according to your personal preferences...and people have a wide range of
preferences.

------
jgalt212
So much hate for these guys, it's amazing.

~~~
ajkjk
I would characterize it as "skepticism".

~~~
prezjordan
I wouldn't.

------
afshinmeh
Looks interesting. Haven't heard of BEST, is there any documents or articles
out there?

------
leppie
Seems the same as Web Components/Polymer. Not sure why neither are
mentioned...

------
mrmondo
Strange SSL cert on that website - it looks like the site is only partially
encrypted and firefox cant detect who it's verified by.

~~~
BillinghamJ
[http://imgur.com/u8yIx4G](http://imgur.com/u8yIx4G)

------
machbio
It looks great, but I am trying to get documentation of the famous-cli command
"deploy".. no idea of how it works..

~~~
ImtiazMajeed
The source code is on Github if you want to check it out
([https://github.com/Famous/famous-cli](https://github.com/Famous/famous-cli))

------
leavesofgrass
I've seen Famous around for a while, what makes this different than what they
were doing previously?

------
longnguyen
"Let Angular be Angular, let React be React, and let Famous be _famous_ "

------
sravfeyn
I am curious of what blog-engine they are using. It looks very similar to
Medium

~~~
vikeri
According to my wappalyzer it is Ghost
[http://imgur.com/QAjVXlg](http://imgur.com/QAjVXlg)
[https://ghost.org/](https://ghost.org/)

------
leavesofgrass
This has been around for a while, what's introducing it today?

------
ludwigvan
I'm excited about Famous. The initial negative reaction from the community
reminds me of the initial negative approach towards React. My gut tells me it
is going to be very famous.

~~~
aikah
Famous came with a "WOW" demo then nothing for 2 years, only mail spam. React
lib was available from the get go. Famous is a vaporware, the framework didn't
exist when they made the "WOW" demo. They got some funding (2M $) and then
they had to build something...

------
ricklancee
So is BEST just MVC but a with a different name?

------
ktprem
Ah, pathetic Famous as usual.

------
seivan
I like the fact that development for applications is moving towards what game
code seems to have been using. Building components and re-rendering with new
state when necessary actually much better than what we're currently doing.

Which is why I prefer React over Batman, Ember and Angular.

Btw, I feel like their concept of Behaviour Tree doesnt' really fit in with
the Behaviour Tree's I read about.

------
neumino
Relevant: [https://xkcd.com/927/](https://xkcd.com/927/)

~~~
Semiapies
No. No, it isn't.

And even if it were, it's possible to have a useful response beyond a webcomic
link that every idiot posts when anything new happens.

~~~
neumino
That was a joke... but I guess when it comes to front-end frameworks, we can't
laugh.

~~~
Semiapies
Regurgitated links are not jokes.

