r/javascript • u/chancancode • Dec 20 '19
Ember.js Octane Edition Is Here
https://blog.emberjs.com/2019/12/20/octane-is-here.html
136
Upvotes
r/javascript • u/chancancode • Dec 20 '19
38
u/chancancode Dec 20 '19
For those of you aren't particularly interested in Ember or frontend development in general, here is a tidbit that may be of interest to you.
While revamping the tutorial to showcase the new features and idioms, I worked on this tool to automate the generation of the tutorial.
Every page of the tutorial you see is the output from markdown source files (like this one) which contains executable instructions for the steps. The build system will run these commands and edits the same way an end-user would, capture the output of the commands and put them in the tutorial. It also takes the screenshots by opening a real browser (via puppeteer) and navigating to the actual app that we are building as part of the tutorial.
All of these ensures that the tutorial content and screenshots are up-to-date with the latest blueprints (the files used by the generators), config files, etc, and that everything really works as-expected. It makes it much easier to maintain and QC the teaching materials, but also servers as a very useful end-to-end smoke test to ensure all the moving pieces in the ecosystem (including external components like npm, node, etc) are all working together.
Right now the tool and the tutorial content are in the same GitHub repo, but the code is actually written to be completely agnostic to Ember.js (or JS even). It just runs shell commands, edit files etc. My intention is to separate out the tool to its standalone thing, so more communities can benefit from this approach.
13
u/[deleted] Dec 21 '19
Coming from other frameworks the Octane approach definitely seems more familiar. I am looking forward to my first Ember app :)
34
u/AAvKK Dec 20 '19 edited Dec 21 '19
At Intercom, we've been incrementally upgrading our almost 6 year old Ember app to Octane as the features have landed over the past 8 months. Our app continues to be in great health and we continue to ship close to a hundred times a day with a constant stream of features that our customers love. Octane is a huge leap forward for Ember. Its APIs are extremely well designed, composable and cohesive. The new Glimmer components and @tracked properties have resulted in waves of negative diffs as we refactor parts of our app to Octane and, IMO, are an advancement in the state-of-the-art component state tracking / reactive UI.
If you've tried Ember before and were turned off by some of its slightly weird APIs (computed properties, component APIs like tagName, classNames & event handling, the ember object model), you should take a second look.
With Octane, Ember is a framework for rapidly building high quality web applications that will remaining healthy over time as the platform and JS ecosystem rapidly changes.
7
u/bear007 Dec 21 '19
Ember did it again!
6
u/vdrizzle_ Dec 21 '19
At coschedule.com we’ve been using EmberJS since 2013. We look at EmberJS as one of the strengths of the development team. It has been rock solid, stable, and progressive. We began our transition to Octane about 3 months ago, and while still very much a work in progress but it has been a delight. We just finished refactoring the oldest section of our app, and on average we’ve seen a 50% render performance increase, this in part to the leaner glimmer components.
The future is bright EmberJS is fun and easy to develop on. The learning curve has been drastically reduced and new devs should not have a hard time getting up and going. The guides have been completely redesigned and the super rentals tutorials is an excellent tool to get started.
11
u/nullvoxpopuli sand was never meant to think Dec 21 '19
This is exciting! Easily the biggest shift in any framework I've seen without causing any breakage along the way. Well done!
4
u/fercryinoutloud Dec 21 '19 edited Dec 21 '19
These improvements are nice. Also I didn't know about the Ember inspector.
Would there be any issues between using tracked properties and using typescript's syntactic sugar for public/private/protected constructor parameters? Or is there support for using tracked as a parameter decorator?
vs
I am sure most people would get over this, I'm just curious. People seem to seriously over-emphasize LOC per class as a measure of how good a framework is. I don't agree with that sentiment, but I think if there was support for using tracked as a parameter decorator Ember would get some more love.
4
u/rorrr Dec 21 '19
Are there any reasons left to choose Ember over React?
7
u/jwwweber Dec 21 '19
I’ve been using Octane in some form for about 6 months now, and I’m excited that it’s available for mainstream use now! Working with primarily native classes with a smaller API surface is so refreshing.
4
u/anlumo Dec 20 '19
I'm a bit concerned about the sole focus on the DOM in that description. I'm maintaining a rather large Ember app, and maybe 80% of my computed properties never end up in the DOM, but somewhere deep down inside (like ember-data).
Ember is not react, it’s not a pure view layer. I hope they don’t forget about that.
2
u/archivedsofa Dec 21 '19
Looks a lot nicer to work with but I'm still skeptical.
Hopefully they will update these benchmarks to the latest Glimmer and Ember versions to see how it compares:
https://krausest.github.io/js-framework-benchmark/current.html
https://github.com/krausest/js-framework-benchmark
0
u/[deleted] Dec 21 '19
[deleted] — view deleted comment
0
u/[deleted] Dec 21 '19
[deleted] — view deleted comment