The next release candidate for 1.11.0 will be out very shortly, but I thought
it best to post a brief update on the past week’s work as this week saw a
concentrated effort on core optimization.
First we took another look at the use of arguments lists throughout the
framework and found several more occurrences of it being accessed in an
inefficient manner. Depending on the browser, accessing arguments in such a
way that causes it to be allocated can be up to 80% slower and so it’s
really good to have these all fixed.
The other piece of optimization work undertaken has been much more difficult.
We’ve been looking into high frequency event handling, such as during touch
dragging or mouse moving, with an eye towards managing memory better. Since
SproutCore already does as much as possible to avoid touching the DOM, the
largest issue that affects the “fluidity” of the us... (more)
If SproutCore 1.0 had a theme it would be “performance”. We’ve spent a
lot of time - almost a year in fact - trying to make SproutCore applications
the fastest web apps on the planet. I think we’ve done a pretty good job
For example, we took Steve Souders excellent book on High Performance
Websites and built his 14 rules right into our platform. We also discovered a
few other rules along the way and built those in as well.
That means simply by adopting SproutCore for your web apps [and following our
deployment recommendations], you will get best performance practices out... (more)
“From where we sit now, the code is shaping up quite nicely. Soon enough,
if you have a SproutCore app, you’ll be able to just drop an editor right
into your app. As of today, anyone with a website can grab a copy of Bespin
and include the editor component very simply in their pages. We figure that
we’ve got another month of work to do before we’re ready to update
bespin.mozilla.com. We have a whole bunch of features to port over from the
old code and we need to make good on another big part of the Reboot promise:
opening Bespin up for plugins. It’s been hard even for Bespin core... (more)
Learn to Test Your SproutCore Apps in San Francisco:
The Selenium Meetup group is hosting Michael Cohen, creator of the excellent
Lebowski Testing tools, to discuss how you can use Selenium and Lebowski to
automate testing of your SproutCore app.
The event is in San Francisco on Oct 21, so if you are in the area be sure to
One of the coolest parts of the new SproutCore View layer is its ability to
use aspect-based programming to add behaviors to views.
Aspect-based programming is built on the premise that often objects that
don’t follow from the same class hierarchy may in fact need similar
This is especially true in GUI programming when designers come to you and say
something like “I came up with this new widget - it looks kind of like a
progress bar but it acts like a button when you click on it”.
In SproutCore, you capture these common behaviors in a “mixin”. A mixin
is just a colle... (more)