Lately Adobe and Flash have taken a lot of heat over the real and perceived instabilities of the Flash Player. Depending on who you talk to, these are due to the Flash Player itself, or the fault of poorly developed applications. But how would Adobe know the difference, other than through us developers painstakingly filing Flash Player bugs (and bugging Adobe to fix ‘em)?
Kevin Lynch recently discussed Adobe’s views and improvements in bug reporting and Flash Player performance. Mike Chambers chimed in to confirm these changes to the Adobe Bug system. And just today, Tinic Uro, Flash Player engineer from whom we have not heard from in over a year and whose articles are amongst my most prized links, treated us with an article on Apple Core Animation vis Flash Player performance.
This is a good first (and necessary !!!) step, but what the Flash Player needs is better automatic crash and exception error reporting.
My colleague Matt Fabb and I have put together three feature requests that I believe hold the key to making the Flash Player a much more robust development platform.
- In the right-click context menu include a link to the player’s bug system
- Automatic crash reporting built into all versions of the Flash Player
- Flash Player API hook to allow for custom automatic exception error reporting
(PS: Vote for these FRs!!)
The second feature request would have a second process “monitor” the health of the Flash Player and send an automatic crash report to Adobe if and when the player process crashes through a fatal exception (which most of the time also takes down the browser). This will give Adobe invaluable insight as to why so many users
bitch about claim that the Flash Player is unstable on certain OS/browser configurations, without Adobe relying solely on an army of QA engineers.
The last feature request would allow for an addition to the global exception API (as requested in FP-444 and detailed in the livedocs), to allow developers to specify a server to automatically send uncaught exception data, in the eventuality that the application itself crashes, which would prevent it from otherwise being able to send such a report.
Flash isn’t on the iPhone. It isn’t on the iPad, either. And for this, everyone is losing their minds.
Flash haters are coming out of the woodwork proclaiming the death of Flash, eager to feast on the dead flesh of another technological casualty while they bow in fealty to their white shiny god (Apple, dummy! :). Silverlight lovers, usually so vocal against Flash, are conspicuously absent from the debate.
But I think it’s a little premature to announce the demise of Flash. As my estimable colleague Derrick Grigg pointed out, there are so many things that Flash can do that are specialized and unique that no other web technology can do well.
As to the criticisms of the Flash Player: it crashes on OSX, it’s unstable, it’s insecure, it’s a resource hog. All potentially true, on the surface. But like a fixed TV debate subject to concision, 140-character tweets and troll rebuttals cannot give the whole story.
Flash does not work as well as it can on OSX because Apple and Adobe aren’t working well together, for whatever reason. Whether it’s Adobe being lazy in not utilizing Carbon in innovative ways, or Apple will not cooperate with Adobe in helping them develop better integration, I don’t particularly care who’s at fault. And it doesn’t look like it’s going to improve anytime soon. It looks like the two have declared war on that issue.
There is a polarizing debate going on between “iPad - Flash = Epic Fail”, and “Flash is dumb/crashes/obsolete/ads/porn/who cares,” bordering on the religious. Problem is, many of the cons against Flash are the same tired HTML fanboy arguments one hears, as if by trolling force alone millions of sites will go dark overnight. There’s only one reason why Flash is not on the iPad, or the iPhone for that matter.
It’s not 3G bandwidth. If Rogers or AT&T has oversold its network capacity and cannot deliver 1/10th of its advertised 7.2Mbps with a clear signal in a major urban environment, they deserve to be taken to court for false advertising. Even then, I am on a wireless connection at home, and during peak hours the connection can slow to dial-up speeds. When that happens, I click on FlashBlock, and only click to enable the Flash content I know I want to watch. So tell me one good reason why Apple could not disable all VM plugin content by default, and enable them by a click on the little blue lego. No, I can’t think of a reason either.
It’s not performance. As Lee Brimlow, Flash evangelist for Adobe comments, Adobe is willing to work with Apple on improving the performance of the Flash Player for this mobile device, as they have with every other major manufacturer. The fact of the matter is, Apple will not let Adobe play in their sandbox. And yes, I will concede, Flash could be better engineered to run on a Mac, as John Gruber claims — but that is besides the point, because we’re talking about a completely different product and OS here. As Peter Elst mentions, “With the iPad we’re talking about a different device, a processor that clearly is capable of high performance rendering”.
It might be about the fact that Flash will allow content that cannot be sold on the App Store, but that does not hold water either. App store revenues of millions a year do not threaten a billion dollar revenue base.
There is only one reason I can think of that makes any sense why Apple would do this.
And it’s codenamed — are you ready for this? — Stratus.
Gosh that seems familiar… isn’t there already a product with that name? Why yes, it’s Status, Adobe’s RTMFP service.
You’d think that if someone were to introduce a product using Adobe’s tools, they could at least Google whether it had been taken.
Maybe next time they should use a codename generator ;)
There is no doubt: making it as a commercial component maker is a tricky business, what with open source competition on the one hand, and Adobe being possible competition on the other. Now that we’ve defined the kinds of commercial components in the previous post, with these roadblocks, how do you make it in the current commercial ecosystem?
While reviewing recent discussions over at Grant’s blog while writing my previous post, I was reminded of a few things about successful component companies, which I recently discussed in an email conversation with Jeffry Houser over at Flextras about the matter, who encouraged me to blog about some of the points I brought up.
Now keep in mind I’ve never built a business model around making money developing Flash components, so take this part for what it’s worth; however there are a few things I’ve observed over the last decade in the Macromedia/Adobe/Flash industry about successes and failures in this area.
Most commercial Flash component makers start in one of two places:
a) they begin offering mid-level components
b) they have a successful but related business, and offer commercial components to go with their existing proprietary SAAS or server technology.
We won’t even talk about throwaway commercial components, because as I mentioned in the previous post, they should be open sourced anyways.
Starting a commercial component business based solely on mid-level components, as some have done, offers the benefit of relatively little startup capital (basically sweat equity), which gets you up and running very quickly. However, mid-level components can be challenging to hang a business model on, for a few reasons:
a) If they are “extensions,” (i.e. AcmeEnhancedDataGrid) Adobe could, tomorrow if they feel like it, come along and incorporate those ideas into the next version of the framework. In other words, your components may at some point come into conflict with FOSS components of similar functionality.
b) Which means that someone else could also, if they put in the effort, rip off your ideas, at least functionally, and present unwanted, even “illicit” competition, depending on how much they copied you.
c) The lack of phone support and strict licensing means that IT departments, used to spending big bucks to have added functionality at a minimum of fuss, might not regard it/them as serious candidates for an enterprise app, and may not even bother to dig into the API to find out if it has green threading or loose binding functionality.
There has been some discussion recently as to whether FOSS competes with commercial component offerings, and whether Adobe is unfairly competing with its own developers. Well, the answer is maybe, and maybe. The confusion is partly due to a lack of definition as to what constitutes a commercial Flash component, which lies at the heart of the matter. In the case of Adobe unfairly competed with Grant Skinner, well… read on.
Whether FOSS constitutes competition with commercial components, it all depends on what type of commercial components we are talking about, which is the crux of the matter.
First, let’s define what is not a commercial component. Components developed under no license, or under a FOSS license is not commercial, whether they be pre-compiled SWC-type component, a component with sourcecode, or a component which is really just part of a larger open source library.
Types of Commercial Flash Platform Components
1. Amateur or ‘Throwaway’ Components:
A throwaway component is more of the “Monster Template” or what I derogatorily call “FlashKit”-style components. It’s more of a one-shot use component, often with an incomplete API, sometimes not very great encapsulation, little documentation, no support, and cheap. Great if you’re a beginner-to-intermediate developer and you need a quick fix, but not very useful otherwise. Most times these components should be released open source, if not due to their incompleteness, then because even if it is just a few bucks, often you’re just paying for some-dude’s-experiment. Commercial software needs to be up to certain standards IMO, or it should be free, and even then.
There is no question that FOSS and future Adobe framework offerings will compete with these kinds of components — but did you honestly think anyone would actually pay for them anyways? So they’re not really a factor.
Most of the controversy about competition, either from Adobe or from FOSS, is due to a confusion in the difference between what I call a “mid-level” and an “enterprise” component.
2. Mid-level Components:
A mid-level component, in my view, can be either a mashup widget, in that its innovation or rather uniqueness lies in doing something new in the realm of webservices or connectivity, like a Google Map widget. It is also common for mid-level components to be enhancements or extensions of existing Flex or Flash components, including some media players, because they enhance what an existing component architecture already does, or provides a better version of an existing Adobe or open source component.
There is a big difference between a throwaway and a mid-level component: mid-level components often have a well-crafted API, sound documentation with examples, sometimes even the source is included. And with some of the better companies, responsive help forums, and/or email support is present.
3. Enterprise-level Components
I’m going to throw my hat in the ring here: I think naming Flex Builder as Flash Builder is a good thing overall. Part of the challenge for developers today is that there are now so many interconnecting technologies under the umbrella of the Flash Platform, that some of the naming needs to catch up with technology, and I believe that’s what’s happening here.
The Flash Platform now consists of a technological system comprised of multiple runtimes, tools, frameworks, and languages, so that simple words such as “Flash” and “Flex” no longer suffice to differentiate what we’re talking about anymore. In fact, I personally wrote an entire chapter in our book Professional Flex 3 on describing the Flash Platform and the “Flex ecosystem of technologies” just to clear the matter up.
Personally, associating the word “Flex” with an SDK (consisting of a framework and a compiler), a development tool, a framework and an overall development methodology, in my experience has led to a lot of confusion. Using the word “Flash” generically has also lead to a lot of confusion — is it a runtime, an IDE, the file you run in the browser, or an approach to rich media development? What is Flash? What is Flex?
I think the time has come to drop the generic use of the words “Flash” and “Flex”. Or at the very least, for the sake of tech pundits and journalists who may not have the in-depth knowledge of us designers and developers, to assign the word “Flash” as meaning “the Flash Platform” or “the Flash Player”, and have “Flex” mean either “the Flex framework” or “Flash Platform enterprise/RIA development.” That would be my vote, and how I have come to think of those two words in generic terms.
In rebranding Flex Builder to Flash Builder, what we are seeing here is a move away from using the word “Flex” as describing “enterprise or RIA development in the Adobe technology space” (amongst its other uses) toward using the word to describe simply the Flex framework and associated tools. By moving back toward the use of the term “Flash,” Adobe is slowly rebranding Flex as being a subset of the Flash Platform, not a complete technological ecosystem in and of itself, which on the whole is a lot clearer and more balanced. And I’m all for making things simpler and clearer for clients to understand and adopt the technology.
As reported on the Canadian Net Neutrality action website SaveOurNet.ca, “The CRTC has said that it will consider public opinion in determining the outcome of the traffic shaping hearings set to take place later this year.“ As Canadians, we owe it to ourselves and this great nation to hold governmental institutions charged with guarding the public trust accountable to the purpose for which they were created. We need to send ISPs in Canada the message that this kind of censorship shall not be tolerated, and should not be allowed. Check out the details on SaveOurNet.ca, and send in your action letter to the CRTC.
Here’s a review of my whole MAX SF 2008 experience, first posted at groups.adobe.com. My experience was reviewed based on Labs, Sessions, General Sessions, Sneaks, Food, Exhibitors, Location, Unconferences, Parties/Events and the Conference Website. On the whole I gave the experience a 8.5 out of 10.
I was very impressed by how the labs were conducted. “Using Data Services to Power Flex Applications” by Christophe Coenraets was very smooth and by the numbers, all the examples worked, and the TAs made solving learning issues and keeping up with the session easy. Even though the topic was a review for me, I got a lot out of it, as Christophe was able to answer some tough questions after the session that had been bugging me. It was very rewarding learning from such a master.
I have to hand it to Duane Nickull and James Ward in “Building Service Clients with Flash and AIR”, they had their game down cold. They checked in with everyone frequently to judge the speed at which the tutorials were going, and we completed all the exercises, including a few that James had come up with the night before, which all worked without a hitch, which was great to see (although this was as a result of giving the lab w few times already, so I guess they had a few practise runs ;) I would have liked to have seen a bit more advanced examples, but it was a great overall introduction to connecting Flex and AIR apps to many different data formats: WSDL, SOAP, RSS, AMF, SQL, etc. To take a lab like that with two supreme flex-fu masters made it feel like I was taking martial arts lessons from Bruce Lee and Jet Li. :) Haiya!!!
Although it made certain examples difficult (such as the Yahoo Maps mashup), I actually think it was a good thing not having internet connectivity in the labs. I’ve given Adobe training sessions before, and the most difficult thing is keeping the attention of the attendees when they are busy checking their email. And it’s easier doing a lab with localhost anyways, rather than worrying about connectivity bandwidth.
The only thing I was not too thrilled about with the labs was the lack of final files to look at while the lab was going on. Usually if the lab gets too advanced I just follow along with the final files, which means I can still absorb the concepts. But fortunately these trainers in the two Data Services labs I attended had it down so well that I didn’t need the final files to keep up, but it would have been nice anyways.
The Thermo/Catalyst lab was a bit of a disappointment to me, but maybe that was just because as a developer I wanted more than just an intimate walk through the interface. I wanted to what is under the hood, how is it built, what code does it output, how do you use the tool in a production workflow from Illustrator-to-Catalyst-to-Flex. For a tool that’s designed to take a load off the developer’s workload, it was little basic, though I think a lot of people got lot out of it. I eventually got these questions answered at the BOF session, so it’s not all that bad.
Recommendation: if a tool is being released that is both for designers and developers, split the lab into two tracks — one for designers, like the Thermo/Catalyst lab, and one for developers, so each party can find out what the tool will do for THEM.
The only thing I would change with the labs is make them correspond more closely with the sessions, so that people don’t have to miss two session time slots just to attend one 1.5 hour lab.
Luckily all the sessions I attended were great, did not attend any duds, though I heard second hand how some of them were. As a rule, if you’re going to have a good conference session,
a) Have it be by a known expert in the community with experience presenting, otherwise you run the risk of having inexperienced communicators with nothing ground-breaking to say. I spend a lot of money to attend MAX, and I expect be listening to experienced people. Although I have a great respect for community initiatives, MAX is not the forum for amateurs.
b) Make sure the demos work: don’t waste our time by having the audience beta test the speaker’s app.
c) To the speakers: post your slides and your code up on the MAX website or your own blog, before the session or within hours of the session. A few months from now I’m not going to remember which sessions I went to, and any chance to absorb and really learn from your session will have all but dissipated.
Evey conference I go to seems to incur the same routine of spending an entire day a few weeks after the conference hunting down blog posts for code samples so that my conference experience wasn’t totally wasted. It would be nice for a change if MAX could be the exception to that norm.
d) Provide working wifi. I can count on one hand the number of conferences I’ve been to in the last ten years where internet connectivity actually worked consistently, for both speakers and attendees. Adobe, you’re all about connected experiences. Put your money where your mouth is by providing a stable internet connection for all 5K attendees and the speakers. I know that’s a big job, but as from an industry leader I would expect nothing less. You’re playing in the big leagues now Adobe, and so should your conference experience.
e) Don’t insult us by providing “recharging stations.” In the time it takes me to recharge my laptop I’ll have missed three sessions. You had the right idea at the ON AIR Tour, do that: provide power strips along each isle so that people can connect their laptops while the session is going on. Combine that with working wifi, and you’ve got a potential for audience participation that is off the charts. I can understand and in fact condone no internet for labs, but for a session it is different. I would have liked to use an app like Mind Manager to take notes, which would have vastly increased what I got out of it, and if the speakers had distributed code ready, I could have followed along with the code they were presenting, while it was all happing.
You’ve got to get more interactive in the sessions. Stable wifi and access to power, along with available code and slides while the presenter is doing their thing is one way toward that goal.
I was very impressed by the session picker, allowing you to register for sessions, and the scanning device which let those who preregistered get first access to the session. That part was exceptionally well done. Though I think it could have been communicated a little better that even if a session or lab is “full” you can still try for a seat. And some ill-informed volunteers were still scanning for access half way through the session. I had to completely ignore one guy who kept telling me that I could not go into a session, despite the fact that it was 1/2 over and plenty of seating was available. The MAX staff were really great on the whole, no complaints, except for that one time, where he was a little too enthusiastic about his job.
The timing was also well done. Half an hour between sessions gave everyone lots of time to have a bathroom/refuel break and get to their sessions before the next one started.
On the whole I was very impressed by the quality of the sessions and the knowledge of the speakers. Most of sessions I attended were a delight, and those that were not, I just moved.
The first general session was a big yawn. Though in Adobe’s defence I do understand they need to do the marketing shtick. On the one hand from a fanboy perspective it was great to see Adobe forming important alliances with the likes of Google and Disney. On the other hand it seemed like a lot of boring dudes in suits giving marketing pitches to the VIP section in the first two rows. One redeeming factor of the first session is how they gave a general overview of the technologies by dividing the presentation into 1) Trends, 2) Social Computing, 3) Devices & Desktops. For the managers in the audience that must have been really useful.
Tuesday’s general session generally rocked. But I got the distinct impression that you’re reserving some goodies up your sleeve for the other two MAX conferences. Which is cool, I understand that. But at least tell us you’re doing that so we don’t feel gypped. I expected some announcements around Flex 4 and Flash Player 10 point releases, or even penetration numbers. And what about Pacifica?
The only thing I would say was really missing is, even though I’m a developer now, the designers in the crowd must have been sooooo bored. You guys are coming out with huge advances in your creative tools, but the emphasis was overwhelmingly on the tech/developer side of things. Maybe that’s just a fact of general trend in the industry itself, maybe there’s no designer-ly stuff left to invent or talk about, but I doubt it. It’s all about balance.
And in a more specific note on content, I get that you want to push the whole mobile thing, but as a Flex and AIR developer, I am not convinced. SHOW ME THE MONEY AODBE!! Get Flash working, on a stable mobile platform that is ubiquitous, and then you’ve got me, heart and soul. What I heard regarding mobile is not any different than what we were told in 2000, in 2002, in 2004, and 2006. Every two or three years there’s this big push for mobile, and yet developing for it still feels like pulling my toenails out by the roots. Your Flash Player penetration may be great, and the browser/desktop development experience is solid, but for mobile it just blows. I personally will continue to refuse to develop any mobile solutions until you guys (and the mobile industry) have your shit together. Stop giving us platitudes, and give us a platform that works, on a huge range of devices, with the full power of at least Flash 9 and ActionScript 3 behind it. And what the hell was that with the iPhone? Here is is — no it isn’t, SYKE!!!. C’mon… I think that baker metaphor was apt — mobile shows great promise, but unfortunately at this stage IT IS STILL HALF-BAKED. N’uf said.
The sneaks were on the whole well done. Get a geek in front of a mike with a huge audience, and chances are they are going to bore the hell out of 50% (or more) of the crowd with geek-speak. But that didn’t happen, which is feat unto itself. So I think your scripted “00B” play worked well, and forced the speakers to remain focused on the theme and the topic at hand and not tangentialize too much.
BUT WHERE’S THE ROADMAP? Are we supposed to guess? Are you saving that for the other MAX’s? A Sneak Peek without a roadmap is like road signs without a map: you know where the stops are, but no idea how you’ll get there.
The food on the whole was great. I think few people realized that the food in the Marriott salon was slightly better than the food in Moscone West. If someone is taking even one lab, they should know about the food for lab attendees. I didn’t sample the food in Moscone, but the continental breakfast and the lunches at the Marriott, including the welcome reception diner on Monday was great. And the free supply of munchies, coffee, bottled water and even pizza and beer at the BOF was the icing on the cake (and wow that was kick ass pizza!).
That I didn’t have to go out and spend money on breakfast or lunch for four days for good food plus snacks and coffee definitely made the price of the conference worth it for me. If you were charging those rates with minimal food and drink then I’d really question coming back. As it is it helped me stay satisfied, energized and focused on the sessions instead of where to eat and how to stay hydrated.
Huge kudos to Effective UI for supplying everyone with refillable bottles so we could all stay hydrated in an environmentally sustainable fashion.
The only think I would change is to keep the coffee flowing all day long, which would have made it easier after a night of parties. :)
Well done on the food Abobe.
A good number, but the booths were a little small, leading to crowding/swarming, blocking passageways, etc. And here too there way way too much emphasis on the development side. For me it was great, cause it felt like being at a Flex conference. :) But the designers must have felt major gypped. There was almost no designer presence in the exhibitors. I was kinda hoping to see new advances in drawing tablet/creative suite applications and cool After Effects/Photoshop plugins, but maybe all that is passe now that we’re all so focused on mobile RIAs? As great as all this dev stuff is, don’t forget where you came from, Adobe.
The location was fantastic, the layout of Moscone West ideal for getting to and from sessions. The general session hall was a bit of a bottleneck though.
Having the labs in another building was understandable, and you got used to it when you were there, but an underground tunnel connecting the two locations would have been better so I didn’t feel like a Hobbit plumbing the Mines of Moria.
At least it was better than the last MAX where I heard you had to do cross country training just to get between sessions. This location layout was great, but could be better.
Speaking of location, I was very impressed by the hotel reservation system. It allowed my to book my conference ticket, register for my sessions and book my hotel, all from one (more or less) site. And when I got there the hotel had all the info I placed in the form, including my special requests, and had a room all ready and waiting for me, no mixups or missing reservation. Very professionally done.
The unconferences really could have used better signage (maybe up high, at right-angles to the flow of traffic?), better promotion, and better informed info booth personnel. As it was I didn’t attend a single unconference session despite wanting to, because they competed for MAX slots. If you want community participation, make them part of the MAX experience. Suggestion: on the very first day, give the unconferences an entire time slot, so that nothing but unconferences are going on, in the regular session rooms. This will give them all a chance to direct attention to their “booth” or “alcove” areas for the rest of the conference, and give people a chance to attend them at least once without worrying about missing anything in the regular conference.
The Sunday reception seemed like a private party, since all the literature said “by invitation only,” until I figured out that that meant for Sunday lab attendees only. There was considerable confusion about whether it was a private corporate function or a general reception for Sunday attendees, and the fact that there was considerable lineup, well, I just went elsewhere with a bunch of people that didn’t feel like standing in line.
The Monday party was good, and the Tuesday one was better. Being my first MAX I have nothing to compare it to other than to say that the Science Academy was a really neat location, the entertainment was fun and the food was amazing. Well done Adobe.
Most of the action at conferences like MAX as far as networking is at the after session parties. Part of the after session time except for Tuesday felt like a guessing game to discover where the real parties were, through word of mouth, even though the other after parties were not really private, just that they were hosted by some of the sponsors I would guess. So knowing about them though an “after events” board would have really helped. A section on the MAX conference site dedicated to after-events, whether official parties or just simply personal meetups, would have saved a lot of walking around.
Despite the hotel reservation system and session planner being very well done, here’s where you guys need some serious improvement. The user experience was not consistent across the three applications: 1) reservation system, 2) session planner, 3) experience website.
I’ve already commented on the experience website, so I won’t repeat myself here. Suffice it to say that if I were Big Spaceship, Blitz and 2Advanced, I would not be so quick to slap my logo on this endeavour. The games are fun and the graphics superb, but I’m there to get information, purchase and reserve, with playing games a distant fourth, so the user experience needs to be in that order of priority.
As my first MAX conference, on the whole a fantastic job. Overall an 8.5 out of 10.
PS: I will definitely be registering for next year’s MAX 2009 in LA on October 4-7.
In the past few weeks I’ve written two free tutorials on Community MX that guide you through the process of compiling for Flash Player 10 in Flex Builder 3. One shows a Flex project compiled for FP10, and the second shows a Flex-free AS project compiled for FP10.
This article shows you how to install the latest stable Flex 3.2 SDK, and from there configure Flex Builder to compile for Flash 10 using the latest playerglobal.swc file.
This article shows you how to create an ActionScript project in Flex Builder compiled for Flash 10. It also shows you how to remove references to the Flex framework, so you can use Flex Builder for compiling pure ActionScript 3.0 projects without worrying whether you’ll “accidentally” use a part of the Flex framework. For those resisting the Flash CS4 upgrade, you may not be able to compile for Flash Player 10 in Flash CS3, but you can in Flex Builder 3.