[Review] SE-0109: Remove the Boolean protocol


(Douglas Gregor) #1

Hello Swift community,

The review of SE-0109 "Remove the Boolean protocol" begins now and runs through July 4, 2016. The proposal is available here:

https://github.com/apple/swift-evolution/blob/master/proposals/0109-remove-boolean.md
Reviews are an important part of the Swift evolution process. All reviews should be sent to the swift-evolution mailing list at

https://lists.swift.org/mailman/listinfo/swift-evolution
or, if you would like to keep your feedback private, directly to the review manager. When replying, please try to keep the proposal link at the top of the message:

Proposal link:

https://github.com/apple/swift-evolution/blob/master/proposals/0109-remove-boolean.md
Reply text

Other replies
<https://github.com/apple/swift-evolution#what-goes-into-a-review-1>What goes into a review?

The goal of the review process is to improve the proposal under review through constructive criticism and, eventually, determine the direction of Swift. When writing your review, here are some questions you might want to answer in your review:

What is your evaluation of the proposal?
Is the problem being addressed significant enough to warrant a change to Swift?
Does this proposal fit well with the feel and direction of Swift?
If you have used other languages or libraries with a similar feature, how do you feel that this proposal compares to those?
How much effort did you put into your review? A glance, a quick reading, or an in-depth study?
More information about the Swift evolution process is available at

https://github.com/apple/swift-evolution/blob/master/process.md
Thank you,

-Doug

Review Manager


(Matthew Johnson) #2

What is your evaluation of the proposal?

+1. I liked the idea of this protocol when Swift was first announced but it has become clear that it isn't a good fit for the language.

Is the problem being addressed significant enough to warrant a change to Swift?

Yes.

Does this proposal fit well with the feel and direction of Swift?

Very much so.

If you have used other languages or libraries with a similar feature, how do you feel that this proposal compares to those?

I have not used other languages with a protocol like this but I have used other languages with various kinds of "truthiness". This turns out to be a feature that is convenient most of the time but subtly problematic in ways that are confusing and troublesome. I was hopeful that Swift's more structured approach using a protocol might work out better but it didn't.

How much effort did you put into your review? A glance, a quick reading, or an in-depth study?

A quick read.

···

More information about the Swift evolution process is available at

https://github.com/apple/swift-evolution/blob/master/process.md
Thank you,

-Doug

Review Manager

_______________________________________________
swift-evolution-announce mailing list
swift-evolution-announce@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution-announce


(Scott James Remnant) #3

+1

One of the nicer things about Swift is that it eschews implicit boolean conversion, even an integer doesn’t have a truth, and favors the clarity of true expressions.

Removing this unusual construct will make Swift better, because the only places I’ve ever seen it attempt to be used are to try and bring non-Swifty behaviors to Swift.

Scott