SmoothSpan Blog

For Executives, Entrepreneurs, and other Digerati who need to know about SaaS and Web 2.0.

Archive for the ‘flex’ Category

The Irony of Mobile Users Preferring Apps Over Web

Posted by Bob Warfield on August 13, 2010

Apparently, mobile users prefer apps over the web.  At least that’s Gowalla CEO Josh Williams’ view:

“People love apps, but it drives a stake in the heart of the build-once-deploy-everywhere model, and makes the market really fragmented.”

I’m not surprised.  Heck, I prefer apps too.  But the irony is that Apple has but a bullet in the one solution that lets you have apps and a build-once-deploy-everywhere model:  Flash/Flex.

Sure, Apple wants apps not rich browser experiences.  They’re trying to control developer mindshare before more open solutions get going with too much momentum, once more leaving them to their walled garden as happened in the PC versus Mac race.  There is only so much developer mindshare, and if you lock them down writing apps in dev tools that essentially only work on the iPhone or iPad, its hard for their great apps to be available elsewhere. 

We don’t hear tremendous talk about RIA’s (Rich Internet Apps) anymore, it seems.  Perhaps the concept is dated.  I continue to think it is a great idea.  People talk about Flash/Flex largely in terms of video and ignore the RIA side.  Some argue they don’t even like RIA’s, and prefer a basic web page-style UI.  Personally, I think the web page UI is fine for certain things, but it isn’t much better than the old 3270 green screens, which were also fine for some things.  The problem isn’t that apps need to be more like web pages, its that browsers need to support more app-like behavior.  Flash/Flex does that today beautifully, except Steve Jobs won’t tolerate it on his mobile platforms because he’s trying to deny developer mindshare to his competitors.

For those that think it’s slow and buggy, think again.  It’s actually capable of some pretty amazing stuff, even 3D games.  I’ve lately been spending a fair amount of time programming 3D graphics in an Open Source Flash package called Away3D and have been very impressed.  I’ve also spent a lot of time with Adobe AIR, and am likewise impressed.  Not only can you run on any browser, you can run disconnected on the desktop too.  It works great on PC, Mac, and Linux, same code across all desktops and browsers. 

I haven’t seen another option that gives so much flexibility.  HTML5 is a long long way from it.

Posted in flex | 6 Comments »

Adobe: 7 Things You Should Do With Flash/Flex

Posted by Bob Warfield on June 21, 2010

Dear Adobe:

Apple has started the anti-Flash/Flex snowball rolling, and it is getting steadily bigger.  It’s a perfect storm, because they’ve got the platforms that are perfectly suited to Flash, their platforms are wildly popular, and your faithful audience desperately wants to be there.  But that’s not all.  They didn’t just prohibit Flash, they have called a lot of attention to a credible competitor: HTML5.  I know, I know.  It will be a long time before HTML5 is everything Flash is today.  It’s not even close right now, and a lot of people have conflated media delivery with Rich User Experience in ways that unfairly diminish your platform.  Get over it.  Economic pressures (aka naked greed and envy to be on these precious Apple platforms) have created a hill of growing height, and the water that is developer mindshare is rapidly flowing down that hill and away from Flash.

What can you do?

Lame ads won’t help.  Complaining about it won’t help.  Technology and innovation can help.  If you move quickly, and you have some things in your camp that buy you time (Android), you can still salvage the situation.

Here is what it takes:

1.  Absolute Single Minded Focus on Performance and Stability

People have concluded your platform is buggy and slow.  It doesn’t matter if you agree or not, the customer is always right.  When you hear McAskill at Smugmug and Adler at Scribd railing about your stuff, it’s time to move from denial to acceptance.  Their voices and those of many others are too loud and being spread too efficiently to pretend it isn’t so.  It’s past time to deal with it, in fact.  You need to embrace this problem, own it, and deliver the solution as quickly as possible.  The solutions can take many forms.  My recommendations are part of this post, and this point is more about declaring a focus both publicly and internally and owning the problem.  You don’t have to say, “We agree, our platform is slow and buggy.”  You do have to say:

