As a Part-Time CTO, I am continually making choices about what platforms to use, what do we build for, how do we integrate with social networks, etc. And just like a few years ago when it became clear that you shouldn’t build desktop applications anymore, I think we are hitting a tipping point where you have to question building anything that uses Flash as the delivery mechanism.

I'm defining my technical approach for my eLearning Startup or for my application that will be delivered to employees, consumers or students, etc. This could be a new authoring tool, an aggregator, the course playback mechanism, a recruiting tool, etc. My technical choice needs to seem like a good choice 5 years from now. I need to think about what will produce the best user experience. The costs. Technical and business risk.

Garin raises a great point. We don't know whether Apple iOS will eventually support Flash to stave off competition from competitors. Originally, I thought that Apple would bow to pressure. No one at this point really knows. But let's assume for a second that you believe that Apple will cave and iOS will support Flash. And let's also assume that we are not strictly talking HTML5, but rather HTML+JavaScript + some ideas of where it is today and where things are going.

What's to Like about Flash

1. Greater consistency across platforms.

2. Good support for animations, 3D, and video. Video especially is problematic without Flash to do cross platform.

3. Able to do things visually that are hard with CSS/HTML. As an example, CSS 3 introduced linear and radial gradients. Good. Can these gradients be applied to the text rendering engine? No? Why not?

like rounded corners, no surprise [gradients] came up. (All we need is to define wet-floor-reflect and we’ll complete the Web 2.0 design tricks hat trick.)

Yes, CSS 3 can do awesome things, and I love it. But it was designed to just barely meet the design needs of today. Any time you want to experiment with a wildly new design direction, you find yourself fighting against the way HTML and CSS were intended to be used.

4. Flash (AIR) can create and use raw TCP or UDP sockets.

Of the above, 2, 3 & 4 of are likely to be a question of what the site/app needs to be able to do. #1 is definitely an issue as you need to write once and test everywhere for HTML.

Flash Concerns

There are some things I would be concerned about:

1. Security - some recent security issues with Flash that caused real damage are a continuing concern for me.

2. Closed - as Garin points out there are lots of people working with Flash - an ecosystem. That said it's still closed. And it's MUCH smaller than the world that works with HTML.

3. Commercial - it costs money for Flash development and anytime you are dealing with something that's commercial and closed, there are clear risks.

4. Installers - these are somewhat annoying and there are greater risks around them.

Will I Choose Flash?

So - what do I use as a developer? It's way too complex a question because there are a ton of factors that will need to be considered for any given system. Here's some things I would definitely look at:

What's our mobile strategy? Are we actually looking at Apps or via Mobile Browser? Big time tradeoffs in each?

Do I need an interface that could be provided more quickly via Flash? I've been involved in creating some pretty sophisticated interfaces via HTML+JavaScript. But there are development cost tradeoffs to be made. As an example Flash is used by Zynga to create their games.

What's the cost of Cross Browser HTML compatibility issues?

What's our strategy around multiple screen resolutions?

Will we need to run in low-end phones with basic web access capabilities?

Right now Flash is causing performance issues on mobile devices. This will be improved, but there will be issues. What will the impact be of those issues?

What audio and video do I have? Complex animations? Can these be Flash elements within an HTML wrapper?

Do I need audio or video capture?

3D?

Do I need raw sockets?

Who is developing it? What skills do they have? How easy/hard is it to source people with the skills?

What are the implications downstream for the organization? Do we believe it will help or hurt us around time of acquisition?

Impact of iOS?

All of the above is greatly impacted by the choice that Apple makes around iOS support. People want their content to work on iPhones and iPads right now. To Gain's point, if Flash is on iOS and gets over the current performance issues, then it's going to win out far more often as the delivery mechanism of choice.

Of course, my guess early on was that Apple would bow to pressure. But then it became clear they wouldn't in the short term. Now, no one knows.

Using Flash

Interestingly, I'm right now looking at technical choices for an eLearning Startup. And guess what - Flash looks like it will make sense as a choice. Of course, we are trying to hedge our bets and we are definitely making it an element on the page rather than betting the entire delivery on Flash. The idea is that we could change the approach for that portion if another solution comes along. iPhones and iPads will be supported as an app - ugh. But we don't really have another choice for now.

