The Ember Times - Issue No. 102

добры дзень Emberistas! 🐹

This week: more #EmberJS2019 posts wanted! ✏️, RFC for an alternative to Controllers 🎛, and tips for adding TypeScript 🌟!


More #EmberJS2019 Posts Wanted! ✏️

Don't forget. This Monday, June 17th is the deadline for your #EmberJS2019 post to be a part of Roadmap RFC! Please write a blog post, GitHub Gist, or tweet, then share it with roadmap@emberjs.com and Discord community. 🧡

Read the Roadmap RFC

For ideas and inspiration, you can check out all #EmberJS2019 posts at our community repo. If time's not on your side, feel free to write and share your post even after the deadline.

Here are the highlights from this week's posts:


@Turbo87 focused on Ember being able to support existing technologies:

@yarnpkg PnP is a fantastic way to reclaim some/a lot of disk space. I started some work last year to support it in Ember CLI, but couldn't finish it in time. We should revisit this!


@efx shared thoughts on existing posts.

I think we should treat learning as important as the technical ideas that distinguish ember.js. [...] My fabulous colleagues have often asked spot-on, difficult questions about the guide's admonitions to do something a particular way. I too often resort to shallow "that is just the way it is" answers.


@dgeb suggests to focus on modularity and packaging, both at the framework and application levels.

[With Ember Octane] it's time for us to focus on how we structure and bind and package those modules, both at the framework and application levels.


@jacojoubert shared four things Ember can improve for even better developer experience.

Ember needs a way for a component to have direct knowledge of its children, [...] clearer about where they want to end up with the file system layout, [...] spread ...attributes on multiple elements, [...] and public API and get a full suite of documentation (for AST transforms).


@lifeart asks for a visible roadmap where features being worked on can be moved around "backlog" or "need discussion" lists.

I see a lot of work around but it's not written in roadmap anywhere. [...] it will be great to have kinda "likes" for non important features, to prioritize them.


@gossi covered reducing complexity, making things explicit, and using Embroider to improve app performance.

My wishes for Ember (in 2019) is to slim down the framework is to throw old ballast over board to improve learning, developer ergonomics and align more with the javascript ecosystem.


In a follow-up post, @melsumner encouraged the community to examine areas of improvement with a sense of calmness:

The Community as a whole must remember that each and every single one of us are the only ones who will excite others about using Ember. We are the only ones who can pique curiosity of others.


@mehulkar explained several reasons that make Ember difficult to learn and how we can address them.

The Octane edition will be great for performance and developer ergonomics, but it doesn’t fundamentally bolster (or change) the selling points of Ember. I think we need to aggressively reduce the API surface area at every level from core classes to CLI tooling, converge into the JS ecosystem and “the platform”, and make the application’s inner workings more explicit by both providing low level primitives and using them in an obvious way.


@chancancode examined a few ways to modernize Ember's templating language.

I would like us to address some of the long standing issues and missing features, as well as bring in some of the nice things from the JSX world, while staying true to what makes templates feel so productive in Ember today.


@dfreeman encourages us to make an active effort to tear down the Us and Them mentality.

The Ember community makes up only a fraction of Web development as a whole, and that necessarily means a lot of the innovation going on is happening outside our figurative walls. [...] Conversely, if we do develop something novel and valuable but it's only possible to use it in the context of an Ember project, that's a missed opportunity for the rest of the world.


@frank06 is looking forward to increase efforts to communicate the value of Ember in the wider tech community:

Ember has fallen off the radar. Pretty much any article about front-end talks about React/Angular/Vue and that's the end of it. They are taking such a big market share that Ember will struggle despite its technical merits. [...] I noticed several Ember developers going out in the wild to talk about Ember. This is great. We need more and better marketing and PR.


In his post "Ember Testing in 2019" @Gaurav0 highlights the importance of making Ember's testing solution easier to adopt:

Testing has always been a strength of Ember. [...] Yet, it is still too hard for some organizations to start testing. [...] It is important, that as we go forward as a community, we don’t give up our lead in this area and address these pain points that continue to make testing difficult.


@jrjohnson on the other hand wishes for an approachable guide for migrating classic to single page apps to help with bringing new developers of JavaScript applications into the Ember community:

A special section in the guides on integrating Ember.js into a classic app could help interested developers become comfortable with both the technical process and with the idea that the Ember.js community supported this use case.


Last but not least, @abhilashlr covered five areas that we can work on in 2019:

[O]n-boarding new and fresh minds from a different background of frameworks into teams that use Ember, has been quite a challenge. Not because the framework is difficult to learn, but the dots around the documentation need a bit more connectivity.

Many more #EmberJS2019 posts to be covered in the next issue! 💜


RFC for an Alternative to Controllers 🎛

@NullVoxPopuli proposed two RFCs to outline how we can eventually remove controllers from Ember.

  • RFC 499 proposes an alternative way of rendering templates for a particular route. (If some of you remember routable components, this isn't that. 😉)
  • RFC 380 proposes adding a queryParams property to the RouterService for accessing query parameters anywhere in your app: Routes, Components, etc. 🎉

If both these RFCs were accepted, it would help pave the way to being able to deprecate controllers. So if that’s something you care about, be sure to comment! 🖊️


Static Types in EmberJs? 🌟

If you are new to adding TypeScript to your Ember project, @James-Byrne has got you covered!

From James' blog post, you can learn how types help you catch errors at compile time and keep your documentation up-to-date. You can also find common problems to watch out for when you introduce types to your app.

Have a look and add types today!


Contributors' Corner 👏

This week we'd like to thank @sdebarros, @josemarluedke, @bekzod, @rwjblue, @demersaj, @runspired, @wycats, @sivakumar-kailasam, @bmac, @jenweber, @rwwagner90, @nummi, @qpowell, @locks, @kennethlarsen, @dnalagatla, @DPK101, @samselikoff, @dcyriller, @MelSumner, @rajasegar, @haochuan, @thoov, @lougreenwood and @lifeart for their contributions to Ember and related repositories! 💖


Got a Question? Ask Readers' Questions! 🤓

Office Hours Tomster Mascot

Wondering about something related to Ember, Ember Data, Glimmer, or addons in the Ember ecosystem, but don't know where to ask? Readers’ Questions are just for you!

Submit your own short and sweet question under bit.ly/ask-ember-core. And don’t worry, there are no silly questions, we appreciate them all - promise! 🤞


#embertimes 📰

Want to write for the Ember Times? Have a suggestion for next week's issue? Join us at #support-ember-times on the Ember Community Discord or ping us @embertimes on Twitter.

Keep on top of what's been going on in Emberland this week by subscribing to our e-mail newsletter! You can also find our posts on the Ember blog.


That's another wrap! ✨

Be kind,

Preston Sego, Isaac Lee, Chris Ng, Jessica Jordan, Amy Lam and the Learning Team