Flutterby™! : I don't wanna judge Cocoa too harshly

Next unread comment / Catchup all unread comments User Account Info | Logout | XML/Pilot/etc versions | Long version (with comments) | Weblog archives | Site Map | | Browse Topics

I don't wanna judge Cocoa too harshly

2018-07-12 16:10:07.824976+00 by Dan Lyke 8 comments

I don't wanna judge Cocoa too harshly, but it demonstrates something that searching for how to do control layout programmatically instead gives a gazillion tutorials on how to do basic XCode...

[ related topics: Law Graphic Design ]

comments in ascending chronological order (reverse):

#Comment Re: I don't wanna judge Cocoa too harshly made: 2018-07-13 11:05:54.149565+00 by: DaveP

I’m not the expert on that, but if you have a specific problem with programmatic layout, one of my cow-orkers knows that stuff pretty well and can probably answer questions.

Me, I’ve been the Xcode "expert" on the team for a decade now. Told them that I’m not doing the TenCode X upgrade, and they should find someone to pick up that knowledge from me before I retire. It’s just unending torture, and shortened my programming career by roughly a decade.

#Comment Re: I don't wanna judge Cocoa too harshly made: 2018-07-13 15:44:23.249549+00 by: markd

basic xcode tutorials are low hanging fruit. Understanding autolayout is hard, so not many folks do it well.

I did 90% of my work outside of Xcode until that Swift thing. Now it's 50/50 objc(emacs) and Swift (xcrud) Still hoping a good emacs swift-mode is around when I have to do Swift full-time. (also keeping an exit strategy to do more back-endy things if Xcode and its monotonically increasing bug count / death of a thousand cuts doesn't get any better).

I've found, especially with Swift and iOS, to limit searches to one year. Apple's changed (and broken) so much stuff that anything older than that is either misleading or just plain wrong now.

#Comment Re: I don't wanna judge Cocoa too harshly made: 2018-07-15 14:29:57.585213+00 by: Dan Lyke

I finally figured out some of the details. I don't have 'em all at home, but it turns out that just allocating a control with [[NSWhatever alloc] init] many times creates a control that has all of the wrong flags set for autolayout.

So there are all sorts of obscure arcane flags that need to get set before you can drop a control into autolayout, and, of course, all the web pages that link to Apple docs are broken because Apple hates the web.

One of the things that strikes me is that the Apple culture has a huge emphasis on people who "know" XCode or AppKit or whatever. Other widget sets (the other one I've been using regularly is Qt) are things people hack on some afternoon. I don't know if this is a deliberate decision on Apple's part, but it means that Apple has this priesthood that's both involved in advocacy, but also the gatekeepers to knowledge.

I'm not so much a fan.

#Comment Re: I don't wanna judge Cocoa too harshly made: 2018-07-15 17:01:30.579142+00 by: markd

Limit your google searches to the last year - that weeds out a lot of the carnage in Apple's wake.

The biggest problems with Apple's software ecosystem (and I imagine similar over in Windows) is that it has a long history (hello NeXTStep), a lot of new things layered on top of it with backwards compatibility (that whole translateAutosizingMask stuff), with stuff layered on top of that[Wiki](supposedly now using the autosizing mask things should work better, but they don't), coupled with Apple with hundreds, if not thousands of engineers working on these toolkits, and of course everyone has a pet feature to include or wants to make their mark.

I've been in this world for close to 18 years now, and I'm continually feeling like I'm falling behind.

#Comment Re: I don't wanna judge Cocoa too harshly made: 2018-07-15 18:06:12.836577+00 by: Dan Lyke

The problem is that constraints (which are pretty cool, once you figure out the translateAutosizingMask stuff), have now been superceded by something else that's supposed to be easier but actually is yet another freakin' markup language...

At least Qt has the decency to be headed the "CSS+HTML" direction in their yet another freakin' markup language directions...

#Comment Re: I don't wanna judge Cocoa too harshly made: 2018-07-16 10:57:38.613789+00 by: DaveP

Yeah, Apple has the priesthood. It predates the NeXT reverse buyout of Apple, from my memory. As Mark says, if you’re not constantly learning, you’re falling behind, and in danger of being excommunicated. The funniest bit is that much of my current job stability is due to having picked up just enough MacApp to be dangerous back in the mid-90s, which turns out to still be useful today.

#Comment Re: I don't wanna judge Cocoa too harshly made: 2018-07-31 19:55:33.708847+00 by: markd

Whoa. MacApp. cues ObiWan "now that's a name I've not heard in a long time..."

#Comment Re: I don't wanna judge Cocoa too harshly made: 2018-08-01 10:55:42.887805+00 by: DaveP

ObiWan was actually the reference software I used to search the documentation back then. Stairways Software. And it’s still there for download today...

I wonder if, when I retire, my employer is going to try to hire someone with MacApp experience.

Add your own comment:

(If anyone ever actually uses Webmention/indie-action to post here, please email me)




Format with:

(You should probably use "Text" mode: URLs will be mostly recognized and linked, _underscore quoted_ text is looked up in a glossary, _underscore quoted_ (http://xyz.pdq) becomes a link, without the link in the parenthesis it becomes a <cite> tag. All <cite>ed text will point to the Flutterby knowledge base. Two enters (ie: a blank line) gets you a new paragraph, special treatment for paragraphs that are manually indented or start with "#" (as in "#include" or "#!/usr/bin/perl"), "/* " or ">" (as in a quoted message) or look like lists, or within a paragraph you can use a number of HTML tags:

p, img, br, hr, a, sub, sup, tt, i, b, h1, h2, h3, h4, h5, h6, cite, em, strong, code, samp, kbd, pre, blockquote, address, ol, dl, ul, dt, dd, li, dir, menu, table, tr, td, th

Comment policy

We will not edit your comments. However, we may delete your comments, or cause them to be hidden behind another link, if we feel they detract from the conversation. Commercial plugs are fine, if they are relevant to the conversation, and if you don't try to pretend to be a consumer. Annoying endorsements will be deleted if you're lucky, if you're not a whole bunch of people smarter and more articulate than you will ridicule you, and we will leave such ridicule in place.


Flutterby™ is a trademark claimed by

Dan Lyke
for the web publications at www.flutterby.com and www.flutterby.net.