All of that said, I still will tell you - even though you won't be happy to hear it - if this application didn't need these specific features that are supported by Flash - we would choose HTML+JavaScript because it would work on iPads in the browser. That's why I still believe until we know that iOS will support Flash - it's death is continuing for now. Choices are being made to avoid it everyday by CTOs.

12 comments:

Count me with the people who believe that Flash will be around for a long time.

1. Flash is not really closed. The .fla format is closed, but .swf is open. You can find some very good 3rd party tools that generate sophisticated .swf files. For example: Sothink Quicker (www.sothink.com) and Swift3D (http://www.erain.com/products/swift3d/).

2. Corporate clients have invested a ton in Flash 'applications'. These aren't just YouTube movies. They are powerful applications that may or may not utilize video or animation. Corporations aren't going to toss this investment away.

3. The ecosystem is smaller than HTML, but much more technically vibrant. People are building stuff with Flash and AIR that HTML would really struggle to achieve. The fact that there are millions of web page designers doesn't mean that there are millions of web page application developers.

I sincerely appreciate this blog and all the commentary that is attached. I am not a developer but a current student at Full Sail University doing my Ms in Education Media Design and Technology. This semester of my accelerated program we are working with Adobe Flash CS5.

For the life of me I am having trouble learning this program. I have a project I need to complete at semester's end with sections of it turned in each week.

Can anyone direct me to any video lessons other than those accompanying Adobe. My Professor has tutorials to follow along with. (Did I say this was an online course?)

I hope I am not appearing to idotic but I really want to not just muffle through this course. It is important for me to find a way to learn this program to help in my career search as well.

For me the learning is too great for Flash. I've tried many times in the past 10 years. So I stick to Adobe Captivate and Lectora to develop elearning and publish as swf. And if I need a custom Flash interaction, animation or game for a module, I contract out to a Flash programmer; then drop the swf into the module.

Tony, thanks for ongoing clear commentary on this difficult issue for the elearning community. It sure seems like Flash is a powerful tool, and as alternative tablets emerge to compete with the iPad, consumers might choose to use the platform that works rather than the authoring tools that work.

Can you expand on why you feel there should be no more desktop applications developed? i can think of many things that work well off the desktop, but that's a long way from no desktop development at all in my mind.

This ship has sailed a long time ago. There are a few cases where "desktop" still makes sense - media specific or iOS specific capabilities, but without those special cases, it is somewhat suicidal to develop installed applications.

1. Software as a Service is Great for Learning Professionals inside Corporations 2. Firewall restrictions still pose a problem for SOME services 3. Security is a concern, but generally should not stop use

------But it really comes down to the complexity of dealing with all the support issues. Yes, you can do auto-installers and with AIR you can do some pretty cool things. It's just harder to get a large group of users to effectively use a desktop app than SaaS.

With the increasing interest from corporates in the iPad it'll be interesting to see if Apple eventually does bow to pressure to allow Flash on the iPad. Up to now it hasn't been in their interests to do so but this could all change if they want iPad in the enterprise to be a success...

About Me

Dr. Tony Karrer works as a part-time CTO for startups and midsize software companies - helping them get product out the door and turn around technology issues. He is considered one of the top technologists in eLearning and is known for working with numerous startups including being the original CTO for eHarmony for its first four years. Dr. Karrer taught Computer Science for eleven years. He has also worked on projects for many Fortune 500 companies including Credit
Suisse, Royal Bank of Canada, Citibank, Lexus, Microsoft, Nissan,
Universal, IBM, Hewlett-Packard, Sun Microsystems, Fidelity
Investments, Symbol Technologies and SHL Systemhouse. Dr. Karrer was
valedictorian at Loyola Marymount University, attended the University
of Southern California as a Tau Beta Pi fellow, one of the top 30
engineers in the nation, and received a M.S. and Ph.D. in Computer
Science. He is a frequent speaker at industry and academic events.