How do we beat AngularJS in the developers mindset?

thanks, I have opened several PR’s and issues to get this resolved, here is the meta tracking issue: npm WARN on npm install ember-cli · Issue #3685 · ember-cli/ember-cli · GitHub

Ya, we plan on auto-detecting that some of these have not yet been applied, and informing the user that they need to run a specific command to fix the issues. This should help our windows bretherin.

Yes, the 1.11 docs currently reflect the beta branch of ember, we had some last minute un-expected issues that needed to be resolved in ember. Which resulted in the guides being published before the release. That should be resolved this weekend. Also, shortly after the ember 1.11 release ember-cli will also bundle the ember.js 1.11

This has been a common complaint, the next release of ember-cli will emit.

Could not find watchman, falling back to NodeWatcher for file system events.
Visit http://www.ember-cli.com/#watchman for more info.

I have also opened an issue to add further clarification to the referred to link: #watchman section of site should explain a bit more · Issue #3687 · ember-cli/ember-cli · GitHub

Your input would be fantastic.

this is really unfortunate, it suspect the mechanism by which you installed node installed it with the permissions that require you to be sudo. This really sucks, as it is not your fault, and what I would consider the biggest source of pain for new ember-cli users.

It is totally irresponsible for the installers and package managers to install user-land tools in a way that requires elevated permissions. As not only does that force escalation for the installed dependency, but those permissions honestly also spread like a contagion.

We have been slowly making progress on these various points, but the NPM/Node installation is still crappy. Potential resolutions:

  • more docs (this kinda sucks, as it will likely require many steps for the user)
  • we take the time and energy to make a resilient installer that tries to do this all with good practices (this seems like an ever expanding scope, but maybe this is what we need to do?)
  • ember doctor – which helps identify issues, and also solve them. The downside is that this does require that you already have node/npm/ember-cli installed and working.

Any further thoughts or suggests on this would be lovely

4 Likes

I think a warning on the install page that talks about installing node with a package manager would be worthwhile, especially since some people may have done it already and assume that they “have” npm. Not an extra step, just a quick check to make sure that everyone’s on the train before it leaves the station. Also, a link to some steps for purging a sudoed node install would be good. I used these steps once to good effect.

Since this is such a common problem right now, I don’t think being a little verbose (or at least linking to trusted sources that are) is out of line.

1 Like

And this is a common problem for anyone doing development in the NPM/Node community, not just ember-cli. Can’t tell you how many times I’ve gone to deploy on a server only to find out everything had to be sudo’d to work since node was installed with sudo, or to find that node was installed but there’s no GCC (the errors for which are super cryptic).

Almost makes me want to build an nvm installer that to ensure it’s installed without sudo and a doctor command.

nvm-installer doctor

  • ensures a GCC-like compiler is present (with clear instructions if it’s not)
  • ensures that the current node was not installed with sudo
  • ensures that npm global packages and those in the current local scope weren’t sudo’d (for each found prompt Keep? Y/N)

nvm-intaller clean

  • cleans any old NVM/Node/NPM files from your machine

nvm-installer

  • run clean (sudo)
  • de-elevate permissions
  • install nvm without sudo
  • install npm without sudo
2 Likes

I’ve spent 8 hours today trying to get Ember CLI installed on my local machine, and on various servers we develop on. I just don’t know enough about command line and file systems to trouble shoot all the errors I get.

I’m so upset with this whole process at this point. I’ve been making good headway with Ember with everything in one file, after all I am a web developer, I understand JS just fine. What I don’t understand is UNIX and Bash and Node and Bower and Grunt. And the thought of climbing that mountain just to use Ember is too much. I don’t know what to do, I’m stuck. At this point I’ve already spent 6 weeks trying to get my head around Ember, and I’m stuck at Ember CLI.

If I’d known that Ember required deep CLI knowledge in the beginning, I would not have even started. Now I’m just frustrated with how archaic the Ember build process is. Anyone who thinks that you are going to get widespread adoption this way is kidding themselves.

I just want to compile some templates!

Of course I get it to work 5mins after writing this. God damn it that was painful though…

you should clearly enumerate the problems you ran into

Ya, it is a disaster. Unfortunate as far as tools go, the world of front-end is more forgiving about node then other similar ecosystems…

Many moons ago, when I was entering this world. I remember the mamp apps, that provided everything bundled and working where extremely useful. I do have a hope to eventually have the time to implement something like this for our ecosystem. I think it would go a long way to reduce the barriers for new users.

