Hacker News new | past | comments | ask | show | jobs | submit login
SETL programming language (setl.org)
92 points by mindcrime on April 27, 2019 | hide | past | favorite | 19 comments



Oh my god! It's SETL.

After getting my Masters degree in the early 80s, I went to NYU for my Ph.D. with the intent purpose of working on SETL with Jack Schwartz. Unfortunately, by that time, Jack had moved on from SETL and onto the world of Robotics. Robert Dewar was too busy building Realia COBOL and was not taking on any additional Ph.D. students. So I floundered around NYU for a year before deciding to do my own commercial software, which was probably the best decision I ever made. Especially after seeing a lot of Ph.D. students at NYU who had been there for 10 years.


> before deciding to do my own commercial software, which was probably the best decision I ever made.

Just curious: what did you build, with your commercial venture/startup?


I wrote one of the first word processors for Unix, and showed it at the first UnixExpo in the Javits Center in 1984. When the company that was marketing it went out of business, I ported the word processor to the IBM PC, and it became a very popular shareware word processor (New York Word). The income from New York Word was sufficient enough that I quit my day job and formed a software company devoted to making various productivity tools.


SETL has an interesting lineage and part to play in the history of computing:

The original SETL was implemented in a language known as LITTLE, Dave Shields noted in an email: "SETL was implemented in LITTLE, a language based on FORTRAN that had fixed=length bitfields as a fundamental data type."

Early SETL was used by Robert Dewar's team to implement the first validated Ada implementation, known as NYU Ada/Ed. This implementation worked as an interpreter.

We have a printed copy of the original SETL based NYU Ada/Ed but we are still to find the original SETL implementation. Maybe somewhere in the Courant Institute or their alumni there is someone with an original magnetic tape from the DEC VAX machine that ran these implementations.


> We have a printed copy of the original SETL based NYU Ada/Ed but we are still to find the original SETL implementation

This got me interested. I may not have found what you're looking for, but I found something.

The current git repo's first commit is "based upon SSoS2I 1.0.1" [0].

[0] https://github.com/herrmanntom/setlX/commit/ae1e8a16fb1c15d8...


interesting, someone has refined SETL2 into SetlX; I had not noticed that the SETL wikipedia entry has an entry for SetlX:

https://en.wikipedia.org/wiki/SETL

In my other reply in this thread I highlighted the lineage of SETL, I neglected to also mention that SETL was an influence on ABC that influenced Python.


I parallelized the SetL runtime for shared memory multiprocessors, with dynamic load balancing, parallel GC, and added explicit parallel constructs, at Urbana-Champaign, from fall 1988 over the next couple years. It's weird, to me, that the global interpreter lock persists in Python, 3 decades later.


> I parallelized the SetL runtime for shared memory multiprocessors, with dynamic load balancing, parallel GC, and added explicit parallel constructs, at Urbana-Champaign, from fall 1988 over the next couple years. It's weird, to me, that the global interpreter lock persists in Python, 3 decades later.

I don't think anyone thinks GvR is incapable of removing the GIL. Given the comparatively tiny base of installed SETL software, surely it's a lot easier to check that any backwards-incompatible changes to SETL won't break any important installed software based on it than it is to do the same for Python?

(And, as a follow-up, I think it's fair to say that there is no such thing as a fully backwards compatible change. My background is with Perl more than Python, where the problem is especially acute; but I imagine with Python too, it is very hard to make a change where one can be totally sure that the behaviour being 'fixed' isn't behaviour that some piece of software somewhere out there relies on being broken in exactly the historically right way.)



GNU SETL documentation links to a book from 1979.

Any older?

https://cs.nyu.edu/~bacon/setl/doc-legacy/setlprog.pdf


Is it dead and if not, is it GNU now? Some links on the page don't work.

Anyone here ever tried it out?


It's not dead! [0]

The license is a bit of a mix [1], but sort of mainly BSD, but partly LGPL.

[0] https://github.com/herrmanntom/setlX

[1] https://github.com/herrmanntom/setlX/blob/master/license.txt


The "(1969-2018)" designation is similar to that used for the lifetime of a deceased person. So I too thought this was some kind of RIP post.


I did my MSc thesis with setl and mathematica I, in 1989..

Some elements of setl eventually got their way into python ~15 years ago, namely: sets and list comprehension.

Archeology of programming...


Where can I find an example of a meaningful program written in SETL?


Not sure if they are that meningful, but I have a collection of SETL programs here: http://www.hakank.org/setl/ (My SETL page).

The page also includes some SetlX programs.


'As rms has kindly pointed out, the designation "GNU SETL" is incorrect until the sources have been released. I hope to correct this by making that release soon'

Undated. From the Documentation page.


And according to these searches there are no references to SETL the language at GNU’s website:

https://www.gnu.org/cgi-bin/estseek.cgi?phrase=setl&perpage=...

https://www.google.com/search?q=site%3Agnu.org+%22setl%22


Nothing is dated, except the binary releases, which are all 10 years old.... :(




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: