[HN Gopher] Byte Magazine Special Issue: Smalltalk (1984)
       ___________________________________________________________________
        
       Byte Magazine Special Issue: Smalltalk (1984)
        
       Author : PaulHoule
       Score  : 79 points
       Date   : 2022-08-11 15:15 UTC (7 hours ago)
        
 (HTM) web link (archive.org)
 (TXT) w3m dump (archive.org)
        
       | andrewl wrote:
       | Did the Smalltalk balloon originate with the _Byte_ cover, or did
       | the Smalltalkers at PARC come up with it first?
        
         | timbit42 wrote:
         | The Smalltalk Balloon by Dan Ingalls
         | 
         | https://wiki.squeak.org/squeak/3459
        
         | [deleted]
        
         | macintux wrote:
         | Looks like the answer is effectively "yes".
         | 
         | https://wiki.squeak.org/squeak/3459
        
       | PerilousD wrote:
       | I just tossed this issue out along with maybe a hundred others
       | last month :-)
        
         | Apocryphon wrote:
         | Why are you smiling? You should've donated them!
        
           | andrekandre wrote:
           | i wonder whats stopping anyone from doing a re-print of these
           | magazines... not enough demand?
        
             | retrac wrote:
             | Still under copyright.
        
           | PaulHoule wrote:
           | Magazines like _Byte_ and _Creative Computing_ were perceived
           | as ephemeral by libraries, particularly academic libraries,
           | and were discarded quickly. My mom threw most of mine out
           | when I went to college.
           | 
           | In the mid 1990s I tried to get 1979 issues of _Creative
           | Computing_ and couldn 't find any academic libraries that
           | could offer them for interlibrary loan.
        
           | AdmiralAsshat wrote:
           | To whom? Internet Archive would be the obvious recipient, and
           | they've clearly already digitized it.
        
             | Apocryphon wrote:
             | I'd take 'em.
        
       | datavirtue wrote:
       | Limited print space definitely contributes to quality. I'm so
       | sick of run-on SEO text. Reading a good magazine always reminds
       | me of how unusable the web is.
        
       | macintux wrote:
       | Older discussions:
       | 
       | * https://news.ycombinator.com/item?id=20014281 (2019, 42
       | comments)
       | 
       | * https://news.ycombinator.com/item?id=8391400 (2014, 16
       | comments)
       | 
       | * https://news.ycombinator.com/item?id=7052479 (2014, 32
       | comments)
        
       | varjag wrote:
       | Palantir ad on page 32
        
       | walnutclosefarm wrote:
       | Smalltalk remains my all time favorite language. I started
       | programming in the 1960s, with BASIC and FORTRAN (FORTRAN II, in
       | fact, from McCracken's famous "Guide"), and before I quit coding
       | professionally, implemented production systems in more than two
       | dozen different languages. Wrote the most lines of code in Java,
       | but the most interesting systems in Fortran, Pascal, Object
       | Pascal (and one in Concurrent Pascal). Liked LISP least of all,
       | followed closely by C++ and COBOL (although APL would probably be
       | at the bottom, had anything I did in that strange elixir ever
       | reach production - none did), but I loved Smalltalk.
       | Unfortunately, Smalltalk arrived to too much hype before it's
       | (potential) time, and was crippled as production language by it's
       | image based development and deployment methodology. A truly
       | elegant and sweet language coupled to a really awful engineering
       | paradigm.
       | 
       | Thinking back on all this, I am astonished once again at how much
       | has happened in computing in my lifetime (I am older than
       | FORTRAN, e.g., so essentially all code every compiled has been
       | compiled in my lifetime, unless you want to count Autocoder
       | macros as compiled code).
        
         | Qem wrote:
         | > Unfortunately, Smalltalk arrived to too much hype before it's
         | (potential) time, and was crippled as production language by
         | it's image based development and deployment methodology.
         | 
         | I was exposed to image based through Pharo, and I've found the
         | idea to be awesome, as it allows very tight feedback loops on
         | development. I see people complaining because it was nontrivial
         | to extricate a finished program from the environment and ship
         | it to customers in a "tamper-proof" opaque form. What puzzles
         | me is why didn't Smalltalk play a bigger role on the ascension
         | of free and open source software, given what was a bug for
         | proprietary shops (hard to ship a opaque binary) is actually a
         | feature for copyleft development (fully inspectable source code
         | together with full development environment included by
         | default). The GNU-Smalltalk development appears to be mostly
         | stale. The torch of free smalltalk is carried most by Squeak
         | and Pharo today.
        
           | Jtsummers wrote:
           | You have to consider several factors:
           | 
           | 1. Information (and source code) was not so freely available
           | as it became even by the mid-90s, when the internet itself
           | started approaching ubiquity and the Web provided much
           | greater access to information.
           | 
           | 2. A large part of the OSS movement has long focused on
           | replacing Unix-like OSes with a FOSS Unix-like OS, which
           | eventually meant GNU/Linux becoming the dominant system
           | people rallied behind. This focus carries with it a
           | _language_ focus, C.
           | 
           | 3. Smalltalk in the 80s and through most of the 90s was not
           | easily used freely, and implementing it carries its own costs
           | even if you have people interested in it. Without the common
           | experience of having used it, there is less of a desire to
           | create a free version of it (see 2, the common UNIX and Unix-
           | like experience shared by OSS developers molded and directed
           | the movement, even if not consciously).
           | 
           | If the Internet had been more widely available, Smalltalk
           | more widely used and free (or at least much cheaper), then
           | maybe we would have seen a different outcome.
        
         | nealabq wrote:
         | I'm only slightly younger than you, and, like you, have worked
         | in many languages. And my very favorite were the LISPs (zeta,
         | common, scheme). But the dev env, projects, and my time in life
         | were all part of that positive experience. I was in my 20s (a
         | super learning time) working on my own code on Symbolics Lisp
         | machines. Fortran/Ratfor were my least favorite, since that
         | work was always maintaining code written (and barely commented)
         | by someone I didn't know.
         | 
         | Smalltalk and Erlang are my next choices. Same reasons as LISP.
        
         | aeneasmackenzie wrote:
         | Usually people mention lisp and smalltalk in the same breath.
         | What turned you off of lisp, especially as compared to
         | smalltalk?
        
           | ErikCorry wrote:
           | Apart from being contemporaneous they have little in common.
           | Lisp is functional, Smalltalk is object oriented.
        
             | PaulHoule wrote:
             | Both are dynamically type and have garbage collection. Both
             | have lambdas.
        
           | walnutclosefarm wrote:
           | Neither the list paradigm, nor functional languages
           | generally, ever really gelled in my mind, the way, say, OO
           | did. Algorithms expressed in functional form in LISP always
           | seemed contorted from their natural form, to me. So, mostly I
           | found LISP to be an awkward, "unscannable" language. I could
           | write it, and read it, but it always felt a little like
           | reading and writing a foreign language to me, not something
           | in which my mind was native.
        
       | jjtheblunt wrote:
       | 1981 not 1984
        
       | pkrumins wrote:
       | For over a decade, every August, Byte magazine published columns
       | covering one programming language. Here's a list of years and
       | languages covered:
       | 
       | 8/77 - APL
       | 
       | 8/78 - Pascal
       | 
       | 8/79 - LISP
       | 
       | 8/80 - Forth
       | 
       | 8/81 - Smalltalk
       | 
       | 8/82 - Logo
       | 
       | 8/83 - C
       | 
       | 8/84 - Modula 2
       | 
       | 8/85 - Declarative programming
       | 
       | 8/86 - Object Oriented programming
       | 
       | 9/87 - Misc programming
        
       | eternalban wrote:
       | My god, Byte magazine. The internet generation probably doesn't
       | appreciate just how difficult it was to be on top of CS outside
       | of academia or SV in 80s and evens 90s. I remember there was one
       | bookstore down in Wall Street and one day I saw the green and
       | blue Smalltalk books. It was like finding a little treasure!
       | Naturally I grabbed them both.
        
       | ncmncm wrote:
       | Smalltalk looked at the time like it was going to be important.
       | It had really good marketing.
       | 
       | Its main effect on the world, aside from being the implementation
       | language for the Xerox UI that was demonstrated to Steve Jobs,
       | seems to have been via its influence on the language Self, which
       | then influenced Javascript. And here we are.
        
         | macintux wrote:
         | Objective-C was directly influenced by it.
        
         | linguae wrote:
         | The Smalltalk community also had an influence on design
         | patterns and testing frameworks that would later get picked up
         | by C++ and Java programmers. If I recall correctly, the Gang of
         | Four (the authors of the famous Design Patterns book) uses
         | Smalltalk in its examples.
        
           | rileyphone wrote:
           | The Smalltalk community was also instrumental in the origin
           | of Agile (before familiar bastardization by the industry)
           | with people such as Kent Beck and Ward Cunningham (who also
           | made the original wiki at c2.com).
        
           | ncmncm wrote:
           | Design Patterns has itself turned out not to be anywhere near
           | as important as it seemed at the time.
           | 
           | The only one I _ever_ hear of nowadays is the  "visitor
           | pattern".
           | 
           | Anti-patterns have more sticking power. Arguably all patterns
           | are anti-patterns, since each identifies something one's
           | language is too weak to capture in a library. As C++ got more
           | powerful, the patterns vanished into ordinary library
           | components.
        
             | belter wrote:
             | "Design patterns are bug reports against your programming
             | language"
             | 
             | -- Peter Norvig
             | 
             | https://news.ycombinator.com/item?id=8735187
        
             | mickeyp wrote:
             | - Decorator pattern, as seen in Python's @decorators;
             | 
             | - Factory functions, as seen everywhere, even if people
             | don't bother thinking of them as such;
             | 
             | - Memento pattern, a common way of implementing undo-able
             | actions in applications that need it;
             | 
             | - Proxy pattern, frequently used when you have a code-
             | generated client that talks to a server from a template.
             | Like generating REST/RPC client code that matches a server
             | spec;
             | 
             | - Visitor pattern, but you already mentioned that... but
             | ironically enough, if you have pattern matching support in
             | your language, it's much easier to use that.
             | 
             | And that's just off the top of my head. If you use any of
             | these you're no architecture astronaut, nor are you gilding
             | your lillies.
        
           | infinite8s wrote:
           | I first learned design patterns in the context of C++. After
           | learning python I used to think that needing design patterns
           | was a sign that your language wasn't powerful enough.
           | However, now that I've taken the time to learn Smalltalk I
           | feel that design patterns indicates that your language had
           | the ability to model any kind of architecture you can
           | imagine, and if needed you can reshape the language to make
           | that easier (vs python where you would need to implement it
           | in the underlying cPython layer).
        
         | Jtsummers wrote:
         | And Self's JIT and VM technology went into Java.
        
           | ncmncm wrote:
           | They did, but that was not a Smalltalk heritage.
        
             | pjmlp wrote:
             | It surely was, here is some learning material.
             | 
             | > Strongtalk is a major re-thinking of the Smalltalk-80
             | programming language and system. While retaining the basic
             | Smalltalk syntax and semantics, it contains a number of
             | significant advances, including:
             | 
             | > The Strongtalk system was developed in secret in the
             | mid-90's by a small startup company. Before the Strongtalk
             | system could be released, the company was acquired by Sun
             | Microsystems, Inc. to work on the Java(r) virtual machine.
             | 
             | http://strongtalk.org/
        
             | igouy wrote:
             | https://www.strongtalk.org/history.html
        
             | twoodfin wrote:
             | I'd disagree with that characterization. The earliest work
             | in optimizing highly dynamic languages was done in
             | Smalltalk[1] before continuing in Self. David Ungar was the
             | through line and one of the original designers of Self.
             | 
             | [1]
             | https://www2.eecs.berkeley.edu/Pubs/TechRpts/1986/5376.html
        
               | lispm wrote:
               | > The earliest work in optimizing highly dynamic
               | languages was done in Smalltalk
               | 
               | Hard to believe, given that optimizing native code
               | compilers for Lisp were already available.
        
               | twoodfin wrote:
               | I'll accept "of the specific thread that led to HotSpot"
               | as a qualification, sure.
        
         | cmrdporcupine wrote:
         | I don't see the Self influence in JS.
         | 
         | Perhaps you mean because of prototype inheritance? But the form
         | in JS doesn't look anything like the form in Self. Or
         | particularly thought through at all, really. I fear that Eich
         | may have implemented prototype OO by accident almost?
         | 
         | I have a whole book on prototype OO from the 90s, and the
         | languages in there are much better thought through (Self wasn't
         | the only one or the first one. Actually even Smalltalk 72 is
         | kind of prototype-OOish).
         | 
         | In other respects, syntax and scoping model etc, I don't think
         | original JS looks anything like a Smalltalk-descended language.
        
           | Jtsummers wrote:
           | > I don't see the Self influence in JS.
           | 
           | I think Eich's own words may be helpful here:
           | https://brendaneich.com/2008/04/popularity/
           | 
           | Maybe it was accidental, but he refers to it as being Self-
           | ish. And refers to it as "a quickie love-child of C and
           | Self".
        
         | pjmlp wrote:
         | Maybe if IBM had not rebooted their Smalltalk business into
         | Java, Smalltalk would have been kept more relevant than it is
         | nowadays.
         | 
         | For the younger generations, the whole set of Visual Age IDEs
         | were written in Smalltalk, SOM (the OS/2 COM like OOP ABI) had
         | support for C, C++ and Smalltalk, making Smalltalk the kind of
         | OS/2's .NET.
         | 
         | Then Visual Age became Eclipse, and the Smalltalk business
         | pivoted into Java.
        
         | e12e wrote:
         | I think openstep, objective-c and cocoa owes a great deal to
         | smalltalk. I'm not sure if objective-c ever was any better (or
         | practical) than smalltalk/strongtalk/self (or Java) - but it's
         | at least possible to dream of the macos going for smalltalk,
         | not obj-c.
        
           | Jtsummers wrote:
           | Objective-C had the primary benefit (over Smalltalk) of being
           | a superset of C, which permitted immediate and _easy_
           | interaction between Objective-C and C source code. It also
           | integrated better (which was critical, Smalltalk doesn 't
           | force using the image model for source code, but it was
           | _typical_ ) into existing development workflows. Those are
           | the kinds of practical concerns that can't be neglected when
           | considering language adoption, especially since NeXT (main
           | early adopter) was building on the lineage of the Unix-family
           | of operating systems.
        
         | ErikCorry wrote:
         | Smalltalk is a major influence on Toit and Ruby.
         | 
         | Toit has blocks (lightweight closures), single inheritance,
         | everything-is-an-object (no primitive types).
         | 
         | Like Smalltalk the Toit VM is dynamically typed, but unlike
         | classic Smalltalk there are optional types and they are checked
         | at compile time and run time if you choose to use them.
         | 
         | The syntax is not much like Smalltalk though, and development
         | is with conventional source files and compilation, not image
         | based like Smalltalk and Self.
         | 
         | (In Self the editor was inside the VM and you saved your work
         | by snapshotting the entire VM state which is superficially
         | attractive but makes it really hard to collaborate and use
         | version control.)
        
           | ncmncm wrote:
           | Are Toit or Ruby important?
           | 
           | We used to think Ruby would turn out to be important. Then it
           | didn't, and Python reclaimed its niche. I have probably
           | _heard of_ Toit before, but am unsure.
           | 
           | Snapshotting your VM state as the way to deliver programs was
           | probably Smalltalk's chief failing.
        
             | igouy wrote:
             | Lack of standardization across vendors was by-far the chief
             | failing.
             | 
             | > the way to deliver programs
             | 
             | To judge whether that could be successful, we need to be
             | more specific -- deliver what kind-of programs to what
             | kind-of end-users?
        
           | igouy wrote:
           | > you saved your work by snapshotting the entire VM state
           | 
           | That doesn't seem likely, that wasn't the recommended
           | approach to managing source code in Smalltalk -- but I have
           | no personal experience with Self.
           | 
           | "Exporting Self objects to source files using the
           | Transporter"
           | 
           | https://bluishcoder.co.nz/2015/11/19/exporting-self-
           | objects-...
        
         | jonjacky wrote:
         | I recall Smalltalk had the first unit testing framework, which
         | became a model for other languages.
        
         | retrac wrote:
         | Smalltalk influenced nearly every object-oriented language that
         | came after it, by virtue of heavily influencing Lisp. The
         | precursor to Common Lisp's Object System (CLOS) comes rather
         | directly after MIT Lisp hackers [1] encountered Smalltalk in
         | the late 70s.
         | 
         | Lisp probably counts as the first major language to have OOP,
         | and Lisp, along with Smalltalk, was the language that
         | introduced OOP to the wider programming world. Bjarne
         | Stroustrup knowing about Simula, and trying to turn C into a
         | Simula-like language, is more the exception. Most OOP languages
         | today can trace their OOP heritage to CLOS.
         | 
         | [1]
         | https://en.wikipedia.org/wiki/Flavors_(programming_language)
        
         | PaulHoule wrote:
         | Other object oriented languages too.
        
           | ncmncm wrote:
           | Objective-C, maybe. Not C++ or Java, which trace their
           | lineage to Simula, which Smalltalk also cribbed from. But it
           | is hard to see Objective-C as important, limited as it is to
           | a walled garden.
           | 
           | It also once seemed like "object-oriented" would be
           | important. Now it is recognized as a niche technique.
        
             | Apocryphon wrote:
             | Object-oriented programming has been important for like
             | three decades now, for better or for worse, and if it's so
             | "niche" now, what paradigm has replaced it?
        
               | ncmncm wrote:
               | The world (well, most of it) has recognized that
               | "paradigms" are themselves niche. Of mainstream
               | languages, only Java still tries to shoehorn all programs
               | into its "paradigm".
        
               | Apocryphon wrote:
               | What world are you posting from exactly
        
             | linguae wrote:
             | There is a GCC Objective-C compiler that has existed for a
             | long time, and a large portion of the Cocoa API is
             | available in GNUstep, an open source implementation of the
             | OpenStep API. It's long been possible to use Objective-C
             | outside of NeXT, Mac, and iOS development, though
             | admittedly Objective-C hasn't had the same level of
             | adoption as contemporary object-oriented languages such as
             | C++ and Java.
        
               | ncmncm wrote:
               | I have never heard of Objective-C actually being used in
               | anything I know about, outside the walled garden.
        
               | rileyphone wrote:
               | Ever heard of the World Wide Web?
               | https://github.com/cynthia/WorldWideWeb
        
               | pjmlp wrote:
               | Created on a NeXT workstation, the Objective-C
               | implementation was never ported to other platforms,
               | Mosaic was implemented in C.
               | 
               | https://en.wikipedia.org/wiki/Mosaic_(web_browser)
        
               | rileyphone wrote:
               | Still, the Web might have never existed without
               | Objective-C, which is moreso my point. From [0]:
               | 
               | > A second phase would almost certainly involve some
               | programming in order to set up a real system at CERN on
               | many machines. An important part of this, discussed
               | below, is the integration of a hypertext system with
               | existing data, so as to provide a universal system, and
               | to achieve critical usefulness at an early stage.
               | 
               | > (... and yes, this would provide an excellent project
               | with which to try our new object oriented programming
               | techniques!) TBL March 1989, May 1990
               | 
               | Objective-C had a wonderfully pragmatic approach to OOP,
               | though it remained tied to the systems it was on because
               | of the standard object libraries that enabled it. NeXT
               | promotional materials really liked to showcase its
               | suitedness to rapid application development, whether Jobs
               | himself doing so [1] or in a staged competition with Sun
               | [2]
               | 
               | [0] https://www.w3.org/History/1989/proposal.html
               | 
               | [1] https://youtu.be/rf5o5liZxnA?t=1391
               | 
               | [2] https://www.youtube.com/watch?v=UGhfB-NICzg
        
               | pjmlp wrote:
               | The Web would have existed in another form.
               | 
               | Hypertext systems preceded it by decades.
               | 
               | Objective-C has great as it might have been, didn't
               | brought much to the table to those used to the Windows or
               | Mac IDEs for GUI development.
               | 
               | The Next vs Sun marketing video wouldn't have been the
               | same when placed against HyperCard, Visual Basic, Delphi
               | or C++ Builder.
               | 
               | NeXT was almost bankrupt when they were pivoting into
               | OpenStep, and not only was Java born out of Objective-C
               | influences at Sun during the OpenStep days, Java EE was
               | born from the ashes of an Objective-C framework for
               | distributed computing at Sun.
        
               | Apocryphon wrote:
               | Similarly, Doom was created on a NeXT workstation in C,
               | but its editing tools were written in Objective-C
               | 
               | https://doomwiki.org/wiki/Development_of_Doom
        
               | Apocryphon wrote:
               | Mac software aren't inherently walled garden.
        
             | dunham wrote:
             | According to one of the developers of Java, Java was also
             | inspired by Objective-C:
             | 
             | https://cs.gmu.edu/~sean/stuff/java-objc.html
        
       ___________________________________________________________________
       (page generated 2022-08-11 23:01 UTC)