Skip to content

Instantly share code, notes, and snippets.

Created April 13, 2013 14:38
Show Gist options
  • Save anonymous/5378663 to your computer and use it in GitHub Desktop.
Save anonymous/5378663 to your computer and use it in GitHub Desktop.
Anonymous Open Letter to the Ember.js Core Team

Anonymous Open Letter to the Ember.js Core Team

Disclaimer: I've been using Ember for quite some time now, about when 0.9.8 was released, which means I'm not a random hater using backbone or angular.

I do believe Ember is the best thing out there, but I want to point out some things which really piss me off.

Most of them are based on the fact that the core team doesn't seem to be organized and doesn't prioritize the right things. Here are couple of examples:

  • Ember Extension was a great idea, there were couple of videos released with it, everyone loved it, but the project has been dead for 2 months now. There are 11 open issues, many of them for a few months without any response from the core team.

  • Ember Gem was also untouched for 2 months. It was supposed to be a simple way to get started with a static app, but it's not maintained. There are open issues and PRs also completely untouched and uncommented.

  • Ember Data is a topic in itself. Up until a couple of weeks ago it was also a dead project that was just swallowing issues and PRs. Igor Terzic has done some awesome work getting to only 50 open PRs. But did it really have to take someone to sponsor the development of Ember Data to get some stuff done? I'll get more into detail about Data later.

It's also worth mentioning that there are some issues in both Ember and Ember Data which have been open forever, without any shown interest from the core team to solve them. I want to point out that Peter Wagenet has been doing a great job here trying to keep up with the issues, which isn't easy, but very often he comments with a question to Tom or Yehuda, and they simply do not answer, ever. There are issues in which he repeatedly pings @wycats without any response. I'm not sure if there's some internal super secret talk going on.

I know you guys are busy, but really, there are people out there who submit PRs and issues and do it in their own time. And if it takes a month to notice a PR after 4 pings to the core team, I think something is really wrong.

These two problems, abandoning projects and ignoring issues, basically come down to one thing, and that is lack of prioritization.

Let's dive in some more.

There are things which aren't part of Ember, but that every reasonable application requires. For example pagination. Have you actually ever created a reasonably sized web app which didn't need pagination? Ember presents itself as a thing for building huge apps yo, well it doesn't tell you how to paginate. Ember Data doesn't support it either. Oh wait, it does, but you have to override the adapter. That's great, but how? Read the source code? You mean the implementation which changes every now and then and isn't really documented? Or those internal side-effects and nuances that I have to spend weeks figuring out before I get everything right, just to do something stupid simple like display page 3.

It seems that we're getting close to Ember Data, so let's dive into the major issue there.

There's a thing called versioning. Let me explain how they work, or maybe just read this article http://semver.org/, because it feels that the core team doesn't understand what versions mean.

Ember Data is released in "revisions", because it's not production ready and not ready to be 1.0. Hence the core team chose to rather call breaking changes a new "revision". Well guess what dudes, that's exactly what versions are for. Why couldn't you just like normal people release 0.4, 0.5? Why do you need to hit 1.0 directly?

Yes, releasing a version would mean having some kind of support and responsibility, a bit more than just saying "dude use revision 12, it finally works with polymorphic associations (more rant on that later)". The whole "revision" thing just makes people feel that you don't give a crap about Ember Data. It was never stable enough, so why try now to make it stable, while we can wait another year and go with 1.0 straight up?

"Is It "Production Ready™"? No" … Bullshit, people are actually using it right now. You can hide your head in the sand, but that doesn't change the fact that 95% of the people using and trying Ember want Ember Data. Nobody really cares if someone in some private skype call decided that "Ember works without Data", because it is out there, it has been out there for months. This whole line in the readme is just another excuse from the core team to not give a crap about Ember Data.

One more thing about the versioning, which really just makes me feel sick. Why is handlebars being released as 1.0.0-rc2, 1.0.0.beta, etc.? It causes issues everywhere, and it makes absolutely no sense. Maybe it's some sort of hidden marketing move that makes people believe it is more stable when they see 1.0.0-rc3, rather than 0.8.3? Well guess what, people would much rather not be confused about stupid version numbers.

My final rant is going to be about features in Ember Data. It actually has polymorphic associations right now, yay … but where the hell hasOne? It has been promised over and over, but the solution is still to do belongsTo on both sides. We have per-type adapters, but they are completely broken. We have transactions, but they are sometimes broken. We have embedded relationships, but they are sometimes broken. And what about manyToMany?

Could you please just stop for a moment and instead of implementing cool new things just fix the things that are already there? I have to say that since I started using Ember, literally nothing have changed, especially about Data.

Personally I would switch to a different framework if there was an alternative, but there isn't. Ember is the best thing out there, Angular doesn't compare to it, and Backbone is a joke. But please, I feel completely frustrated, depressed and in total despair every time I see another issue that was untouched for weeks, or when someone mentions a bug after a month and nothing has changed since then. If Ember is supposed to be the flagship of client side MVC, the approach of the core team has to change towards more stability and less coolness.

