or Connect
AppleInsider › Forums › Software › Mac Software › Apple's open secret: SproutCore is Cocoa for the Web
New Posts  All Forums:Forum Nav:

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

post #41 of 81
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.

How is this different than something like extjs or Echo other than it does things in a Cocoa-like way?

I checked the RoughlyDrafted article and didn't see anything of substance beyond maybe: "A key component of its clean MVC philosophy that roots SproutCore into Cocoa goodness is bindings, which allows developers to write JavaScript that automatically runs any time a property value changes." So you can have property watchers and do things when things change without explicitly invoking a function. Sounds nice, not earth-shattering or paradigm shifting or anysuch.

And as aegisdesign pointed out, there's already some competing frameworks in the form of Objective-J/Cappucino and Coherent - so now we have multiple Cocoa-like JavaScript libraries.

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.

- Jasen.

I suspect the site is down because it got carpet bombed as soon as this hit the airwaves.

It is no different than those other frameworks except that is endorsed by by Apple and used to implement the mobileMe suite. That's kind of game over right there.

The greater significance is strategic. I think you are missing the point.
post #42 of 81
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.
Dick Applebaum on whether the iPad is a personal computer: "BTW, I am posting this from my iPad pc while sitting on the throne... personal enough for you?"
Reply
Dick Applebaum on whether the iPad is a personal computer: "BTW, I am posting this from my iPad pc while sitting on the throne... personal enough for you?"
Reply
post #43 of 81
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.
post #44 of 81
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.
post #45 of 81
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.
post #46 of 81
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.
post #47 of 81
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.
My brain is hung like a HORSE!
Reply
My brain is hung like a HORSE!
Reply
post #48 of 81
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.
post #49 of 81
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!
Dick Applebaum on whether the iPad is a personal computer: "BTW, I am posting this from my iPad pc while sitting on the throne... personal enough for you?"
Reply
Dick Applebaum on whether the iPad is a personal computer: "BTW, I am posting this from my iPad pc while sitting on the throne... personal enough for you?"
Reply
post #50 of 81
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
post #51 of 81
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.
post #52 of 81
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.
post #53 of 81
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.
post #54 of 81
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?
My brain is hung like a HORSE!
Reply
My brain is hung like a HORSE!
Reply
post #55 of 81
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!
post #56 of 81
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.
post #57 of 81
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
post #58 of 81
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
post #59 of 81
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...
Robert Stack
Zoshe Foundation
www.zoshe.com
Reply
Robert Stack
Zoshe Foundation
www.zoshe.com
Reply
post #60 of 81
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.
post #61 of 81
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.
post #62 of 81
Sorry, I do realise SproutCore isn't Cocoa for Windows. That's why I said "SproutCore doesn't seem to do that". But we know so little of Apple's plans, I was interested in what was possible.

If Apple wanted to make a web development environment they'd have to add in Xcode & the IDE etc and probably integrate Quicktime in some way. And if they did that, it'd be VERY appealing to many programmers.
post #63 of 81
Quote:
Originally Posted by rbt_stack View Post

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...

Great, I look forward to giving it a whirl. At one point a while back I considered creating an drag n drop wysiwyg IDE and objective c /cocoa esque higher level myself. But I decided it was to much for me to take on given all my other projects.
post #64 of 81
Quote:
Originally Posted by jasenj1 View Post

How is this different than something like extjs or Echo other than it does things in a Cocoa-like way?

ExtJS is a pure JavaScript solution -- you write JavaScript that you send to the client. What I've seen of SproutCore, you write Ruby code that gets compiled into JavaScript prior to deployment.

ExtJs seems to have a lot more widgets and is a lot more mature than SproutCore -- plus it has real market penetration. Hopefully Apple's support will make SproutCore better.

The disadvantage of ExtJs is perhaps that the download size of the framework is huge - 1mb uncompressed, and about 200k gzipped. There is no built-in support for scaffolding. The ExtJS people don't make a big fuss about MVC, but in fact it's very natural and easy to write ExtJS in a MVC model -- the JavaScript is your view, and your controller is JSON that serializes and formats the model data for consumption by the view. The advantage of this is that it's totally standards-based (JSON) and model-agnostic (I've used java persistence as the model). The disadvantage is the lack of scaffolding - without a third-party tool you can't specify a data model and have it generate a controller and view for you.

