15 ms·
The insane amount of backward compatibility in Google Maps
- jordache 9y agomeh... it's all server side stuff. The underlying data is pretty much the same throughout all of those years. They just kept adding on the layers. Should be trivial for an old client to only consume subset of data that is only relevant to them.
- Grazester 9y agoDoesn't that mean also that they didnt break their api or update it to exclude these older versions? Wouldn't that me an admirable thing?
- eesmith 9y agoIf it's so simple, then why isn't it more common? You say "should be trivial", but in practice that doesn't seem to be the case for most applications. For example, Google Calendar changed their API some years back which caused the calendar display on Samsung refrigerators to fail. Why did that seemingly trivial task of calendar synchronization fail?
- dboreham 9y agoTo preserve compatibility with old clients you have to want to do so. In the case of Calendar Google did not want to do so.
- eesmith 9y agoThen it's not trivial, is it?
- emilfihlman 9y agoIt is trivial. It's literally only about preserving the old api.
- ggggtez 9y agoBut how will you move fast and break things if you spend all your time supporting old api?
- eesmith 9y agoWhich takes us back to my first question: "If it's so simple, then why isn't it more common?"
- CaptSpify 9y agoJust because something is trivial doesn't mean that anyone has to care enough to keep doing it. It's not more common because we as an industry have a terrible habit of designing systems to be non self-maintaining.
- dboreham 9y agoBased on my experience (which admittedly is extensive and has been expensive due to BigNetCo changing their APIs) it isn't more common because there are business reasons behind the changes. There was a reason why some API was dropped and that reason doesn't involve your life being pleasant and rewarding..
- dboreham 9y agoDifficult to know the difficulty of wanting something, no?
- Demiurge 9y agoThe thing is that Google maps is so old and the api is so domain specific, it doesn't need to change. The data required is just maps.google.com/v2/<z>/<x>/<y>.png There are new things like vector tiles with multiple layers of vector data, so we will definitely see more breakage with clients using that. And the routing is response JSON also had a stable layout. It's not hard to continue to support these api because the type of data they send doesn't change. Google also versions, and accounts and charges for the api usage. I wish there was more standardization for calendar data but many calendars, including Google, like to mess with the the underlying data and functionality, and there is not ground truth like xyz to really ground them =)
- mastax 9y agoI suspect the YouTube API is similarly simple. Search to get a lost of video IDs. Look up video ID to get thumbnail, title, description, list of video stream URLs. But they still discontinued the old API and broke all the first-gen smart TVs.
- ramshanker 9y agoYea, I bought a smart Sony LED TV in 2011 with inbuilt Youtube. TV still works excellent, but Sony/Google had to retire the youtube app. Guess it was because it couldn't support Ads?
- mempko 9y agoIt makes me laugh that 'insane backwards compatibility ' now adays means that 10 year old software still works.
- ThrowAwayFSp 9y agoYep, how'bout some half-million lines cobol program written in the '70s authorizing your transaction today?
- emilfihlman 9y agoYeah I was thinking the same. 2007 is not the dark ages.
- ggggtez 9y agoConsidering smartphones didn't exist until 2007, I think lots of tech actually do consider 10 years to be the dark ages.
- pmlnr 9y agoThey did. Even the article mentions the Palm Treo, then there were the Nokia Communicators, etc. The iPhone was far from being the first smartphone, but it was the first to break the nerd-wall and sell to the masses.
- digi_owl 9y agoThe first iphone was not even a smartphone, it was a featurephone with a fancy UI. Only with the 3G could they start claiming it was a smartphone. Sadly didn't stop boneheads like a NYT writer to try to relabel it as a "superphone" because smartphone was apparently by then too pedestrian for something Apple made...
- kuschku 9y agoThis is indeed correct – the first iPhone with iOS 1 did not have any apps, or ways to install apps. The very defining feature of a smart phone are the apps, though. EDIT: Due to downvotes, here’s Apple’s own page advertising how iOS 2 (introduced with the iPhone 3G) adds apps to the iPhone: https://web.archive.org/web/20080912112138/http://www.apple.com/iphone/softwareupdate/iphone2.html/ https://web.archive.org/web/20080912112138/http://www.apple....
- exotree 9y agoThis is really quite impressive.
- jordache 9y agowhat is impressive? the technical result? nah.. the sheer will to support things like the Treo? yep
- digi_owl 9y agoIt really should not be though. It is saddening how fixated on "new" the vally mentality is.
- jordache 9y agobut you can't argue that a modern smart phone facilitates orders of magnitude more productivity than a Palm Treo running Windows Mobile or Palm OS?
- isostatic 9y agoYou can do. On the other hand you have magnitudes more ways to suck time in a non productive manner.
- sangnoir 9y ago> It really should not be though. It is saddening how fixated on "new" the vally mentality is. That's not a fair characterization - it is impressive regardless of the industry. I was impressed just the other day reading about Mercedes classic has stock of spares for old cars (not all parts). I would like to think the number of generations of Mercedes cars is comparable with the number of generations of Maps APIs that have been rolled out. Maintaining support for old products takes effort, and is unlikely to be profitable (directly), one is justified in not doing that without fixation on the "new".
- opencl 9y ago
- NelsonMinar 9y agoI wonder how much of this backward compatibility is because of the Google Maps API? I'm not sure if these products use the API themselves, but even if they don't the discipline required to have and support an external API means you don't just break old URLs without consideration. There have been deprecations in the Maps API but not many, and each with long lead times.
- cwmma 9y agoThe JS api is more of an SDK so it doesn't expose urls or anything and doesn't have all the features of the site. There are url endpoints but they are pretty limited and I'd highly doubt it's dog fooded.
- bri3d 9y agoI had this same experience the other day with Google Maps for PocketPC. Still works. Smart API cross-compatibility is something we should strive for, within reason.
- gioele 9y agoFor years I refrained from doing a post like this because I feared (and still fear) that somebody at Google will notice what is going on and shut the old APIs down. "What? server XYZ still works!? Mel was supposed to turn it off in 2010!" The J2ME midlet has been very useful in the past years and I really don't want to lose it. (Ah, the pain and sorrow of relying on somebody else's service.)
- Paul-ish 9y agoCould this kind of backwards compatibility really be accidental?
- rocky1138 9y agoOf course! With some defensive programming, e.g, the client ignoring unrecognized elements in the XML response while still reading the ones it does recognize, and not changing the API endpoint URLs, so long as the API output contains the values the client is looking for, there shouldn't be any reason why this stuff would break. If the client used tilemaps versus vector data, I would expect the tilemap data to be out of date, but the directions would still be valid.
- lucb1e 9y agoI agree it could be, usually. But this is Google. They deprecate things with last week's milk. I feel like they have a pretty good idea of what's still running, and shut it down if it doesn't make them at least half a billion a year. I still miss many products, and I wasn't even a Reader user (so no, it's still other stuff I'm disgruntled about). These days you can't even do a Youtube search without an account, and an account needs a phone number of course, so you have to resort to HTML scraping to do simple stuff like just using the top hit (so you can fire off a tab with some song in the background, without waiting for it to load and click a result with the mouse). There used to be an API for simple things like that.
- lazyperf 9y ago
- djsumdog 9y agoOh man, I had the Sprint Treo and Centro and the Palm Pre. I even remember using maps on a trip I took for work to New York City, even before Apple's phone was released. Palm OS crashed a lot too. No memory protection either. Their IDE was based on Eclipse though. That was a different era for sure.
- yorby 9y agoIf only we could revert to how Google Search was X years ago...
- coatmatter 9y agoHave you tried DuckDuckGo lately? If not: As a personal experiment (starting a bit over a week ago), I switched all of my browsers' default search engines to DDG and it's so far been surprisingly pleasant. To me, it actually feels faster than searching with Google. Results seem easier to read through too. Be sure to read about the !bangs feature and take full advantage of it - it's probably the feature that won me over most easily but the rest of it is good too: https://duckduckgo.com/bang https://duckduckgo.com/bang
- yorby 9y agoI'm using DDG for probably 95% of my queries already, but thanks for the tips
- ricardobeat 9y agoI have a first-gen iPod Touch, bought in late 2007 a week after launch. Maps app still works!
- pronoiac 9y agoHuh, a factcheck: there was a built-in Google Maps app on iOS until iOS 6, when Apple Maps became the default: https://en.wikipedia.org/wiki/Apple_Maps https://en.wikipedia.org/wiki/Apple_Maps
- jagger27 9y agoYep, and it was great. It was Google Maps without as much of the Google ad spam.
- ninkendo 9y agoI wouldn't really call it great... it didn't do turn-by-turn directions or provide any way of reconciling what turn is next based on your location. It was for "planning purposes only" and you'd have to hit this arrow button repeatedly to show you each turn in a route.
- scott_karana 9y agoHence this quote: > How about iOS? Google Maps for iOS 1.0, released late 2012, still works just fine. [And] That was [just] the first version of Google Maps ever released as a standalone app after Apple ditched Google’s map solution on iOS
- pronoiac 9y agoOn re-reading, I finally get it: it's Google Maps 1.0, not iOS 1.0.
- scarface74 9y agoIt wasn't a built in Google Maps app. It was written by Apple backed by Google's API. Just like today Apple Maps driving directions are still backed by third parties.
- ckdarby 9y ago"In short, it has no easy way to connect to the Internet at all. In order to get the thing to connect to the Internet, I had to fucking emulate a Dial-up Modem over Bluetooth using a Raspberry Pi." I was more impressed by the author getting this to work than the entire article about Google maps backwards compatibility. That dedication ._.
- dfox 9y agoIt is not that hard to setup using bluez if you know that you want the modem emulation mode (ie. DUN) and not the native ethernet over bluetooth mode (PAN or BNEP). Probably biggest issue is getting the pairing to work without some kind of desktop environment (modern bluez expect dbus service that handles the UI). In 00's this was the way to connect palm devices to internet wirelessly, there even were ready made "bluetooth accesspoints" that did exactly that.
- jimmies 9y agoI wish I knew that piece of information before wasting hours just to figure out I had to use the DUN profile instead of PAN/BNEP. After another half a day I decided that there was no chance I could understand bluez system in the Raspberry Pi to make it provide DUN via the USB Bluetooth dongle. So I thought to configure my HC0x Bluetooth dongle to provide DUN via serial tty. So I went the alternative route of hacking the HC06 Bluetooth module to HC05 (or the other way around) because I only had the wrong kind laying around. I needed to wire 30 wires from the desktop parallel port to the dongle to reprogram it. And had to install Windows XP 32 bit on the desktop because the firmware programmer only likes that. It took days to get the Palm to connect to the Internet. It was a crazy journey & deserves a long blog post by itself :)
- dfox 9y agoI just wrote post to facebook about the only time I had seen BNEP working at all (and in the most complex configuration possibly and on top of that reliably), also something worth of series of blog posts (I'm somewhat fuzzy on why exactly we built that, I remember clearly that there was some bussiness reason for spending whole day on that, which either means that there was some real problem that got solved by that or it was just part of qualification test for Thinkpad T60). In my experience whether the dongle is connected through USB or as native UART is mostly immaterial from the bluez PoV. Another thing is that when we started playing with this disconnecting USB BT dongle reliably caused deadlock in kernel (on linux 2.4.25 or something like that, about half a year before first realy usable 2.5.x kernels)
- revelation 9y agoToday, APIs don't keep working for a month because someone thought replacing careful design with a bad emulation of SQL is the new hotness. They call it GraphQL.
- colejohnson66 9y agoCan you explain?
- bdcravens 9y agoCan you name an API that was deprecated in favor of GraphQL? (Considering that article is about maintaining backward compatibility while continuing to innovate)
- fermuch 9y agoAll the docs for graphql (and Apollo) recommend always making backwards compatible changes. If anything, graphql apis would be easier to maintain in the long run, since clients asks for what they want. New clients could ask for the new data, without breaking the responses for old clients.
- whoisthemachine 9y agoThis is really neat, but at the same time, Google Maps/Navigation and Google Search are easily two of the slowest apps on my 2013 Moto X. I guess what it comes down to is: they have a confined, well defined feature set (maps + navigation), which only requires a simple API to maintain. The functioning of the different versions that talk to that API is independent of that API.
- philipwhiuk 9y agoThe functionality of Google Maps hasn't changed much either though.
- therealmarv 9y agoIf you program a modern custom web app (let's say with vue) with Google Maps you will also start to curse at it because it's complicated and frustrating to deal with. Nothing against legacy support (it should stay!) but sometimes you want to work with things easily with modern techniques.
- deleted 9y ago[deleted]
- PinguTS 9y agoThis post is very interesting in a number of things besides the Google Maps. I still have an old iPod touch, the iPad 1, and dayly use my iPad 3 (iPad with Retina). I also own the new iPhone X. But especialy on the iPad I have no use case on updating it besides it is running this old iOS, for which no update is available anymore. Because there is no update all the apps for it are also not anymore updated, because Apple requires in Xcode a minimum iOS version for compiling. So I am more and more cut off from many services just because a newer iPad does not provide more except to stay up to date with the services I use. Comming from an industrial background where systems are running for 20 years, 30 years, and more that is really frustrating, when even 5 year old technology doesn't run for other use cases.
- scarface74 9y agoThe first gen iPad still works with Netflix, Hulu, Plex, Spotify, Crackle, Google Drive, and all of Apple's iWork apps. Of course these are all older versions. It supports AirPrint and AirPlay.
- brewdad 9y agoCan you actually download any of those apps if they aren't already on your iPad today?
- scarface74 9y agoYes. I reset my first gen iPad last year and redownloaded all of those apps. If the newest version is not compatible with your iOS version, It gives you the option of downloading the last compatible version. On another note, when Apple first implemented two factor authentication, they didn't make it well known, but you could enter your password+authentication code for older iOS versions. Later, they actually added that to the password prompt. The only caveat is that you can only download previous versions if you have downloaded any version of the same app previously. If you haven't, you have to download the newest version from another device first or you have to download it via iTunes and then you can download it from the App Store on the older device.
- snorreh 9y agoThis is not strange at all. It is due to Google wisely use versioning APIs.
- toast0 9y ago> The phone runs Palm OS 5. It doesn’t understand Unicode. Of course, it has no idea what an “emoji” is. When you send it a text message that has one character outside of the printable ASCII range, it freaks out and corrupts the whole message. When you have one character outside of the ascii [1] range, the whole message needs to be encoded in UCS-2 [2], so it's not surprising that the whole message is illegible, since the phone doesn't understand unicode. [1] it's more likely to be the gsm-7 range, although ascii sms is possible [2] or UTF-16, which is outside the SMS spec, but works enough, and enables emoji, so....
- abruzzi 9y agoSadly, I wish all that backwards compatibility extended to keeping access to the old web client. The last few years have seen a steady decline in web client for my purposes. For example, the max of 10 via points on a route, or lately seasonal closures make certain routes impossible, even when I set the route date to a date when the road isn’t closed. I also wish panoramio was still around and the photos were visible on the map. The current design for showing photos on the map is much less useful.
- cpcallen 9y agoI wish this were really as true as the author suggests. Unfortunately about two years ago Google turned off the backends that deliver public transport directions for older versions of Maps (in particular, the version that runs on Gingerbread), forcing me to switch to the (much less stable, much slower) CityMapper to find my way around town.
- scarface74 9y agoApple Maps backed by Google on iOS 3 - the last iOS version that works on the original iPhone/iPod Touch from 2007 still works.
- codemusings 9y agoI mean as long as the apps are still available on the respective app store why would they stop working? I imagine with every new major version they switched to a different Web API Endpoint and left the old ones intact. So app-wise nothing really had to be changed or maintained over the years.
- aplorbust 9y ago"Whatsapp actually has a time-bomb programmed in the app of some sort and it will kick you out if it realizes that it hasn't been updated recently."
- louithethrid 9y agoBackwards compatability is something, that should be a diffrent kind of partially open source project. Meaning- the software provider promises to include a dll that connects to current API and releases the source code. If there is interest to maintain the backwards compatability- work will appear.