
NeXTstep Manual, Systems Programming with Objective-C and Driver Kit (1995) - pjmlp
http://www.nextop.de/NeXTstep_3.3_Developer_Documentation/
======
kitsunesoba
Relevant video from 4 years earlier:
[https://youtube.com/watch?v=j02b8Fuz73A](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.

~~~
ben_jones
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.

~~~
themartorana
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.

------
patrickg_zill
I worked at a job that had NeXT machines on every desk. Using this OS was the
best computing experience I have ever had. For 8 months I used the Mail.app,
the VarioData based customer database, etc. Everything worked great and the
"flow" was unparalleled.

Concerning CPUs etc a 33 mhz 68040 and 32mb RAM worked pretty well. Grayscale
was adequate, though I did appreciate having the upgrade to color. More RAM
was always better.

~~~
g051051
A place I worked at did a trial of NeXTSTEP back in the 90's when they ported
it to other architectures. I got to play with it on a high end HP PA-RISC
workstation...it as amazing.

------
Razengan
Exactly how advanced was NeXTstep in its time, compared to say Windows 95?

The object oriented API alone seems to me like a huge step ahead. Imagine if
Steve Jobs never left Apple and got to ship these things under the better-
known Mac brand, possibly stealing a lot of Microsoft's thunder.

EDIT: It's also interesting, and maybe ironic, that the legendary Doom which
went on to make PC/DOS a relevant force in gaming, was developed on NeXTSTEP,
with some parts coded in Objective-C. [1]

[1]
[https://en.wikipedia.org/wiki/Development_of_Doom#Programmin...](https://en.wikipedia.org/wiki/Development_of_Doom#Programming)

~~~
pjmlp
It was a great experience, I could only see a cube for the first time in 1999
as I had to port a particle engine from Objective-C/Renderman to Windows with
Visual C++ and OpenGL.

But Windows 95 was away ahead from other UNIXes in terms of IDE and GUI
development experience. Most had nothing more besides Motif + C to offer.

To this day Mac OS X is the only UNIX with SDK tools that can rival the likes
of VB and Delphi in native development offered already in Windows 3.x.

~~~
spriggan3
> To this day Mac OS X is the only UNIX with SDK tools that can rival the
> likes of VB and Delphi in native development offered already in Windows 3.x.

If the Gnome foundation would focus on Gtk+Vala+Glade it could have been a
fantastic development platform. I don't know much about the state of Vala
today though, too bad because it's blazing fast and can use any Gobject
library. Unfortunately the docs are just bad compared to Apple or MSDN, the
need to find a better way to organise the information on their site or move to
a new CMS...

~~~
m_mueller
I honestly still don't understand why MS didn't push their version of
'interface builder' they had with VB6 after they went .net. In my view .net
was such a step backward - a huge library to load even though the OS comes
from the same vendor, way more boilerplate than VB. Why not give VB6 decent
networking and database capabilities instead?

------
mentos
I miss named parameters and categories the most from Objective-C

What features do those of you who no longer work with Objective-C miss the
most?

------
dsjoerg
I learned to program from these manuals. It's wonderful to know they're
available online. Wonderfully clearly written.

------
l3m0ndr0p
Ah, the good old days. I built a mini DB with the Indexing kit. What I
discovered was that the kit itself wasn't 100% functional & some of the
API/Function calls didn't work. But I had an amazing time programming on a
NeXT computer. I was young (early 20's) and did lot's of trial and error with
the IX kit.

------
protomyth
Interestingly, I was just in my storage garage moving stuff and have the full
NeXTSTEP 3.3 manual set with discs from 3.3 and 4.x in a plastic box. It
weighs a ton.

It is still my favorite platform both from a programming and user point of
view. I miss the menu system and still curse the Mac toolbar (particularly on
my 34" 21:9 monitor). It was a joy to program and the amazing framework were a
revelation compared to Win32 and its follow-ons. It is amazing what something
designed for Smalltalk-like message passing and a runtime can get you. Windows
95 and NT were pains in the butt to program in C++ while VB at least was
closer to NeXTSTEP in productivity. I generally prototyped my interfaces in
Interface Builder and then redid them in VB if needed. Its sad how much was
lost on the way to OS X.

------
rcarmo
The sheer purity of that UI still gives me the chills.

------
lukeh
Indeed, the good old days. I has a slab for a while in 95 (actually, I still
have it), it was pretty slow though for development. Running on HPPA was much
better. Many fond memories.

------
neoCrimeLabs
My NeXT Cube still works great, though I need to try to patch it for Y2K
sometime. :-)

