<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
I guess you don’t like Swift then after all?
<div class=""><br class="">
</div>
<div class="">In my humble experience I have been involved in writing iOS apps since 2008 so seen a few changes - I have found it quicker and easier to write in Swift and just get things done better ( compared to Objective C ).&nbsp;</div>
<div class=""><br class="">
</div>
<div class="">For me - Swift is most welcome, very refreshing and has more clarity than Obj C. It has been nothing but a pleasure to move on from Obj C.</div>
<div class=""><br class="">
</div>
<div class="">So keep up the great work guys please!!!!!</div>
<div class=""><br class="">
</div>
<div class="">p.s. I like how easy to use tupules are - if people don’t like them or it’s not their style then just don’t use them huh?</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
<div class="">
<div class="">Jamie Lemon<br class="">
<br class="">
</div>
</div>
<br class="">
<div>
<blockquote type="cite" class="">
<div class="">On 11 Jan 2017, at 12:01, Freak Show via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
<div style="margin: 0px; line-height: normal;" class="">I am almost not sure if this is a joke or not. &nbsp;That is an incredibly complicated looking hieroglyphic to dispatch a bit of code. &nbsp;I do this:</div>
<div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; color: rgb(0, 132, 0);" class="">
<span style="font-variant-ligatures: no-common-ligatures;" class=""><br class="">
</span></div>
<div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; color: rgb(0, 132, 0);" class="">
<span style="font-variant-ligatures: no-common-ligatures;" class="">- (</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(186, 45, 162);" class="">void</span><span style="font-variant-ligatures: no-common-ligatures;" class="">)prepareForSegue:(</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(112, 61, 170);" class="">UIStoryboardSegue</span><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp;*)segue
 sender:(</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(186, 45, 162);" class="">id</span><span style="font-variant-ligatures: no-common-ligatures;" class="">)sender {</span></div>
<div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; color: rgb(112, 61, 170);" class="">
<span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp;&nbsp;</span><span style="font-variant-ligatures: no-common-ligatures;" class="">NSString</span><span style="font-variant-ligatures: no-common-ligatures;" class="">* message = [</span><span style="font-variant-ligatures: no-common-ligatures;" class="">NSString</span><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp;</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(62, 30, 129);" class="">stringWithFormat</span><span style="font-variant-ligatures: no-common-ligatures;" class="">:&nbsp;</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(209, 47, 27);" class="">@&quot;prepareSeque%@To%@:&quot;</span><span style="font-variant-ligatures: no-common-ligatures;" class="">,(segue.</span><span style="font-variant-ligatures: no-common-ligatures;" class="">identifier</span><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp;?
 segue.</span><span style="font-variant-ligatures: no-common-ligatures;" class="">identifier</span><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp;:&nbsp;</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(209, 47, 27);" class="">@&quot;&quot;</span><span style="font-variant-ligatures: no-common-ligatures;" class="">),
 [segue.</span><span style="font-variant-ligatures: no-common-ligatures;" class="">destinationViewController</span><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp;</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(62, 30, 129);" class="">class</span><span style="font-variant-ligatures: no-common-ligatures;" class="">]];</span></div>
<div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">
<span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp;&nbsp;</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(186, 45, 162);" class="">SEL</span><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp;method
 =&nbsp;</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(62, 30, 129);" class="">NSSelectorFromString</span><span style="font-variant-ligatures: no-common-ligatures;" class="">(message);</span></div>
<div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; color: rgb(62, 30, 129);" class="">
<span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp;&nbsp;</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(186, 45, 162);" class="">if</span><span style="font-variant-ligatures: no-common-ligatures;" class="">([</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(186, 45, 162);" class="">self</span><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp;</span><span style="font-variant-ligatures: no-common-ligatures;" class="">respondsToSelector</span><span style="font-variant-ligatures: no-common-ligatures;" class="">:method])</span></div>
<div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">
<span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp;&nbsp;{</span></div>
<div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">
<span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;[</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(186, 45, 162);" class="">self</span><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp;</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(62, 30, 129);" class="">performSelector</span><span style="font-variant-ligatures: no-common-ligatures;" class="">:method&nbsp;</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(62, 30, 129);" class="">withObject</span><span style="font-variant-ligatures: no-common-ligatures;" class="">:segue.</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(112, 61, 170);" class="">destinationViewController</span><span style="font-variant-ligatures: no-common-ligatures;" class="">];</span></div>
<div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">
<span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp;&nbsp;}</span></div>
<div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">
<span style="font-variant-ligatures: no-common-ligatures;" class="">}</span></div>
<div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; min-height: 13px;" class="">
<span style="font-variant-ligatures: no-common-ligatures;" class=""></span>
<div style="margin: 0px; line-height: normal; color: rgb(0, 132, 0);" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">// Assume segue identifier was NextStep and we are going to a NextViewController</span></div>
<div class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">-(</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(186, 45, 162);" class="">void</span><span style="font-variant-ligatures: no-common-ligatures;" class="">)prepareSequeNextStepToNextViewController:(</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(112, 61, 170);" class="">NextViewController</span><span style="font-variant-ligatures: no-common-ligatures;" class="">*)vc</span></div>
</div>
<div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">
<span style="font-variant-ligatures: no-common-ligatures;" class="">{</span></div>
<div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; color: rgb(0, 132, 0);" class="">
<span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp;&nbsp;</span><span style="font-variant-ligatures: no-common-ligatures;" class="">// do specific work in a small focused method instead of buried in a giant ugly switch statement</span></div>
<div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">
<span style="font-variant-ligatures: no-common-ligatures;" class="">}</span></div>
<div class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""><br class="">
</span></div>
<div class="">Burying all that logic in a bunch of control statements just obfuscates intent. &nbsp;Now, you may argue my prepareForSegue is a little bit ugly and I would agree with you - but I write that once, stick it on UIViewController as an extension method,
 and never look at it again, instead going off the naming convention - much like the responder chain works.</div>
<div class=""><br class="">
</div>
<div class="">I keep hearing the same justifications over and over. &nbsp;&quot;Compiler can't check that&quot;, &quot;pattern matching&quot;, &quot;powerful enums&quot;, &quot;protection from nil&quot;, &quot;faster execution&quot;, &quot;exhaustively checked switch statements&quot; etc.... I do not value any of that stuff
 and it all goes out the window once your program beings consuming data from outside. &nbsp;It doesn't make my programs more powerful, more expressive, more robust, or better. &nbsp;It does slow me down a lot trying to satisfy a bunch of constraints that are, frankly,
 irrelevant to my problem domain and what it does instead is refocus my attention from the problem domain into the implementation domain unnecessarily.</div>
<div class=""><br class="">
</div>
<div class="">The conventional wisdom is that switch statements are an anti pattern in the presence of OO features. &nbsp;They're brittle and basically they're goto's. &nbsp;Polymorphism is to be preferred. I thought we settled that in the 90s.</div>
<div class=""><br class="">
</div>
<div class="">It is becoming more and more clear that the ideals of Swift are nothing like the Smalltalk ideals that gave us Cocoa (and Cocoa is a very elegant framework loaded with beautiful design patterns that have served us very well - well enough to let
 little Apple eat Microsoft's lunch). &nbsp;Swift is a lot closer to the ideals of C&#43;&#43; and ML and they are a terrible fit on top of a Smalltalk inspired framework. &nbsp;Write Swift if you must - but stop screwing up the Apple app scene with it.</div>
<div class=""><br class="">
</div>
<div class="">Seriously, I'm out. &nbsp;I'd just like to ask the Apple people to stop dumping cruft into the Objective C header files. &nbsp;I don't care about nullable annotations or the fake generics cruft. &nbsp;Objective C is based on Smalltalk. &nbsp;This direction is anathema
 to the Smalltalk ideals that underly the existing Cocoa system. &nbsp;Nils don't matter and generics are nonsense in a dynamically typed world. &nbsp;I mean, have any of you even used a book on Smalltalk as a doorstop much less read one?</div>
<div class=""><br class="">
</div>
<div class="">Basically, you're killing the golden goose. &nbsp;Like when WebObjects was ported to Java. &nbsp;It didn't survive the change from dynamic language to more rigid type constrained Java language. &nbsp;It just died.</div>
<div class=""><br class="">
</div>
<div class="">Cocoa won't either.</div>
<div class=""><br class="">
</div>
<div class="">I'm signing off this list. Swift is about the opposite of what I need in a programming language. &nbsp;It will not scale to the enterprise any better than C&#43;&#43; did (clue - it didn't - I was there) and the embedded world has already had working Smalltalk
 implementations all the way down to fpga's (<a href="http://ieeexplore.ieee.org/document/564744/" class="">http://ieeexplore.ieee.org/document/564744/</a>) for over 20 years so I'm completely unpersuaded by the efficiency arguments or the compiler checked
 &quot;correctness&quot; arguments. &nbsp;Software is never correct, never done, never perfect. &nbsp;Best to have an environment that can deal with that.</div>
<div class=""><br class="">
</div>
<div class="">Oh and uh - stop pushing Swift as the future. &nbsp;9/10 jobs doing iOS now demand Swift. &nbsp;Thanks for that. &nbsp;And by thanks - I mean screw you, Apple. &nbsp;State of iOS development today is a disaster.</div>
<div class=""><br class="">
</div>
<div class="">Out.</div>
<div class=""><br class="">
</div>
<div class="">
<blockquote type="cite" class="">
<div class="">On Jan 11, 2017, at 00:04, André Videla &lt;<a href="mailto:andre.videla@gmail.com" class="">andre.videla@gmail.com</a>&gt; wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
<span style="background-color: rgba(255, 255, 255, 0);" class=""><span class="pl-k" style="box-sizing: border-box;">func</span><span class="Apple-converted-space">&nbsp;</span><span class="pl-en" style="box-sizing: border-box;">prepareFor<span style="box-sizing: border-box; padding: 2px; margin: 0px -2px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;" class="">Segue</span></span>(<span class="pl-en" style="box-sizing: border-box;"><span class="pl-smi" style="box-sizing: border-box;"><span style="box-sizing: border-box; padding: 2px; margin: 0px -2px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;" class="">segue</span></span></span>:
 UIStoryboard<span style="box-sizing: border-box; padding: 2px; margin: 0px -2px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;" class="">Segue</span>,<span class="Apple-converted-space">&nbsp;</span><span class="pl-en" style="box-sizing: border-box;"><span class="pl-smi" style="box-sizing: border-box;">sender</span></span>:<span class="Apple-converted-space">&nbsp;</span><span class="pl-c1" style="box-sizing: border-box;">Any</span><span class="pl-k" style="box-sizing: border-box;">?</span>)
 {</span></div>
<div style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
&nbsp; &nbsp; Switch (segue.identifier, segue.destination, sender) {</div>
<div style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
&nbsp; &nbsp; &nbsp; &nbsp; Case (&quot;Segue&quot;?, let vc as FirstVC, .some(.enumType(let value)) ): // prepare the vc</div>
<div style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
&nbsp; &nbsp; &nbsp; &nbsp; ... // other segues</div>
<div style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
&nbsp; &nbsp; }</div>
<div style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
}</div>
</div>
</blockquote>
</div>
<br class="">
</div>
_______________________________________________<br class="">
swift-evolution mailing list<br class="">
<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="">
https://lists.swift.org/mailman/listinfo/swift-evolution<br class="">
</div>
</blockquote>
</div>
<br class="">
</div>
</body>
</html>