[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)