Another downside is the 'new' license. Before ExtJs 2.1, Ext was dual licensed under an LGPL-like license and a commercial license. As of ExtJS 2.1, it is dual-licensed under GPL and the commercial (paid) license -- so you either make your code GPL or pay up. There were a lot of complaints about this switch on the discussion board. SproutCore has the advantage here since it's MIT-license.

ExtJS LLC also puts out ExtGWT, which is Ext for Google's GWT framework. You write Java code that gets compiled to JavaScript. This is more similar to SproutCore and Ruby.

I don't know anything about Echo -- first I've heard of it. There's also Dojo, which is similar to ExtJs.
post #65 of 81
A: Sorry, but anyone who thinks Flash is dead is completely out of touch with the direction the product is going and hasn't been working with Flash in a long time.

B: Flash should no longer be compared to SVG. It is no longer a vector tool. It's starting to show considerable strength in its ability to process bitmap data and render bitmap effects.

C: Flash like many technologies can be an incredible asset in the right hands, and an incredible abomination in the wrong hands, but with it's ability to do timeline based animation as will as utilizing non timeline object oriented practices, it has become incredibly powerful.

D: The ability to compile from both the Flash IDE, Flex 3, the Flex SDK, as well as the upcoming Thermo software makes it easier for all levels of development to publish to the swf format.

E: From a business perspective, any company in their right mind would PREFER to develop in an existing format that they have been able to reach the most users already. With an existing web based code base, the ability to port over to a mobile environment would reduce development costs.

F: The penetration rate for flash has been rising exponentially for a number of years now. The ability for people to upgrade becomes easier and easier

G: Flash 10/CS4 will introduce a number of new features. 3D will be included in the core architecture as well as more sound capabilities for things such as realtime sound generation and manipulation. Kinematics will also be introduced as well as utilizing hardware processing for quicker rendering.

H: With Adobe releasing the AVM as an open source project more then likely someone will be able to port the rendering engine over and it become a non issue.

I: What version is flash on now? It's matured considerably and with the different environments available to create and compile.

J: I've spoken to Adobe higher ups and they raise their hands when you ask what's happening with Flash on the iPhone. I feel like they are eager and willing to work on something in the middle of Flash Lite and Flash 9.

K: Most of the Javascript engines that deal with motion and try to emulate the visual nature of flash tend to come from, well, Flash.

L: The rise in game development on the flash platform is insane, and the fact that many of the PS3 and other movie games are built natively in Flash shows how easy it is to develop and distribute.

M: Being able to protect your intellectual property is very important to developers and businesses. Flash can be cracked, but it's a million times harder then protecting javasccript code.

Apple is really doing themselves a disservice by trying to reinvent the wheel on this one. They should take notice what an uphill battle Silverlight faces trying to compete with Flash. And from what I have seen of this so called "flash killer" it's not even close to the power of flash in the hands of someone that knows what they are doing. They are going to waste their time trying to get this right while someone comes along and ports the engine over, instead of stepping off their proprietary high horse. And this comes from a life long apple fan.

This shouldn't be a discussion of what's a better technology, it should be a discussion of what is in the best interest of users and developers and businesses as what will have the highest universal reach.


I hope they use both Flash and Sproutcore! :P
post #66 of 81
@djdonovan,

Sproutcore isn't a Flash killer or a Silverlight killer. It has a different purpose. It's for building Web Applications using the whole web browser, not cocooned off in a Flash plugin running inside the browser.

It was a nice defence of Flash but you missed the point - Sproutcore is standards based HTML, CSS and Javascript and doesn't run like a complete pig.

I've got an advert for a car company on the top of the page here just now, in Flash, which has a dog in a car misting up a window. It's caused the fans to come on in my iMac. It's just ridiculous.
post #67 of 81
Quote:
Originally Posted by aegisdesign View Post

@djdonovan,

Sproutcore isn't a Flash killer or a Silverlight killer. It has a different purpose. It's for building Web Applications using the whole web browser, not cocooned off in a Flash plugin running inside the browser.

It was a nice defence of Flash but you missed the point - Sproutcore is standards based HTML, CSS and Javascript and doesn't run like a complete pig.

