
The Deep History of Your Apps: Steve Jobs, NeXTSTEP, and Early OO Programming - protomyth
http://www.computerhistory.org/atchm/the-deep-history-of-your-apps-steve-jobs-nextstep-and-early-object-oriented-programming/
======
valine
> “The line of code that the developer could write the fastest… maintain the
> cheapest… that never breaks for the user, is the line of code the developer
> never had to write.”

I don't think graphical programming has ever really solved this problem. The
only time interface builder is useful is with really small applications. Once
you have any amount of complexity you're much better off creating your
interface programmatically. Interface builder is just another thing I have to
learn, and relearn when Apple decides to change it 2 years from now. If Apple
partners with Adobe and creates an interface builder / photoshop hybrid, maybe
we could talk. If I could connect my designers psd file directly to a core
data backend, that might provide some legitimate time savings.

~~~
Joeri
Graphical programming cannot make the activity of programming easier.
Programming is encoding a system of rules. It doesn't matter whether you do it
by point-and-click or by written language, the rules remain the same. The
"ease" of point-and-click is discoverability of possible rules and intuitive
representation of said rules, but that's nothing that a good IDE can't do at
the code level just as well.

~~~
21
Yes it can.

Dragging and dropping to create a data processing pipeline is much faster and
less error prone than writing the equivalent code.

An easy to see example are audio pipeline building software, where you hook
together various components - [http://factmag-images.s3.amazonaws.com/wp-
content/uploads/20...](http://factmag-images.s3.amazonaws.com/wp-
content/uploads/2015/10/reaktor-6-screen-b.jpg)

Google also has something like this -
[https://i.imgur.com/bGTSDf5.png](https://i.imgur.com/bGTSDf5.png)

~~~
TheOtherHobbes
Only if the code is trivial.

Max/MSP and PD are the goto products here.

[https://cycling74.com/max7/](https://cycling74.com/max7/)

They're incredibly horrible for anything complicated. Even a simple for loop
requires multiple clicks to select the modules you need, multiple lines of
typing to set their parameters, and multiple mouse movements to define the
connections. It literally takes about around ten times longer than typing.

Neither handles encapsulation elegantly and transparently. (Max 7 is the best
effort yet, but it's still not pain free.)

They have some nice DSP features for building DSP chains, and as long as you
stick with those they're useful. But they're an instant nightmare if you try
to do anything with logic that would be trivial in written code.

Reaktor doesn't compare because it just does the DSP thing. It's a very simple
pipeline.

The takeaway is that simple module composition is easy, but non-trivial logic
flows with many data types can be very challenging indeed.

------
runn1ng
A curious question - why is Objective-C not used very widely outside of Apple
ecosystem?

I was playing with it for a while even before iPhone was a thing and I kind of
liked it, but it's basically only for Apple devices. Nobody on Linux or
Windows sides uses it for anything.

I have had the misfortune of using GNUStep about a year ago, and it's,
unfortunately, still very buggy. Why is there no more activity there?

~~~
JulianMorrison
Without an integrated framework, it's just an OO mechanism hung off the side
of vanilla C. And while that mechanism does have some sweet features, it's
also slow and really weird looking for someone who's used to C, and seeing it
in the middle of C code is like in a Bollywood movie where they suddenly break
out into song.

~~~
jasonjei
Love the analogy.

Not to leave course of the original comment re:ObjC, but I think to a certain
extent you don't see C# really being used outside the Microsoft ecosystem, as
Mono does exist. An integrated framework is probably the programming language
equivalent of having an "army and navy."

~~~
rubber_duck
Programmimg is soo based on trends and not on technical merits :

Dart is a great language - it's way more feature complete than typescript, it
comes bundeled with official package manager, build system and a dev server
(huge value compared to the js ecosystem schicoprenia) and it's designed by
people who actually know their shit and have decades of expirience in both
language design and VM implementation/compilers (isn't constrained by JS
design decisions)

Dart started marketing it self as a JS.next, IMO unrealistic goal, but has
dropped that agenda for like 2 years now (?). It still dosn't prevent people
from making uninformed comments about it being a failed google js.next
language.

It's really an amazing ammount of working tools and code in that project, waay
better than angular 2 js/typescript for example but people won't even evaluate
it because of reputation.

The same is true for .NET, Microsoft took JVM and Java and then took it to the
next level - stuff that just got in to Java (Lambdas) or will be getting in
years (Value types) have been a part of .NET for a decade now - and in recent
years Microsoft made a 360 on cross platform and OSS with Core.CLR - this is
not even mentioning F# being a MS sponsored and supported tool with the
tooling support that implies, and just the best in class tooling with VS in
general.

Yet most people won't even touch .NET because it's not hip.

~~~
jorgecastillo
>Yet most people won't even touch .NET because it's not hip.

To be fair .NET can't replace the Java ecosystem now and will not replace the
Java ecosystem in the following years. It's just not the same thing. Yes C# is
way better than Java, but there is so much more going on for Java. For
starters Java is truly multi platform and the ecosystem is way richer. So no
"people won't even touch .NET because it's not hip", people won't touch .NET
because even though it's really good it's not that good, at least not when you
take into consideration the whole ecosystem.

~~~
jasonjei
Exactly. OpenJDK and Oracle JDK for the most part are interoperable. In fact,
the open-source version of the JRE is the reference standard. You'd be able to
run a web application almost out of the box with Java. It wouldn't be so
possible with Mono and .NET.

~~~
rubber_duck
Microsoft opensourced a cross platform official implementation of .NET called
CoreCLR - and altough slightly young you can do what you just said and they
support it trough Azure on linux and offer OSX builds.

Also Mono took better parts of CoreCLR and made their implementation better.

Also Microsoft acquired the company behind mono/Xamarin and given their recent
trend will just fold that work in to their OSS offerings (at least partially)

So please get your facts straight before commenting on the issue because
that's sort of the problen I'm getting at in my post.

------
coldcode
One quibble, I believe Dell's first e-commerce site was developed in
WebObjects, the other crown jewel at NeXT, but of course written in
Objective-C.

------
anthk
"Early OO-programming"

Hello, Smalltalk.

~~~
__abc
One of my first languages out of Uni. Still influences my thinking to this day
15 years later.

------
zmanian
While Hardware is often perceived to be "harder" than software.

I feel like the NextTeam where right about the system specs for graphically
driven OO environment. It took them 20 years to really get their software
environment to the point where developers could produce compelling
experiences. In that time the same specs shrunk from a table top cube to a
pocket size computer.

------
niccaluim
I still have two NeXTstations (one is a Turbo!) sitting in my closet.
Wonderful machines and a fantastic OS for its time. I don't have monitors for
them anymore, but even so, I doubt I'll ever part with them.

------
iheartmemcache
* Naroff integrated Objective-C directly into the C compiler NeXT was using, the open source GNU C compiler, GCC, working closely with Richard Stallman

Probably #1 on Stallman's list of "things I regret most".

~~~
epistasis
What's to regret? Stallman, until he consulted with a lawyer, thought it was
going to be OK for Next to not open source the Objective-C part at all. After
consulting with a lawyer he asked Apple to open source it, so I would presume
he's happy with the outcome?

[https://en.m.wikipedia.org/wiki/Objective-C#cite_note-7](https://en.m.wikipedia.org/wiki/Objective-C#cite_note-7)

At least, this was the story that was presented to me as the reason that GPL
results in more open source software than permissive licenses.

------
TickleSteve
Ahhh, NeXT... probably the nicest environment/OS/machine that never took
off....

~~~
bluedino
NeXT (with a bunch of Mac baggage) is basically the current OS X

~~~
protomyth
Well, they removed quite a bit when they added the Mac baggage. I still would
rather have the interface to OpenStep 4 than the current OS X.

The whole concept of the menu bar on the top was nice on a 9" display, but it
is a major pain on a 34" monitor.

~~~
kitsunesoba
Conversely, I find it annoying to have to chase down menubars that follow
their parent windows around on large, high resolution screens. The principles
of a global menubar (being able to throw your cursor to hit it) still work on
large screens... I just crank up cursor speed so hitting it takes roughly the
same amount of physical movement as it did to do the same two or three decades
ago.

~~~
salgernon
Not useful, but I agree completely. See also Fitts's law:

[https://en.m.wikipedia.org/wiki/Fitts%27s_law](https://en.m.wikipedia.org/wiki/Fitts%27s_law)

I like the ability to slam the cursor to the top of the screen either for
purposes of using a menu or finding a "null" place where I can click to abort
drags, or just locate the damn cursor.

I'm also a caveman in thinking that multiple overlapping windows are ideal for
programming and I hate the way Xcode has adopted the MDI style. I always end
up using the "open quickly" dialog and typing the name of the document I want
rather than any combination of hunting it down in a menu.

------
0xADADA
I own a working NeXTSTEP (Color!), if anyone wants one. I'm not using it.

~~~
alexkearns
I've been looking for one. Where are you based?

