The real challenge is with enterprise applications that need a rich UI - this is where Flex was a good solution. Saying "just use HTML5" is fine when you serve the consumer space; it's not if you serve enterprises.
HTML5 is just not a go-er for enterprise products that need a rich UI. Even if it could do everything Flex can (and it can't, yet), you need a modern browser. Many enterprises still use IE6. I'd say 60% of our customers are on IE6; and the remaining 40% use IE7. Demanding IE9 would make an enterprise product dead in the water.
Flex fitted here. You have enterprises who say "no more client server, everything should be web" but then don't give you the web platform to be able to deliver the required user experience (i.e. you must use IE6/7). Flex let you deliver on the web, with a rich UI, on legacy browsers.
So you had a choice:
- Stay on client/server (lots of enterprises won't consider you)
- Develop for HTML5 (not quite prime time, no-one can buy your product as won't work on their browsers)
- Dumb down the UI and deliver in IE6 (workable for some projects, but not for many - some products really do need a rich UI. Especially not doable when porting existing rich client/server app to being webbased - clients don't like backwards steps on the UI)
- Develop in Flex
So it's all well and good saying people yelled 'iceberg' but really you're between a rock and a hard place, and even with this news I'm sure most Flex enterprise developers would make the same decision again - because there really weren't many alternatives.
I agree with a lot of what you say, but it's worth thinking about whether or not there are many enterprise applications that really need a UI that is richer than can be provided with basic HTML.
I make web apps for my large company and IE6 is a target platform. My apps have to work even with JavaScript disabled. This means that there are some fairly severe limitations on what I can and cannot do.
However, it turns out that this is probably a good thing (apart from IE's horrible CSS support) because it turns out that users struggle to use applications with complicated interfaces. So I wonder if it's really such a big problem to "dumb down".the UI for enterprise apps...
> […] IE6 is a target platform. My apps have to work even with JavaScript disabled.
Welcome to the ranks of the competent. It's amazing how often users are blamed for the pretty but undiscoverable and shoddy work most web authors do. Progressive enhancement should work indefinitely (regardless of flavor-of-the-month client gimmicks) and isn't even that hard.
I don't buy this line of argument at all. Some people are just inclined to stay between a rock and a hard place. They like it there.
Why does your organization need IE6? I'm guessing because you've got old apps that were pushing the browser envelope by dipping their toes into MS or other vendor-locked APIs. Fix that, and move on. If you're a decision-maker, just do it. If not, you can't really complain about your fate as a modern, paycheck-collecting Sisyphus.
To be clear - I work for a software company that sells to enterprise (government) customers. So we can't fix their IE6 problem. We have one product that requires IE7 and have had some major push back with that in some places (for example, the entire Scottish NHS is IE6 and say they will remain so for a couple of years)
So you can't use a modern browser but you can use a recent version of flash? Or does flash from 2001 work just fine (and no one cares about security holes)?
Flash updates itself seamlessly, even in IE6; even, to my knowledge, in corporate-firewall situations, as long as Adobe's servers aren't completely blacklisted.
Really? I have to admit, I just don't understand the corporate "security" logic, then.
You don't update a crappy 10-year old browser full of security problems, and yet you let another piece of software (with potentially even more security problems) update itself quietly behind the scenes, totally out of your control?
... and then you actually make your enterprisey software applications depend on that piece of software, which you have little control over?
Security usually isn't the reason. Typically they have old versions of large software suites (like SAP) which had a ton of custom development done by external consultants, worth millions of dollars. If they want to upgrade to a new browser, they need to upgrade to a new version of the platform, which in turn means upgrading all those custom developed solutions. The cost outweighed the benefit for a long time.
It's no longer that much of an issue though. IE6 is starting to die off in the enterprise space. Once apps get on IE7 they're easier to upgrade thanks to microsoft's backwards compat support in newer IE's. I'm hopeful that IE9 will get adopted more quickly than IE7 and IE8 did.
That's only the most recent version of Flash and that assumes that a) it hasn't been disabled by the kind of conservative-bordering-on-ossified IT groups which still use IE6, b) the user has permissions to install the update, and c) the user reboots when prompted.
Flash updates are still a problem unless you use Chrome.
Short answer is build in HTML/JS/CSS/AJAX now. Feature detect and add HTML5 where you can. Polyfill with Flash where necessary. Think about the future.
It's true that HTML5 can't do everything that Flex can today. More important is the fact that the vast majority of enterprise apps don't require those things.
Developing an app in Flex just because it can do things today that HTML5 can't is short sighted. That rationale will not hold water 3 years from now when the boss is asking "what the hell is Flex?"
Working with Flex and AS3 is really nice on a lot of levels. The type-safety is a cozy blanket. The tooling is also excellent, and I love having access to integrated test runners and other handy bits that IntelliJ provides me.
If you consider Flex/AS3 as a DSL for building UIs, the story starts to get more interesting.
it quite different from my experience, I was using myeclipse + flex plugin. I remember that myeclipse hangs every 20 minutes, and that happen not only on my PC, that happen to all my teammates PC, while developing Flex, and it work OK when we're developing java backend.
I'm no fan of Eclipse. I've never used myeclipse, so I can't speak to that. I've used Flash Builder (in a mostly stock way) with varied levels of success. IntelliJ has really nice Flex tooling though.
The iPad Safari usage has passed IE6 in North America. I'm really not sure why well paid people in enterprise find it so difficult to upgrade browsers. They are paid to solve problems, not give excuses.
Because they may have millions of dollars of custom web applications that break when you don't use IE6, and explaining to management why you need to spend tons of money to fix something that isn't (to their eyes) broken is difficult.
Which is why people are uncomfortable with these stopgap solutions existing. I can't speak for anyone else, but I would much rather that this option didn't exist at all, because all it allows is those companies on crutches to keep hobbling.
It's no big loss to the world of technology if some stubborn backwards company can't have its cake and eat it too. They have to either suck it up or lose enough money to realize that it's important. Flex and similar projects draw out that process. Frankly its a negative for everyone in the long run.
True. I worked for a few banks and used Flex in one project. I cannot say that I loved the tech, but I saw many people struggling to make html/js/css applications work with IE and it was a relief to not have to worry about it.
"""The real challenge is with enterprise applications that need a rich UI - this is where Flex was a good solution. Saying "just use HTML5" is fine when you serve the consumer space; it's not if you serve enterprises."""
I don't think there is anything that can't be done with HTML5 (the whole stack, I mean), nowadays, and that Flex can do it. Especially since an enterprise can dictate to it's users to use a capable modern browser.
There's plenty a full native solution can do that HTML5, but Flex ain't that, and besides being limited it's also not that rich component-wise anyway.
I don't think you've got the point- an enterprise can dictate to it's users to use a capable modern browser, but they won't. Mostly because they have other legacy software which requires an old version of IE.
Or because they're lazy, but they don't like being confronted with the product of their laziness, so if you tell them to upgrade their browsers then they will go to a different company that'll use something like Flex.
I don't think there is anything that can't be done with HTML5 (the whole stack, I mean), nowadays, and that Flex can do it.
Flex can open a direct TCP socket connection. With HTML5, you're stuck with long polling, keep-alives and WebSockets, all of which require HTTP headers and hence can't be used to interface with existing services without a proxy.
Mmm, yes. However, the policy server runs on a different port. So you can still use an unmodified ircd, for instance, and connect directly to it from Flash as long as the policy server is running.
It's a different way of getting around the security problems, and it's a lot less intrusive than the WebSockets way of sticking an HTTP header in front of the whole thing, which would actually require modifying the server service instead of just running one piece of additional software.
Your first argument is not true. There are things that you can build on top of Flash that you cannot do with HTML5. That list may be shrinking, but this has more to do with Adobe's laziness, rather than the awesome powers of the HTML5 standard that took years to reach a reasonable consensus and even now browsers are struggling to support all of it, with the biggest offender being still IExplorer (surprise).
Your second argument ignores the policy of real-life enterprises. These environments suck, but they are a real problem for developers that want to sell software to them.
Your third argument also ignores why many people like Flex.
Also, this very complaint about being downvoted by Flex fanboys ignores the possibility that you might be wrong in any assertions you've made.
HTML5 is just not a go-er for enterprise products that need a rich UI. Even if it could do everything Flex can (and it can't, yet), you need a modern browser. Many enterprises still use IE6. I'd say 60% of our customers are on IE6; and the remaining 40% use IE7. Demanding IE9 would make an enterprise product dead in the water.
Flex fitted here. You have enterprises who say "no more client server, everything should be web" but then don't give you the web platform to be able to deliver the required user experience (i.e. you must use IE6/7). Flex let you deliver on the web, with a rich UI, on legacy browsers.
So you had a choice:
- Stay on client/server (lots of enterprises won't consider you)
- Develop for HTML5 (not quite prime time, no-one can buy your product as won't work on their browsers)
- Dumb down the UI and deliver in IE6 (workable for some projects, but not for many - some products really do need a rich UI. Especially not doable when porting existing rich client/server app to being webbased - clients don't like backwards steps on the UI)
- Develop in Flex
So it's all well and good saying people yelled 'iceberg' but really you're between a rock and a hard place, and even with this news I'm sure most Flex enterprise developers would make the same decision again - because there really weren't many alternatives.