I've got an advert for a car company on the top of the page here just now, in Flash, which has a dog in a car misting up a window. It's caused the fans to come on in my iMac. It's just ridiculous.

I agree with you on all points. I also suspect the most clicked on link in the internet is "Skip This Page" just prior to another annoying Flash entry page that someone paid a fortune for.
Use duckduckgo.com with Safari, not Google Search
Been using Apples since 1978 and Macs since 1984
Long on AAPL so biased. Strong advocate for separation of technology and politics on AI.
Reply
Use duckduckgo.com with Safari, not Google Search
Been using Apples since 1978 and Macs since 1984
Long on AAPL so biased. Strong advocate for separation of technology and politics on AI.
Reply
post #68 of 81
Quote:
Originally Posted by aegisdesign View Post

I've got an advert for a car company on the top of the page here just now, in Flash, which has a dog in a car misting up a window. It's caused the fans to come on in my iMac. It's just ridiculous.

The problem there however is not that Flash is bad but the way it was used in that instance. If the advert maker uses high res media and does a lot of effects then it will bog down your machine. I have a flash ad running and my dual core Mini is using under 10% CPU (it depends on your browser too - you might want to check if Firefox is having trouble with the gif smilies, the last version I had, gifs really max the CPU under Firefox).

What I can say is that you couldn't do what Flash is doing in those adverts using AJAX, HTML etc. Does that make it a better way forward because it can't do things that people use to annoy you?

I use Flash and I go to great lengths to make it as optimal as possible - I don't use it for advertising but for desktop-like apps and content management. The problem I think lies in the fact that Flash is easier for designers and people who don't care about performance whereas AJAX etc being a developer's tool is largely inaccessible to them.

Until this situation changes, creative people will use Flash creatively. When the situation does change and they eventually manage to get AJAX doing the same heavy animations then you'll still complain because not only will they use a lot of CPU, they'll take even longer to load because they have to load and parse all the Javascript libraries that lets them do that. Plus you won't be able to turn them off by removing a plugin because support will be built into the browser.

Flash is not dead and Flash is not bad, advertisers are bad and use whatever means to get your attention when you don't want to give it to them. But this is hardly news and it didn't start with Flash nor will it end with it.

Sproutcore is most certainly trying to be a Flash/Silverlight competitor as they have a common goal - to produce powerful, cross-platform, desktop-like apps over the internet. Flash and Silverlight just have the animation stuff over and above that with powerful IDEs to tie it all together.
post #69 of 81
Cocoa for the web - what about Quartz for the web? When Apple's web servers recognize Safari they could just speak to it in terms of Quartz drawing instructions. It is a way more powerful compositing engine that HTML/CSS/Javascript and could make kick ass sites.
post #70 of 81
@Marvin,

I partly agree with you in that Flash is often badly optimised and that it has advantages in it's deployment and size making it ideal for advertisers in particular. The dog misting up a window example is probably because the 'developer' is applying a 24bit alpha mask or something silly like that and expecting it updated 60fps.

I also agree that at least initial load times with Javascript, CSS and HTML will be greater although obviously they'll be less once cached.

