user37698: To me, banking is not a public thing. I don't want people to know what's in my bank account at what time, or who I sent money to. 
I know that I can make a new address for each transaction, as addresses are 'free'. But this isn't the case for say, a coffee shop, which would want only a single address for people to send money to (usually in the form of a QR code printout hanging on the wall). I can effectively track the incoming and outgoing cash flow of a coffee shop by just tracing the blockchain, can't I? If I were a rival shop, this would be very useful to me.

user5757: The ledger has to be public in order for Bitcoin to be decentralized.   The designers of Bitcoin didn't want to need anyone to play the role of a "bank" who keeps all the records, and whom everyone else has to trust to do that properly.  
For instance, when you keep a bank account, you are trusting your bank to keep your money and give it back to you on demand.  There isn't anything that actually prevents them from just taking your money and faking their account records to make it look like you never deposited it.  You could fight them in court to get it back, but they still have your money in the meantime.
But there still have to be records, and someone has to be able to see them to verify that they make sense.  Bitcoin's solution is to make the records public so that anyone can verify them.
You're right that this comes at a cost in privacy.  (Though from a certain point of view, in the current banking system, your bank has all your information; you're trusting them to keep it private.  If they published all your bank statements in the newspaper, you could probably sue them, but the information would still be out there.)
But your "coffee shop" example isn't a very good one.  Of course, if they operate with a single address posted on the wall, then others will be able to see their incoming transactions.  If that's a concern, then they shouldn't use that approach; they should use a new address per transaction, as you suggest.  That shouldn't be very difficult.  The coffee shop is going to have to have some sort of Internet-connected device (computer, tablet, etc), in order to see whether customers have actually made their payments and can be given their coffee.  If so, then that device can easily generate a new address for each customer, perhaps displaying it as a QR code on its screen.

user36050: When Bitcoin was invented, Blockchain analysis was not as advanced as it was today and pseudonymous transactions were believed to be closer to anonymous than they are with Bitcoin today. Under the current Bitcoin system, privacy can be greatly improved by avoiding fiat entry/exit ramps connected to your identity and by avoiding reusing BTC addresses. 
Yes Bitcoin transactions for the coffee shop you describe can easily be tracked. As you mentioned, stealth addresses can bring privacy improvements but not ideal for every situation. Once Confidential Transactions are added to Bitcoin (https://bitcoinmagazine.com/articles/bitcoin-privacy-confidential-transactions-feature-can-fix-some-of-coinjoin-s-problems-1457703275), privacy will improve but still not meet the level of the top 2 decentralized solutions solutions described below:

Ring signatures exist already with Monero and Ring Confidential Transaction (RingCT) is one of the most promising areas of privacy development: https://eprint.iacr.org/2015/1098.pdf
ZCash is another leading alternative if the market is satisfied with its trusted setup solution and developer mining reward share: https://blog.okturtles.com/2016/03/the-zcash-catch/


37698: <p>To me, banking is not a public thing. I don't want people to know what's in my bank account at what time, or who I sent money to. </p>

<p>I know that I can make a new address for each transaction, as addresses are 'free'. But this isn't the case for say, a coffee shop, which would want only a single address for people to send money to (usually in the form of a QR code printout hanging on the wall). I can effectively track the incoming and outgoing cash flow of a coffee shop by just tracing the blockchain, can't I? If I were a rival shop, this would be very useful to me.</p>
 5757: <p>The ledger has to be public in order for Bitcoin to be <strong>decentralized</strong>.   The designers of Bitcoin didn't want to need anyone to play the role of a "bank" who keeps all the records, and whom everyone else has to trust to do that properly.  </p>

<p>For instance, when you keep a bank account, you are trusting your bank to keep your money and give it back to you on demand.  There isn't anything that actually prevents them from just taking your money and faking their account records to make it look like you never deposited it.  You could fight them in court to get it back, but they still have your money in the meantime.</p>

<p>But there still have to be records, and someone has to be able to see them to verify that they make sense.  Bitcoin's solution is to make the records public so that <em>anyone</em> can verify them.</p>

<p>You're right that this comes at a cost in privacy.  (Though from a certain point of view, in the current banking system, your bank has all your information; you're trusting them to keep it private.  If they published all your bank statements in the newspaper, you could probably sue them, but the information would still be out there.)</p>

<p>But your "coffee shop" example isn't a very good one.  Of course, if they operate with a single address posted on the wall, then others will be able to see their incoming transactions.  If that's a concern, then they shouldn't use that approach; they should use a new address per transaction, as you suggest.  That shouldn't be very difficult.  The coffee shop is going to have to have some sort of Internet-connected device (computer, tablet, etc), in order to see whether customers have actually made their payments and can be given their coffee.  If so, then that device can easily generate a new address for each customer, perhaps displaying it as a QR code on its screen.</p>
 36050: <p>When Bitcoin was invented, Blockchain analysis was not as advanced as it was today and pseudonymous transactions were believed to be closer to anonymous than they are with Bitcoin today. Under the current Bitcoin system, privacy can be greatly improved by avoiding fiat entry/exit ramps connected to your identity and by avoiding reusing BTC addresses. </p>

<p>Yes Bitcoin transactions for the coffee shop you describe can easily be tracked. As you mentioned, stealth addresses can bring privacy improvements but not ideal for every situation. Once Confidential Transactions are added to Bitcoin (<a href="https://bitcoinmagazine.com/articles/bitcoin-privacy-confidential-transactions-feature-can-fix-some-of-coinjoin-s-problems-1457703275">https://bitcoinmagazine.com/articles/bitcoin-privacy-confidential-transactions-feature-can-fix-some-of-coinjoin-s-problems-1457703275</a>), privacy will improve but still not meet the level of the top 2 decentralized solutions solutions described below:</p>

<ol>
<li><p>Ring signatures exist already with Monero and Ring Confidential Transaction (RingCT) is one of the most promising areas of privacy development: <a href="https://eprint.iacr.org/2015/1098.pdf">https://eprint.iacr.org/2015/1098.pdf</a></p></li>
<li><p>ZCash is another leading alternative if the market is satisfied with its trusted setup solution and developer mining reward share: <a href="https://blog.okturtles.com/2016/03/the-zcash-catch/">https://blog.okturtles.com/2016/03/the-zcash-catch/</a></p></li>
</ol>