“We have a great platform and our customers have told us to make it dramatically faster and more stable.  That’s our #1 priority, and here’s how we plan to do it…”

2.  Stability:  Quality + Security.  Get a Czar.

I’ll define Stability as consisting of equal parts Quality and Security.  Your customers are finding too many bugs.  There are too many public security issues.  This is happening at a time when you can ill afford it.  Get a Czar nominated and equipped to deal with this area.  Apportion your development cycles between performance and stability, give the stability cycles to the Czar and just do it.  The Czar needs to rapidly do the following:

– Identify the most egregious problems you have missed that are troubling your customers.  Look outwardly not inwardly to find them.  Fix that first tranche rapidly.

– Upgrade your automated testing so regressions are under control.

– Put in place a culture of quality that ensures that every single release is better than the last one.

– Investigate whether some of the quality issues don’t stem from education issues.  If customers are approaching it wrong, or don’t know how things work, they may be seeing behavior that is exactly what’s expected, but that looks to them like a bug.  Do not let this be an excuse for thinking you don’t have real bugs too.

– Be transparent about the plans and the results.

Get this stuff fixed and make sure it stays fixed.  This is not a, “Let’s fix the top 100/1000/or whatever bugs,” thing.  It’s a cultural change accompanied by results.

3.  Build a High Performance Native Compiler

Yes, I know, it is wonderful that Flash programs work everywhere.  But you are dealing with Performance perception and a company that says they will only let Native tools in the tent.  Figure out how to kill both birds with one stone.  Every platform does not need a native compiler.  But, if Facebook can afford to build a PHP compiler for performance sake, you definitely can afford to do this.  If you don’t have any serious compiler gurus, get some on board.  While you’re at it, build an optimizer for your interpreted stuff too.  You need a two-pronged attack:

–  Better bytecodes with the usual optimizations that matter closer to the language–operator strength reduction and all that.

–  Killer native compiler that will run circles around your bytecode stuff when it needs to.

If you do it right, it should be possible to pick and choose which classes are native and which are bytecode within the same Flash app.  You will also need to provide infrastructure that makes it easy to serve up the right native version to whatever platform is being used by the consumer.  Don’t make your developers figure that out.  BTW, you need to get this into Beta in less than 12 months.  You don’t have much time.

There is an old saying, “If you want people to make a new decision, you must give them new information.”  This pair of developments is the new information for performance haters.

4.  Revisit the Asynchrony of Flash and Embrace Multicore

This may just be baked too deeply into the programming model, but it sucks.  Sometimes programs want to be able to block until something happens, and when they can’t they wind up wasting their time and you mobile device’s battery life to no good end.  This asynchronous stuff is a throwback to not having a real multi-thread model for Flash, and in the Multicore Era, that’s a liability.  Sure, current mobile platforms don’t have many cores.  It doesn’t matter.  #3 is really only a stopgap.  In the Multicore Era, if you want to completely crush the competition on performance, do it with more cores.  When I was at Oracle, it was all about building benchmarks that could use more cores than SQL Server.  Once you use more cores than the other guys, you become almost exponentially faster.

And while you’re at it, you will deliver a model that is much friendlier to developers.  Being able to deal with multiple threads and blocking should be the basis for Flex 5.

5.  Embrace the GPU and Knock ‘Em Dead With 3D

Last point.  For most machines, the graphics processor is the most powerful CPU in the machine.  That’s a big surprise to many, but hey, it’s true.  That sucker has got vector processing going on just like the old Cray supercomputers.  There are companies building supercomputers out of them, for Heaven’s Sake.  Our freakin’ Air Force uses the GPU’s in Sony Playstations to build supercomputers fer cryin’ out loud.  I know it is a pain to go native on the GPU.  Sometimes the OS doesn’t help you very much.  But you have to find a way to get your developer’s hands on those beautiful MIPS.  This is especially true since Flash is all about the visuals.  While you’re at it, build a killer 3D subsystem for Flash so peeps can create virtual reality, 3D modelers, CAD/CAM, killer FPS games, and a whole of others things you haven’t even thought of.  With #’s 3, 4, and 5, nobody will be able to touch you on the performance front.

