First Apple TV prototypes "in the works" as Apple reportedly shopping part suppliers

  • Apple earns record $13B on sales of 37M iPhones, 15M iPads, 5.2M Macs

  • Apple working to adopt 802.11ac 5G Gigabit WiFi this year

  • Apple to reinvent the textbook with interactive iBooks 2 for iPad

  • Get the Lowest Prices Anywehere on MacBooks (up to $560 off): Mac Price Guide updated Feb. 3rd. (Find the best prices on Macs)
    Monday, June 16, 2008

    Apple's open secret: SproutCore is Cocoa for the Web

    By Prince McLean

    Published: 09:00 AM EST (06:00 AM PST)


    One of the biggest revelations at WWDC was quietly unveiled in a session on Friday morning entitled "Building Native Look-and-Feel Web Applications Using SproutCore." While Apple maintained high security during the entire NDA-sealed WWDC session, the secret of SproutCore is out because it is an open source project and people can't stop talking about it.

    As Apple's public schedule for WWDC explained, "SproutCore is an open source, platform-independent, Cocoa-inspired JavaScript framework for creating web applications that look and feel like Desktop applications. Learn how to combine SproutCore with HTML5's standard offline data storage technologies to deliver a first-class user experience and exceptional performance in your web application."

    The secrets of SproutCore first tumbled out of the bag last fall, when it was revealed that .Mac Web Gallery had been built using the framework. Originally developed by Charles Jolley of SproutIt for use in his online email manager named Mailroom, the SproutCore framework goes beyond other JavaScript frameworks because it is designed to build entire rich applications on the web rather than just adding some animation or sizzle to web pages.

    Open Help for JavaScript.

    JavaScript is a powerful language that, thanks to its bundling with all modern web browsers, is very widely deployed. However, there is a paucity of strong tools for building anything more than basic scripts to kick off web animations and other dynamic behaviors. That has opened the door for proprietary tools such as Adobe Flash, which is built around ActionScript, which is itself based upon JavaScript.

    As outlined in the series Flash Wars: Adobe in the History and Future of Flash, Flash provides a large framework on top to handle things that aren't easy to do in JavaScript itself, but that also requires distributing a Flash plugin runtime. Web applications coded in Flash are no longer interpreted in the web browser itself, but in Adobe's plugin. That makes developers dependent upon Adobe, and also leaves platform vendors such as Apple reliant upon Adobe to provide suitable runtime plugins for their products.

    Adobe's Flash plugin for the Mac has long been a second class citizen because Adobe has focused on its Windows version; Steve Jobs also stated that Adobe didn't offer a mobile runtime appropriate for the iPhone, only a Flash Lite version that wasn't capable of running existing desktop Flash content and a desktop version that wasn't suited to run on a mobile device, as described in Steve Jobs pans Flash on the iPhone.

    In place of using Flash on its own website, Apple has been working with a number of open scripting frameworks such as Prototype and Script.aculo.us, which mentions Apple on the front page of its website as a high profile user. Those frameworks offer prebuilt code that has been polished to work on all browsers, making it easier for the developer to concentrate on what their web page should be doing rather than repeatedly reinventing the wheel for various low level functions. In that respect, open JavaScript frameworks can replace Flash without requiring any secondary plugin runtime because they are simply open JavaScript that runs in the browser directly.

    Introducing SproutCore

    Jolley's SproutIt decided to move past common scripting frameworks to develop an entire application development stack based on the Model View Controller architecture. In MVC development, Model data and user interface Views are tied together by discrete Controller logic. This is in contrast to typical web development tools that mix logic, data, and presentation together, resulting in code that is messy and difficult to maintain.

    As explained on the developer's website, "SproutCore is a framework for building applications in JavaScript with remarkably little amounts of code. It can help you build full 'thick' client applications in the web browser that can create and modify data, often completely independent of your web server, communicating with your server via Ajax only when they need to save or load data. JavaScript applications are faster, easier to use, and a lot easier to write than complicated Ajax-driven applications. When you use a framework like SproutCore to help you, they can also be a lot of fun to write."

    SproutCore pushes more of the application into the browser itself, resulting in the "thick client" designation. That enables a more responsive, full featured experience that feels and behaves more like a desktop app because it is actually running on the local computer rather than waiting for responses from a remote server. The capacity to do this is actually quite new; rapid advances in web browsers over the last year have finally made thick client JavaScript applications practical.

    Cocoa for the Web

    Apple didn't just use SproutCore, it also contributed major performance updates and added lots of new functionality. Apple's contributions have helped make SproutCore the ideal way to build web applications that work like desktop Cocoa apps, as noted in the article Cocoa for Windows + Flash Killer = SproutCore. Both share a lot of the same conventions such as the use of bindings. SproutCore's bindings allow developers to write JavaScript that automatically runs any time a property value changes. Using bindings, very complex applications with highly consistent behavior can be created with very little “glue” code.

    Apple has also been working on the other side of the client equation to improve its own JavaScript engine in Safari. Announced just prior to WWDC, WebKit's new SquirrelFish JavaScript interpreter will dramatically boost the performance of JavaScript applications like those built in SproutCore.

    Those two factors combine to make SproutCore the natural heir to the Yellow Box or Cocoa for Windows, which has been bandied about as a possibility ever since Apple moved away from its cross platform Rhapsody strategy to develop Mac OS X ten years ago. Rather than requiring a Cocoa runtime however, users will only need a web browser with JavaScript support, including Safari, Mobile Safari on the iPhone, FireFox, or Internet Explorer 6/7.

    Using SproutCore enabled Apple to deliver a new suite of online apps in MobileMe for a cross platform audience. The natural next step will be to expand those offerings to include others, for example, iWork productivity apps. Because SproutCore is offered under the open source MIT license, anyone can use it to develop their own highly responsive web apps. It also seems likely that Apple will at some point invite third parties to deliver MobileMe applications, either included as part of the subscription service, or with their own nominal fee. That would mirror the company's efforts in creating a mobile software market in the Phone Apps Store.

    Until then, Apple is focusing MobileMe as a push messaging alternative to Exchange "for the rest of us," while also leveraging push support in iPhone 2.0 and in the upcoming Mac OS X Snow Leopard client apps to deliver an Exchange Server replacement in Snow Leopard Server.

    There's more information about SproutCore on its official website. Apple also has more details on the new MobileMe, and SquirrelFish details are on the Webkit project site.

    Filed under : Software 80 Comments ] 
    Story topics: MobileMe, WWDC   Print ] [ Story Link ] 


    RSS
    Mac Connection End of Summer Sale
    MacBook Pro Model
    Apple
    Price
    Discount
    2.4GHz dual 13" MacBook Pro $1,199.00 $1,096.05* $102.95
    2.8GHz dual 13" MacBook Pro $1,499.00 $1,382.19* $116.81
    2.2GHz quad 15" MacBook Pro $1,799.00 $1,647.06* $151.94
    2.4GHz quad 15" MacBook Pro $2,199.00 $1,983.65* $215.35
    2.4GHz quad 17" MacBook Pro $2,499.00 $2,288.23* $210.77
    Early 2011 MacBook Pro Model
    Apple
    Price
    Discount
    2.7GHz dual 13" MacBook Pro $1,499.00 $1,258.53* $240.47
    2.0GHz quad 15" MacBook Pro $1,799.00 $1,503.49* $295.51
    2.2GHz quad 15" MacBook Pro $2,199.00 $1,695.99* $503.01
    2.2GHz quad 17" MacBook Pro $2,499.00 $2,035.49* $463.51
    *Instant 3% AppleInsider Reader Discount Applied When Adding Items To Your Cart

    AppleInsider Features
    Hot Forum Topics

    Recent Articles
    Facebook snatches former Apple exec from Levi's to head global marketing
    Canalys crowns Apple top Smartphone vendor in 2011 as iPad surges past PC growth
    Apple CEO hints at no ARM-based MacBook Air as iPad to "soon satisfy" that niche
    iPhone 4S sales resume online in China with shipments by March 2
    Apple adds Genius movie, TV recommendations to Apple TV
    Apple's iPhone takes 75% mobile phone profits with just 9% of units sold
    Apple clarifies iBooks Author license, does not claim rights to content
    Former Apple product manager recounts how Jobs motivated first iPhone team
    Apple returns 3G devices to German store as injunction quickly suspended
    Apple pulls all 3G iOS devices but iPhone 4S from German online store
    Motorola wins German injunction against Apple push services
    29% of Kindle Fire owners plan to spend more at Amazon, but only 54% very satisfied
    Industry insiders downplay likelihood of Apple television release in Q2 2012
    Google adds 'Bouncer' malware detector layer to Android Market
    Quality of Apple's industry-leading tech support declines in 2011
    iPhone's 36% of Q4 global handset revenue accelerates industry growth
    US smartphone installed base sees slowing shift from RIM to Android
    Windows Phone 8 to address its "perceived inability to compete" with iPhone, Android later this year
    Judge complains of too many patents in Apple case against Motorola
    Apple: Misdirected iMessages due to bad configuration, not a software bug
    Tim Cook exposes the lie that Steve Jobs ignored philanthropy
    More reliable sources say no Apple event scheduled for February
    Apple recruits Xbox marketing manager as part of growing gaming initiative
    Apple leads pack in America's five year race to deploy digital textbooks
    Apple developing iOS tech for real-time, head-to-head workout competitions
    Rumor: Apple to hold 'strange' event in Feb. ahead of March third-gen iPad launch
    Nokia's Windows Phone transition to impact results for most of 2012
    New Sony CEO looking to shift to Apple-like integration of hardware, software [u]
    IDC: Apple climbs two spots to become world's third-largest mobile phone maker
    Apple CEO Tim Cook allegedly defends new SVP of Retail amid criticisms
    Facebook seeking to raise $5 billion at IPO, provides data on revenues, users
    Apple rolls out Mac OS X Lion, Snow Leopard updates
    Forensics vendor warns Mac OS X FileVault vulnerable to decryption
    Apple leads shift of global chip buying from PCs to iPad, smartphones
    Debug photos rumored to come from quad-core Apple iPad 3 with global LTE
    Galaxy Nexus, Galaxy Tab 10.1N escape German injunctions
    New photos hint Apple may still have plans for new iPod nano with camera
    Neil Young was working with Apple on super high-def music format
    Steve Jobs inspired Best Buy to switch from celebrities to inventors for Super Bowl ad
    First Apple TV prototypes "in the works" as Apple reportedly shopping part suppliers








    AppleInsider RSS Feed
    AppleInsider © 1997-2011
    Please review our Privacy Policy.
    Written/Edited/Compiled by the AppleInsider Staff.