@tomdale
Copy link

tomdale commented Apr 13, 2013

Oh, one other thing I should mention:

There are some really great, simpler alternatives to Ember Data that you may want to consider using:

We are also looking for someone to collaborate with us on Ember Inspector. If you have design chops and some ideas about building developer tools, feel free to ping me.

@bnetter
Copy link

bnetter commented Apr 13, 2013

Hey, just passing by to say that I've been using EmberJS for the past three months and I really like it so far. I tried Backbone.JS and it was making my source code really dirty, and unreadable which is never good.
I do agree with you that ember-data is far from being useful and truthfully it has been the real pain for the past months. Last week I created my own library to handle my AJAX queries. It took me a day of work but now that I don't use ember-data anymore, I feel much better. I think everyone here can agree that ember-data is a pain, but there's a reason for it: everyone uses AJAX differently, with specific needs, and it's hard to satisfy everyone. My advice to you: don't use it, take a week to make your own library, you're gonna feel way better.
About that pagination bullshit: just so you know, no one use pagination anymore in 2014 (i'm coming from the future) because after all it made no sense at all. Remember this time when you had to switch from page 2 to page 5? Yeah it never happened to anyone, agreed. My advice: stop using pagination, use "show more" or "infinite scroll", and buy some UX book.
Agree with you on the version bullshit, I feel lost too with the "pre" and "rc" and dots and all.

In the end, just think EmberJS is going to the right direction, and I really want to say thanks to everyone who contributed. I didn't, so I'm just thankful for now.

@dashr
Copy link

dashr commented Apr 13, 2013

I appreciate your work Tom and Yehuda. Its made my life easier and allowed me to build faster and more elegant than I used to. I don't use EmberData.

Maybe EmberJS is at the point where it needs a Zend or 10Gen style r&d + consultancy to have dedicated coders, documenters on it.

@xlozinguez
Copy link

@tomdale, thanks for replying, it's not always easy, especially when you work on a project voluntarily and dedicate quite a lot of your spare time, to address somebody's anonymous rant.

Ember has, by far, one of the best open source community, and its core committers are always happy to help others, spread the knowledge and explain the concepts. I strongly encourage everyone to reach out through the forum (http://discuss.emberjs.com/), stack overflow (http://stackoverflow.com/questions/tagged/ember.js), irc (#emberjs) and every other communication channel.
Better yet, as Tom mentioned, it is Ember is 100% relying on its contributors, so get involved and help solve the issues! Even though, like me, you might not know exactly how to, reach to more knowledgeable people, I am 100% certain they will provide guidance.

Personally, I "help" Luke Melia (http://www.lukemelia.com/) in his quest to expand the NYC Ember community (http://www.meetup.com/EmberJS-NYC/) and we have create bi-monthly Hacker Hours which I invite everyone in the NYC area to attend. We have absolutely amazing and knowledgeable people showing up each session to help others.

Similarly to one of anonymous' rants, it was brought up that it is unclear how people can contribute to the project. I guess more could be done in this regard to explain what is under Ember's hood and how can people team up to make things happen and help out. Overall, it seems that the higher level knowledge and development roadmap might be resting on too few shoulders which is why having hacker hours and mentorship session is highly valuable...

@pbowyer
Copy link

pbowyer commented Apr 13, 2013

@tomdale Thanks for your well-considered response. What are the noval computer science problems that Ember Data is trying to solve? I'd like to understand more about them.

@LucasArruda
Copy link

Depressed because of this?

firstworldproblems

@camskene
Copy link

@tomdale I'm a designer and seriously interested in collaborating on an Inspector.

@sporto
Copy link

sporto commented Apr 14, 2013

You should write a blog post explaining why 'Ember is the best thing out there', I'm a honestly curious. I have used Ember many months ago and I didn't get that impression, I have moved to other things since then.

@wagenet
Copy link

wagenet commented Apr 14, 2013

@pbowyer: This talk, while a bit outdated on some of the specifics, provides a good overview of some of the difficulties in implementing Ember Data: http://www.youtube.com/watch?v=_6yMxU-_ARs

@pointlessone
Copy link

@benjaminn You seem to be a bit confused. Both "show more" and "infinite scroll" are a form of pagination. That is retrieval of subset of records from server. It may look different from users perspective but it's the same from servers point of view. The point is vanilla ember-data is unable to do that. It can only get all the records in one request.

@bnetter
Copy link

bnetter commented Apr 14, 2013

@cheba YOU seem to be a bit confused, or maybe you didn't try ember-data?

Because you can of course easily get a specific set of records, by simply doing App.Post.find({page: 2}) or whatever you want to do.

I have no idea why you find it so difficult to do anything with pagination in EmberJS/ember-data. It works well in this specific case. What's wrong with you people !

@alyssonbruno
Copy link

@anonymous It's Free Software. Stopped? Work for update it. You have disagree? Fork it.

It's simple.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment