Steve Jobs, NeXTSTEP, and early object-oriented programming (2016)
Scope of the Article and Missing Context
- Several commenters argue the article presents a narrow, Jobs-centric history, downplaying alternatives, failures, and contemporaneous systems.
- They note NeXT had relatively low deployment and fewer apps than other 90s UNIX desktops (e.g., CDE), and that many advanced systems of the era are effectively “historical black holes” due to lack of open source.
NeXTSTEP, Objective‑C, and Alternatives
- NeXTSTEP is praised for dramatically improving GUI/app development productivity for its time; many notable apps (e.g., Doom tooling, Lotus Improv, TeXview) are cited.
- Some ask what modern environment truly surpasses NeXTSTEP’s ease of creating rich, WYSIWYG, print‑ready document apps. No clear consensus successor is given.
- Objective‑C is described as one of many possible OO/UI languages; its adoption at NeXT is characterized by some as partly accidental (e.g., proximity/availability), not uniquely superior.
Apple Dylan, Newton, and Other Experiments
- There were multiple Dylan-based systems at Apple (for Newton and Mac), all prototypical and written in Lisp; none reached NeXTSTEP’s maturity or level of dogfooding.
- An insider clarifies: Dylan for Newton was initially central, then sidelined in favor of a C++ microkernel; a small team built a second Dylan-based OS that was later canceled for non-technical, strategic reasons.
- Claims that Apple already had a “very nice” Dylan UI system comparable or superior to NeXT’s are disputed and scaled back to “promising but unfinished.”
Sun, NeWS, and Other Platforms
- NeXT’s Display PostScript is contrasted with Sun’s NeWS; some see DPS as an inferior copy, others note Sun later experimented with OpenStep.
- Commenters nostalgically praise less “standard” systems like IRIX, NeWS, Cedar, and NeXTSTEP for pushing beyond vanilla Unix + X.
Objective‑C vs Swift (and Java vs Kotlin)
- Opinions on Objective‑C are polarized: some call it an “abomination” and welcome Swift; others say it’s their favorite language, highlighting:
- Seamless interop with C and C++ (including mixed-source “Objective‑C++”).
- Dynamic runtime, reflection, and message-sending flexibility.
- Swift is credited with better safety and a richer standard library but criticized for slower tooling (e.g., Xcode responsiveness, live error checking).
- Analogies are drawn between Obj‑C→Swift and Java→Kotlin: newer languages seen as nicer, but older ones recognized as important stepping stones.
Message Passing vs Method Invocation
- A long subthread debates whether mainstream OO languages truly use “message passing” in the Smalltalk/Objective‑C sense.
- Key distinctions discussed:
- Degree of late binding (deciding behavior at message-send time vs earlier).
- Ability to intercept unknown messages (e.g., Smalltalk’s
doesNotUnderstand:) and dynamically route or transform calls.
- Participants disagree on whether most OO languages are genuinely message‑passing or just use similar terminology; the boundary is labeled somewhat blurry.
Tools, IDEs, and Xcode
- Some recount Apple Dylan’s prototype IDE as heavy and memory‑hungry for its era, in contrast to NeXT’s more mature tools.
- Experiences with Xcode are mixed: some find it laggy and frustrating (especially with Swift), others prefer it to competing IDEs and see dislike as cultural (non‑Mac users disliking native Mac UI norms).
Steve Jobs’ Technical Role and Legacy
- A few are skeptical about pairing “Steve Jobs” and “programming,” emphasizing he wasn’t a working programmer by reputation.
- Others counter that Jobs was technically competent (early hardware/logic design, Atari work) and, more importantly, that he assembled teams that profoundly shaped software development (NeXTSTEP, macOS, iOS).
- NeXT is framed by some as Jobs’s most interesting technical legacy, with its tools and frameworks still foundational for modern Apple platforms.