Ted Patrick > { Events & Community } > Adobe Systems


Yahoo Maps: From Flex 1.5 to AJAX

Today Yahoo Maps turned off the the Flex 1.5 based maps application and launched a new version built upon AJAX. Having been involved with Yahoo Maps since I joined Adobe in 2006, seeing this app move to AJAX is troublesome for me because many of the reasons it moved were non-technical and I believe that Yahoo missed an opportunity in adopting ActionScript 3.0 and Flash Player 9.

Flex 1.5 is much harder to develop with compared to Flex 2.0. In several cases development can take 2X longer using Flex 1.5 vs Flex 2.0 but the version difference of .5 makes this seem deceptively minor. Flex 2 was a ground up re-write of Flex on ActionScript 3 utilizing clean API's and a new JIT VM in Flash Player 9. Code execution is 20+ times faster than prior versions of Flash Player and the API changes really remove the development barrier to making rich applications. Yahoo was having a difficult time maintaining the Flex 1.5 version of Yahoo Maps and as Flex 2.0 took off, the developers on Maps were lured away by higher rates. Currently there is not a single Flex developer left from the original Yahoo Maps team and they are all now working at high level Flex positions at ESRIA, Disney Internet Group, Fidelity, Metaliq, and Ribbit. Flex 2.0's success in 2007 lead to a developer shortage and the Yahoo Maps team was gutted of its Flex talent given market conditions.

Advertising using Flash Player is commonplace online but putting Flash advertising inside a Flash application is hard given different frame rates. Yahoo has a javascript ad api that is ready to add into any html based application but with Flash based solutions all ad apis needed to be custom developed and maintained. When companies create Flash advertising they encode them at a certain frame rate. If the frame rate of the Flash application is faster or slower than the rate of the advertisement then it will play incorrectly. The irony is that you cannot easily put Flash advertising into a Flash application today without modification of the original SWF. The Flash Player team is working on a very elegant solution for this in a future Flash Player but this made montization of Yahoo Maps more difficult than it needed to be. We need to solve this problem and it MUST be drop dead easy to add advertising into Flash content.

It is also frustrating for me to see nearly every other maps provider enhancing mapping applications with Flash Player. Google, Mapquest, ESRI, and even National Geographic are all leveraging Flash Player within their current mapping applications. With the ability to work with image data in memory, vector maps, optimized data loading, alternative views (street view) , filters, and custom user interface elements, Flash Player is an ideal medium for maps and map syndication/integration.

Long story short, we have some work to do. We need to make Flex/Flash work with advertizing so that it can become the primary content not the ads. We need to get more developers trained on using Flash/Flex and especially ActionScript 3 so that teams and solutions can grow. We also need to highlight the API's within Flash Player and make them easier to adopt. Many developers have no idea that these API's even exist. As a medium, Flash Player still has some very large barriers to cross to see larger scale adoption and mainstream use.

I want to congratulate the Yahoo Maps team on delivering a great AJAX implementation. Sincerely, what they have accomplished is really great and is technically awesome in terms of compatibility and performance. The issue for me is that I know that maps leveraging Flash Player 9 and ActionScript 3 could be dramatically better than anything in the market and as a long time Yahoo user, I wanted to see them jump ahead.

Yahoo! Maps on Flex 1.5, you will be missed!

Ted :)