Where I don't agree though is in how good or bad they are. Flash doesn't use hardware acceleration yet (IIRC they're working on it) whereas Javascript/CSS/HTML does. I don't think either are particularly suitable for compute sensitive graphical applications but I'd rather have Apple's standards based approach than Adobe. Sproutcore pretty much sticks to application UIs and that's definitely the preferred realm of Javascript/CSS/HTML and not Flash. Flash is ok at games and adverts (and SIFR ) and that's where I think it should stick. It's up there with Java for things I avoid when choosing web interfaces.
post #71 of 81
I know nothing about programming, but I do know that Flash deserves to die a horrible death.
The evil that we fight is but the shadow of the evil that we do.
Reply
The evil that we fight is but the shadow of the evil that we do.
Reply
post #72 of 81
Where does it say on Sproutit.com that this is an Apple venture? Sproutcore is from Sproutit and they dont say they are part of Apple. They guy's website http://www.okito.net/ doesn't say he is working for Apple either...
Most of us employ the Internet not to seek the best information, but rather to select information that confirms our prejudices. - Nicholas D. Kristof
Reply
Most of us employ the Internet not to seek the best information, but rather to select information that confirms our prejudices. - Nicholas D. Kristof
Reply
post #73 of 81
Flash is the new Visual Basic.
post #74 of 81
@aegisdesign

I think the general tone of this thread is a comparison between flash and Sproutcore. However, the examples and premise from which the two are being compared here, are not what I'm basing my comparison on. I'm not talking about banners, or annoying flash intros. 99% of the time I encourage a client to avoid using a flash intro for this reason and typically there is really never a need for it. Intros these days are run in a flash based site after homepage is loaded. I.E. an animation with text, etc.. once the page has resolved to it's home state. I don't know of any competent flash developer/designer still making flash intros. While one of the many things Flash has been lacking (which is coming in a more robust dependable way), is the ability for flash to communicate outside of the browser effectively. This is something the Flash community has been pushing Adobe on. However, html, and CSS, can be brought into Flash in it's current state pretty easily and effectively.


My whole point is that, when you are running a Flash application as a self contained unit, there is no need for html wrapping or CSS implementation of a SWF. It would be great to run an entirely Flash based site in a the iPhone browser, but what about stand alone applications? Which brings me to Air. Air is another adobe application that compiles to swf using Actionscript, but is designed for development of stand alone applications. The modern evolution of a flash projector file. In my opinion, the ability to create self contained applications using Air for the iPhone is more important then the ability to run ugly ads and useless flash intros or even well designed and developed Flash based sites. In many respects, with Adobe releasing the Flash engine as open source to the Mozilla group, CSS and html wrapping of a Flash site will eventually disappear and so will the browser window.

Obviously anyone with a lack of understanding of the medium or a lack of design sense is going to abuse it. Case in point the lowermybills ads (which are very effective in the most obnoxious of ways, but that's another thread). You also don't need flash to see this on the web. Regardless, I find most haters of Flash tend to have a dated perception of what it's intended to do.

My point is not a comparison between "Flashturbation" (to quote Geoff Stearns) and Sproutcore, it's about cost effective development, leveraging of existing assets, ubiquity, and enhancing the user interface experience.
post #75 of 81
Quote:
Originally Posted by djdonovan View Post

A: Sorry, but anyone who thinks Flash is dead is completely out of touch with the direction the product is going and hasn't been working with Flash in a long time.

B: Flash should no longer be compared to SVG. It is no longer a vector tool. It's starting to show considerable strength in its ability to process bitmap data and render bitmap effects.

Take a look at HTML5.
http://webkit.org/blog/182/css-reflections/
http://webkit.org/blog/181/css-masks/
http://webkit.org/blog/175/introducing-css-gradients/

Quote:
C: Flash like many technologies can be an incredible asset in the right hands, and an incredible abomination in the wrong hands, but with it's ability to do timeline based animation as will as utilizing non timeline object oriented practices, it has become incredibly powerful.

D: The ability to compile from both the Flash IDE, Flex 3, the Flex SDK, as well as the upcoming Thermo software makes it easier for all levels of development to publish to the swf format.

E: From a business perspective, any company in their right mind would PREFER to develop in an existing format that they have been able to reach the most users already. With an existing web based code base, the ability to port over to a mobile environment would reduce development costs.

F: The penetration rate for flash has been rising exponentially for a number of years now. The ability for people to upgrade becomes easier and easier

G: Flash 10/CS4 will introduce a number of new features. 3D will be included in the core architecture as well as more sound capabilities for things such as realtime sound generation and manipulation. Kinematics will also be introduced as well as utilizing hardware processing for quicker rendering.

H: With Adobe releasing the AVM as an open source project more then likely someone will be able to port the rendering engine over and it become a non issue.

I: What version is flash on now? It's matured considerably and with the different environments available to create and compile.

J: I've spoken to Adobe higher ups and they raise their hands when you ask what's happening with Flash on the iPhone. I feel like they are eager and willing to work on something in the middle of Flash Lite and Flash 9.

K: Most of the Javascript engines that deal with motion and try to emulate the visual nature of flash tend to come from, well, Flash.

L: The rise in game development on the flash platform is insane, and the fact that many of the PS3 and other movie games are built natively in Flash shows how easy it is to develop and distribute.

How about using Open GL and 3D accelerated graphics (Second Life) on a browser without any plugins?

http://www.atoker.com/blog/2008/06/1...e-web-content/

Quote:
M: Being able to protect your intellectual property is very important to developers and businesses. Flash can be cracked, but it's a million times harder then protecting javasccript code.

I agree. But the internet isn't about protection on the user interface front. All your IP is on the backend. If your sensitive logic is on your browser, you are doing something wrong. Besides, software development these days isn't about reinventing the wheel everytime there is a new project, it is about putting together a mash-up of code and applications to meet the requirement. I dare anyone who has done serious development to tell me they haven't referenced the internet for open source code to suit their purpose.

Quote:
Apple is really doing themselves a disservice by trying to reinvent the wheel on this one. They should take notice what an uphill battle Silverlight faces trying to compete with Flash. And from what I have seen of this so called "flash killer" it's not even close to the power of flash in the hands of someone that knows what they are doing. They are going to waste their time trying to get this right while someone comes along and ports the engine over, instead of stepping off their proprietary high horse. And this comes from a life long apple fan.

Ignoring Sproutcore for a second, what Apple seems to be doing is continuing on their succesful formula of enhancing and contributing to the open source community and standards. Yes, they make money by giving that "edge" to open source projects by making them "closed" source -- MIT license... But there isn't a large gap between the two. Look at webkit and Safari for instance. Both of them have evolved significantly after it went open source. It used to suck before.

Quote:
This shouldn't be a discussion of what's a better technology, it should be a discussion of what is in the best interest of users and developers and businesses as what will have the highest universal reach.


I hope they use both Flash and Sproutcore! :P

The next generation of browsers == Universal reach.

The issue is not about killing off Flash. That is a stupid idea and it sounds like something only Microsoft would come up with. It is about frog leaping the competition into the future. You do remember the Flash security vulenerability that left everyone at risk without an ETA of a fix for more than month, don't you? When your user base is as large as the internet, you are really better off with an open sourced, standards based solution which others can contribute to.

Also, Silverlight has nothing to do with Flash. It is an extension of the .NET platform to the browser which also provides good UI facilities.
Most of us employ the Internet not to seek the best information, but rather to select information that confirms our prejudices. - Nicholas D. Kristof
Reply
Most of us employ the Internet not to seek the best information, but rather to select information that confirms our prejudices. - Nicholas D. Kristof
Reply
post #76 of 81
Quote:
Originally Posted by talksense101 View Post

How about using Open GL and 3D accelerated graphics (Second Life) on a browser without any plugins?

http://www.atoker.com/blog/2008/06/1...e-web-content/

Wrong way round. That's a port of webkit for showing HTML inside a 3D application. So you can for example browse a website inside Second Life not so that you can run Second Life in a browser.

Quote:
Originally Posted by talksense101 View Post

the internet isn't about protection on the user interface front. All your IP is on the backend. If your sensitive logic is on your browser, you are doing something wrong.

Most of the information on the backend looks fairly similar. The uniqueness comes from how you present and handle the information. Take for example HTML editors like FCKeditor or Tiny MCE - all javascript. That's great for me as a developer who wants to use that component but not great if I wrote it and want to protect all the hours of work that went into making it a very powerful tool.

Quote:
Originally Posted by talksense101 View Post

Besides, software development these days isn't about reinventing the wheel everytime there is a new project, it is about putting together a mash-up of code and applications to meet the requirement. I dare anyone who has done serious development to tell me they haven't referenced the internet for open source code to suit their purpose.

There's a difference between giving people the option to open source code and having no option. Javascript gives you no options besides obfuscation, which can make life difficult during debugging. Imagine if developers of apps like Photoshop had an option to use an open scripting language. Do you think in a million years they would use it? And yet we are supposed to develop desktop-like apps using it.

Quote:
Originally Posted by talksense101 View Post

Look at webkit and Safari for instance. Both of them have evolved significantly after it went open source. It used to suck before.

The next generation of browsers == Universal reach.

The limitations in Javascript remain though whether or not open standards are better for accessibility, security, reliability etc.

I don't think anybody is saying it's a bad thing for Apple to do this, just that it's not enough to make truly desktop-like web apps.
post #77 of 81
Quote:
Originally Posted by ascii View Post

Cocoa for the web - what about Quartz for the web? When Apple's web servers recognize Safari they could just speak to it in terms of Quartz drawing instructions. It is a way more powerful compositing engine that HTML/CSS/Javascript and could make kick ass sites.

To have Quartz for Safari requires the entire Yellow Box backend. That's counterproductive when your goal isn't to help Microsoft make Windows a better environment.
post #78 of 81
First of all, in general terms, the focus on "killing" Flash or any competing product is dumb. It's what has caused Microsoft to make most of their worst mistakes and squander an insuperable market position. Apple (finally) understands that the path to success is a laser focus on making the best deliverable products you can make.

I'm not sure that the comparisons to Flash are helpful either. As a number of posters have explained in great detail, Flash is not addressing the same problem domain. As a few more have pointed out, it's too early to really tell what Apple is going to do with this. There are a few givens.

First, they've snapped up Coherent as well as its lead developer, so they're not sticking to just SproutCore.

Second, they appear to have learned from Microsoft that no matter how theoretically pretty your libraries are, you really lure developers by pampering them with great tools. So I fully expect that once this sprout has finished germinating, the nascent tools that the WebKit guys are developing will blossom into a full-fledged IDE, perhaps even linked into Project Builder. The cool thing is that WebKit's tools, like Drosera, are themselves written with web standard technologies, so that even the web application development environment is a web application. That's eating your own dog food.

Third, none of this is an attempt to kill Flash. They have something they want to get done. They probably prefer not to depend on anyone else's black boxes to enable their platforms, which makes perfect sense, but it's not like they're going to block Adobe from releasing Flash for the iPhone, or stop distributing or sabotage the Flash plugin for Safari. If the rumor is true and Apple is extending desktop-like application development to the web then of course they will want it to be based either on technology they control or on open standards. That is not mutually exclusive with Flash, and in fact if Apple and Adobe have two neurons between them they will ensure that their technologies work well together.
"...within intervention's distance of the embassy." - CvB

Original music:
The Mayflies - Black earth Americana. Now on iTMS!
Becca Sutlive - Iowa Fried Rock 'n Roll - now on iTMS!
Reply
"...within intervention's distance of the embassy." - CvB

Original music:
The Mayflies - Black earth Americana. Now on iTMS!
Becca Sutlive - Iowa Fried Rock 'n Roll - now on iTMS!
Reply
post #79 of 81
It's unfortunate that we're even mentioning Flash here but I guess that's what happens when you get f-wits like Daniel writing pieces. He's done well though, causing a stink about Sproutcore v Flash all over the net.

I still fail to see why Sproutcore is being compared to Flash. You may as well be comparing Rails and Flash.
post #80 of 81
Quote:
Originally Posted by aegisdesign View Post

I still fail to see why Sproutcore is being compared to Flash. You may as well be comparing Rails and Flash.

As I said earlier, they have a common goal - to produce powerful, cross-platform, desktop-like apps over the internet.

In a way what you're saying is what we're saying too. Sproutcore is not comparable to Flash because it isn't powerful enough. It's just a Javascript framework like Rails is just a framework though JS is even more limited than Rails. Sproutcore even needs Rails to work.

But that then brings us to the point that if it's not comparable to Flash because of the fact it isn't powerful enough then why is it getting any publicity at all? What does Sproutcore really bring to the table that isn't already here with the likes of prototype, mootools and so on? Simply that it only seems to deploy the JS you need, making it more optimal? Maybe that the coding language is similar to OBJ-C (like the majority of us need that to happen )?

The main thing that interests me is the automated server interaction. I use AJAX quite a bit and having to do the whole round trip to the server manually can be tedious. But it's hardly revolutionary and at the end of the day if we have to suffer things like this:

http://www.sproutcore.com/static/sc_docs/

(I'm referring to the insanely slow divider dragging - it isn't using frames yay, so now we can have our CPUs spike doing basic interface maneuvers. And people complain about Flash bogging their computer down) then it's uses are still going to be limited and it won't deliver the desktop-like experience it claims. Improved Javascript engines will help but so far all I see is very slowly evolving web technology trying to play catch up to more advanced APIs.
New Posts  All Forums:Forum Nav:
  Return Home
  Back to Forum: Mac Software
AppleInsider › Forums › Software › Mac Software › Apple's open secret: SproutCore is Cocoa for the Web