6.  Bring Back the Flock with a Cross Compiler

In many ways, Apple’s insistance on anything but Flash is like an old-fashioned shelf space war straight out of the pages of Ye Olde Shrink Wrapped Software.  If I build my app in not-Flash, it is a pain for me to go back to Flash no matter how much I like it.  It is worse if my not-Flash is on a super hot platform, because I kind of want to just keep writing not-Flash on that platform once I get hooked. 

Here is the thing: if HTML5 is really as limiting as Flash devotees claim, it should be trivial to translate the limited functionality of HTML5 to Flash.  While you are at it, please undertake the slightly less trivial task of moving Objective-C to Flash.  Sound hard?  It is a little, but not any harder than all the other stuff you need to do.  Besides, I’ll bet you can do this one as a joint project with Google.  Why?  Easy:

Take any award-winning iPlatform app.  Feed source into your new cross compiler.  Push a button.  Get back an award-winning Android app written in Flash.  BTW, you can have it on your desktop or anywhere else too. 

Now what iPlatform developer could resist that if it all works great?  Don’t think of it as aiding the enemy by giving developers an opportunity to start from HTML5 with less downside.  The developers that will use this are already lost to you, and you need to bring back your flock.

7.  Keep Your HTML5 Powder Dry

By now Adobe, I expect you’re really feeling pretty unhappy with this post.  The stuff I am telling you needs to be done is not easy, and it won’t be cheap.  At the same time, you know in your heart that this is what it really takes to win this war.  It’s about to get worse.  HTML5 is coming.  All of those other steps will only allow you to maintain your lead for longer. 

You need to recreate everything that is great for your platform on HTML5.  But, you need to keep it in the backroom until the timing is right.  Don’t dribble it out.  Do big quantum leap releases.  Your first one should not be an also-ran.  It should establish Adobe as the premiere resource for HTML5 developers.

It’s just that simple

As I’ve said, this is a hard road.  But, if you don’t follow it, if you don’t dig down deep and go to war now in a meaningful way, you won’t catch up later.  You’ve got a great platform.  If you want to keep it, you know what to do.

Posted in apple, flex, Marketing, Open Source, platforms, ria, strategy, user interface | 6 Comments »

Apple, Adobe, Punctuated Equilibrium, and Commoditization

Posted by Bob Warfield on April 13, 2010

Lots of kerfluffle around Apple’s refusal and downright blocking of Flash on its platforms.  Developers like John Gruber are stating the obvious in explaining why Apple is behaving this way.  Techcrunch is piling on, since Steve Jobs is referring people to Gruber. 

BFD, I explained all this years ago and in more than one post.  It really is extremely obvious what’s going on.  The more interesting question is, “Where will it lead?”

I’ve written also about how platform vendors should behave like Switzerland.  Apple most assuredly is not behaving like Switzerland.  Under the banner of making insanely great products, they’re doing the equivalent of being a Swiss bank that makes you agree to terms that effectively lets them own all of your customers and tax all of your revenues.  Evil?  Probably.  Yes, let’s make no mistake, there is Evil here in the sense that Google used to proclaim they would not do.  Apple wants to lock up customers and tax them for every cent of revenue they possibly can.

For the time being, this strategy will work great, but Apple should be aware that they are using artificial scarcity to drive demand.  The user experience offered by the iPhone and iPad are sublime, and there are no good enough alternatives yet.  Hence the artificial scarcity.  But it is artificial in the sense that sooner or later someone will produce a good enough alternative, at which point we get commoditization.  I’ve written about the parallels of evolutionary biology and business quite a lot.  Apple’s case is no different. The “i” products have created a punctuated equilibrium.  This is a fundamental change that gives those organisms a tremendous advantage.  They rapidly gain share in the ecosystem as a result.  However, Nature abhors such ownership, and so do the markets.  Other organisms will copy the traits that made the upstarts successful.  They will blunt these advantages and slow their growth.  There are too many dollars at stake driving that desire.

Can it happen? 

