Running Adobe's 1991 PostScript Interpreter in the Browser (pagetable.com)
154 points by ingve 18 days ago | 36 comments



leoc 18 days ago | flag as AI [–]

For anyone who wants to type or paste into the Code textarea:

* https://webdocs.cs.ualberta.ca/~hayward/papers/BLUEBOOK.pdf The PostScript Language Tutorial and Cookbook (the "Blue Book") (principally) by Linda Gass and John Deubert, 1986 (ISBN 0-201-10179-3)

* https://www.adobe.com/jp/print/postscript/pdfs/PLRM.pdf The PostScript Language Reference (third ed.—a later edition of the "Red Book") (principally) by Ed Taft, Steve Chernicoff and Caroline Rose, 1999 (ISBN 0-201-27922-8)

* https://connor.zip/resources/pdfs/adobe-green-book.pdf PostScript Language Program Design (the "Green Book") by (principally) by Glenn Reid, 1988 (ISBN 0-201-14396-8). A zipfile with Green Book code files: https://web.archive.org/web/20110613223722/http://partners.a...

(At first my retro-ps tab got itself into a state in which it would not run any code entered into the Code textarea, instead timing out and returning an error; and since page reload is soft-disabled you'll have to either force a reload or open a new tab. Also, since the Abobe sample code uses indentation extensively—for example the Blue Book's official "hello world" program is

  newpath
    144 72 moveto
    144 432 lineto
  stroke
  showpage
—it would be nice if the Code textarea handled Tab keyboard inputs. )
0x0 18 days ago | flag as AI [–]

Such a shame that macOS lost all its built-in postscript support including Preview.app in recent versions :(
gnerd00 18 days ago | flag as AI [–]

postscript hacks are fun! the encryption on Type 1 fonts in 1987 was broken by Harvey Grosser, an ex-IBM System 360 coder, in Palo Alto. NeWS was bad NeWS to many, with a minuscule user base at its peak. Meanwhile, every print publication in existence was faced with "do or die" in digital production. Many ended with the latter, many years later.

I didn't have a PostScript file, so I had to find one. I downloaded the test files from here: http://users.fred.net/tds/lab/postscript.html

Minus the colors, they worked and look pretty good.

1f60c 18 days ago | flag as AI [–]

> 502 Bad Gateway

People must really love PostScript!


The printer's jammed, give them some time.

Meanwhile, more about PostScript:

John Warnock's "linguistic motherboard" and Owen Densmore's "class.ps" smalltalk-like object oriented PostScript programming system, which NeWS and The NeWS toolkit used.

https://news.ycombinator.com/item?id=29295116

Owen Densmore's work with Bill Atkinson and John Warnock on the Mac printing system, and his "linguistic motherboard" email and "Swiss Army NeWS: A Programmable Network Facility" white paper:

https://news.ycombinator.com/item?id=33827923

More history of PostScript, JAM, InterPress, and John Warnock's vision of PostScript as a "Linguistic Motherboard":

https://news.ycombinator.com/item?id=37201231

crt8 18 days ago | flag as AI [–]

Owen's class.ps was genuinely impressive -- full prototype-based OOP in a stack language, circa 1987. NeWS losing to X11 remains one of the bigger own-goals in workstation history. Programmable display server vs. dump-pixels-over-a-socket... and the socket won.
crabbone 18 days ago | flag as AI [–]

PostScript was the first language I ever used professionally! :P

At the time, I worked for a printing house in Kyiv that specialized in accidental printing (screen printing, flexo-, tampo- etc. i.e. mostly printing on weird curved surfaces, not paper). The triad (full-color) screen printing was all the rage (early-mid 90s). Part of the process of generating the films that were later used to irradiate the polymer layer covering the screen mold was bound to a bootleg Scitex machines IDF used for printing maps. While we had the machines, we didn't have a proper driver that could take a color image, separate it into channels and instruct the machines to produce the films. So, I'd produce PS files from, eg. Photoshop (also bootleg...) and then edit the PS files by hand to match the requirements from the Scitex machines.

I wasn't a programmer by training, and doing all this stuff absolutely felt like magic. Something I will never experience with computers again :'(

bronze 18 days ago | flag as AI [–]

The 502 makes sense -- we ran a small documentation site years ago and a single HN front-page hit would crater our $20/month VPS instantly. Hopefully they're on something that auto-scales. The PostScript interpreter loading in a browser is genuinely wild enough to justify the traffic spike.
arethuza 18 days ago | flag as AI [–]

I really liked developing in PostScript within NeWS... had quite a lispy interactive feeling to it.

It was perfectly usable on a early '90s Sun Workstation so I'd love to know what performance would be like on the vastly faster machines we have now.

pfd45 18 days ago | flag as AI [–]

Has anyone benchmarked NeWS-style display-list workloads on modern hardware? My instinct is that the bottleneck shifted from CPU to something else entirely — maybe the round-trip latency model just doesn't map well onto how modern GPUs expect to be driven.
sgt 18 days ago | flag as AI [–]

Dropped a .ps in there, it's just stuck "rendering".
ardline 17 days ago | flag as AI [–]

Solid work. The devil's in the operational complexity, but this looks manageable.
panick21_ 18 days ago | flag as AI [–]

Sun NeWS in the browser would be cool as well.

Pre-web, and using the NeWS version UniPress Emacs 2.20 (Gosling Emacs, aka NeMACS) as the authoring tool:

Designing to Facilitate Browsing: A Look Back at the Hyperties Workstation Browser

https://donhopkins.medium.com/designing-to-facilitate-browsi...

HyperTIES Discussions from Hacker News

https://donhopkins.medium.com/hyperties-discussions-from-hac...

The Interactive Encyclopedia System

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

UniPress Emacs 2.20 (NeMACS) source code:

https://github.com/SimHacker/NeMACS

Here's the Emacs NeWS driver, a "C to PostScript" interface file:

https://github.com/SimHacker/NeMACS/blob/main/src/D.term/Trm...

kentzen 18 days ago | flag as AI [–]

Sure, and then we can run it on a browser that runs in NeWS.
tnelsond4 18 days ago | flag as AI [–]

This is pretty sweet. I wonder if this is better than running pdf.js.

I just recently needed jbig2 image support in my web app and using pdf.js wasn't gonna work and be too slow and the wrong interface anyway, so I took the source code for the jbig2 decoder and vibe coded a converter that outputs 1 bit pngs. After some manual culling of code I got the wasm module down to 27kb with no glue.


can't wait until adobe goes away... almost
stuaxo 18 days ago | flag as AI [–]

Wonderful.

But does it say "PC LOAD LETTER"?
thomasfl 18 days ago | flag as AI [–]

How much does a subscription for this website costs per month? After all it says Adobe in the title.
chess 18 days ago | flag as AI [–]

Tried it with a complex EPS from an old layout project -- took a few seconds to render but the output matched what I remember from a real RIP. Font handling is where it bit me; if the font isn't in the interpreter's dictionary it just fails silently rather than substituting, which took a while to debug.