36 Responses to “ Yahoo Maps: From Flex 1.5 to AJAX ”

  1. # Anonymous Aral Balkan

    Hi Ted,

    What I'd love to see is a non-technology-specific REST-based mapping API (and I'm sure one exists, I haven't really researched this).

    Also, it baffles me why time-based playback of external SWFs has not caught on. We've always been able to play any SWF asset/movie clip/etc. at a frame rate that is independent of the main SWF's frame rate via time-based code (about five or six lines of it, really). The key thing here is educating developers and, as you state, making it easier/seamless to do this (without code).

    Why not MovieClip.frameRate = x. Or Loader.lockFrameRate... or I guess I should just look at what you're cooking up for Player 10 :)  

  2. # Blogger Erki Esken

    I think part of the reason for Yahoo to drop Flex maps is also that it's harder for regular web developer, who knows only HTML/CSS/JS, to create map mashups.

    It's so simple to get started with custom markers on Google maps, just copypaste snippets of JS from Google Maps documentation, refresh, and off you go. But with Flex maps API, you need more complex developer tool setup to even get started.

    This could be made easier with exposing the API over FABridge too, but Yahoo Flex maps didn't have that I think.  

  3. # Blogger Richard

    Not great to see Yahoo! continuing to lose their edge year on year. Are we likely to see a Flex 3 based Google Maps in '08? It's quite likely if Google want to bring their Maps app closer toward the sort of things they are already offering in the Google Earth desktop app (that includes the 3D buildings/landmarks for one), AJAX certainly won't let them do it that's for sure!  

  4. # Anonymous MrSteel

    Well, I am glad to read about ads and flash better integration

    on the other hand I don't think companies big as Yahoo should think about Flash vs Ajax at all ??
    they mush have Ajax and Flash version. Yes, both, and both at highest quality
    it's not something unbelievable to succeed. Choosing one of them, AJAX in this case is telling really that Yahoo is not leader and trendsetter for next year.  

  5. # Blogger kosirm

    maybe one of the reasons for decision was the fact, that ajax is free...  

  6. # Blogger Ted Patrick

    The change is only around the "broadband maps" site, not the API. The javascript and actionscript API will remain and we will see a pure AS3 maps api arrive soon from Yahoo.

    Ted :)  

  7. # Blogger Ted Patrick

    Erki,

    I have always thought that compilation was a barrier for many. The use a declarative markup to define data is so handy when it is not compiled and removal of that step seems to include many more people. Copy, Paste, Refresh is a very valid development model.

    The funny thing is that Flex and Flash Player have all the ingredients to create extensible runtime markup today. Runtime MXML and ActionScript anyone?

    Ted :)  

  8. # Blogger Ted Patrick

    kosirm,

    Flex 2.0 SDK (mxml, as3, components, compiler) is free
    Flex 3.0 SDK (mxml, as3, components, compiler) is free.
    Flash Player is free.

    If you want advanced tooling for Flex development, that costs money but the entire stack for creating Flex based applications is FREE, FREE, FREE.

    Also Flex 3.0 is open source under a Mozilla License at release in early 2008.

    Price was not a factor at all.

    Ted :)  

  9. # Blogger Daniel Yang

    it was risky when Yahoo! chose flex 1.5, and now it is still risky for them to drop it(flex).  

  10. # Blogger Rob McKeown

    The only reason I used Yahoo maps instead of Google maps was because it was flex based. The app was more fun to use. Hopefully, with the conversion, they haven't sacrificed the user experience. I haven't had time to check it out yet in detail but so far I have seen it not respond and "undefined" come up in a couple of places... I already miss the Flex version  

  11. # Anonymous Anonymous

    I wonder if the lack of a flash player for the iPhone had anything to do with the decision.  

  12. # Anonymous savvas.malamas

    I was so proud for Flexy Yahoo maps..
    I used Yahoo maps just because it was a flashy app, like Rob said.
    This is sad..
    I have bought the Yahoo! Maps Mashups by Freedman and I haven't ever start it..
    Fortunately the api remains, but dropping such a nice Fx app??
    I mean this is Flex.. This is Flash..
    FLASH PLAYER for God's sake!  

  13. # Blogger Suketu Vyas

    Ted,
    Thanks for shading light on Flash player capability in order to deliver bitmap and video based content.

    According to me creating maps application would be the better choice compared to AJAX based solution.

    Yahoo did good job with AJAX application by simulation the good and smooth effects with the navigation panel and over all application…

    But I am sure that world will be moving towards flex way shoertly…  

  14. # Blogger Todd

    I think that maybe Flex/Flash wasn't really necessary to produce this product.

    Though, I earn a living right now on Flex development, I still use Google Maps. Why? Because it's easy, it's what I'm familiar with. It does everything I need it to do. I don't really see how Flex would make Google Maps better. I don't really care what technology was used to build what. I care about how something is implemented. IF they can do very clever, user friendly apps in pure HTML/AJAX, then that's perfect. I love GMAIL because it's the perfect email solution for me. Would I like it any better in Flex, no.

    So, saying that. What features were in the old Yahoo maps that they can't have in the newer HTML/AJAX version?

    My rule of thumb is use the most accessible technology if it fits, and then climb up the food chain when appropriate. Now, if Yahoo was trying to make their mapping product work-ofline, embedable into some phone with an offline map cache, or light-weight computer....that's a bit different story.  

  15. # Blogger Ria Flex

    I'm rather worried that if a company like Yahoo can't get hold of some decent Flex developers which 'normal' companies will?

    Could it be that they didn't look very hard for Flex developers???  

  16. # Anonymous Phillip Kerman

    I totally don't buy the argument that AJAX gives you a larger base of developers. First, every AJAX framework I've seen is a mess. Second, a "real" programmer can learn any language and AS3 is as clean as any.

    I am curious what the ultimate reasons were. From this user's perspective I dropped yahoo maps long ago. Not because of Flash... in fact, the old implementation was very well done. But because google is arguable much better... the "drag to change route" thing is invaluable. Plus "Street view"... sorry Yahoo, why would I even bother? Now if all the mappers could get their directions and dead-ends worked out so I don't get bum steers then I'd be happier.

    Back to Flash... here's my suggestion: Adobe, take some of that cash you're investing and fund a project to make a better mapping tool. Same thing with MSFT and Silverlight. Of all the tools people use on the web, I think maps are not only of great utility, but I also think people are willing to jump ship and try another site. Seems like a great showcase idea even if it might cost a TON.  

  17. # Anonymous Tim Sneath

    Kudos to you for your transparency and openness, Ted - it's impressive and refreshing to see. It would be easy to sweep something like this under the carpet, but it's great that you've explained some of the challenges they face. Best wishes, Tim  

  18. # Blogger randy.troppmann

    I have been developing with the Y! Flash-based maps component for two years now. It makes me sad to see the Y! consumer maps site switch to AJAX.

    Google is the leader and continues to do great work but AJAX is a dog in this case (and don't compare mapping applications to email applications).

    Take the pepsi challenge: Start a new map on google maps and draw a path with the polyline tool. Now grab an anchor and move it around a bit to get a sense of how the application performs. Now, go to http://www.runningmap.com, load a map and start clicking around. Drag a point around. What you will see immediately is Runningmap is so much smoother and google maps is a dog in comparison.

    The point here is that overlaying interactive content over tiled maps performs x-fold better in the Flash Platform than in AJAX. Runningmap.com uses an AS2 based map in Flash. Written in AS3 we will see a 10x increase in performance and this will leave the Google AJAX implementation in the dust IMHO. Just look at the work Doug McCune is doing ... try that in AJAX.

    My guesses are that a) Y! managers felt AJAX would give better performance; b) Flex 1.5 left a bad taste in their mouth; c) some key people left the company to do Flex development(!). The advertising issue is a new one to me but it makes perfect sense. The AS2 Map component is (let's face it) a bloated mess that no one at Y! wanted to deal with anymore (especially after said people left). But there just has not seemed to be any desire to retool-refactor the component into an AS3 version and therefore I am ecstatic to hear you say, Ted, that we will see an AS3 version soon.

    Google has had to pull out all stops and hack like mad to get Maps to do what it does (and does it EXTREMELY well). But what a mess. FLASH/Flex offers an awesome api/platform to develop mapping meta-content in a manner of best practice coding principles.

    When the AS3 version comes out, you will see us 3rd party developers create functionality that will make switching back to Flash a no-brainer.  

  19. # Blogger kosirm

    oh, sorry, I know flex compiler is free and all that, I just thought yahoo was paying some big money serverside... if it's not so, thanks for clarifying this :)  

  20. # Anonymous Richard Fairhurst

    "Flash Player is an ideal medium for maps and map syndication/integration."

    Agreed. Take a look at our Flash-based map editor at OpenStreetMap (AS1 and actually compiled with Ming, FWIW). It's been a pleasure to develop and we're continuing to refine it.  

  21. # Anonymous h3

    Hello Ted,

    Interesting article, thanks. But reading comments, I wish Kosirm got the real point. Of course it's not the price.

    Flash is great and will always have considerable advantages over JavaScript, it's undeniable. But while Flex might be open source, Flash is not. In the end you're always relying on a closed source proprietary platform that belong to a big corporation. Inevitably you end up relying on this corporation.

    I don't know if I'm the only one who care, but for me it means a lot. It means I will *never* use Flash to build applications for the same reasons I don't use .NET.

    cheers.  

  22. # Anonymous h4

    I think I get "h3's" point but I doubt this was yahoo's reason. Are they trying to live the pure-life that people like h3 do... where they never use any commercial products or rely on a corporation on which to build a business? Seriously, if you live in a yurt, watch no tv, and power your computer with a generator hooked to a bicycle pedals--then okay, you are better than us.

    Out of curiosity, what kind of work do you do h3? Do you clients care or is this simply a personal way-of-life.  

  23. # Anonymous Anonymous

    It seems to me that AJAX is much more cross platform than Flash, and therefore Flex. You can do much more with Flex than AJAX, but for things like yahoo maps, where you don't need the whizbang loading bars and dynamic charts, the cross platform nature of AJAX wins out. With Flash/Flex, you're at the mercy of Adobe; waiting for them to release a version for your platform, be it Linux (which, admittedly, is now released) or 64-bit architectures.  

  24. # Blogger jordan

    so my concern then is: should (can!) i proceed and use the flex api (http://developer.yahoo.com/maps/flash/flexGettingStarted.html) that Yahoo has so kindly provided, to build a flex mapping app? or are we end of life on this and I am looking for a new solution? if the latter, what a drag.  

  25. # Anonymous voiceofexperience

    One factor that does not bode well for a new, flex or flash based api - the new AJAX maps web product (and many other ajax apps) is built off of the ajax API and therefore will get all of the investment. the prospects, benefits, and priority of supporting another API is low. and if one is released, it will always be 2nd fiddle at best..so know this going in if you build on it.

    also, flex has/had a bad reputation for ugly bugs in basic text entry and cut & paste, which is a big deal if you are pasting addresses.
    this stuff must be fixed for mainstream adoption  

  26. # Blogger Dan

    Getting good Flex AS3.0 talent is a real problem, so far I have had to build my team out of former C# devs. For the first month they complain a bit about using Flex after that they never look back.
    Anyone know of any good Flex or UI devs around the Seattle area as I'm still looking for more.
    Ted would would it take to get you to visit and see one of the coolest uses of Flex.  

  27. # Blogger ThunderHead

    If you are interested in a Flex based mapping compnent - check out http://www.arcwebservices.com/v2006/develop/flex.jsp  

  28. # Anonymous Max Carlson

    I thought I'd point developers at OpenLaszlo, which does seamless cross-compilation to Flash 7 or 8 (9 soon), DHTML and Java ME. If the Y! Maps was built on OpenLaszlo, it would have been a really easy port!

    Regards,
    Max Carlson
    OpenLaszlo.org  

  29. # Anonymous Anonymous

    Any company (or technical management) stupid enough to use flex 1.5 is going to be stupid enough to use AJAX over Flex 2.0, the latter being vastly superior.

    The people at yahoo maps are not particularly good at choosing technology.  

  30. # Blogger Alfio

    Ted,
    I didn't experience any problems on the Yahoo maps website when I tried it out Saturday when I was looking for directions, to check out a new place. The site worked great and even had the ability to send directions to my cell for when I was on the road. So no problems there and I'm sure when the common user goes to the site they won't know the difference between the 2 technologies. The only problem I did have when i was on the road was when I tried to look at the directions Murphys' law kicked in. Well, there was an internal error when I tried to look up the directions. When I went to Flex camp here in Boston, Google and Yahoo had the technology working great and I had no problems and was psyched that there was this feature available to both sites.
    Hopefully Yahoo can fix this problem as I even tried it 30 seconds ago and still received this error. So will be sticking to Google Maps for the time being.  

  31. # Anonymous Jon @ Clockwork objects

    IF there is demand for the Yahoo MAP API through the ASTRA framwork then YAHOO will continue to develop for it. I have used it for a few projects and found it easy to use though a little buggy with AS3. For example some events don't fire as they should. I have written an article on using Yahoo Maps with flex and my experiences http://clockobj.co.uk/2007/10/04/using-yahoo-astra-map-api-with-flex-2/ feel free to have a look and keep the demand for AS3 API for Yahoo Maps up...  

  32. # Anonymous Hepp Maccoy

    Even though there are some issues with Ads and different .swf framerates - this really came down to internal politics and engineering resources at the time. Certainly not because Ajax is "superior", or that we had a single massive technical problem. It is sad to see, but don't expect this to be the end of all things Yahoo Maps & Flash...  

  33. # Anonymous Anonymous

    Ted, back on Dec 18, 2007 you stated that "a pure AS3 maps api arrive soon from Yahoo." Do you know something we don't know? As you can see here: http://suggestions.yahoo.com/detail/?prop=ydn&fid=3208 the request for a Flex 2 API has been around for a year. No one from Yahoo has even commented on it in 8 months. We have to develop something by the end of the quarter and were hoping to use Flex 3 to do it.
    Any advice on AS3 mapping components available? Unfortunately, we can't afford the ESRI service. Thanks!  

  34. # Blogger Doug Smith

    You've probably already seen this:

    Yahoo Maps for AS3  

  35. # Anonymous William Khoe

    Can you please start by fixing wheel-scroll issue on Mac? And a whole slew of bugs due to wmode. These bugs are really Flash issue and have been ignored for years. This is one of the major differences I notice between Flex vs Ajax implementation, wheel-scroll support.  

  36. # Blogger randy.troppmann

    I need to correct myself in my post above describing google maps and the "drag a line point" test to show how poorly it performs. I was prepping for a talk and I noticed Google must have fixed it because there it no longer "performs like a dog". Ted, Google must be reading your blog. Nice work G-devs!  

Post a Comment



Jobs


Flex Jobs
city, state, zip


© 2008 Ted On Flex