Well, it’s getting harder.  Apple has the full benefit of network effects.  Consider the online auction space.  Once upon a time there were a huge number of auction houses.  Today, there is largely only eBay.  A network effect happens when each new member of the network brings even more value than the previous joiner brought.  It is an exponential growth in value, and hence switching costs.  At some point, it is too hard for new players to show value.  The danger in Apple’s products is therefore not the compelling UI’s, but the switching costs.  Take my Kindle.  In a very short time I have put several hundred books on it.  Would I switch over to Apple’s formats?  No.  I’d lose my several hundred books, or at the least, I would have to fool around trying to remember which format and reader I need to use to access a particular book.  That’s a network effect.  Cell phone companies do the same with their contracts.  Ironically, I want to upgrade my iPhone and give it to my son so he gets a hand-me-down upgrade.  I couldn’t until recently because my AT&T contract wouldn’t let me.  Apple is doing the same around apps and media with the iPhone and iPad.  Facebook and Twitter, BTW, are huge because of network effects, and it will be hard to ever unplug that advantage now that it is built.

Several things need to happen very quickly in order to thwart Apple’s growing network effects.  First, people need to be aware that this is what’s happening.  Make sure you understand the network effects and lock-in that you’re becoming a participant of.  Be careful, because there are even stronger variants than what Apple is offering.  I have argued in the past with Fred Wilson about streaming media.  Get roped into allowing your media to be strictly streamed by a few providers and you are well and truly locked in.  Second, Microsoft, Google, and whoever else needs to wake up.  You have a major problem with your Product Management and Strategy people.  Why are you unable to successfully copy Apple’s products to produce a “good enough” alternative?   Microsoft, in particular, you did it before with Windows and Mac.  Your new Kin phone seems to be a flop from the get go.  Did you forget that your role is to commoditize other people’s ideas?  Sounds tawdry, and it has certainly been proclaimed as Evil, but looked at in this kind of light it really isn’t.  It’s about providing alternatives.  Google, your Android is much better, but geez, it needs to get better a lot faster.  Time is running out as Apple builds network effects.

Where are the Open Source community and standards making bodies in all this?  Open formats and digital rights management that transfers across devices is critical.  Portability and interconnection rule when defusing network effects.  Even if big third parties like Microsoft and Google are just sailing under the Open Banner to make money, it’s doing a service by blunting a growing monopoly.  Media owners, do you want to be marginalized by Apple?  That’s what will happen.  You backed Amazon down on Kindle (first on text to speech and then on pricing) before it was too late because you were afraid.  What are you doing with Apple?  Alternate content distribution channel owns (pretty clearly I am talking to you, Netflix, and you, Amazon–maybe you two should merge), what is your plan to navigate these waters?

What can Apple to if it senses a revolt?  Lots of things.  It’s being extremely heavy handed at the moment.  I never heard anyone accuse Apple of humility, after all.  Totally blocking Flash is not necessary to preserve lock-in.  One could argue there is enough valuable Flash content that it is slightly counter-productive, in fact.  Apple is simply having trouble dealing with the meta-nature of computers.  It is hard to define a Turing platform like Flash in such a way that it can’t become a Trojan horse.  In fact, it may be impossible.  Instead, it is necessary to individually vet each Flash application and have the flexibility to revoke the authorization of that app if it misbehaves.  For Adobe’s part (and any other would-be platform developer), they should facilitate allowing this kind of control.  It is better to have more Flash applications than fewer, even if they must operate in shackles in the Apple world.  Apple knows how to peacefully coexist.  Their PC business flourishes after they finally adopted Intel chips and allow virtual machines to run Windows.

I give this another 2-3 years before it becomes impossible to change the page.  If that happens, we’re stuck with the monopoly until there is another punctuated equilibrium.  That happened with Microsoft, and it took years and the Internet to get there.  It happened with Intel’s microprocessor dominance.  In both cases, the resultant products were inferior even to many peers during their time, but the network effects were too strong and the better peers didn’t get in position soon enough.  A failure to stop one of these snowballs is how monopolies are built, and they’re extremely lucrative.  Each day you wait it becomes a little bit harder.  That’s the nature of network effects.

Posted in apple, business, flex, Marketing, Open Source, platforms, strategy | 5 Comments »