On 31 Oct 2014, at 6:40 AM, Charles Jenkins <cejw...@gmail.com> wrote:
> 
> My day job is programming in C# for Windows computers. I was really excited 
> when Swift came out because it’s so similar to other languages I know well 
> and use and admire.

I’ll take this as the root theme of your message.

Many of your objections amount to being unhappy that Cocoa, OS X, and their 
tools are not C# on Windows. C# and Windows are worth knowing, but most things 
that are worth knowing are neither C# nor Windows. They are that way for 
thoughtful reasons, and not as duct tape over their falling short of being C#.

Even if you never use any other tool or environment again, knowing about others 
will make you a better C# developer.

Named arguments and strict typing are found in many modern languages. Smart 
people differ on the merits, but many smart people think they are good ideas.

An out-of-band value for “no result” has been a feature of programming 
languages since SQL’s NULL at least; as late as the 1980s, the biggest horror 
stories of computing centered on collection proceedings for utility bills of 
$99,999.99. Some such languages use it inconsistently, and stick developers 
with the pain of debugging it.

It is rational to provide an out-of-band value; to make it uniform; to take 
advantage of modern computers’ ability to detect fatal errors in its use; and 
to force developers, the only ones able to abate such errors, to abate them. 
The compiler pelts you with ! and ? gotchas precisely because you hadn’t 
noticed the pitfalls.

I infer you don’t like the Delegate design pattern used in (NS|UI)TableView and 
elsewhere. The Delegate pattern has been documented as sound OO practice for 
twenty years, and not just in ObjC/NeXTStep. Even critics allow it is one of 
Cocoa’s strengths. It will never go away. See Wikipedia.

“Banish[ing] Objective-C from all libraries” would be like superseding every C# 
library with a total redesign: conceivable, pointless, will never happen.

On the other side:

When I am feeling especially cynical, it seems Swift syntax has a lot of sugar 
that makes it less intimidating in a 30-minute presentation, but harder to 
write.* The impedance mismatch with Cocoa is artfully minimized and is 
improving, but it makes Swift much more complicated. The error messages are 
often inscrutable, or can be scruted only by reference to API that for now is 
mostly unpublished.** Welcome to tech. What can get better has been getting 
better.

* (For some of this — maybe most — I’m held back because I haven’t developed 
the instincts I have for ObjC and Ruby. Bang-suffixed types and `??` are sugar 
for things that could be clearer if expanded, but I wouldn’t give them up.)

** (Unless you add `import swift` to a .swift file and command-click `swift`. I 
wish I could properly credit the humanitarian I learned this from — NSHipster?)

        — F


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to