Slashdot Mirror


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.

13 of 73 comments (clear)

  1. Stable API by dos1 · · Score: 3, Insightful

    Maybe they just got a reasonable and stable API from the beginning, so they don't really need to have "insane" backward compatibility?

    1. Re:Stable API by jellomizer · · Score: 4, Insightful

      The google Maps when was released was impressive, as it used the newer features in the browser, where other vendors were a bit wary to implement. During this time, including Javascript as only for form validations, and was coded to be expected not to be used. However these new features in the browser have became commonplace. But other then using the new standard browser features, Google didn't do too much that was crazy, Like having a plug in, using a MS or Firefox only feature. They followed the HTML 4 Standards. By actually following the standards it allowed for easier forward compatibility, as features are removed and deprecated much slower from a standard then they are in some crazy hack.

      I myself have some fairly advanced HTML pages still running on modern hardware without worrying about upgrades, Because I followed the standards and didn't include any browser/os/hardware particular features. So they still work decades later.

      This is why I have been a proponent of the Web Application method. The software has a much longer life span then with a say Windows forms.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    2. Re:Stable API by Anonymous Coward · · Score: 2, Funny

      That's okay, it's backward compatible down to 5mm diameter.

    3. Re:Stable API by shess · · Score: 2

      The google Maps when was released was impressive, as it used the newer features in the browser, where other vendors were a bit wary to implement. During this time, including Javascript as only for form validations, and was coded to be expected not to be used. However these new features in the browser have became commonplace. But other then using the new standard browser features, Google didn't do too much that was crazy, Like having a plug in, using a MS or Firefox only feature. They followed the HTML 4 Standards. By actually following the standards it allowed for easier forward compatibility, as features are removed and deprecated much slower from a standard then they are in some crazy hack.

      The value in having a reasonable and stable API from the beginning would be that the tech used to build the client would be irrelevant. If you design your API around the specific capabilities of a specific browser, then in two or three years it's going to be painful to continue supporting that browser while also supporting whatever new API you created to conform to the specifics of newer browsers.

      [That said, I think the OP on this thread overplays it. I doubt the first choice was having a reasonable API, the first choice was to commit to supporting things for a long time, at which point there are incentives to have an appropriate API. As opposed to the standard approach of "Who cares, just throw the shit against the wall and see what sticks", where you promote cutting corners to a valuable attribute of your project.]

  2. Yes, but what about IE6? by evenmoreconfused · · Score: 3, Funny

    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.
  3. Okay then by cyberchondriac · · Score: 2

    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.
  4. 5 years? by DogDude · · Score: 2

    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.
    1. Re:5 years? by TheRaven64 · · Score: 2

      The real news is that a Google product lasted for more than 5 years without being cancelled or changed into something completely different that all of the users hated.

      --
      I am TheRaven on Soylent News
  5. Not insane by RJFerret · · Score: 4, Insightful

    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.

  6. Re:buy a goolge self driveing car vs an apple one by XxtraLarGe · · Score: 2

    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.
  7. Re:Amazing by rickb928 · · Score: 2

    My G1 ran Android 1.0 (in October 2008) all the way to 1.6 stock, and further, 2.1, on Cyanogen Mod.

    Since Cyanogen had offended Google by then, I had to get the Google Apps from a zip file, a lot of stuff wasn't in CM 5 due to memory constraints, and it was slow. But it worked. And it still does to this day, though the battery I have is pretty sad.

    Not that Google was the least embarrassed to release Android 1.0 without working Bluetooth, mind you. But that was a fun phone, rooted and all. Perhaps my HTC M7 was as much fun. I can assure you my U11 is not. I will not purchase another HTC device. the run is over.

    --
    deleting the extra space after periods so i can stay relevant, yeah.
  8. Layers by Howitzer86 · · Score: 3, Insightful

    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.

  9. The trouble today by darkain · · Score: 4, Insightful

    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)