News for hackers. Stuff that matters.
Re:NeXTstep Manual, Systems Programming with Objective-C and... by kitsunesoba on Sunday June 05, 2016 @12:15PM (#11841628)
Relevant video from 4 years earlier: https://youtube.com/watch?v=j02b8Fuz73A

As someone who has developed for Apple platforms for the better part of a decade now, it's pretty amazing just how little Cocoa/AppKit have changed over the years. Only in the past couple of OS releases are we starting to see some larger shifts. The crazy part is that this hasn't really hurt the APIs at all; sure, some bits are starting to look a little dusty and could use some attention, but even so Cocoa (both mobile and desktop variants) remain the best UI toolkit for consumer-facing application development. Qt, GTK, etc get the job done but aren't nearly as pleasant to use.

Re:NeXTstep Manual, Systems Programming with Objective-C and... by ben_jones on Sunday June 05, 2016 @01:38PM (#11842066)
I got my first mac laptop a few months ago and I dabbled a little bit in OS X development with swift. Outside of raywenderlich.com I had a lot of trouble finding up-to-date resources/tutorials. I realize part of this is because Swift is moving so quickly, but it seems to be that Desktop-based application development is eons behind web and mobile application development in terms of educational material, and that it is probably holding the ecosystem back IMO.

Is it the case that developers prefer to write API documentation over tutorial/implementation based documentation that is common with other platforms (mainly web)? I feel like this approach can be debated on its merits, because it definitely raises the entry level for newcomers.

Re:NeXTstep Manual, Systems Programming with Objective-C and... by themartorana on Sunday June 05, 2016 @11:01PM (#11844385)
TL;DR - the web is just easier because it's so highly abstracted, and thus attracts a larger audience of new developers - and materials aimed at them. Educational material for desktop developers is plentiful but often at an advanced level only, because...

I think part of it is that the barrier to entry on the web is much lower. I've developed in objective-c forever, along with any number of other languages and platforms, and there more power available to you, the more you need to understand the underlying architecture.

The web is about as abstracted from the machine as it gets. Add to that that web rendering engines and HTML, CSS, and even JavaScript are very, very forgiving, so it's just easier for someone new to get started.

I was actually excited about the first couple iPhones in terms of resource scarcity to programmers. Tons of people jumped into iOS programming and for the first time in a while (or for many, the first time ever) were forced to consider what a lack of RAM and an underpowered CPU meant, and I helped coach many people through the finer points of memory management, allocations, (even with ARC) and Big O algorithm considerations.

Finally, native desktop software is just more powerful, and their is so much more you can do with it (and so, much larger standard libraries, SDKs, etc.) File IO isn't something you consider much in JavaScript on the web. Neither are parallelism, race conditions, IPC, networking, OS resource allocation, long running processes, native drawing and rendering, and so on.

Desktop programmers need to consider all of this a lot, and so generally tend to have some experience before getting into it (or work with a mentor/co-worker with a high degree of knowledge at first, as happened with me even post-CS degree). So materials written for desktop development tend to assume a certain pre-existing level of software development experience, and aren't aimed at new developers.

Edit: as someone else said, Big Nerd Ranch stuff is pretty good.

Re:NeXTstep Manual, Systems Programming with Objective-C and... by kitsunesoba on Sunday June 05, 2016 @02:03PM (#11842189)
Yeah, at least in the time I've been doing Cocoa development it's kinda always been that way. OS X Cocoa tutorials have never been much of a thing, meaning that if one wants to learn it they're going to have to dive into the documentation and scrape bits and pieces from random blogs. It's just something one gets used to… The insurgence of Cocoa Touch tutorials in the past few years felt almost strange from my perspective.

On the bright side, much of what one learns in iOS tutorials transfers to OS X, even if it doesn't seem that way. The biggest difference IMO is the swapped priorities of windows and view controllers. On OS X, view controllers haven't done much until very recently and NSWindow is something of a cornerstone, since most applications use more than a single window. On iOS, it's all about view controllers and most apps use only a single UIWindow.

This makes me curious of what kind of demand there is for high quality desktop Cocoa tutorials and instructional material…

Re:NeXTstep Manual, Systems Programming with Objective-C and... by pavedwalden on Sunday June 05, 2016 @08:00PM (#11843812)
As a beginning iOS developer, I found the Big Nerd Ranch iOS book very helpful. It leaned more towards a tutorial style. I see that they also have a book called "Cocoa Programming for OS X". If I were getting into programming for OS X, that's the first resource I would check out.
Re:NeXTstep Manual, Systems Programming with Objective-C and... by trymas on Sunday June 05, 2016 @01:51PM (#11842118)
> ..it seems to be that Desktop-based application development is eons behind web and mobile application development in terms of educational material, and that it is probably holding the ecosystem back IMO.

Yes! I have the same experience. I am not OS X developer, though a few times I wanted to make a simple app and on OS X it was not so easy task as to grab something like python (+qt, tk, wx, etc.) or electron.js .

Personally I think that OS X development needs a lot of introduction just to begin with and some APIs are tricky and "enterprisy" (though I believe it's easier to maintain in the long run). With iOS it seems to be much easier and way more resources.

Re:NeXTstep Manual, Systems Programming with Objective-C and... by miguelrochefort on Sunday June 05, 2016 @01:18PM (#11841961)
> Cocoa (both mobile and desktop variants) remain the best UI toolkit for consumer-facing application development.

I can only assume you never heard of WPF.

Re:NeXTstep Manual, Systems Programming with Objective-C and... by Razengan on Sunday June 05, 2016 @02:32PM (#11842353)
They might have if Microsoft wanted anyone to hear of it.

It was/is a great tech, but has MS used it in any of their own stuff besides Visual Studio and the discontinued Expression suite?

Cocoa/AppKit is used throughout macOS and all of Apple's own apps.

Re:NeXTstep Manual, Systems Programming with Objective-C and... by Razengan on Monday June 06, 2016 @06:10AM (#11845638)
I must add I really loved WPF and really wanted to see an OS with an entirely WPF-based GUI (which is what one of Blackcomb's original goals was, I think, while WPF was still "Avalon").

The last time I was in the Microsoft galaxy, WPF had been dogfooded in barely 2 of MS's own apps, Silverlight had been deprecated, and the new "Metro" and WinRT or whatever the new platform for tablet-like apps in Windows 8 and 10 was called, had all but killed WPF. Maybe someone who used to actively develop WPF apps can shed better light on its fate – I'd almost love to be wrong on this.

On the other hand, apart from having a vector-based UI (though I suppose they don't need a vector UI; having solved high-resolution displays better than Windows' scaling does) Apple's development technologies were already everything Microsoft wanted to be, and apparently admitted as such in their own internal emails. [1]

Indeed, to my knowledge pretty much the entire userland of macOS/OS X is in Cocoa, from the Dock to the Finder to the Automator, and even their Big Apps like Final Cut and Logic have been made with Cocoa.

[1] https://news.ycombinator.com/item?id=11828498