Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the health-check domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home2/bradbecker/public_html/blog/wp-includes/functions.php on line 6121

Warning: Cannot modify header information - headers already sent by (output started at /home2/bradbecker/public_html/blog/wp-includes/functions.php:6121) in /home2/bradbecker/public_html/blog/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home2/bradbecker/public_html/blog/wp-includes/functions.php:6121) in /home2/bradbecker/public_html/blog/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home2/bradbecker/public_html/blog/wp-includes/functions.php:6121) in /home2/bradbecker/public_html/blog/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home2/bradbecker/public_html/blog/wp-includes/functions.php:6121) in /home2/bradbecker/public_html/blog/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home2/bradbecker/public_html/blog/wp-includes/functions.php:6121) in /home2/bradbecker/public_html/blog/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home2/bradbecker/public_html/blog/wp-includes/functions.php:6121) in /home2/bradbecker/public_html/blog/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home2/bradbecker/public_html/blog/wp-includes/functions.php:6121) in /home2/bradbecker/public_html/blog/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home2/bradbecker/public_html/blog/wp-includes/functions.php:6121) in /home2/bradbecker/public_html/blog/wp-includes/rest-api/class-wp-rest-server.php on line 1896
{"id":63,"date":"2008-08-16T06:39:12","date_gmt":"2008-08-16T11:39:12","guid":{"rendered":"http:\/\/scarynoises.com\/blog\/?p=63"},"modified":"2008-08-16T06:39:12","modified_gmt":"2008-08-16T11:39:12","slug":"flash-html-ajax-which-will-win-the-web-app-war","status":"publish","type":"post","link":"http:\/\/scarynoises.com\/blog\/archives\/2008\/08\/flash-html-ajax-which-will-win-the-web-app-war.html","title":{"rendered":"Flash, HTML, Ajax: Which will win the Web app war?"},"content":{"rendered":"

I ended up being quoted a few times in this recent article about modern web app technologies. I\u2019ll provide a bit more context here.<\/p>\n

\n

\u2026Microsoft sees things differently, believing that programmers are best off ditching HTML and JavaScript as soon as Web applications start getting rich.<\/p>\n

"It’s amazing what people have done with HTML, which was never intended to do rich Internet applications. And Flash was originally created for lightweight animation–literally for Mickey Mouse on the Web," said Brad Becker, who as group product manager for rich client platforms at Microsoft helps oversee Silverlight. "But these technologies were designed for something else, and people are really hacking them to do more\u201d<\/p>\n<\/blockquote>\n

Each of these technologies had an original purpose that it was intended to fulfill and I believe all of them are good at doing what they were intended to do. This point is something I hope people really think about. It reminds me of the fact that I once sawed a branch off a tree with the little saw on my Swiss Army knife. Once. <\/p>\n

Flash began as \u201cSmart sketch\u201d and then became \u201cFutureSplash Animator\u201d and then \u201cFlash\u201d. It\u2019s a tablet sketch app, tweaked to become a lightweight web animation player, that\u2019s had coding bolted on to it. It\u2019s completely optimized around animation and does a great job with traditional cartoon animation on the web. When you dive deep into a Flash app though, you\u2019re still knee deep in \u201cmovie clips\u201d, \u201ctimelines\u201d, and \u201cframes\u201d. Makes perfect sense for animation but it\u2019s a bizarre model to build applications on top of.<\/p>\n

HTML was designed to present hypertext. The first version didn\u2019t even have an image tag, let alone support for the sort of things people are doing today with AJAX. And when it comes to hypertext (with images or not), HTML is still king. Adding JavaScript can enable better user experiences but at great cost to developers. <\/p>\n

\n

Just because Google is doing something doesn’t mean it’s the right way, though, Becker said. "If you look at Google Apps, they’re doing great things, but how many shops out there have the Ajax chops that Google does?"<\/p>\n<\/blockquote>\n

Small bits of AJAX are easy to put together. True RIA\u2019s are hard. \u201cdivs\u201d, \u201cparagraphs\u201d, and JavaScript-overridden hyperlinks are strange building blocks for RIA\u2019s that aren\u2019t page based hypertext documents. There are good frameworks out there that abstract away some of this misalignment (including our very own AJAX framework for ASP.NET) but frameworks can only abstract so much without impacting performance and flexibility. And a lot of businesses are rolling their own frameworks which is usually a wasted effort–maintaining a framework to keep up with multiple versions of multiple browsers is a lot of busy work that could instead be spent building the actual apps your customers need. <\/p>\n

I\u2019ve built true RIA\u2019s in AJAX, I\u2019ve built them in Flash. These project were completed successfully but it was a lot like sawing that tree with the Swiss Army knife. Flash and HTML are great at what they were intended for but they\u2019re both convoluted when it comes to building real applications. There\u2019s good news though; things don\u2019t have to be so hard:<\/p>\n

\n

That’s exactly what Becker promises. "We’re going to be iterating pretty quickly, and each version is going to add new features and functionality," Becker said. The final version of Silverlight 2 will be released later this year, added Brian Goldfarb, group product manager for developer platforms at Microsoft.<\/p>\n<\/blockquote>\n

This has been a very nice surprise for me\u2014how quickly Microsoft has been able to innovate with Silverlight and deliver stable iterations of the platform. That\u2019s because we took a decade of experience from .NET and Windows Media and used that expertise to build a modern platform that was designed for today\u2019s rich web applications and media experiences. It\u2019s the only platform out there that was actually designed for building modern web applications. <\/p>\n

Flash, HTML, Ajax: Which will win the Web app war? | Business Tech – CNET News.com<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"

I ended up being quoted a few times in this recent article about modern web app technologies. I\u2019ll provide a bit more context here. \u2026Microsoft sees things differently, believing that programmers are best off ditching HTML and JavaScript as soon as Web applications start getting rich. "It’s amazing what people have done with HTML, which […]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,5,3,13],"tags":[18],"class_list":["post-63","post","type-post","status-publish","format-standard","hentry","category-flash","category-flex","category-news","category-silverlight","tag-silverlight-flash-ajax"],"_links":{"self":[{"href":"http:\/\/scarynoises.com\/blog\/wp-json\/wp\/v2\/posts\/63","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/scarynoises.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/scarynoises.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/scarynoises.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/scarynoises.com\/blog\/wp-json\/wp\/v2\/comments?post=63"}],"version-history":[{"count":1,"href":"http:\/\/scarynoises.com\/blog\/wp-json\/wp\/v2\/posts\/63\/revisions"}],"predecessor-version":[{"id":262,"href":"http:\/\/scarynoises.com\/blog\/wp-json\/wp\/v2\/posts\/63\/revisions\/262"}],"wp:attachment":[{"href":"http:\/\/scarynoises.com\/blog\/wp-json\/wp\/v2\/media?parent=63"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/scarynoises.com\/blog\/wp-json\/wp\/v2\/categories?post=63"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/scarynoises.com\/blog\/wp-json\/wp\/v2\/tags?post=63"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}