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.
The original hype was when they were in closed beta, which was way more than a year ago. Internet Archive[0] indicates they started promoting it as early as January 2013.
Things do move fast, but hype doesn't move that fast. The reason I'm cautious is that they were extremely hyped before being able to deliver any actual code developers could use and that in the time since the original announcement, well, all of the past two and a half years happened (e.g. React).
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
The web community has been done a great disservice by people popularising the phrase "MV*".
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).
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.
This. I can't find a single example of an actual UI you'd build with famo.us on their entire site. How am I supposed to know what makes the framework worth learning if I don't see examples of what it makes possible?
Of course, both re-frame (in ClojureScript) and Elm have the massive advantage of being in functional languages which allow for FRP, and embrace immutability by default.
I have to clone this locally, npm install the cli, register with famous, and scaffold a new project in order to see a working demo of Famous in action?? No thanks.
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??
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.
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.
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.
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.
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.
It appears to be a web-based GUI toolkit. Something to replace JQuery-UI or Polymer, both of which are minimal.
The web needs something like Apple's Cocoa or Cocoa touch - a very rich GUI toolkit. It looks like this takes some inspiration from that, as some of the names are same. I don't know if it has an solver-based auto layout engine, though.
Anyways, I've been wanting something like this for a while now, as no company has really stepped up to the plate with a real GUI toolkit.
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."
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.
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...
Part of our decision to prioritize integration with other technologies/frameworks is so that more mature tools like Angular or React can do the heavy lifting on application logic while Famous focuses on animation and layout. We learned a lot about this balance from our time building Famo.us/Angular.
In other words, we're not trying to be 'everything for everyone' out of the gate, but we'd love to be 'something for everyone,' and the 'something' we're focusing on is what what Famous is good at: user interfaces, interactions, and animations.
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.
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.
93 comments
[ 1.9 ms ] story [ 163 ms ] threadThings do move fast, but hype doesn't move that fast. The reason I'm cautious is that they were extremely hyped before being able to deliver any actual code developers could use and that in the time since the original announcement, well, all of the past two and a half years happened (e.g. React).
[0]: https://web.archive.org/web/20130715000000*/http://famo.us
EDIT: Here's the January 2013 beta marketing website: https://web.archive.org/web/20130110063331/http://famo.us/
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.
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!
The web community has been done a great disservice by people popularising the phrase "MV*".
[1] http://c2.com/cgi/wiki?WhatsaControllerAnyway
It would also be great to see how Famous isn't a re-skin of MVC with a React-flavored API.
https://github.com/Day8/re-frame
It looks like Famous is going for something similar, but I'm not enjoying the reading nearly as much.
Of course, both re-frame (in ClojureScript) and Elm have the massive advantage of being in functional languages which allow for FRP, and embrace immutability by default.
Can't tell you what an advantage that is.
[1]: https://github.com/Famous/framework/tree/develop/lib/core-co...
[0] http://famous.org/
Stackoverflow has lots of famous snippets.
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??
There are some open source projects that adds turn key components to famous, like 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/
I thought it used WebGL to render animations.
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.
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/ [1] https://github.com/Famous/framework/tree/develop/lib/core-co...
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.
The web needs something like Apple's Cocoa or Cocoa touch - a very rich GUI toolkit. It looks like this takes some inspiration from that, as some of the names are same. I don't know if it has an solver-based auto layout engine, though.
Anyways, I've been wanting something like this for a while now, as no company has really stepped up to the plate with a real GUI toolkit.
This framework isn't gonna be ... famous.
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."
It does look like a cool JS framework though.
Part of our decision to prioritize integration with other technologies/frameworks is so that more mature tools like Angular or React can do the heavy lifting on application logic while Famous focuses on animation and layout. We learned a lot about this balance from our time building Famo.us/Angular.
In other words, we're not trying to be 'everything for everyone' out of the gate, but we'd love to be 'something for everyone,' and the 'something' we're focusing on is what what Famous is good at: user interfaces, interactions, and animations.
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.