Among other things, taxis in the US are generally regulated at the municipal level, which is fine enough if you're in NYC, but somewhere like the Bay Area where there are dozens of small cities with crazy borders, you have to remember that Mountain View taxis are different from Sunnyvale taxis, which are different from San Mateo taxis or San Francisco taxis, and only San Francisco taxis are allowed to pick you up at the airport, but any town's taxis can take you there, so when you're going from the airport to somewhere that's not SF, you pay different rates and use a different company than when you're going to the airport. Uber abstracts all that away behind a nice API, which is the same not just for every Bay Area city, but for every city in the US, and many cities around the world too.