I think we are unfortunately still a few steps away from this, but we are approaching it.

2 Likes

@drewbaker I’d be interested in knowing specifically what road blocks you ran into during the installation process. We want to make ember-cli as user-friendly as possible. Also, what was the final hurdle that you got over to get things working?

should should be fixed, and will be available to everyone on the next release: npm WARN on npm install ember-cli · Issue #3685 · ember-cli/ember-cli · GitHub

Homebrew in its default state is completely non-sudo. Of course there can always be some confusion and users might run sudo brew install node.

1 Like

I completely agree with you. At the moment I’m working with Intellij IDE and I have all the different sections (views, controllers, etc) divided by group tabs, so when I need to look for something I know in which group I must look. This helps me a bit to organize my ideas while working but it could be way better like colouring the groups and files so they are identified easily, generating some visual tree of the file relationships from one file to see its parents and children, integrating ember-cli to the IDE…

I’ve been wondering if all this could be achieve as a package or plug in for SublimeText since it’s an editor that I really like. It would be amazing to have such tool to work with.

So… It’s only me that use sublime for doing front-end development with ember…? EmberCLI for me is not really needed… I am using grunt already for my node.js apps so just adding couple of lines to compile templates and everything is ready… In my opinion you should really change documentation:

  1. Who writes “ambitious web applications” in one file with all templates…? 0 of serious developers i know, me included.
  2. Remove ember data from default guide.

I would propose to just copy and paste documentation 2 times and modify it for every use case so:

  1. Default with examples distributed across files (templates and app seperately). Ember data excluded.
  2. Same guide but with ember data included.

And 3rd section concerning embercli.

So everyone can choose what he want, learn and see only examples for his use case of ember.

Because now it looks like this… “Hey welcome in ember! Here is a guide in which we show examples of how NOT ambitious big apps should be build and in most of this examples you have ember data that is not production ready… Sorry but no other examples and up to date guides out there… Yay…” after that most people will say "no, Thank you’

I assure you that changing that will change a lot more developers mindset, including two of my collegaues.

You say EmberCLI is not needed for you and then you complain that you have to write everything in one file. Thats actually the main feature of EmberCLI. And it works pretty good, and you can use features from ES6, and you can install ember addons super easily… EmberCLI is one of the main benefits of Ember. You may implement a lot of features EmberCLI provides in grunt, but why would anyone want to spend time doing that?

Currently, the guides use EmberCLI code, which is what ambitious web apps are built with.

Ember-cli was the deal maker for me to really push Emberjs for a new project at work. It started with working through the guides on emberjs.com. That really peaked my interest. Ember checked a lot of boxes - routing, data(model/store), components support, promises, templating, to name a few.

I almost gave up though as the one index.html with all the outlets seemed completely un-scalable. A little investigation quickly points the developer to ember-cli. Great, multiple .hbs templates looked like just the deal to manage a large project. The command line stuff doesn’t bother me. I feel ember-cli is a much needed glue to help get a sane project together. The commands are not deep enough to be too challenging to learn. However if you are coming from a complete IDE environment this may be a little uncomfortable. However my experience has been that IDEs help you off the ground but can really paint you into some corners over time. Spend some time using Sencha Architect if you want a complete visual experience for web development. I found it nice at first, but after awhile I felt like I was working on a watch with boxing gloves on.

People do ask me why not Angularjs? My first thought is that ember-cli enables writing some things in ES6 style before it actually comes out, i.e. modules. Even custom elements in Handlebar tags should be pretty easy to swap to HTML when the time comes. The transition from ember.js 1.x to 2.0 promises to be mush less painful.

Just thought, the Ember extension for Chrome and Firefox is really helpful. And I can’t say enough for Adolfo’s ember-cli-101 ‘living’ book on Leanpub where I learned about the extension. It really helps tie things together and gives so many other helpful tidbits. Can’t recall who posted earlier about authentication … Aldofo may just be the guy to incorporate into his work.

Guessing I’m one of the few using Spring MVC on the backend. Emberjs is replacing the Spring server-centric ‘V’. I’ve managed to wire things up successfully with both Spring Tool Suite (Eclipse distro) and Intellij. It would go a long way to those who prefer IDEs for Eclipse, Intellij, and WebStorm to have ember-cli plugins. In the process of using Spring Security for authentication and session management. I may also have a look at the ember-simple-auth addon.

