scala / slip

obsolete — archival use only
67 stars 15 forks source link

A proposal for deprecating existing views in favor of low-maintenance alternative #17

Closed jsuereth closed 8 years ago

jsuereth commented 9 years ago

This has already gone through a round of offline reviews. I'll clean up the git history after all commentating is done.

non commented 9 years ago

Would you be willing to turn all the "sheds" into "scala sheds"? It would be easier to read the code examples if they all had syntax highlighting.

jsuereth commented 9 years ago

@non more than happy. I wasn't sure if the website supported scala sheds, or if we need to discuss more shed possibilities.

cvogt commented 9 years ago

@jsuereth Do I understand correctly that transducers are an implementation detail and won't be exposed to the users, i.e. not part of the public api? That would allow a future implementation to improve performance without changing external api.

Side note: there a quite a few typos in the document.

jsuereth commented 9 years ago

@cvogt Sort of. The traits will be sealed, and all implementations locked down. The methods will be "public" in the sense that you can call them from views. Practically it's "locked down" and can be fiddled with since everything will be appropriately hidden, but even private[package] only goes so far for those who want to violate your visibility restrictions.

cvogt commented 9 years ago

@jsuereth sure, users can circumvent whatever. As long as they are an implementation detail that can be swapped out or refined without breaking user code that isn't going around the publicly supported API, I think doing folds for everything initially seems reasonable for the sake of getting something correct and ready quicker.

jsuereth commented 9 years ago

@odersky / @dickwall SO I migrated the proposal to the new document number and it appears to have decided your comments should be minimized. They are still on the old diff if we want to discuss there, or we can reopen them.

jsuereth commented 9 years ago

A note to all reviewers. I was able to get VIew to extend GenTraverasbleOnce[E] which allows it to be used in flatmaps. I think GenTraversableOnce has a few too many methods on it, but this appears to be an acceptible soluton to allow views to participate in a lot of collection algorithms.

I'm going to see if GenTraversable[E] also makes sense. This seems less likely due to some CanBuildFrom machinery bleeding into the public API.

SethTisue commented 7 years ago

proposal as it stood at the time we shut down this repo: https://github.com/scala/slip/blob/cd8f7ae7dba6b7d884e8763f666b1a54005e7108/text/0027-collection-view-redesign.md