The Insane Amount of Backward Compatibility in Google Maps (tnhh.net)
Huan Truong, a software developer, writes in a blog post: There is always an unlikely app that consistently works on all of my devices, regardless of their OS and how old they are: Google Maps. Google Maps still works today on Android 1.0, the earliest version available (Maps actually still works with some of the beta versions before that). I believe Maps was only a prototype app in Android 1.0. If I recall correctly, Google didn't have any official real device to run Android 1.0. That was back all the way in 2007. But then, you say, Android is Google's OS for Pete's sake. How about iOS? Google Maps for iOS, version 1.0, released late 2012, still works just fine. That was the first version of Google Maps ever released as a standalone app after Apple ditched Google's map solution on iOS. But wait... there is more. There is native iOS Maps on iOS 6, which was released in early 2012, and it still works. But that's only 6 years ago. Let's go hardcore. How about Google Maps on Java phones (the dumb bricks that run Java "midlets" or whatever the ancient Greeks call it)? It works too. [...] The Palm OS didn't even have screenshot functionality. But lo and behold, Google Maps worked.
Maybe they just got a reasonable and stable API from the beginning, so they don't really need to have "insane" backward compatibility?
That's rare and awesome.
lynx still browses the WEB, that doesn't mean the web has backwards compatibility
That is a sure way to break compatibility.
Surely the only thing that's really important is what IE6 does with it. Why would anyone use anything else?
No. Well...maybe. Actually, yes. It really just depends.
This sounds like a free ad for Google more than anything else. Slow news day?
Look back up at my post, now look back down, you're on the Internet. Now look back up. I'm a signature.
Absolutely amazing. Really shows you what continuing to support an older API can do. I wonder if there's some really old customer that started using Maps API v1 or something that still uses it, and that's why Google keeps it going?
Also, I think the T-Mobile G1 (called the HTC Dream outside the US) ran Android 1.0. I remember getting one, and using it, and about a month or so later getting the first Android 1.1 update.
It is by my will alone my thoughts acquire motion; it is by the juice of the coffee bean that the thoughts acquire speed
The only thing insane is how low our expectations have become that we don't expect software to degrade gracefully, especially since Google maps is a glorified web page.
Early on I had hoped that Free and Open Source Software would mean less software being abandoned or radically overhauled and that users would have greater comfort and consistency. How very wrong I was.
Try it on any Android TV device and its unusable, you can zoom in but not out, it doesn't support mouse and keyboard properly.
Try it on Dex, sucks, unusable.
It needs work on modern devices, don't care if it can still run on a 2004 Java phone.
It's sad that a company keeping software roughly the same for 5 years is considered "news". Microsoft and other real software companies often support their products for a decade or more, believe it or not.
I don't respond to AC's.
Microsoft supports running 30 year old third-party applications on Windows 10? Idiotic cruft from a stupid evil monopoly.
Google supports running a web app that it writes itself on a 9 year old platform that it still controls? OMG THANK YOU FOR GENIUS ENGINEERING GOOGLE! LET US WORSHIP YOU!
Incidentally, for all this "amazing" compatibility, how about getting Google Earth to run on Firefox? Or how about getting Google Earth to run on Chromium without hacking Chromium up? Oh wait, that doesn't count apparently.
That is neither "insane" nor "hardcore", stuff continuing to work should be the norm (and is in many cases); insane is the opposite, that software is changed to not function anymore. It's ridiculous that simple things we used to be able to do are no longer capabilities.
Worse is systems/devices that used to have decades or hundreds of years of functionality are now being compromised by more software integration without a durable mindset.
This is like how if you take the apps from Windows 2.0, you can still run them under modern versions of Windows.
Except that is actually impressive, because the backwards compatibility spans over 30 years and many huge technological changes.
This is similar, except it's only had to maintain compatibility over like 3 years and all the breakages their own team have introduced on a whim.
Have you seen the Google Maps API? It works like webpages. You send the server a request with parameters to define details and it sends back a JPG, XML, JSON, or whatever. But it's actually much simpler than webpages because the possible parameters are limited. In other words, it's not backward compatibility. It's just a simple set of web server requests.
I happen to be writing this on XP -- 17 years old. When I want to edit a Google map image I use Paint Shop Pro 5, which is about 20 years old. I guess we have different definitions of "way back".
buy a google self driving car vs an apple one as the apple one will go EOL and stop getting software updates after only 2-3 years with an $5000+labor and shop fees cpu upgrade needed to keep it on the road.
Jeez, it is almost as if a web site will work across any device that has a browser while an installed app only works according to the operating system and environment and hardware.
Makes you wonder about the future of a company that installs an app vs one that creates a web site that acts as the application.
buy a google self driving car vs an apple one as the apple one will go EOL and stop getting software updates after only 2-3 years with an $5000+labor and shop fees cpu upgrade needed to keep it on the road.
Mac OS High Sierra is supported on Macs from 2009. Your argument is invalid.
Taking guns away from the 99% gives the 1% 100% of the power.
I still use an iPhone 4 with iOS 4 and it works just fine. I don't have the fancy streetview but at least I get directions and position.
That is what you call backwards compatibility.
These web tards think they invented the idea of something working for 6 years without breaking.
If you run Google Earth Pro (the application, not the web app), you can see how the new stuff is layered on top of the old stuff in a way that might not be as apparent in the Google Maps app.
By default, Google Earth looks a lot like Google Maps - especially the browser version.
If you turn off 3D Buildings in Google Earth Pro, it drops back to projecting 2D satellite photos on topography. This is how it looks in the Google Maps Android app.
If you turn off terrain, that topography disappears and the ground is perfectly flat. Now you're working with data that's available to the old Android apps.
You can't turn off the satellite textures in Google Earth, but if you could, that would just leave the roads and street names. This is what was available to the first Android and Java apps.
New versions of Google Maps will load new layers, but so long that Google maintains the old layers and the format it is stored in, there's no legitimate reason why old versions of Google Maps couldn't load it and simply ignore the new stuff.
Though I have no experience, I'd guess it's this way because the database is being updated constantly, and not just for every official release. I can imagine they don't want to have to keep things updated while also updating the format, so instead, they just created one good extensible database and add to that in layers as new features become available.
Someday, years from now, we'll be marveling at the fact that Google Earth Pro still works, and still accesses all the new GIS data, years after Google abandoned it in favor of the web app. Sure, it won't support holographic teleportation targeting, but it'll still do what it was designed to do 10 years prior.
... sometimes you gotta use the lite mode ( ?force=lite )... and it does not always show an icon so we can click on it.
Backward compat should be the norm, not some 'insane' exception and is for most large scale code ventures that last more than a couple versions/years. The idea that doing backward compat work is exceptional shows what crap is being taught in schools these days
pile of dog poo
And the last version of Final Cut Studio was released that same year. It does not work at all on High Sierra.
For a company the size of Google, an an application that is basically drawing tiles in a grid, is this really all that impressive?
Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
On Palm OS the live traffic part of Google maps started crashing the whole app in about 2011. Map the app useless for traffic after that.
This just goes to show the trouble with today's mindset of software, that any sort of decent backwards compat support is seen as revolutionary. And here I am, running Windows 10, still printing on a printer built in 1998 (that has official Win10 drivers), and using software written for Windows 95 that still works flawlessly. As much as the Slashdot crew loves to bitch about Microsoft, the WIn32 API has been stable as hell since its inception, MS has put in a great deal of effort to ensure software retains functionality. (yes, this excludes the DDK, which changes every Windows version)
A lot of the newer software (mobile, cloud stuff) has lowered expectations of compatibility dramatically. Easy come, easy go.
I have experience in the mainframe and minicomputer world. Compatibility lasting decades is the norm there.
Therefore when I heard breathless descriptions like "Google Maps for iOS, version 1.0, released late 2012, still works just fine." My response is, really? 5 years of compatibility is impressive to you? What else mundane is impressive to you? Toothpicks? Grocery store scanners? Beanie Babies?
It sure doesn't take much to impress some these days. Is Truong a Millennial?
Most of the backwards compatibility is likely to reside in the Android OS and iOS, specifically in the APIs that Google Maps uses.
Google Maps still works in Opera 12 (~5 years old) as I use it now and again.
I still miss the Javascript-less version of mapping that Yahoo! used to have during the dial-up days. Every edge-of-the-map "square" was an HTML link pointing to the next portion of the map. It was so fast despite the bandwidth and slower CPUs of the time.
They didn't know how to innovate so the only breaking changes are those their UX Dessigners introduced rather than any core changes to the product.
I'm currently using a stupidly old computer (only two cores! only one GB of memory!) and I can readily notice when google fsc^Wimproved something *sigh* again *sigh*: The memory use will have gone up, the speed will have gone down, and nothing useful will have changed.
I *wish* that something, once made to work, would keep on working. But with software, especially anything remotely connected with "'web", including websites and web browsers, that's just not true. And in the case of browsers, you can't even "just" upgrade to a newer version to keep all those redone! improved! websites working like they did even just yesterday: The user interface will have changed, there'll be more unwanted software in there, it'll require OS upgrades and hardware upgrades and more memory and whatnot.
It's just wasteful. I'm seriously considering going back to paper maps and plotting my courses by hand, because google maps just won't do it without all the extra malarky I would do so much better without. Well, maybe try a FOSS non-browser mapping program first. Suggestions?
with my eyes! Seriously, the maps lack decent contrast. What I could see a few years ago is nearly impossible to see now. I would like to blame them, but I know it's really my aging eyes that are at fault.
Their maps have never really had decent contrast. You sure as hell can't print them. Plus, I wonder how many car accidents have been caused by people squinting at their phones trying to see a street name.
This article is a sad reflection on the pathetic state of today.
Backwards compatibility should be the standard, not "insane".
It's insane that people are expected to be good little consumers and upgrade every year.
Fuck off.
when they were offering you the opportunity to use their GPS maps service and incorporate it into your app. this is why it is still compatible. this project was always meant to be that way.
Specifically regarding GNU Projects.
Musl Libc is dramatically better about this, when your apps work, but it also only targets linux 2.6.32+ (I've actually used it on 2.4 kernels as part of a statically compiled older busybox with threading removed, although I think newer versions may have broken that thanks to c11+ bits.)
Glibc has always been a clusterfuck that seemed more intended for job security for supposed 'open source programmers' than actually intended to provide the sane and functional POSIX/unix environment claimed. Rich Felker particularly and many of the other musl-related guys have written a lot of documentation on the what is wrong with glibc, and having read the old mail threads back when there was hate for both the gcc and glibc maintainers, I can attest that not only were they often hostile to people trying to offer sane (and backwards compatible) alternatives to certain patches, but they seemed as often as not to be actively hindering gcc/glibc development. Given that one of the guys quit to go work at Goldman Sachs, I have to wonder if they weren't industry shills put in place to set back open source.
As far as linux videogames go: You are often better off with wine and the win32 version for the simple reason that you can get the libraries all compiled against the C++ abi you need relatively easily. With linux it is a crapshoot if the c++ compiler, libc, and game specific prereq libraries will all compile together without error and leave you with a result that doesn't crash due to mangled data structures. Still happens with the latest g++ releases (5/6/7, haven't tried 8 plus any of the others yet). So basically you need separate copies of libraries compiled for each standard, c++98, c++11, plus symbol mangling specific to the -fabi version. And even then thanks to header changes sometimes things break that don't show up until runtime.
..about as crazy as software written when M$ Dos 3.30 was new still running just fine under
M$-Dos 6.22 or "Dos 7.0"/Windows 95
Sounds like they simply designed their API/infrastructure well from the beginning. Maybe other companies should take note.