I’ll end my rambling. To this point, in my evaluation, Ember has topped Angularjs, Knockout, Bootstrap/Backbone, Sencha, Smart Client, to name a few.

Rob

Seeing this thread sparked an idea a few weeks ago, and we’re now ready to get feedback from the community. We’ve made a Mac app for managing Ember projects, that manages dependencies and runs the basic ember-cli commands. We’d love your input and suggestions for where this project can go. Made by me and @kimroen

We’re just getting started, but already you can:

  • Install all needed tools automatically (node.js, NPM, Bower, PhantomJS and Ember-CLI)
  • Create new Ember projects
  • Manage existing Ember projects
  • Run a local server
  • Create development and release builds

Check it out at Ember Hearth or https://github.com/EmberTown/ember-hearth

4 Likes

Why do developers love Angular?

#1 Answer: Easier to get started.

2 Likes

I enjoyed the irony of the comments on this on reddit where a ton of angular devs were complaining about how difficult it is to work with angular once you step outside of the todo list happy path.

That, I think, is a selling point Ember could better utilize. Yes, it has a learning curve. No, it isn’t as simple to do some basic simple things. But the conceptual gap from “simple demo” to “thing I might actually want to build” is significantly smaller. Nobody actually picks up a JS framework wanting to build a todo list, so let’s steer the conversation away from judging who does the best job at making simple things really easy.

With Ember I was reasonably confident that I could take ideas from the todo list example and build something useful out of them. With Angular I felt pretty good about building another todo list.

2 Likes

To be quite frank, I was surprised by how bitter everyone was there. They seemed to think I was saying that Angular is easy to learn which isn’t true. It is easy to get started as you guys have pointed out. There is for sure a learning curve and it can suck.

But here’s the thing. Getting devs over the mental hurdle of trying something new is the hardest thing. Once they get over that, they are invested and they are much more willing to spend time and energy to figure something out. They move from “ugh, I have no idea what this is” to “OK, I know this works, but now I just need to fix this thing so let me investigate how this other thing works.”

If I had to guess I would say that survey responders put “easy to get started” because they can “sell” Angular very efficiently with new devs. They have a script that gets devs using Angular very quickly and easily. Sure, it takes a lot of effort to build something real from that, but it is much easier to work off of some sort of base rather than take 2 weeks to figure out how to do anything.

1 Like

I disagree, AnguarJS is much easier to learn, at least for me. Having worked on both professionally, I can easily say I was much more productive with AngularJS after a couple of weeks of learning it than I was with Ember, and I learned AngularJS well before EmberJS.

Ember in my opinion is trying to do too much. For me it boils down to this: AngularJS mitigates the problems that are caused from using a dynamically type language like JavaScript particularly in large applications, while Ember tries to leverage JavaScript like you would in C#/Java framework. However JavaScript is not a static type language and using it heavily via inheritance type fashion makes it harder to use than AngularJS which uses a more flat service based approach (i.e., with services/injections you know what you’re dealing with up front as it’s self documenting).

I think Ember team is doing really great work to make Ember a great choice. Faster re-rendering times, ember-cli, greatly simplified architecture in 2.0 - there’s a lot of awesome and exciting stuff happening recently.

That said, here’s a short list of stuff that I’d really like to see built-in into Ember or provided as (semi) official plugins:

  • form validations

  • i18n/l10n support - I’m not talking only about simple “hash-lookup” translations, but also support for MessageFormat, pluralization rules, number/date/currency formatting etc.

  • animations - thanks to ng-animate our designer doesn’t have to write a single line of JS to animate elements when they are added/removed or shown/hidden via Angular built-in directives

  • make simple stuff easy - Ember being a high-level framework makes sometimes even relatively simple, but non-standard stuff hard or non-trivial; Angular being much more low-level makes it easier for new devs to solve such problems, though it’s also easier to make a total mess

  • better docs - I hope that docs and guides for 2.0 are coming soon :smile: anyway, I was looking for a way to scroll page to the top on route transition, but only if the previous route is not in the same “section” of the page as the next route; I found docs about Route and its willTransition method, but docs only state that it accepts Transition object as its parameter without any information about this object. When I try to search for transition I can’t find anything about it - all I get are links to blog posts and guides. Displaying search search results from api/guides/blog separately, like it’s on Angular docs page, might be a good idea;

2 Likes