> On Apr 14, 2016, at 7:39 PM, Vladimir.S via swift-evolution > <swift-evolution@swift.org> wrote: > > > Can't agree with you. > > As you see from this topic, many of us use the "with" feature by > using workarounds/hacks. > > Those, who don't use such "with" feature - can > produce even more bugging code(copy-paste,wrong editor's code completion > suggestion). > So, I think this is "good" feature, not just cool/nice > looking. It will help us to write code with less bugs, without > workarounds/hacks. > > Do you want to stop good feature, that is helping us to produce good code, > because someone can use it "wrong"? Well, don't think this is right. >
that is a bit of an extreme simplification of what I was saying, but I do believe that programming has become a modern day blue-colar job where IMHO the majority of programmers display a lot of creativity when it comes to perverting good ideas. In that context, I think that it makes sense to rescue code from the programmers writing it. I have seen a lot of bad VBA code written using WITH blocks. I just realized that my problem with this thread is the reference to VBA. The concept of method cascades described in: https://gist.github.com/erica/6794d48d917e2084d6ed <https://gist.github.com/erica/6794d48d917e2084d6ed> is partially interesting to me. IMHO a solution allowing the following WITH self { .doSomething() // a lot of code … …. ….. // and 700 lines of code later .doSeomthingElse() } is barking up the wrong tree, because for as grotesque as this code is, if it can be done, it will be done… a lot .. because it is easy to do. And code like the following is IMHO taking the same slippery slope sharedName = newValue // myInstance.sharedName = newValue (3) _.sharedName = newValue // the locally scoped newValue (2) _._.sharedName = newValue // I don't actually propose this, but (1) The following code however looks like a real productivity improvement (provided NOTHING else can be added between the chained invocations) with let task = NSTask() { launchPath = "/usr/bin/mdfind" arguments = ["kMDItemDisplayName == *.playground"] standardOutput = pipe launch() waitUntilExit() } Cheers LM/
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution