Proposal for future copy / view semantics in indexing operations
Update: concrete proposal for Copy-on-Write: https://docs.google.com/document/d/1ZCQ9mx3LBMy-nhwRl33_jgcvWo9IWdEfxDNQ2thyTb0/edit?usp=sharing

---
[_original post_]

Hi all,

During the recent sprint we discussed copy / view semantics in indexing operations. I've tried to summarize *a* proposal that came out of it.

The tldr is

1. Indexing operations always return a view *where possible* (always when indexing columns, if possible when indexing the rows).
2. For consistent behavior, we implement either Copy on Write or Error on Write (explained in the proposal)
3. For readability / understandability, we give users the tools to control in code whether mutations to a "child" dataframe (result of an indexing operation) propagate to the parent, while avoiding unnecessary "defensive" copies.

The full proposal is available at https://docs.google.com/document/d/1csGE4qigPR2vzmU2--jwURn3sK5k5eVewinxd8OUPk0/edit. I'd like to collect comments there and then propose properly by adding it to the roadmap.

cc @pandas-dev/pandas-core