
The insane amount of backward compatibility in Google Maps - jimmies
https://www.tnhh.net/posts/google-maps-insane-backward-compatibility.html
======
ckdarby
"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
It 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
I 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
I 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)

------
gioele
For 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
Could this kind of backwards compatibility really be accidental?

~~~
rocky1138
Of 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
I 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
If it's not costing like > $5MM / yr, it's unlikely someone would waste the
time to turn it off, TBH.

~~~
opencl
This is exactly what everyone thought about Reader, and Wave, and Picnik, and
Revolv...

~~~
datguacdoh
If Reader was running on old infrastructure, it's very possible it could have
cost more than that just to maintain status quo.

------
PinguTS
This 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
The 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
Can you actually download any of those apps if they aren't already on your
iPad today?

~~~
scarface74
Yes. 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.

------
mempko
It makes me laugh that 'insane backwards compatibility ' now adays means that
10 year old software still works.

~~~
DoreenMichele
It may make you laugh, but when I was homeless, someone gave me an outdated
iPad thinking that would help me out. It was essentially useless.

A lot of people who have old phones have them because they can't afford
anything newer. The pressure to constantly update to newer hardware is a
hardship for poor people. It de facto is one of the ways they get excluded
from modern life.

I am also real freaking tired of Google apps being a suite on my cheap phone
that constantly updates and threatens that you may break other apps if you
disable this one. It makes it very challenging to add any apps to my phone.
And my wants and needs are not huge. But Google is eating a large share of the
storage space and eats into my time for clearing the cache, etc, to keep the
phone functional.

~~~
icebraining
That's interesting; I still use a Nexus 7 (2012) as my main mobile device.
It's occasionally frustratingly slow, but I haven't found almost anything that
wouldn't actually run on it. Is the iOS ecosystem worse in that regard, or was
the iPad even older?

I agree with the Google Apps thing, though; my employer gave me a new but
cheap phone with just 4GB of internal storage, and I'm always having to
cleanup so I can install anything new. And an SD card barely helps, lots of
stuff simply can't be moved.

~~~
DoreenMichele
I don't remember how old the iPad was and I no longer have it. But it was old
enough that support had been discontinued for its os and I was having trouble
finding ways around that. Perhaps someone more technical could have found a
solution. I did ask around, but to no avail.

~~~
icebraining
Thanks. Experiences like yours are why I'm always wary of the pushes to make
access to services exclusively online. They're usually an attempt to cut
budgets by throwing the people who need it more under the bus.

~~~
DoreenMichele
A lot of libraries don't have the latest software. Internet access is often
limited to 2 or 3 hours per day on public computers. Public computers
frequently do not allow for even temporarily saving images or other files to
the desktop, which seriously limits what you can do in them.

I love the internet. It makes my life vastly more workable. But it makes me
crazy that there is so little effort to keep the bar for entry low in terms of
money and technical savvy.

Why does my cheap phone need so many apps that I don't use, that cannot be
disabled and that promptly update again after I delete all the data off of
them, forcing me to delete the same data repeatedly? Is this really necessary?
Come on.

~~~
razorunreal
Some tips, just in case they help. When disabling apps, you can generally
ignore the warning that other apps may break. Do not disable Google play
services, though. Also, go into the account settings and make sure sync is
turned off for everything, you can sync manually when needed. Finally, disable
auto-update in the play store. Google apps update frequently but will
generally continue to work for quite a while if you refuse those updates.

~~~
DoreenMichele
I had no idea I could turn off auto update in the app store. I couldn't find a
way to do it on my phone, so I thought it could not be done. That alone should
make this more manageable.

Thank you.

------
djsumdog
Oh 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.

------
bri3d
I 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.

------
NelsonMinar
I 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
The 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.

------
whoisthemachine
This 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.

------
exotree
This is really quite impressive.

~~~
jordache
what is impressive? the technical result? nah.. the sheer will to support
things like the Treo? yep

~~~
digi_owl
It really should not be though. It is saddening how fixated on "new" the vally
mentality is.

~~~
sangnoir
> 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
Even the usual car parts stores (Autozone, Advance auto, etc.) stock a lot of
parts going back at least 30 years. My car is over 20 years old and I'm
surprised how many basic parts I've been able to just walk into a store and
buy (radiator, alternator, starter, etc). The amount of warehouse space in
those stores does not seem that big but they manage to keep a very useful
selection of parts spanning several decades. Much more convenient than going
to a dealership and paying 3x the price and waiting a week because they don't
actually stock the parts anyway.

------
abruzzi
Sadly, 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.

------
yorby
If only we could revert to how Google Search was X years ago...

~~~
coatmatter
Have 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
I'm using DDG for probably 95% of my queries already, but thanks for the tips

------
ricardobeat
I have a first-gen iPod Touch, bought in late 2007 a week after launch. Maps
app still works!

------
cpcallen
I 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.

------
toast0
> 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....

------
snorreh
This is not strange at all. It is due to Google wisely use versioning APIs.

------
therealmarv
If 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.

------
pronoiac
Huh, 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)

~~~
scott_karana
Hence 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
On re-reading, I finally get it: it's Google Maps 1.0, not iOS 1.0.

------
philipwhiuk
The functionality of Google Maps hasn't changed much either though.

------
aplorbust
"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."

------
scarface74
Apple Maps backed by Google on iOS 3 - the last iOS version that works on the
original iPhone/iPod Touch from 2007 still works.

------
codemusings
I 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.

------
jordache
meh... 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.

~~~
eesmith
If 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?

~~~
Demiurge
The 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
I 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
Yea, 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?

------
revelation
Today, 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_.

~~~
bdcravens
Can you name an API that was deprecated in favor of GraphQL? (Considering that
article is about maintaining backward compatibility while continuing to
innovate)

