Hah!! I had already seen this — and i WILL SAY this was my favorite and i felt probably the BEST DEMO of all that is out there. THANK YOU SIR — I WOULD LOVE TO SEE MORE from you.
What we desperately need:
a clear direction on directory / file structure
a clear understanding on best practices for how to compile
a clear direction / best practices for real-world deployment (ala along with a node and DB backend for example)
Did you try ember-cli? Ember-cli gives you a clear direction on directory/file structure and allows for instant ember-development. My collegues at work who had never been using a js framework (c/c++/qt background) started to be productive after just a few hours fiddling around.
Regarding documentation: I do not agree that it is in such a bad shape as stated. http://emberjs.com/api and http://emberjs.com/api/data almost always answer my questions. It’s really very helpful, I use it more or less on a daily basis.
So my hint for ember-newbies is: Start diving into ember by using ember-cli.
I think the most valuable advice that I can give you in regards to this:
Choose a directory structure that you are comfortable with and stick to it. I recommend putting your templates in as structure that directly mimics your Route definitions. That way you can automatically compile them into a single template.js file.
Structure your source code into feature directories (“alerts” and “customer”) instead of by type (“controllers” and “views”). That way it’s easier to find your way back to your code later
Ember-cli is a viable alternative, but I like Grunt better - for the simple reason that I get to decide how my project is structured, and what third party libraries are included.
I do talk about my preferred setup in the very last chapter (chapter 11) of my book, Ember.js in action http://manning.com/skeie.
Your preferences might vary, but it does go through how I would like to have my application structured.
yes, actually i am exploring CLI as we speak … look let me apologize if my last 2 posts seemed crass —
I REALLY do believe in EMBER — but there is no avoiding the fact that it is extraordinarily difficult to dive in.
In reality — we do live in a real world — and we are approaching a deadline to decide on what direction to take — and it is looking more and more like we will loose yet another project to Angular.
I really wish EMBER would clean up their documentation, and come up with some clear and consistent demos that can illustrate how to use ember AND how it can be deployed.
In our opinion, EMBER would be FAR better off setting all development aside for a month to take the time to do this first.
Sadly i think the poor documentation will be the death of Ember. They will have lost too many projects to Angular and the like.
I mean here i am 8 months later and running into the same frustrations i encountered the last time we attempted to use Ember. See the problem is, Ember has grown in complexity — and with such poor documentation in place, it feels even MORE difficult now then it once did to understand all the concepts.
I’m not sure if the documentation is all that poor. Ember Data’s documentation is piss poor, but it’s not even been released yet. Though the fact that outdated/incorrect Ember Data documentation is all over the site doesn’t help.
A few suggestions from someone who has shipped apps in both angular and ember.
Make it possible to run hundreds of lightweight integration tests in under 2 seconds. Having to initialize the entire app or break the app into a series of factories for lightweight integration testing which you later load all at once in the production app is painful. It can work, but it’s especially painful to retrofit into an existing codebase.
Make components composable. It’s currently too hard to compose components inside one another. This is a huge issue and must be fixed. This is simple in angular with transclusion.
Get rid of the the global App object. This is a really terrible antipattern. Replace it with proper dependency injection.
These were the primary three things I really disliked about ember.
When I’ve started writing a post I did not realize that topic from the start was different, but after reading all comments, this is what I want to say:
Really want to answer that. I believed in Ember some time ago and started to rewrite my project from scratch to Ember. I am a Symfony developer and choose Symfony for Backend API. Spent actually a lot of time to figure out, how to do things right on backend to expose data in more right way for Ember-data. Couple times gave up and started over. But now have clear vision how to do stateless API with authorization that supports Ember Simple Auth on Symfony.
Now to the front-end, actual Ember app. For people who develop mixed apps (backend + frontend) sometimes hard to understand how to fully decouple js app. You have to think of your application as more mobile app, that only utilize API. Ehen you start to think that way, real problems with ember starts.
Some questions that I’ve been asking myself when building ember app:
How to structure app? Ember-cli is fairly new, it has a lot of good concepts, but it has not enough docs to fight errors.
How to maintain authorization? Even with Ember Simple Auth there are a lot of misunderstandings, as Simple Auth was developed some time ago and use outdated “right way to do with ember”. And problems that arise when you try to do authorization is really hard to figure out. Also lack of easily to specify different application template for Ember is disappointment in most cases login, register, etc. have different layout than app itself.
Where to place actions?
Better approach on components, I came from world, where I try to make decoupled things, so I can reuse them. Hard to make decoupled components when you cant place template with it together and store it as one.
Approach with Route-Controller is cool, but unclear, I’ve taken class on codeschool, bought book and read tons of articles to better understand how to utilize it in the right way.
I use ember data, and first problem that I faced: I have a Dashboard, and I want to return in one response, a lot of different models so they map to the different controllers, I’ve spent good amount of time to figure that out, and main problem here is: Ember is doing too much in the background. it would be much better if it always failed and saying that I miss controller, or route (that feeling was at the beginning, now I actually like it)
More info on adapters, serializers. When you invent something like ember-data, expect people who is not familiar with your idea to really struggle on it, so its better to to always give in docs alternative ways of doing things, for example if I have custom api routes, how I should approach. All this information is searchable, but hardly.
And about real life open source examples: we have discourse, but it is actually a bad example on how to do things, as it far away from “ember way”, it started when ember was at early stages. All other todo apps just do not show any real life examples. After you check something simple and start to do your own app, you have more questions than answers.
Also I really want to start using Ember in our company, but it is really hard to do a transition. Ember is one page apps centric, where angular can be easily integrated into current living app, on top of it.
Maybe I’ve got away from topic, but really wanted to express how I felt. I like Ember and will continue to use it and understand:)
I have done some small applications in angularJS before and now getting ember for the new project. As far as I can see the documentation has really improved since this has started! The poor documentation before was for us the last barrier to get ember instead of angular. The documentation needs to be up to date to the latest release all the time. It needs to have examples for every method, property and method. Angular did a great job there and also their guides are really awesome.
I think ember will become even more awesome than any other framework - so far its concepts have really amazed me big times and some things have never been so easy before!! But I also have struggled a lot and the project has just started! Actually yeah, I have struggled a lot more than when I started angular the first time, the ember-learning curve is really steep - that’s where the guides come in handy, so I really hope they will also be extended with every release.
There is no “better” in terms of design. It’s only a matter of your personal preference.
I quite like the current logo, website & documentation design. It has friendly, fun and relaxed feel to it, opposite of ‘corporate’ like Angular, which is nice.
There is a definite ‘better’ when it comes to design, it’s not wishy-washy.
There is no ‘better’, there is ‘more applicable’ and ‘less applicable’ design to achieve certain targets. So please elaborate what you didn’t like in current design rather then just saying ‘do better’
Hamsters are NOT ambitious animals
Hamsters may be not, but Tomster seems to pretty ambitious to me
We’re talking about color patterns, visuals, and recognition, etc, so there is always right or wrong answer. High contrast is better than low contrast because It’s much easier to read. I don’t like how the site is predominantly faint orange and white. This makes the API hard to read. I wish it had higher contrast.
Logos should be loud and clear. I wish the logo would denote ‘ambitious’ instead an in-joke. ‘Ambitious’ is part of the headline anyway.
I’ll just clarify that the hamster logo is not an in-joke (the designer has/had no idea what I look like) and was just coincidental. Originally the logotype was the official brand, but people started using the hamster organically in community presentations and it evolved into the mascot over time.