On 11/26/2018 4:44 PM, Neil Van Dyke wrote:
I don't know how Snobol dropped out of awareness.  I almost never heard of it in the MS-DOS, Windows, or Unix workstation circles, even before Perl, though occasionally you'd see an interpreter on a BBS or freeware/shareware list.

That's funny because it definitely was around.  I know for a fact it was on SunOS and Ultrix, and there was a BSD version on VAX.  In the micro world there were CP/M and Apple II versions.  MSDOS had at least 2 implementations: SNOBOL4 itself, and a descendant language called "Icon"[*].  Icon later was ported to both Macintosh and Windows 3.


[*] an unfortunate name given the imminent rise of WYSIWYG user interfaces.  Icon was not a graphical tool - it was a script language and runtime.  The name "Icon" was a nod to SNOBOL's beginnings as a symbolic computation language.


The most memorable mention I recall was a grad student in the '90s remarking that (IIRC) Andy van Dam wanted to teach Snobol to undergrads.  This being funny in a "he might be right, but it's lol so random, and he wouldn't actually do that" kind of way. (AvD did lead a grad school class, around '95, to evaluate candidate languages for CS intro use.  We looked at many languages, including Java when it was called Oak, but I don't recall anyone championing Snobol.)

It's interesting even that someone would joke about that late. AFAIK, SNOBOL4 was only taught from the late 60's to early 70's. Like other things that work well, it was evangelized by its users.

I am not aware of any metrics on how many users it had, but given the size of the computing community in 1980, even a few 10s of thousands would have been considered phenomenal.  Unlike today where something is a failure if it's not on a million smartphones within 6 months.  <frown>


Could Snobol be another case study of a good technology that fell out of use, such as due to accidents of products or user bases separate from the innate merits of the technologies?  Lisp and Smalltalk and Prolog and Betamax people could sympathize. :)

I am pretty sure that was the situation.


Are there any new lessons we can learn about adoption, or any lessons of linguistics?  (Maybe one of the best string-processing features of Snobol is a Racket procedure or syntax extension waiting to happen. Or maybe understanding the twist of fate of Snobol will enlighten "https://www.neilvandyke.org/racket-money/"; as to why we're not all rich already. :)

Adoption?  Probably not.  Things become popular if they appear at the right time, work well enough, and get some publicity.  Perl (predated Linux but) was able to capitalize on the Linux craze, and crucially an O'Reilly book about Perl appeared just  a few years after the initial release.  When SNOBOL4 was first released, there were no micros or personal workstations, operating systems were proprietary, and nobody was writing books about computing.

Linguistics?  Maybe.  One of SNOBOL4's main uses was automated document analysis and translation.  Human languages are contextual, and even though vocabulary is restricted, it's likely that no CF tool will ever be able to faithfully translate [regardless of how much time or power you throw at it].  But SNOBOL4 made significant inroads because it's complex recursive pattern language was able to do hard things like identifying indirect objects, pronoun references, etc. - things that made analyzing text possible.

As for implementing SNOBOL4 in Racket, I would think it should be relatively easy.  After all, it has already been done in C, Java, Python, JavaScript, etc.  I certainly could do SNOBOL4 as a standalone implementation, but I have not yet grokked how to create (#lang ...) languages integrated into Racket - and that's the way it should be done.

YMMV,
George

--
You received this message because you are subscribed to the Google Groups "Racket 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to