Originally posted on crunchingnumbers.live
In 2018, the Ember core teams asked for community input in laying out a vision of what we need to achieve over the next year. In response, they received over 50 blog posts and several direct tweets. I read all in preparation for this post and smiled throughout, because we did achieve, and are actively working on, the following goals:
- Native JavaScript support with Ember Octane
- Import any npm package with ember-auto-import
- New build pipeline and route splitting with Embroider
- Better communication channel with Discord
- Marketing through Ember.js: The Documentary (and Octane)
In 2019, in addition to continuing work on the items above, I'd like to see us work on building a larger community. Our community, while truly amazing and supportive, is yet small. To flourish, we need support from developers who don't work with Ember daily. These developers may professionally work with React, Angular, or Vue. They may be self-taught or attending school, looking to enter tech with minimal risk in career trajectory and minimal time to create showcase projects.
I believe we can do 3 things to welcome these developers:
- Publish better website (address design and content)
- Promote Octane heavily
- Teach Ember at local and remote Meetups
I will explain what I mean by these and highlight our action items in bold.
1. Publish better website
First impression matters. As developers who have worked with Ember for years, we understand why Ember makes a great technical choice for frontend framework.
- Zero config
- Declarative templating language
- Highly performant component
- Ability to server-side render
- Ease in managing and mocking data
- Ease in authentication and authorization
- Powerful test suite
- Clear, backwards-compatible upgrade path
- Numerous addons that we love and actively support
From day one, we can focus on creating value because these shared, difficult problems have been (or will be) solved for us.
a. Landing page
Unfortunately, in our landing page, we don't capture a new developer's attention and their imagination of what they can do in Ember. We can also do better at assuring them that many companies do use Ember and can provide them an excellent career.
The images under Highly Productive Out of the Box, although adorable, don't support the claims that we make below. I think interactive code, data-driven graphs, or user stories would illustrate our claims and convince a new developer better.
When you click on the Meet More Users button under Who's Using Ember.js?, you will be amazed to see a list of 336 companies. Let's show this number upfront, in addition to highlighting the 8 largest companies. It would be nice if we can collect and tell short stories, rather than asking the developer to track down each company to learn how they are using Ember.
Several 2018 blog posts called for the action to redesign and modernize the website and documentation. To my knowledge, the Ember Learning and Steering Teams are currently at the planning stage of redesigning the website. The mockup looks sleek and fantastic. I think our website has a bright future and hope to see more of us help land this new design soon (possibly along with the launch of Octane).
b. Documentation
Starting with the most important documentation pages, I would love to see beginner-friendly, problem-focused explanation of ideas, examples, best practices, and possible pitfalls in Ember. To help onboard new developers, we must address why something is important, what problem it will help them solve, and how it fits in the grand scheme of an Ember app.
Jen Weber from the Ember Learning Team currently leads a major initiative to rewrite the documentation for Ember Data so that new developers can easily learn and use Ember Data in their app. Recently, for Ember 3.9 documentation, Jen and a few other developers rewrote the related guide called Specifying a Route's Model. I admire her work and wish to see more of us help rewrite the Ember Data documentation.
Here is an example of a documentation page that, I think, explains very little and hasn't really changed since Ember 1.10. As a developer who has never used reopen
, I would like to know why this is useful. The first sentence mentions that reopen
allows me to define a class in parts. Assuming I know what class
is, why would I do so? Are there cases when I shouldn't do so? I do not know from this documentation.
I think, oftentimes, code snippets in a documentation page easily convey the preceding idea to developers who are experienced in Ember or in JavaScript. For new developers, however, I don't think we can always assume this. I would love to see more interactive code so that we can welcome both groups to our documentation.
For inspiration, I direct us to ember-concurrency's visualization of task modifiers. It is one of my favorite interactive (and animated) examples. As a developer who is new to concurrency, I may not fully understand the definition of a task modifier, but I can see what they do and which modifier I should use to solve my concurrency problem.
2. Promote Octane heavily
Ember's 6-week release cycle gives developers freedom to decide when to upgrade their apps. Unfortunately, because Ember follows semantic versioning (SemVer), we would announce cool, new features in a minor version and boringly safe removals of deprecations in a major version.
The Octane edition gives us a second chance at marketing Ember because we can announce a core set of new features at will. Let's make the best of it. We can be proud that Ember is built on native JavaScript, shares features and best practices with React, Angular, and Vue, delivers value on day one, and looks ahead to the unknown and exciting future in web.
To my knowledge, Octane will comprise the following features, many of which have already landed and have polyfills to support Ember 2.18+:
- Native JavaScript classes
- No jQuery by default
- Decorators
- Angle bracket syntax
- Named argument syntax
- Tracked properties
- Element modifiers
- Glimmer components
- Broccoli 2.0 in ember-cli
Kristen Garrett did a wonderful job covering the features in Octane over 7 articles:
- Part 1: Native Classes
- Part 2: Angle Brackets and Named Arguments
- Part 3: Tracked Properties
- Part 4: Modifiers
- Part 5: Glimmer Components
- Part 6:
@action
Decorator,{{on}}
Modifier, and{{fn}}
Helper - Part 7: Decorators
Similarly, the Ember Core Team documented the updates in each minor version.
As much as I like these written works, I don't think their target audience is developers who are new to Ember. We shouldn't expect a new developer to peruse these and read the lines in-between to learn Octane and its status.
Let's make sure that we continue to provide other ways to learn Octane. Mentorships, Discord chats, podcasts, workshops, code samples, project demos, video tutorials, blog posts (Medium, freeCodeCamp or dev.to to reach out to a wider community), Meetup and conference talks, word-of-mouth, tweets, and so on. I believe every one of us has a skill in one of these. We are all able to grow our community.
3. Teach Ember at local and remote Meetups
Continuing with the idea of promoting Octane, I hope to see more of us participate in Meetups and teach Ember to new developers.
For me, teaching someone is when I learn the most. Something that is trivial to us now, one that we don't think deserves its own talk—how to create and reuse components, how to write contextual components, how to manage state with Ember Data, how to use dependency injection, how to write tests and run them in parallel—still makes a valuable lesson to these developers. There is much joy in passing our knowledge and experience to a future generation.
As a co-organizer of EmberATX and a mentor at Austin Code Mentorship, I try my best in giving talks often. In addition to reasons above, I give talks because I understand that finding speakers can be hard and stressful on the organizers, who are volunteering their time for many people's benefits.
Similar to how remote work has become acceptable—even demanded as default—in tech, I think the future of tech Meetups (Ember Meetups, especially) lies in organizing remote talks. The possibility of meeting and learning from developers from different parts of the world excites me. The organizer is not limited to cycling between Ember developers in their town. The speaker doesn't need to travel afar to make a positive impact and can get instant feedback from new groups of people.
I hope remote talks will result in more frequent Ember Meetups, which, in return, will encourage more new developers to attend and try out Ember.
4. The future is in our hands
In conclusion, in 2019, I'd like to see us build a larger community. For nearly 8 years, we have had a fantastic, ambitious solution to web called Ember. We need more new developers to try it out and share their knowledge and experience. We can help them by publishing a better website, promoting Octane heavily, and teaching Ember at local and remote Meetups.
I'd like to thank everyone I have met in the Ember community so far. It's all of you who inspire me to write this post.
Top comments (0)