7 ms·
One of the things that amazes me about NeXTstep is the fact that it brought together many technologies developed by Xerox PARC. Unlike the original Mac, where
by linguae 3y ago
One of the things that amazes me about NeXTstep is the fact that it brought together many technologies developed by Xerox PARC. Unlike the original Mac, where the dominant PARC influence was its GUI, NeXTstep had other PARC-inspired technologies, such as Ethernet networking, Display PostScript (while PostScript is an Adobe product, the creators of PostScript were ex-PARC researchers who worked on a similar page description language called InterPress), and dynamic, late-binding object oriented programming, albeit in the form of Objective-C rather than Smalltalk. These technologies created a solid foundation that is still relevant today; macOS more or less is still influenced by NeXT despite gradual changes.
Of course, there’s also the Unix foundation of NeXTstep, which importance cannot be understated, especially during the rise of the Unix workstation in the 1980s and the 1990s. This gave NeXTstep (and later Mac OS X) a user base who could take advantage of PARC-inspired environments while at the same time being able to take advantage of the vast Unix ecosystem.
Yes, the Xerox PARC and Unix philosophies are different and sometimes contradictory. However, it’s impressive how NeXT was able to bridge these worlds; the execution was great, and once again macOS serves as a living legacy.
As an aside, personally I’m curious about an alternative timeline where NeXT decided to go all-in on Smalltalk, building a “Smalltalk OS” with no Unix foundation, similar in philosophy to the Lisp machines of the era. There was certainly research going on in the 1980s to improve the speed of Smalltalk; part of this was continued with the development of Self by David Ungar and other researchers. NeXT probably still would’ve had the same market challenges, and the lack of a Unix foundation may have further hurt adoption. But from a purely technical standpoint a polished Smalltalk desktop would be amazing to see and use.
- kitsunesoba 3y agoIt was a bit wild to see old demo videos of Project Builder, Interface Builder, and Cocoa Bindings under NeXTSTEP functioning more or less exactly like they would when I first encountered them in OS X around a decade later. It changed how I thought about the state of computing in the late 80s/early 90s, which had previously been shaped by my first computer use on System 7.5 in 1996.
- arcticbull 3y agoSide-by-side screenshots of NeXTSTEP and Windows are particularly jarring. NeXTSTEP came out in 1989, and its contemporary was not even Windows 3.1, but 2.11 This is what Microsoft was serving up [1]. This is what NeXT accomplished. [2] [1] https://en.wikipedia.org/wiki/Windows_2.1x https://en.wikipedia.org/wiki/Windows_2.1x [2] http://toastytech.com/guis/ns10about.png http://toastytech.com/guis/ns10about.png
- tjakab 3y agoDon't forget though that NeXTSTEP was also running on workstation-class hardware and priced accordingly (~$6500), vs. Windows running on late 80s commodity PCs (probably ~$1500-$2000) with lesser specs. For that kind of cost difference NeXTSTEP had better have looked and performed better.
- ataylor284_ 3y agoA better comparison would be the Motif/CDE GUI that commercial Unix workstations were using at the time on workstation-class hardware. I think NeXTSTEP still wins on style, particularly since X desktops were a garish mix of raw X, Xt toolkit and Motif apps all coexisting.
- twoodfin 3y agoBill Gates was so worried about Steve & NeXT that Windows 95—often criticized as ripping off MacOS—is a much more direct ripoff of NeXTSTEP.
- andsoitis 3y agoThere’s the technology, and then there’s style. And stylish NeXTSTEP is…
- Narishma 3y agoThat's a terrible comparison. Windows 2.x ran on much cheaper and weaker hardware. It required only 512KB of RAM and ran comfortably in 1MB while the smallest amount Next computers came with was 8MB.
- rjsw 3y agoThe first Smalltalk JIT was written for the 68020, so the NeXT hardware would have been suitable. EDIT: OTOH, The Tektronix AI Workstations had already been on sale for a while by that point and had not been all that successful. They ran Smalltalk on top of a UNIX-like OS, not directly on the HW.
- whartung 3y agoWhat amazes me about NeXTStep is that you could actually run that desktop, running Display PostScript, in grayscale, admittedly, but with the full motion window dragging and everything else, on that display, with 8MB of RAM. Oh, and on a 25MHz '040. Oh, yes, it was tight. But it was eminently usable (including Project and Interface Builder) with 20MB of RAM. Heck, I think XClock is challenged to run in 20MB today.
- hinkley 3y ago'030 even. I thought some of this was wrong but it turns out the BeBox lore is leaking into my NeXT memories. Wikipedia says it was a 60830@25MHz.
- flenserboy 3y agoAnd the '030 varieties performed admirably well, even after the '040 & '040 Turbo varieties appeared. Our school had a bevy of cubes, and those were the primary workstations for three years until they opened a lab full of slabs before our senior year. The best part was having our user directories on a main server, and we could log in to any campus box and have access to our account. 30 years later & I still can't easily do that with the Macs on my home network.
- TazeTSchnitzel 3y agoNeXT and its successor, the modern Apple, have done incredible things with low amounts of resources. It feels nothing short of miraculous that the first few iOS devices could do so much in just 128MiB of RAM. No Android device has ever managed with that little! The power of Objective-C?
- johndoe0815 3y agoI thought the HTC Dream/G1 also had 128 MB RAM, but you're correct - it had 192 MB! :)
- deleted 3y ago[deleted]
- pjmlp 3y agoIt wasn't because Jobs was such a great UNIX fan, rather as must have for the Workstation market, that NeXT wanted a piece of. "NeXT meeting strategy" https://youtu.be/KRBIH0CA7ZU https://youtu.be/KRBIH0CA7ZU Or for a bigger overview, https://news.ycombinator.com/item?id=34449912 https://news.ycombinator.com/item?id=34449912 However you're right, it is one of the best mixtures from both worlds. Xerox PARC did port their environments into UNIX, Mesa/Cedar, Interlisp and Smalltalk, but it was already too late to make a difference.
- WillAdams 3y agoThe really amazing thing was how after SJ returned to Apple, for a couple of years, the Apple Dev Keynotes were just re-hashing of previous NeXT keynote addresses. It still kills me that Adobe reneged on their promise of a free Display PostScript license, thus killing Rhapsody and "Yellow Box" for Windows (and it's still hilarious to me that that colour was named for Bill Gate's rude response when asked if Microsoft would develop software for NeXT, "Develop for it? I'll p** on it."
- pjmlp 3y agoAdobe was in a similar place, Sean Parent from C++ fame had a very important role to change that, and bring Photoshop into OS X. Check his interview on "ADSP: The Podcast", https://adspthepodcast.com/2021/05/21/Episode-26.html https://adspthepodcast.com/2021/05/21/Episode-26.html https://adspthepodcast.com/2021/05/28/Episode-27.html https://adspthepodcast.com/2021/05/28/Episode-27.html https://adspthepodcast.com/2021/06/04/Episode-28.html https://adspthepodcast.com/2021/06/04/Episode-28.html As for Rhapsody and "Yellow Box" for Windows dying, not sure if it would make a difference, OpenSTEP also did not work out that well, not even for Sun, other than being an influence to Java and Java EE (originally an Objective- C framework). By the way, my graduation thesis was porting an OpenGL based particle engine from Objective-C/NeXTSTEP into C++/Windows 95, because the university department was getting rid of their Cubes, at this time there were no hopes for NeXT.
- WillAdams 3y ago
- arcticbull 3y ago> Of course, there’s also the Unix foundation of NeXTstep, which importance cannot be understated, especially during the rise of the Unix workstation in the 1980s and the 1990s. This gave NeXTstep (and later Mac OS X) a user base who could take advantage of PARC-inspired environments while at the same time being able to take advantage of the vast Unix ecosystem. A UNIX ecosystem built on top of Mach. Both macOS and iOS continue to use a BSD-derived POSIX compatibility layer on top of a Mach microkernel - just like NeXTSTEP did.
- iohead 3y agoNo, not quite. The macOS/iOS kernel is extremely Frankenstein-y (not meant in a derogatory way), with the majority of codebase being extremely Apple-specific, and bits and pieces originally taken from Mach and BSD. In particular, there is no microkernel, and there never was. Mach itself was never used as a true microkernel in a commercial setting, with the first such implementation--Mach 3--showing significant real-life performance problems. As such, there is no "BSD on top of a Mach microkernel". It is and has always been a fully monolithic kernel with some subsystems originally derived from Mach (Open Group's Mk 7.3), some from BSD (FreeBSD 5), and the rest developed in-house over the years. Even the layerings aren't always clean, with "on top of" often morphing into "alongside" or "intertwined with".
- detourdog 3y agoWhat is interesting about Mach to me. Is that now 40 years later it's returning too it's roots of hosting multiple OS's on a single hardware architecture. Apple being able to design to M series chips to match Mach's paper over Mach's deficiencies and leverage it's strength I find very exciting. Originally it was meant to be the foundation computing layer for a campus full of devices.
- detourdog 3y agoThe BSD choice dates back to the original ARPA(DARPA?) grant they wanted the Mach microkernel with a BSD interface to prove the viability of the concept of Mach.
- calo_star 3y agoCoreGraphics often emphasizes it's ability to draw PDF, I guess that has to do with the Display PostScript lineage as well.
- iohead 3y agoThe fancy names and the layering makes it a little tricky to understand. The core of the imaging model is called Quartz. It provides support for rendering 2D shapes and text. Its graphics rendering functionality is exported through the Quartz 2D API, which is implemented in Core Graphics. Quartz is also used for window management: the Quartz Compositor, a lightweight window server, is implemented partly in the WindowServer application and partly in the Core Graphics framework. Quartz 2D uses PDF as the native format for its drawing model. In other words, it stores rendered content internally as PDF, which facilitates features such as automagic PDF screenshots, export/import of PDF data natively, and rasterizing PDF data. Quartz 2D also does device-independent and resolution-independent rendering of bitmap images, vector graphics, and anti-aliased text. NEXTSTEP's window server was based on Display PostScript, so was Sun's NeWS (~1986).
- DVRC 3y agoNeWS wasn't based on DPS. It's a full display server based on the PostScript Red Book with some extensions (canvases, lightweight processes and sync primitives, events, classes, garbage collection). This allows to write applications in this extended PostScript or in other programming languages, using a preprocessor, such as cps for C or lps for Scheme-48 and Allegro LISP, that generates PS snippets that get sent to the server.
- canucker2016 3y agoI think a Smalltalk-based version of the NeXT computer would've killed it as an internet device. With the Unix base and C compiler, NeXT users could join Usenet et al. when the device was introduced with a few downloads and make invocations (after the initial diehards did the grunt work of porting).
- nl 3y agoNeXT already was a killer Internet device. TBL invented the WWW on it after all.
- canucker2016 3y agoNope - if NeXT arrives as a Smalltalk-based device, much open-source/internet software does NOT get ported to run on NeXT. A few years later, TBL picks some other workstation to develop WWW.
- mpweiher 3y ago> “Smalltalk OS” with no Unix foundation I think it gets even better if you integrate Smalltalk and Unix, nee, Plan 9, rather than using one as the foundation. Let's call it "Plan A from Userspace". Start with a universal hierarchical namespace that subsumes memory, disk, and the network, integrated into the programming language[1]. But then don't do POSIX byte-oriented API, but rather a composable REST-like object-oriented API[2]. Add a variant of pipes/filters that doesn't just extend from bytes to (flat) objects, but can also handle hierarchies and polymorphism efficiently[3]. Combine them all: http://objective.st/Publications/ http://objective.st/Publications/ [1] Polymorphic identifiers: uniform resource access in objective-smalltalk https://dl.acm.org/doi/10.1145/2508168.2508169 https://dl.acm.org/doi/10.1145/2508168.2508169 [2] Storage Combinators https://dl.acm.org/doi/10.1145/3359591.3359729 https://dl.acm.org/doi/10.1145/3359591.3359729 [3] Standard object out: streaming objects with polymorphic write streams https://dl.acm.org/doi/10.1145/3359619.3359748?cid=81316491227 https://dl.acm.org/doi/10.1145/3359619.3359748?cid=813164912...
- Torwald 3y ago> As an aside, personally I’m curious about an alternative timeline… This sorta happened at Apple (and IBM and Motorola) with the OpenDoc/Taligent initiatives. With the return of the Jedi however, Master Steve axed OpenDoc at Apple, to much chagrin of those involved. Some of that hostility became internet famous, I am sure most of you have seen the video from the conference back then. https://www.youtube.com/watch?v=oeqPrUmVz-o#:~:text=I%20think%20that%20what%20we,we%27ll%20fix%20them https://www.youtube.com/watch?v=oeqPrUmVz-o#:~:text=I%20thin.... It is interesting how (in the video) Steve explains the decision: the Smalltalk way doesn't fit into an overall cohesive vision that allows you to serve the majority of people. I think he got it right. The Mac/Win ways of Apps is the right way to slice and dice these issues. I do use Emacs every day. I do feel the Smalltalk way and I like it. But it's not the "right" way; just not. The best concepts of integrating a terminal/shell CLI driven environment with a GUI and together with on-the-fly manipulation of ENV variables and objects based on those was actualized by the Amiga. Unfortunately Commodore went bankrupt.