I develop online learning experiences for users. These tend to involve some kind of interactive UI that enables the user to view content and interact with it in the form of simulations, tests and assessments of some kind, and tracking/session management stuff aka bookmarking.
These experiences are generally one time experiences with little repeating. They sometimes want to be reused extensively, but to me the quality of learning tends to go down with extensive reuse even though it does save some money. I have had the fortune of working on projects that really push the envelope and make memorable and intriguing first impressions for the learners and have a proven rate of retention and ROI for my customers. My latest opportunity at SweetRush as CTO is no exception, and Ive been able to work with some of the best folks in my career on designing and developing training content for some very impressive and demanding clients.
Although I can certainly build these projects using non-Adobe Flash IDE (Integrated developer environment), I really enjoy working inside the flash IDE because its where I started, and creatively its a wonderful tool to use. I tend to write all my code inside the flash IDE on projects where I'm the sole programmer/creative and decouple the scripts from the artwork using simple includes on projects where I'm the sole programmer but not the artist. I find this approach enables me to work very fast, and build projects that function reliably with few if any bugs out the gate.
My type A approach is fairly simple. I use the timeline as a logical flow line (a hold over from my initial training in authorware) Starting with the first few frames as preload/init frames, then dividing the user experience into what I call "action points" where some code gets executed to display some content, provide a small game or what have you. Then users can visit the AP's in any order, loop through them incrementing a value (like using 1 AP to display a question, but using another AP as a count incrementing element that just loops back to the question display AP until all the questions are done, at which point it then moves to the next logical AP).
Then by the AP's , I can set bookmarking logic to each of them as well as garbage collection, necessary inits and component/class instantiation. This allows me to use the timeline to visually layout the user experience and enables an animator who is unfamiliar with code but knows how to move keyframes around to have the ability to change the logical flow without editing code. The flash IDE provides all the objects, the library of components, and types of symbols I can provide the animator to tweak, change or even discover how programming essentially works in an environment that is familiar to them.
As a general rule of thumb, if a segment of code in a particular AP becomes more than a few hundred lines, or that code is getting reused in other spots, it becomes clear I need to move that code to the first frame where I put all my globals. I tend to have all the global variables, functions, and common data defining/parsing logic there. I also like to push all dynamic text and content URI's out to an external XML file that always gets loaded as a global to be used anywhere in the application.
I find the flash IDE endlessly flexible in this regard. I can visually represent objects as movie clips each of which can be visual or not, and can carry out functions, or just hold functions for use by other movie clips or the main timeline. Being able to make any code anywhere behave as a visual object definitely has its advantages.
Of course, one can write endlessly messy code that is nearly impossible for others to navigate in the flash IDE, so its important to be very consistent in keeping the library neat, the main timeline reserved only for logical flow and any artwork/animation to be encapsulated and contained to a specific and well labelled layer with instance names that allow it to be controlled externally.
Other advantages are the integration of the compiler in that you don't have to jump through several file settings or create elaborate folder structures with strict names on the computer to work, you can do it all inside the highly optimized work environment of the flash IDE. No need to find compilers, and moving/renaming MC's or "classes" is all monitored and tracked by the IDE so there is no need to update paths.
All this makes for very rapid application development. Provided a disciplined approach is taken, I have found one can use the flash IDE to make very flexible, very reusable and very powerful applications all with the built in power of handing the file to non-programmers to tweak art/animation/sound aspects within the same working context.
I think a primary perceived disadvantage is the reliance on the IDE vs being able to pull out the code and edit it using a text editor or source code editor of choice. While there are hundreds of thousands of flash coders like myself who feel completely comfortable implementing what could be considered "valid design patterns" inside the flash IDE, I think there are also a lot of detractors who feel that the flash IDE represents a step backward or is a tool that does not have the capabilities of a tool like Flex, for example.
I would challenge anyone to building something in Flex that I couldn't build in the flash IDE, and have it work equally as reliably, and be equally as flexible and scalable, provided other coders had access to the IDE as well for the bits that were non xml or external script.
That said, I can clearly see a few issues / disadvantages to the IDE.
1. The IDE is too permissive, in that you can use untyped variables, haphazardly scope variables and functions, and put code anywhere making it difficult to find.
- all of these are true, but they are not the rule. Any disciplined coder can write bad code in any environment. I think the need for discipline and neatness becomes heightened in the flash IDE, but I also think visually the ability to lay out an application clearly is greatly enhanced in a visual programming environment like flash. Its not as literal as author ware where you had a literal vertical line and you could drop logical objects on the line with visual loops, visual branching all iconically represented, but its similar in power.
I think of it as the difference between looking at pages and pages of VRML textually representing a 3d model, or the 3d model itself. If you can "see" the 3d model when looking at the code, wow, good for you...but you can't argue that actually seeing the 3d model itself fully rendered gives you a different perspective and often illuminates problems that a human couldn't possibly perceive when looking just at text.
That, to me, is the main difference. I like to represent code iconically, and the flash IDE/timeline allows me to do that, and just as looking at a rendered model enables me to see the object as it is, so the IDE enables me to see what I'm doing as I'm doing it rather than furiously writing incredibly elegant looking code-all indented and outdented perfectly with inline class autofilling...I can actually see the end result, the user's experience, as I'm writing it. (not quite exactly...but certainly closer than when I'm writing an app in Flashdevelop or some equivalent).
As a career coder I think its important to know a little bit about all the approaches, and to not think one is necessarily better than others as long as the primary stated goals are met, and try to apply best practices wherever they may apply across languages. If I write in Ruby, Java, Python, C++ or what have you and can learn something from a timeline / visual developer then great...and vice versa.
So why so defensive? I think that flash has branched out to make its technology more palatable and familiar to those coming from a traditional OOP background, and created Flex/Flash builder for that very reason. The sense, however is that somehow meant that Adobe was "admitting" that the flash IDE was somehow a failure and that Flash Builder was the superior step in evolution of the product. If that was true, of course, the flash IDE would have been phased out or at least severely "dumbed down" in order to push developers towards FB. I certainly felt that way and it pushed me to learn to do strict OOP, embracing a class/inheritance/interface approach and writing some fairly sophisticated projects in flash builder. After really getting down that rabbit hole I came out the other side thinking that there was a lot of what I considered unnecessary complication with that approach, and that while I thought it certainly made sense for some kinds of projects like the one I was working on for example, I didn't think it necessarily was the be all, end all approach for all projects.
One very interesting development is the advent of the javascript/html animation tool Adobe Edge. Over the past couple of weeks I had to build a project using Edge with some serious tweaking and I found that even though the product is in beta, and its buggy, I really enjoyed using it and appreciated the ability to edit the source files and find most of my edits were retained in the IDE, with only a couple of minor exceptions. So far, Edge looks a lot like the flash IDE, the only notable difference being the timeline works in seconds rather than in frames. But, like the flash IDE, I can place code on a timeline or all in one place at the beginning, reference external code, and use the timeline to trigger/organize events that can also be manipulated by animators.
I think the Edge tool, either merged with flash IDE or kept as a separate tool will ultimately continue the legacy and impact of timeline coders, perhaps to the ire of OOP programmers but I certainly hope to see more interoperability among skillets and disciplines rather than an eventual monoculture of development.
Finally, on a creative level the IDE enables animators to "see" code, and coders to "see" artwork. I think if animators stick to tools like illustrator and photoshop, they will never get "rich media". I also think the same is true for programmers that wall themselves up in code. The flash IDE is the glasnost, the common ground where folks from an artistic background and those from a programming background are forced to literally work in the same environment and gain a very intimate understanding of each other's work. The best stuff I've seen in flash has been built by coders who were also amazing artists and animators, who really understood fluid motion dynamics, colour, font design, traditional animation technique, photography, bit mapping, sound editing and mixing, and of course were excellent programmers who really had a grasp of OOP. While these "one hit wonders" are tough to come by, I think the flash IDE provides the opportunity for a collective to "get inside each other's heads" and become that one mind that can then, collectively, become more than any individual team member can.
Showing posts with label Apple. Show all posts
Showing posts with label Apple. Show all posts
Monday, December 26, 2011
Saturday, May 1, 2010
The future as I see it...HTML 5? Flash? whatza whooza?
I see Flash/Actionscript it as I've always seen it, a specialized UI tool for building rich internet applications, and there isnt anything else on the market that accomplishes this task as well as flash at the moment - and in the forseeable future. Should something come along that does it better, I have no particular loyalty to Adobe and would be the first to embrace the new technology, in fact, for the latest stuff I have been building flash files in non-adobe products for the most part, only using the free flash compiler that comes with the flex sdk to do my compiles - but I could be using something else if I felt it was worth the effort.
I think if Adobe is smart, they have an opportunity to blur the lines between HTML 5, flash, and anything else by simply making an authoring tool that compiles to any format, and even player technology or scripts that interpret flash to HTML 5 and back on the fly. This would effectively end the debate of HTML5/flash, and render "player technology" irrelevant, which it pretty well already is since flash is embedded so deeply in most browsers outside of the iFamily. End users dont care if their games are HTML5, flash, javascript or whatever, the only people who care are developers, so the drama continues. Adobe clearly realizes it is not in the "plug in" business, it is in the authoring tool business, so their authoring tools should continue to output in every possible format for every possible platform, the only limitation being the platforms and formats themselves. Adobe is in a better position than most companies, it knows how to write RIA authoring tools better than anyone, hell, it invented the concept. Adobe is capable of being so flexible, no other large corporation can really hurt it. For example, Apple said no flash on iPad. So, adobe makes a compiler within a few days that authors app store compliant software for the iPad. Apple gets angry, and responds by blocking any content that is authored by flash cs5. This is ridiculous, because you can bet almost every visual on the apple platform was partially designed using an adobe product, including the hardware. Apple has succeeded in making itself look like an immature baby, and Adobe simply says "fine, we did everything reasonable, and if you want to act retarded, we simply will focus our energy on another platform...android". Apple thinks they've beaten adobe...ha ha. Adobe's dreamweaver is CURRENTLY the best authoring tool for HTML 5, which Apple believes is competition to Adobe. Again, ha ha. Adobe outputs in SVG (HTML5's parent technology) - which Adobe essentially invented, and compiling html 5 from the flash authoring system is actually very logical, and flash CS5 will likely be the #1 choice for making html 5 canvas based content. Apple makes more money than Adobe, but they dont get content authoring like Adobe does. Neither does Microsoft for that matter.
What I am suggesting means that if a user who does not have a flash capable browser visits a flash site, the site could, on the fly, prepare an HTML 5 version for them automatically. This is not difficult, or particularly processor intensive, as it would only need to be done once for the particular platform. A "flash to html5" converter could reinterpret almost any flash site into HTML 5 automatically, so the legacy content would all continue to work without a hitch, and new content could be published directly to HTML 5. That is why HTML 5 is not the future. The future is..."who cares technology", IE the path of least resistance, lowest cost.
If I am an animator and it will take me 25 weeks to produce a cartoon in HTML 5 vs 2 hours in flash, there is no contest. If I can output in both formats with a 1 button publish, then there is no debate, not even a conversation about it. My animation will work on old browsers, new ones, iPads, apeDods and dewDads. THAT is the future, I believe. Whatever is cheapest, easiest, and gets the nerd junk out of the way so creatives can express without having to ftp the htp and mno the qrs. Html whatsit? Flash-a-who-eee?
There will always be a need for niche, customized software in spite of all the attempts by the drupals and nings of the world to provide an easy button because if something is too easy, it becomes nearly impossible to differentiate yourself from everyone offering the same product for free. So in this respect, the best language for the job will be the tool of choice, and right now the clear winner is OOP ECMA. All modern languages are ECMA compliant, and the others are dropping off because they are hard to use and clumsy in comparison, like Objective C, C, C++, Perl, PHP, etc. are the "olden days" and ECMA represents the modern languages like C#, Javascript and its growing libraries, Actionscript 3 etc, all of which can now be authored in eclipse. Again, path of least resistance for developers. I can write in ECMA languages for pretty well every platform, and they are all standard compliant, so the only difference is the compiler/player, which, quite frankly, I dont give a damn about. For me to publish our LMS in HTML 5 in two years, I likely wont have to rewrite any code, there will simply be another checkbox for "output to html5" and voila, done. Company saves millions, and I can concentrate on adding features instead of trying to comply with a non standardized language to rewrite everything...which is incredibly inefficient. ECMA is the "english" of the programming language world, and its already won. Javascript, jQuery, C#, and Actionscript 3 are all together on that front.
They used to say "content is king". I imagine that is still the case, and the amount of flash content out there that is in flash is massive, several orders of magnitude more than what is contained in the "app store". At the same time, only some of that content is video based and can be easily converted to HTML 5 for the iPad/iPhone. Its much easier to write a translation tool than to redo all that content, so that is most likely what is going to happen. Check out www.homestarrunner.com on your iPad for example. Those guys will NEVER spend the time and energy to convert 3 years worth of weekly flash episodes to HTML 5 manually, but a converter would take care of it instantly. The ONLY thing stopping a converter from being made is HTML 5 itself. The format simply isnt ready to handle the complexity required by that content to render properly, but you can bet the second it is ready, some free converter will be available and it will all run smoothly everywhere. For Steve Jobs and the iFamily's sake, that will hopefully happen sooner than later, otherwise many consumers will drop their iFamily product in favor of Android or whoever offers a full flash player because they can get all the app store games for free, as well as all the legacy flash content out there that will likely never be converted to HTML 5 manually. "If I can get "boob shake" app that Apple refuses to allow in its app store on Android for free without having to use iTunes or sign any kind of confining DCMA and basically remain anonymous...well, my iPod touch is going in the bin of old adapters and pocket pcs." says joe daily show fan.
Sorry about the long post, of course, but the issues here are complex and intertwined.
I think if Adobe is smart, they have an opportunity to blur the lines between HTML 5, flash, and anything else by simply making an authoring tool that compiles to any format, and even player technology or scripts that interpret flash to HTML 5 and back on the fly. This would effectively end the debate of HTML5/flash, and render "player technology" irrelevant, which it pretty well already is since flash is embedded so deeply in most browsers outside of the iFamily. End users dont care if their games are HTML5, flash, javascript or whatever, the only people who care are developers, so the drama continues. Adobe clearly realizes it is not in the "plug in" business, it is in the authoring tool business, so their authoring tools should continue to output in every possible format for every possible platform, the only limitation being the platforms and formats themselves. Adobe is in a better position than most companies, it knows how to write RIA authoring tools better than anyone, hell, it invented the concept. Adobe is capable of being so flexible, no other large corporation can really hurt it. For example, Apple said no flash on iPad. So, adobe makes a compiler within a few days that authors app store compliant software for the iPad. Apple gets angry, and responds by blocking any content that is authored by flash cs5. This is ridiculous, because you can bet almost every visual on the apple platform was partially designed using an adobe product, including the hardware. Apple has succeeded in making itself look like an immature baby, and Adobe simply says "fine, we did everything reasonable, and if you want to act retarded, we simply will focus our energy on another platform...android". Apple thinks they've beaten adobe...ha ha. Adobe's dreamweaver is CURRENTLY the best authoring tool for HTML 5, which Apple believes is competition to Adobe. Again, ha ha. Adobe outputs in SVG (HTML5's parent technology) - which Adobe essentially invented, and compiling html 5 from the flash authoring system is actually very logical, and flash CS5 will likely be the #1 choice for making html 5 canvas based content. Apple makes more money than Adobe, but they dont get content authoring like Adobe does. Neither does Microsoft for that matter.
What I am suggesting means that if a user who does not have a flash capable browser visits a flash site, the site could, on the fly, prepare an HTML 5 version for them automatically. This is not difficult, or particularly processor intensive, as it would only need to be done once for the particular platform. A "flash to html5" converter could reinterpret almost any flash site into HTML 5 automatically, so the legacy content would all continue to work without a hitch, and new content could be published directly to HTML 5. That is why HTML 5 is not the future. The future is..."who cares technology", IE the path of least resistance, lowest cost.
If I am an animator and it will take me 25 weeks to produce a cartoon in HTML 5 vs 2 hours in flash, there is no contest. If I can output in both formats with a 1 button publish, then there is no debate, not even a conversation about it. My animation will work on old browsers, new ones, iPads, apeDods and dewDads. THAT is the future, I believe. Whatever is cheapest, easiest, and gets the nerd junk out of the way so creatives can express without having to ftp the htp and mno the qrs. Html whatsit? Flash-a-who-eee?
There will always be a need for niche, customized software in spite of all the attempts by the drupals and nings of the world to provide an easy button because if something is too easy, it becomes nearly impossible to differentiate yourself from everyone offering the same product for free. So in this respect, the best language for the job will be the tool of choice, and right now the clear winner is OOP ECMA. All modern languages are ECMA compliant, and the others are dropping off because they are hard to use and clumsy in comparison, like Objective C, C, C++, Perl, PHP, etc. are the "olden days" and ECMA represents the modern languages like C#, Javascript and its growing libraries, Actionscript 3 etc, all of which can now be authored in eclipse. Again, path of least resistance for developers. I can write in ECMA languages for pretty well every platform, and they are all standard compliant, so the only difference is the compiler/player, which, quite frankly, I dont give a damn about. For me to publish our LMS in HTML 5 in two years, I likely wont have to rewrite any code, there will simply be another checkbox for "output to html5" and voila, done. Company saves millions, and I can concentrate on adding features instead of trying to comply with a non standardized language to rewrite everything...which is incredibly inefficient. ECMA is the "english" of the programming language world, and its already won. Javascript, jQuery, C#, and Actionscript 3 are all together on that front.
They used to say "content is king". I imagine that is still the case, and the amount of flash content out there that is in flash is massive, several orders of magnitude more than what is contained in the "app store". At the same time, only some of that content is video based and can be easily converted to HTML 5 for the iPad/iPhone. Its much easier to write a translation tool than to redo all that content, so that is most likely what is going to happen. Check out www.homestarrunner.com on your iPad for example. Those guys will NEVER spend the time and energy to convert 3 years worth of weekly flash episodes to HTML 5 manually, but a converter would take care of it instantly. The ONLY thing stopping a converter from being made is HTML 5 itself. The format simply isnt ready to handle the complexity required by that content to render properly, but you can bet the second it is ready, some free converter will be available and it will all run smoothly everywhere. For Steve Jobs and the iFamily's sake, that will hopefully happen sooner than later, otherwise many consumers will drop their iFamily product in favor of Android or whoever offers a full flash player because they can get all the app store games for free, as well as all the legacy flash content out there that will likely never be converted to HTML 5 manually. "If I can get "boob shake" app that Apple refuses to allow in its app store on Android for free without having to use iTunes or sign any kind of confining DCMA and basically remain anonymous...well, my iPod touch is going in the bin of old adapters and pocket pcs." says joe daily show fan.
Sorry about the long post, of course, but the issues here are complex and intertwined.
Thursday, April 29, 2010
Steve Job's perpetuates 6 myths about flash.
Here is a link to an engadget article including Steve Job's press release. (Press the "show press release button" at the bottom of the article...dumb, I know.)
Here are my points in response to the 6 points highlighted in the article.
1. "Flash isnt open" - it is actually. Its been open source for years, and there are hundreds of free tools out there that can create .swf files. The swf file spec is not ruled by a committee of volunteers, but that is likely why it has evolved so quickly, and why HTML 5 has effectively stalled. Check out "papervision.org" for a good example, or the "open screen project" at Adobe.
2. "50,000 apps are an effective replacement for the web's flash games" - well not really.
a)Flash game content is not controlled by a single governing body, so one can develop for the flash platform without fear of having their work blocked, censored, or taken offline by a centralized distribution force. IE if I spend $150K on some RIA using flash, Adobe cant shut me down arbitrarily as Apple has been doing to app developers. This means innovation will still happen on the flash side, and apps will copy.
b)Not all flash content out there is "games". There are literally thousands of flash based UI's for business applications, training, and content management. Many of these are behind corporate firewalls, only accessible to customers or internal employees. This is UI that is dependent on the capabilities of flash including rapid prototyping, object oriented class structure, and code sharing and management for scaling business needs. Flash can be the entire UI, or small bits here and there depending on the platform, but has far more robust support for security and tracking to a greater level of detail than any HTML or Javascript based technology.
3. "Reliability on the mac" - Adobe claims Apple consistently blocks adobe from having low level access to their systems, access that is necessary to optimize flash for them. Adobe flash VM2 supports h.264, so there is no technical advantage to HTML 5 even in that respect.
4. "Battery Life" see #3. Intel based PC's have solved the issue by including flash friendly hardware rendering. This, again, is a myth perpetuated by Apple apparently for its own petty self-interest.
5. "Touch not supported". EVERY UI technology currently assumes a keyboard and mouse. Every UI technology can be used to react appropriately to touch. This has absolutely nothing to do with flash in particular, it has to do with shifting all UI technology to support a touch based environment. Touch is simply a new set of UI events that need to be accounted for. Touch does not compete with keyboard/mouse, it augments. Many things are still a lot easier to do with keyboard / mouse than with touch. The idea that touch by itself is somehow the next "evolution" of UI is idiotic. I cant imagine typing this letter, for example, on my iPod.
6."Third party vs Apple's quality (I guess?)" What he appears to be indicating here is that Big Brother AKA apple knows what is best, and small, independent businesses are unreliable and incapable of providing quality tools. Adobe has a pretty good track record of providing the best and most popular tools for creativity that exist, and so I'm not sure how this is a point at all.
This latest trend for Apple seems to be shaping up as a battle for domination of the web by Steve Jobs, who appears to be taking an all or nothing stand where Apple is in 100% control of all online business, or they won't participate.
I think its important for developers to have HTML 5 based alternatives to flash only sites, and consider the app universe and exciting prospect for new business, as well as touch and other technologies it brings up. What upsets me is the closed nature of the Apple business model. As a consumer, I enjoy the ability to have windows media player, apple itunes, and google chrome all running on the same PC at the same time. Flash does not block HTML 5, or silverlight, or DHTML, or any other technology. It is simply another choice in a free society that enables innovation.
Apple's fight to kick everyone out of the sandbox and be the only one there is perplexing and seems uncharacteristically short sighted. I certainly hope they find a way to change their policy.
Here are my points in response to the 6 points highlighted in the article.
1. "Flash isnt open" - it is actually. Its been open source for years, and there are hundreds of free tools out there that can create .swf files. The swf file spec is not ruled by a committee of volunteers, but that is likely why it has evolved so quickly, and why HTML 5 has effectively stalled. Check out "papervision.org" for a good example, or the "open screen project" at Adobe.
2. "50,000 apps are an effective replacement for the web's flash games" - well not really.
a)Flash game content is not controlled by a single governing body, so one can develop for the flash platform without fear of having their work blocked, censored, or taken offline by a centralized distribution force. IE if I spend $150K on some RIA using flash, Adobe cant shut me down arbitrarily as Apple has been doing to app developers. This means innovation will still happen on the flash side, and apps will copy.
b)Not all flash content out there is "games". There are literally thousands of flash based UI's for business applications, training, and content management. Many of these are behind corporate firewalls, only accessible to customers or internal employees. This is UI that is dependent on the capabilities of flash including rapid prototyping, object oriented class structure, and code sharing and management for scaling business needs. Flash can be the entire UI, or small bits here and there depending on the platform, but has far more robust support for security and tracking to a greater level of detail than any HTML or Javascript based technology.
3. "Reliability on the mac" - Adobe claims Apple consistently blocks adobe from having low level access to their systems, access that is necessary to optimize flash for them. Adobe flash VM2 supports h.264, so there is no technical advantage to HTML 5 even in that respect.
4. "Battery Life" see #3. Intel based PC's have solved the issue by including flash friendly hardware rendering. This, again, is a myth perpetuated by Apple apparently for its own petty self-interest.
5. "Touch not supported". EVERY UI technology currently assumes a keyboard and mouse. Every UI technology can be used to react appropriately to touch. This has absolutely nothing to do with flash in particular, it has to do with shifting all UI technology to support a touch based environment. Touch is simply a new set of UI events that need to be accounted for. Touch does not compete with keyboard/mouse, it augments. Many things are still a lot easier to do with keyboard / mouse than with touch. The idea that touch by itself is somehow the next "evolution" of UI is idiotic. I cant imagine typing this letter, for example, on my iPod.
6."Third party vs Apple's quality (I guess?)" What he appears to be indicating here is that Big Brother AKA apple knows what is best, and small, independent businesses are unreliable and incapable of providing quality tools. Adobe has a pretty good track record of providing the best and most popular tools for creativity that exist, and so I'm not sure how this is a point at all.
This latest trend for Apple seems to be shaping up as a battle for domination of the web by Steve Jobs, who appears to be taking an all or nothing stand where Apple is in 100% control of all online business, or they won't participate.
I think its important for developers to have HTML 5 based alternatives to flash only sites, and consider the app universe and exciting prospect for new business, as well as touch and other technologies it brings up. What upsets me is the closed nature of the Apple business model. As a consumer, I enjoy the ability to have windows media player, apple itunes, and google chrome all running on the same PC at the same time. Flash does not block HTML 5, or silverlight, or DHTML, or any other technology. It is simply another choice in a free society that enables innovation.
Apple's fight to kick everyone out of the sandbox and be the only one there is perplexing and seems uncharacteristically short sighted. I certainly hope they find a way to change their policy.
Sunday, February 21, 2010
The iPad vs flash issue is a red herring. The real issue is the iPad vs. the Keyboard and Mouse.
In a recent article shown to me by a co-worker, blogger and flash developer Dan Eran Dilger makes a case in support of keeping Adobe Flash technology off the iPad.
In the article, his chief arguments seems to be centered around UI elements such as mouseover, keyboard controls, and multiple mousebuttons so many flash applications depend on to function properly.
I would counter that the idea of slighting flash for supporting this functionality is backwards, instead, the argument should be leveled at the iPad for actively blocking this kind of functionality.
The fight of the iPad is not between it and flash, it is between it and humanity. It has thumbed its nose so to speak at the mouse and keyboard, and while multitouch certainly has much promise in adding significantly to the ways we interact with information, it is by no means an alternative for every user input device.
Further, flash is just a software development platform like C++, Java etc. The question isnt whether it will have multitouch and accelerometer support, the question is how will that become standardized across devices? Currently Apple is curiously vacant from Adobe's open screen project for example, and seems uninterested in a standardized approach to multitouch UI design outside of their own platform. This is shortsighted and disappointing.
Like Apple's "one button mouse" that looked like a hockey puck and every serious Apple user replaced the first chance they got with a real mouse, Apple is attempting to force users to interact with what is really the end users OWN content and information in a way Apple believes is the best, rather than providing end users with a pletora of tools and allowing them to pick and choose.
Personally, I believe Apple should jump off its "high horse" and simply support an external mouse and keyboard, and perhaps a small stand. That way, users could interact with the iPad like a normal computer OR use it like the tablet, depending on the context of the particular activity. That said, the list of things the iPad should be or should have is staggeringly long, so I'll cut it short there.
Apple, its not flash, keyboards, mice, or the internet that is being immature here, its you. You have some neat ideas but you need to grow up and share your toys.
In the article, his chief arguments seems to be centered around UI elements such as mouseover, keyboard controls, and multiple mousebuttons so many flash applications depend on to function properly.
I would counter that the idea of slighting flash for supporting this functionality is backwards, instead, the argument should be leveled at the iPad for actively blocking this kind of functionality.
The fight of the iPad is not between it and flash, it is between it and humanity. It has thumbed its nose so to speak at the mouse and keyboard, and while multitouch certainly has much promise in adding significantly to the ways we interact with information, it is by no means an alternative for every user input device.
Further, flash is just a software development platform like C++, Java etc. The question isnt whether it will have multitouch and accelerometer support, the question is how will that become standardized across devices? Currently Apple is curiously vacant from Adobe's open screen project for example, and seems uninterested in a standardized approach to multitouch UI design outside of their own platform. This is shortsighted and disappointing.
Like Apple's "one button mouse" that looked like a hockey puck and every serious Apple user replaced the first chance they got with a real mouse, Apple is attempting to force users to interact with what is really the end users OWN content and information in a way Apple believes is the best, rather than providing end users with a pletora of tools and allowing them to pick and choose.
Personally, I believe Apple should jump off its "high horse" and simply support an external mouse and keyboard, and perhaps a small stand. That way, users could interact with the iPad like a normal computer OR use it like the tablet, depending on the context of the particular activity. That said, the list of things the iPad should be or should have is staggeringly long, so I'll cut it short there.
Apple, its not flash, keyboards, mice, or the internet that is being immature here, its you. You have some neat ideas but you need to grow up and share your toys.
Friday, February 12, 2010
What Apple should have introduced the other day.
Here is what truly would have revolutionized the technology world the other day. If I were CEO of Apple, this is what I would demand from my team.
1. A touch screen device that can interlock with another one, so they could be oriented like a keyboard/screen. This means you'd have one on the desk, flat, and the other one vertical on its wide edge held in place by the flat one. You could then have visuals by your hands using the touch screen to move around and manipulate the one that is vertical as a screen. They would interlock on any side, making all different kinds of combinations for use cases. Iphones could also interlock with the larger one for use together. Simple interlocking hinges use a "slide in" mechanism to hold themselves in place.
2. It should come with a bluetooth or wifi keyboard and mouse. AND the mouse should be flippable so it converts into a trackball.
3. The device should have the best possible CPU, Graphics, SSD memory, and power supply, and each of these major components should be easily removeable and replaceable without having to dismantle the entire thing. You should be able to exchange the CPUs of different devices for specific uses at any time. They should be mounted so they are similar to small plastic blocks with no visible pins when detached.
4. The device should include slots for every major kind of interface, including USB 2, RJ 45, optical, SSD cards, compact flash, memory stick, firewire etc.
5. The device should run every major operating system possible. Windows 7, Mac OS, and linux. The device should be capable of running an emulator for Mac OS 9 prior to carbon.
6. If the device could do all this, running the iPhone OS as an emulator would be trivial.
7. the device should have a camera that allows it to work like a transparent window, that is, you could hold the device up, see a picture, and capture that picture exactly as you see it framed by the device.
8. The device should be multitouch, be able to recognize cameras and download pictures from them when the camera is simply placed ON the device. It should also be able to synch contacts with any blue tooth capable cellphone.
9. The device should have an integrated cell phone, that allows one to keep the device in a backpack or on a desktop flat, while the user simply talks into a small bluetooth headset, which again comes with the device as standard equipment.
10. The device should support DVD's read/write and they should slide into the device's thin edge.
11. The device should cost NO MORE than $300 US. AND the device should be free for people who make less than $1500 a year via various charitable programs.
Unfortunately, all the big companies are developing products selfishly...constantly thinking about how the devices they offer will bring them profit, instead of thinking about how the device will make people's lives better. The Apple iPad is a primary example of this, as is the XBox, the Playstation, the iPhone, iTunes, Sony Home, pretty much every money-grubbing, locked down, proprietary platform that only "improves" in the direction of shareholders bottom line.
Many of us are disappointed because we know Apple can do better. Here's hoping they do!
1. A touch screen device that can interlock with another one, so they could be oriented like a keyboard/screen. This means you'd have one on the desk, flat, and the other one vertical on its wide edge held in place by the flat one. You could then have visuals by your hands using the touch screen to move around and manipulate the one that is vertical as a screen. They would interlock on any side, making all different kinds of combinations for use cases. Iphones could also interlock with the larger one for use together. Simple interlocking hinges use a "slide in" mechanism to hold themselves in place.
2. It should come with a bluetooth or wifi keyboard and mouse. AND the mouse should be flippable so it converts into a trackball.
3. The device should have the best possible CPU, Graphics, SSD memory, and power supply, and each of these major components should be easily removeable and replaceable without having to dismantle the entire thing. You should be able to exchange the CPUs of different devices for specific uses at any time. They should be mounted so they are similar to small plastic blocks with no visible pins when detached.
4. The device should include slots for every major kind of interface, including USB 2, RJ 45, optical, SSD cards, compact flash, memory stick, firewire etc.
5. The device should run every major operating system possible. Windows 7, Mac OS, and linux. The device should be capable of running an emulator for Mac OS 9 prior to carbon.
6. If the device could do all this, running the iPhone OS as an emulator would be trivial.
7. the device should have a camera that allows it to work like a transparent window, that is, you could hold the device up, see a picture, and capture that picture exactly as you see it framed by the device.
8. The device should be multitouch, be able to recognize cameras and download pictures from them when the camera is simply placed ON the device. It should also be able to synch contacts with any blue tooth capable cellphone.
9. The device should have an integrated cell phone, that allows one to keep the device in a backpack or on a desktop flat, while the user simply talks into a small bluetooth headset, which again comes with the device as standard equipment.
10. The device should support DVD's read/write and they should slide into the device's thin edge.
11. The device should cost NO MORE than $300 US. AND the device should be free for people who make less than $1500 a year via various charitable programs.
Unfortunately, all the big companies are developing products selfishly...constantly thinking about how the devices they offer will bring them profit, instead of thinking about how the device will make people's lives better. The Apple iPad is a primary example of this, as is the XBox, the Playstation, the iPhone, iTunes, Sony Home, pretty much every money-grubbing, locked down, proprietary platform that only "improves" in the direction of shareholders bottom line.
Many of us are disappointed because we know Apple can do better. Here's hoping they do!
Wednesday, July 15, 2009
Hello, I'm a PC, and I'm a PC.
Today I am writing this blog in Safari 4.0 for the PC. I started out as a mac person because of the superior hardware, speed, and processing power offered at the time, using the now defunct "clone" called a "Supermac". When I left the mac platform to move to the PC platform, of course my fellow mac developers have heaped nothing but endless scorn on me for my choice, and invariably sent daily links to articles pointing out the obvious inferiority of the Windows / Intel based platform I use.
Eventually, the Mac succumbed to the Intel based chipset and I thought the game was up, and finally the Mac would simply become a flavor of windows offering distinct hardware and interfaces for all software, but take advantage of the windows platform in the back end (thus benefitting the end user). This didnt happen, and the Mac platform instead has worked tirelessly to lock the OS and its applications down to ensure continued control even though it has entered the world of the Intel platform, where up to then, the OS didnt care what apps you ran or what hardware you used.
Apple did not win the OS wars, and now with the impending release of Google's "Chrome OS" the competition has clearly changed altogether, that is, it is now between software that is an "Asset" vs software that is a "Service". Apple and Microsoft make billions of dollars by selling software as an Asset. You buy windows or OSX like you would buy a car, a chair, or a blender. You own it, you can resell it, if you had enough you could presumably borrow against it.
As the economy becomes increasingly abstracted to a service based model, and the internet bandwidth growth increases, the game is changing to a battle between which asset to buy, rather, whether or not "owning" software is a good idea in the first place. A real zinger is the recent plethora of online image editing "services" made using "asset" based software Adobe Flash that ends up competing directly with the "asset" based software called Adobe Photoshop and its incarnations.
So, as we see Safari 4 available for the windows platform, it becomes increasingly apparent that the Mac is slowly and inevitably going to migrate to the windows platform, and go into partnership with Microsoft to join forces and fight the new business model being signalled by Google and other service based software companies.
Microsoft continues to make $17 billion dollars in profit every year, and the Apple platform largely owes its very existence to continued support for the Microsoft Office Suite-which MS could end support for at any time. If Apple were running on top of a microsoft platform (now it runs on the UNIX platform), however, the threat of Microsoft pulling the plug on Office support would become moot, and Apple could continue to offer the same great hardware and interface elements that its customers love, PLUS eliminate any objection to "switching" to mac, because both platforms would run all the same software, and you wouldnt have to buy seperate licences for both platforms just because you liked using the OSX interface at times.
On top of that, Apple could then licence and distribute game software, and perhaps even release a gaming console based on XBOX technology, which would be a massive profit center for Apple.
Safari on the windows platform may only be the beginning, but the real competition to come will be the Asset vs Service model for software, and if MS, Apple, Adobe and the Gaming industry join forces, the Service model will have an even more difficult time becoming viable, as if MS werent a formidable enough enemy by itself.
So I'm a PC, and I'm a PC may be what we can expect in the near future. I always thought the PC guy was funnier anyway.
Subscribe to:
Posts (Atom)
