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)
We did our final big postback yesterday for SC1.0. This postback includes a
brand new refactored set of Controllers and a CollectionView. There’s a
lot to dig into here, so let me start with one of my favorite features:
Drawing an outline view is actually pretty tricky. For the most part,
you’re simply displaying a list of items with some items indented more than
others. SproutCore’s new CollectionView comes with support for inspecting
a content array of items and rendering it as a tree, which is pretty cool.
Of course, usually your data structure for outlines is us... (more)
HTML5 drag and drop in Firefox 3.5:
With Firefox 3.5 all the major browsers (including IE!) support native drag
and drop. The SC.Drag interface in SproutCore was designed from the
beginning to follow the same protocols. That means once someone SC.Drag to
use native drag events, all your SproutCore-drag code will automatically work
between browser windows and applications without you making any changes to
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)
This is pretty cool. Juan Pinzon has been working hard on our IE support
for SproutCore. Basically he does the dirty work in IE so you don’t have
Today he posted a short video where he loads and runs the SproutCore Sample
Controls app in 6 major browsers - including an unsupported one - in under a
Sample Controls involves building a UI client-side with over 200 controls all
at once. It’s a real stress test. The fact that the app loads fast
enough he can navigate in one minute is really amazing.
Great work Juan!