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

13

Comments

  • Reply 41 of 80
    solipsismsolipsism Posts: 25,726member
    Quote:
    Originally Posted by jasenj1 View Post


    Well, the site is still down - not a good omen for a framework that is supposed to be being adopted by Apple - so I'm reduced to empty speculation.



    Maybe it was because the demos on the site were pretty awful.
  • Reply 42 of 80
    MarvinMarvin Posts: 15,326moderator
    Every time news like this comes around, I always get the impression people forget how limited Javascript really is. You can add as many libraries and abstractions as you want but some things you just can't do properly without server-side technology or Flash.



    It still doesn't deliver advanced animation like what is capable with Flash. For any kind of animation, it's fairly poor. Even if they could deliver this, there is no WYSIWYG IDE to construct interfaces. It's like the old way of making interfaces in OS 9 without having Interface Builder to drop stuff into place.



    Flash is still the only reliable way to put vectorized media on the internet.



    The libraries required to perform tasks with JS are bundled with the website and have to be defined at runtime, which is very wasteful. In Flash, these libraries are in the plugin so the website content can be highly optimized.



    One big concern I have is that moving more and more of the site client-side introduces security risks. It also means it's very difficult to protect intellectual property regarding design. If I spend 2 months writing an advanced javascript-based site, someone who visits that site can steal all my hard work and use it on their site immediately or exploit coding errors. You can obfuscate JS files but in production, it's just not feasible to do that. You can encrypt Flash files to prevent reverse engineering.



    I also don't understand why we have two separate scripting languages. Why don't they start using PHP client-side and then we can program in a common language and optimize both server-side and client-side script execution at the same time and you wouldn't have to find all these crazy ways to call PHP from Javascript, that functionality would be built-in. Not only that, client-side PHP could use the libraries it has such as GD for client-side image compression, which JS can't. Local filesystem access privileges can be dealt with as needed.



    open-source SVG extension to PHP + client-side PHP with restricted access privileges + WYSIWYG IDE



    It cuts down website development time as designers take designs directly from Illustrator etc and the SVGs can be used directly. It cuts down scripting time as you debug one language server-side and client-side using the same runtime engine and debugging techniques (no more using alerts to debug javascript code).



    I commend them for putting in the effort to drive website technology forwards but at the same time I feel they're just flogging a dead horse and trying to get it to do things it's just not up to doing and ultimately, it will take much longer to reach a stage where we get a true desktop-like experience (not just a 'hey that looks like a desktop app I use' experience) than if they started thinking about alternate routes. Adobe realized this at the start and they are way ahead of the game now. Microsoft have their .Net stuff and Silverlight. Apple just seem to be playing it safe as usual. Instead of delivering what is needed, they focus on convincing people that what they need isn't what they need at all and they can actually get by with far more limited technology.



    They can also be a bit two-faced at times. They go on about open standards and what not, well how about they open source Quicktime (is this what Quicktime X is?). Flash was a major step forward in cross-platform movie delivery, Quicktime will have to deliver that too if Apple's developments are to kill off Flash.
  • Reply 43 of 80
    jasenj1jasenj1 Posts: 923member
    Quote:
    Originally Posted by Marvin View Post


    It still doesn't deliver advanced animation like what is capable with Flash. For any kind of animation, it's fairly poor. Even if they could deliver this, there is no WYSIWYG IDE to construct interfaces. It's like the old way of making interfaces in OS 9 without having Interface Builder to drop stuff into place.



    Agreed. Never underestimate the power of a nice IDE.



    Quote:

    I also don't understand why we have two separate scripting languages. Why don't they start using PHP client-side and then we can program in a common language



    PHP? Ewww. I think all the cool kids would argue for Ruby this week. I believe Firefox has an addon that lets you use Ruby as the client-side scripting language.



    And there are things that let you use JavaScript on the server-side, too.



    Quote:

    open-source SVG extension to PHP + client-side PHP with restricted access privileges + WYSIWYG IDE



    Safari already supports SVG. And you can do some sophisticated interactions between SVG and JavaScript. I'd like to see Apple offer more tools & emphasis on that approach.



    Quote:

    They can also be a bit two-faced at times. They go on about open standards and what not, well how about they open source Quicktime (is this what Quicktime X is?). Flash was a major step forward in cross-platform movie delivery, Quicktime will have to deliver that too if Apple's developments are to kill off Flash.



    The Flash spec fairly recently became open (as in everyone can look at it, not as in everyone can contribute to it), so I think Apple can expect to see more competition from Flash and the open source community - think Android and Linux based cell phones.



    - Jasen.
  • Reply 44 of 80
    wigginwiggin Posts: 2,265member
    Quote:
    Originally Posted by nvidia2008 View Post


    Interestingly, as you all know well, the Pentium M was the design that fueled Intel's "Core Duo, Core2" recovery after getting its butt handed to it by AMD during the terrible Pentium 4 days.



    I'm still a bit leery about how MobileMe will run on my computer at work. I'm not a programmer (unless you count Excel ), so I'm far more interested in my user experience that how slick it is for developers. Right now, the current .Mac implemtation of the photo gallery, which I understand is an earlier version of SproutCore, runs very poorly on my 2 GHz Core Duo ThinkPad. Part of the problem is the browser. I'm stuck with IE at work. On another Windows system, Safari displays the Gallery much better than either IE or Firefox on the same machine. (But I'd still be doubtful that browser optimization alone would be enough to overcome the limitation of the 1 GHz, single-core processor in AppleTV.)



    I hope MobileMe (and SproutCore) is successful. But Apple occassionally spends too much time making things flashy and not enough time making it functional (the lobotomized, resource hungery iMovie is good example). That doesn't appear to be the case with MobileMe, so I'll remain cautionously optimistic until it's finally released next month.
  • Reply 45 of 80
    jeffdmjeffdm Posts: 12,951member
    Quote:
    Originally Posted by Marvin View Post


    Every time news like this comes around, I always get the impression people forget how limited Javascript really is. You can add as many libraries and abstractions as you want but some things you just can't do properly without server-side technology or Flash.



    It still doesn't deliver advanced animation like what is capable with Flash. For any kind of animation, it's fairly poor.



    Complex animation is hard to do well directly in typical programming languages. Animation is usually better done when designed in a creative program, not directly written as code.
  • Reply 46 of 80
    kickahakickaha Posts: 8,760member
    Quote:
    Originally Posted by Marvin View Post


    They can also be a bit two-faced at times. They go on about open standards and what not, well how about they open source Quicktime (is this what Quicktime X is?).



    They essentially already did. What do you think MPEG-4 is? It's the QuickTime file format, modulo some futzing by committee.



    And then look inside to the codecs they use most prominently: H.264. What's that? Open standard.



    Sure, there's quite a bit of .mov content out there that uses the old Sorenson codecs, but Apple licensed those, and never owned them. Get it converted over to H.264, and voila. Open standards.



    Oh, you wanted the *libraries*? Pfft. Go code in the corner, emo kid.
  • Reply 47 of 80
    winterspanwinterspan Posts: 605member
    I find it stupid to call this "Cocoa for the Web". That statement will no doubt mislead many people into thinking SproutCore is a new "rich media" browser plugin akin to Adobe Flash or Microsoft Silverlight, and it is definitely not such as thing. it's only "relation" to Cocoa is that the developer apparently included some of the unique code semantics from Cocoa and Objective-C. I also think it's even more naive to believe that this is a practical replacement for Adobe's Flash (or MS's Silverlight), and i'll get to that in a minute.



    SproutCore is a javascript framework that assists developers in building javascript web applications. Javascript has come a long way in recent years, especially with the ability to callback to the web server and receive information asynchronously (without re-loading the entire webpage). Client-side Javascript has become the foundation for modern web applications, and is powerful enough to enable rich internet applications that can rival many of the features and functionality of desktop applications. Like other javascript/AJAX app frameworks, SproutCore organizes together all the common needs and features of web application developers into one library. It provides much of the generic "boiler plate" framework code and "scaffolding" that is re-used for nearly every project.



    That said, SproutCore is not a replacement for Adobe Flash. It does NOT magically enable javascript to do more than it can do now. Don't get me wrong, I'm not downplaying the capabilities of and future of open web standards (Javascript, CSS, SVG, HTML 5, etc), nor am I a proponent of Adobe Flash. But at the current time, to say that any javascript framework will be a practical Flash replacement is laughable. I'm no big fan of Flash, and I quit using it years ago, but there are many things that Flash can do that any amount of javascript, HTML, and CSS just can't do (at the *present time*). Here are a few:



    #) No-headache, cross-platform video playback

    Before the widespread use of flash video, most video on the internet was accessed through binary browser plugins like Quicktime, Windows Media Player, RealPlayer (), etc. This was a pain-in-the-*** at best, and could be a total nightmare. You had many different competing video plugins, with different functionality and capabilities depending on version number, platform, browser, browser version, etc. They had different control systems, different streaming video protocols, and worst of all, different codecs. They were inefficient, buggy, and crashed all the time.



    #) Creating high-resolution, rich media presentations that mix bitmaps, vector graphics, and/aor video streams for product marketing.

    These take advantage of Flash's highly-optimized, animated vector/bitmap graphics engine. In addition to complex animation, Flash scenes can seamlessly integrate and transform video. There is a lot of work being done with open standards to catch up to the capabilities of Flash, including animated SVG graphics, CSS effects and transformations, and native video/SVG integration. However, it isn't there it and it will be a ways off until any browser to natively duplicate the rich media rendering of Flash, including the time it takes to filter out to the masses once the technology is released.



    #) Creating rich media banner advertisements that don't affect the parent website

    Flash is great for creating and deploying rich media advertisements that use video and animated graphics. First of all, for the website owner, embedding self-contained, binary Flash movies is MUCH easier than attempting to embed a html/javascript/css advertisement without screwing up the website code and layout. Secondly, for the client, much like the rational for the PDF format with documents, using Flash will insure that the advertisement is seen exactly as intended.



    It's good to see that Apple, Opera, Mozilla, Google, and other companies are helping to increase the functionality and popularity of open web standards, including enhancing the performance of javascript. As the technology evolves and browsers build in advanced new functionality, open web standards will no doubt overtake all binary plugins, including Flash. In the near future, HTML 5 should provide a simple way to embed video into the browser without needing flash, although there is current infighting over the codecs to be used and other issues. On the graphics animation front, animated SVG (scalable vector graphics) can provide similar vector animation as Flash, and there is experimental support for combining SVG graphics with video. As for packaged rich media advertisments that don't affect the code of the parent website, I am unaware of any solution in the works for that that uses open standards, although I'm far from an expert.



    With the introduction of GPU hardware acceleration in the new Flash plugins, I'm sure we will see advanced applications running in the browser that are able to manipulate image and video data, such as online versions of Adobe Photoshop and Premiere. I don't want to see Flash become embedded in next-gen web applications because of this new capability, and I hope that all the players interested in a robust, open web standards environment will work hard to push technology forward, including new functionality in javascript, animated SVG, CSS animations/transformations, HTML 5+, etc.



    I also remind everyone that a good portion of web users are still using IE 6.0 (windows), and some are still on IE 5.0/5.5. Remember, it takes seemingly forever to get everyone to upgrade their browser, so even when a new technology rolls out on the newest browser, it takes many months and even years for the technology to trickle down to the greater market, which means a big delay before large websites will use the technology. As an example, HTML 5 will include support for native video playback. Even if browser updates that support this new feature are available by the end of the year, it's not as if youtube would quit using Flash video anytime this decade.
  • Reply 48 of 80
    solipsismsolipsism Posts: 25,726member
    Quote:
    Originally Posted by winterspan View Post


    I find it stupid to call this "Cocoa for the Web". That statement will no doubt mislead many people into thinking SproutCore is a new "rich media" browser plugin akin to Adobe Flash or Microsoft Silverlight, and it is definitely not such as thing. [...]



    Excellent post!
  • Reply 49 of 80
    aegisdesignaegisdesign Posts: 2,914member
    Well put Winterspan, although that said I've just been playing Mariokart in Javascript...



    http://www.nihilogic.dk/labs/mariokart/



    There's some damn clever Javascript coders out there these days
  • Reply 50 of 80
    mdriftmeyermdriftmeyer Posts: 7,503member
    Quote:
    Originally Posted by nvidia2008 View Post


    Cocoa For Web sounds tres cool, though...







    Yes and another example of how f***** up the media loves to tittilate crap for the Web.



    First we had to swallow AJAX and the hundred or so books written about it.



    Now lets mimic bindings for Javascript and presto!! Cocoa for the Web.



    Of course we already have Cocoa for the Web.



    It's just called WebKit.
  • Reply 51 of 80
    monstrositymonstrosity Posts: 2,234member
    As usual the naysayers are out in force across the web. I quite like the look of sproutcore, the hierarchical structure of the framework looks pleasantly similar to cocoa. And many method names are the same. If this is not the beginning of what could be called "Cocoa For Web " I dont know what is.

    I'm sure sproutcore will evolve into something special, and coupled with SVG and a decent IDE, the pieces are in place to have a very good bash at Flash dominance.
  • Reply 52 of 80
    jasenj1jasenj1 Posts: 923member
    Quote:
    Originally Posted by monstrosity View Post


    As usual the naysayers are out in force across the web. I quite like the look of sproutcore, the hierarchical structure of the framework looks pleasantly similar to cocoa. And many method names are the same. If this is not the beginning of what could be called "Cocoa For Web " I dont know what is.



    Which is great if you're a Cocoa programmer - which is who WWDC is aimed towards. But the vast majority of webapp developers are not. I'm not sure why that majority should care about SproutCore.



    IF you already do things the Objective-C/Cocoa Way THEN SproutCore looks like a decent webapp framework that should be reasonably comfortable and familiar.



    Quote:

    I'm sure sproutcore will evolve into something special, and coupled with SVG and a decent IDE, the pieces are in place to have a very good bash at Flash dominance.



    This is where you lose me. Flash is so much more than HTML and JavaScript. See winterspan's excellent post.



    - Jasen.
  • Reply 53 of 80
    kickahakickaha Posts: 8,760member
    Quote:
    Originally Posted by mdriftmeyer View Post


    Of course we already have Cocoa for the Web.



    It's just called WebKit.



    You *do* understand the difference between a server and a client, right?



    WebKit: client-side fetching and rendering system.

    SproutCore: server-provided/client-resident RAI.



    You might as well say that there's no need for Ruby on Rails, because we have IE.



    W. T. F?
  • Reply 54 of 80
    Hello,



    Has any of you guys worked with SC and something else than Ruby? Like php+SC or asp.net+SC?



    If so I'd like to read your comments!



    Thanks for the input!
  • Reply 55 of 80
    MarvinMarvin Posts: 15,326moderator
    Quote:
    Originally Posted by jasenj1 View Post


    PHP? Ewww. I think all the cool kids would argue for Ruby this week.



    Perhaps but PHP is more widespread and better supported. I haven't come across a single issue with PHP that I felt required me to learn how to use a new language. What advantages does Ruby/RoR offer over PHP?



    Quote:
    Originally Posted by JeffDM


    Complex animation is hard to do well directly in typical programming languages. Animation is usually better done when designed in a creative program, not directly written as code.



    There has to be a link between them though. You can have animation and Javascript separately but in Flash, Actionscript and the timeline are far more powerful. Desktop apps allow you to control your interface from your code in a logical and powerful way. AJAX is just clunky as the technology wasn't designed for that purpose. It's like people are looking at what's available now and supported and going to insane lengths to try to mash them all together.



    Actionscript and the Flash IDE were developed together and work great. Javascript, PHP, MySQL, HTML, CSS are not developed together but in their own way and this makes it harder to develop a powerful, coherent system.



    Quote:
    Originally Posted by Kickaha


    Oh, you wanted the *libraries*? Pfft. Go code in the corner, emo kid.



    I know mpeg-4 is a good standard but people don't always use that codec in Quicktime. In fact, most non-technical people still think mov is a video compression format. They don't realise it's a container. Typically they see Sorenson and conclude that 'Quicktime sucks'. Releasing it as a full product would let people see that it's so much more and could easily become the editor for the masses like Photoshop. You can't do editing, frame stepping or fast forwarding in VLC, MPlayer or WMP or if you can not easily. When I say fast forward, I mean properly not just a time skip.



    I don't see any harm in releasing the Quicktime libraries. Look at how popular Xvid is. What could Apple possibly lose?



    What they would gain is worldwide acceptance as a powerful, open standard media authoring package and it's far better than anything else available. When people accept it, they use it and when they use it they reduce the dependence on Flash, which seems to be what Apple want.



    Quote:
    Originally Posted by winterspan


    'm sure we will see advanced applications running in the browser that are able to manipulate image and video data, such as online versions of Adobe Photoshop and Premiere.



    Already done:



    https://www.photoshop.com/express/landing.html

    http://www.youtube.com/watch?v=48Uy3EQBxpQ



    There will always be limitations trying to do that in AJAX because although you can interact with server-side processes like imagemagick or whatever, different browsers interact with media in different ways so trying to make a standardized interface is so much more work and in some instances impossible.



    Here's a big kicker. There is no way to do multiple file uploads to a server using any current web technology besides Flash and Java. Such a basic thing and yet in 2008, it still can't be done without Flash - Java Applets just aren't cool. If Apple had announced this then I'd say they'd made progress but at the end of the day, I still have to use Flash for it irrespective of how desktop-like Apple thinks AJAX is.
  • Reply 56 of 80
    monstrositymonstrosity Posts: 2,234member
    Quote:
    Originally Posted by jasenj1 View Post


    Which is great if you're a Cocoa programmer - which is who WWDC is aimed towards. But the vast majority of webapp developers are not. I'm not sure why that majority should care about SproutCore.



    IF you already do things the Objective-C/Cocoa Way THEN SproutCore looks like a decent webapp framework that should be reasonably comfortable and familiar.







    This is where you lose me. Flash is so much more than HTML and JavaScript. See winterspan's excellent post.



    - Jasen.



    I was a flash developer since flash began its existence. I have also used pretty much every other popular web technology from Perl onwards.

    When I found the cocoa framework 5 years ago, it was bliss. It puts any web technology to shame, it is logically planned and leads to the quality of applications on found on OSX.

    Web tech on the other hand, is a mess of technologies which often defies logic completely, it would appear to be written by 10 year olds, and sometimes is.



    Web apps could benefit very much from the traditional desktop app world.









    Quote:
    Originally Posted by jasenj1 View Post


    Flash is so much more than HTML and JavaScript



    How much more is it? Not much more.

    It is a 2d vector drawing engine, and some audio/video streaming. Held together by a bunch of Actionscript code, made accessible to the masses by and easy to use IDE



    Can you think of anything undupliacatable? I cant anymore. SVG, H.264, Javascript, HTML bla bla
  • Reply 57 of 80
    monstrositymonstrosity Posts: 2,234member
    Quote:
    Originally Posted by Marvin View Post


    Actionscript and the Flash IDE were developed together and work great. Javascript, PHP, MySQL, HTML, CSS are not developed together but in their own way and this makes it harder to develop a powerful, coherent system.



    Does it really? If you are using a Mac, any application you use is a miss mash of countless technologies, many of which were developed without thought to the bigger picture in which they may eventually be used. The individual technologies are solutions to particular problems much like PHP, MySQL, HTML, CSS you listed above.

    Cocoa and its IDE tie these technologies together with an abstract layer. (For example it is possible to make a sound in cocoa without knowing the complex intricacies of coreaudio. )



    It is quite feasible to place a layer on top of all these technologies which hides them from your average developer. The code could be parsed within the IDE, converted to SVG, HTML, CSS etc and the developer could be oblivious to the underlying technologies that make his creation happen.



    Also, much more thought has been put into SVG, than when the original flash animation format was first created.



    Flash is dead
  • Reply 58 of 80
    Quote:
    Originally Posted by monstrosity View Post


    Does it really? If you are using a Mac, any application you use is a miss mash of countless technologies, many of which were developed without thought to the bigger picture in which they may eventually be used. The individual technologies are solutions to particular problems much like PHP, MySQL, HTML, CSS you listed above.

    Cocoa and its IDE tie these technologies together with an abstract layer. (For example it is possible to make a sound in cocoa without knowing the complex intricacies of coreaudio. )



    It is quite feasible to place a layer on top of all these technologies which hides them from your average developer. The code could be parsed within the IDE, converted to SVG, HTML, CSS etc and the developer could be oblivious to the underlying technologies that make his creation happen.



    Also, much more thought has been put into SVG, than when the original flash animation format was first created.



    Flash is dead



    Although not quite ready for release, but I have developed a better program to build websites. Much like that layer U mention, and much much more. I saw this need a long long time ago, when I first set out to develop a program to make websites more accessible. Anyway. I knew most programers, including me, hated adding addition code and or additional pages to make a website more accessible. so I developed something like that layer U mention to hide and automate this process. The process also turn out to be a wonderful way to build the whole site this way, and the rest is history. Currently it's called StackSite, but that name may change, because I'll be porting most of this work into a plugin for Dreamweaver and other programs later. I can't say much more then that, but keep a look out for it, because it will change the way websites R built, and the way I believe U want...
  • Reply 59 of 80
    gregalexandergregalexander Posts: 1,400member
    Quote:
    Originally Posted by jasenj1 View Post


    Sure, SproutCore sounds interesting to help developers used to writing code for OS X to carry those thought processes over to the web, but I don't see that as a game changer. Nor do I see the hordes of web developers not following "the Mac Way" suddenly getting religion and adopting this framework just because Apple endorses it.



    Sorry for being a doubter, but right now I see lots of sizzle and not much substance.



    Apple hasn't really told us much about their plans here. I agree though that it seems to only be of interest to developers who already program in Cocoa.



    That said... there are a lot of Cocoa developers, and a lot more now playing with Cocoa for iPhone development.



    Quote:
    Originally Posted by Marvin View Post


    It still doesn't deliver advanced animation like what is capable with Flash. For any kind of animation, it's fairly poor. Even if they could deliver this, there is no WYSIWYG IDE to construct interfaces. It's like the old way of making interfaces in OS 9 without having Interface Builder to drop stuff into place.



    Whatever Apple's plans are, I wouldn't be surprised to see them dovetail with their Quicktime plans.



    When I hear "Cocoa for Windows" I imagine a standard Xcode environment that allows an application to be written for Windows & Mac quite simply. SproutCore doesn't seem to do that (yet!?). If Apple announces an Xcode based development environment for web applications, especially ones that run outside the browser, it will be very interesting for many developers.



    I suspect developers would immediately play with it if they were already Mac or iPhone developers, but only switch if it worked brilliantly. There's not much to entice non-Apple developers until its a released and proven product.



    Oh, and Apple developers won't care if it needs Quicktime to be installed... though it'd be nice to not require anything beyond Javascript.
  • Reply 60 of 80
    aegisdesignaegisdesign Posts: 2,914member
    Quote:
    Originally Posted by GregAlexander View Post


    Apple hasn't really told us much about their plans here. I agree though that it seems to only be of interest to developers who already program in Cocoa.



    That said... there are a lot of Cocoa developers, and a lot more now playing with Cocoa for iPhone development.



    Whatever Apple's plans are, I wouldn't be surprised to see them dovetail with their Quicktime plans.



    When I hear "Cocoa for Windows" I imagine a standard Xcode environment that allows an application to be written for Windows & Mac quite simply. SproutCore doesn't seem to do that (yet!?). If Apple announces an Xcode based development environment for web applications, especially ones that run outside the browser, it will be very interesting for many developers.



    I suspect developers would immediately play with it if they were already Mac or iPhone developers, but only switch if it worked brilliantly. There's not much to entice non-Apple developers until its a released and proven product.



    Oh, and Apple developers won't care if it needs Quicktime to be installed... though it'd be nice to not require anything beyond Javascript.



    Sproutcore isn't 'Cocoa for the Web' in the literal sense you imply above. The Cocoa 'API' isn't there so it's not something current iPhone/Mac Cocoa programmer would use. There's no Interface Builder either.



    What was meant by 'Cocoa for the Web' is that Sproutcore shares some of the same familiar design elements as Cocoa does. It uses the common Model-View-Controller design pattern and it uses an equivalent of Cocoa's bindings. It's architecturally similar rather than being a clone you can just drop existing Objective-C code in and go.



    So, a Cocoa programmer might be more at home with the general programming principles but they've still got to get their head around Javascript, HTML, DOM and CSS in the client and also whatever backend language on the server (Ruby, PHP, Python, Perl etc).



    From my brief look at it, I'd also say 280north's Objective-J and Cappuccino was probably further along that path but perhaps Apple has been sprinkling some magic on Sproutcore behind the scenes and it obviously may do better with Apple behind it than 280north.
Sign In or Register to comment.