> On 13 Jun 2015, at 1:31 pm, Quincey Morris 
> <quinceymor...@rivergatesoftware.com> wrote:
> 
> One of the biggest old-school reason is source duplication. You have to write 
> everything “twice”, once in @interface, once in @implementation. This has 
> been mitigated somewhat over the years, but Obj-C is literally twice the 
> number of files as Swift, and (in my experience so far) twice the number of 
> source lines to do the same thing.
> 


To me this is actually a good thing that I’ll be sorry to see go away in Swift.

With a separate header that only contains the public stuff, I can see at a 
glance what a class does without being overwhelmed by its implementation 
details. It’s like the table of contents for a text book, or a road map. If I 
have everything in the one file, that nice roadmap has gone, and I have to sift 
through lots of extraneous detail to get a sense of what a class does.

It’s also untrue that you have to write *everything* twice - you have to write 
the method definitions twice, which is a minor bit of work. In practice really 
not much, and it’s good discipline.

I assume Swift has a way to separate the publicly exposed interface from the 
private, but it’s still very handy to have it all gathered in one place. I 
won’t mind too much if there are tools that simply extract the public stuff and 
present it (in the browser view say), but then it’s making the language 
somewhat dependant on a graphical UI. I can live with that, but those brought 
up on makefiles and command-line compilers probably won’t like it.

—Graham



_______________________________________________

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