Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Printer

Source Code for Adobe's PostScript Publicly Released (computerhistory.org) 46

The story of PostScript "is a story about profound changes in human literacy," argues Silicon Valley's Computer History Museum, "as well as a story of trade secrets within source code."

And 40 years after it's creation... The Computer History Museum is excited to publicly release, for the first time, the source code for the breakthrough printing technology, PostScript. We thank Adobe, Inc. for their permission and support, and John Warnock [Adobe's 82-year-old co-founder] for championing this release....

From the start of Adobe Systems Incorporated (now Adobe, Inc.) exactly forty years ago in December 1982, the firm's cofounders envisioned a new kind of printing press — one that was fundamentally digital, using the latest advances in computing. Initial discussions by cofounders Chuck Geschke and John Warnock with computer-makers such as Digital Equipment Corporation and Apple convinced them that software was the key to the new digital printing press. Their vision: Any computer could connect with printers and typesetters via a common language to print words and images at the highest fidelity. Led by Warnock, Adobe assembled a team of skillful and creative programmers to create this new language. In addition to the two cofounders, the team included Doug Brotz, Bill Paxton, and Ed Taft. The language they created was in fact a complete programming language, named PostScript, and was released by Adobe in 1984.

By treating everything to be printed the same, in a common mathematical description, PostScript granted abilities offered nowhere else. Text and images could be scaled, rotated, and moved at will, as in the opening image to this essay. Adobe licensed PostScript to computer-makers and printer manufacturers, and the business jumped into a period of hypergrowth....

Today, most printers rely on PostScript technology either directly or through a technology that grew out of it: PDF (Portable Document Format). John Warnock championed the development of PDF in the 1990s, transforming PostScript into a technology that was safer and easier to use as the basis for digital documents, but retaining all the benefits of interoperability, fidelity, and quality. Over the decades, Adobe had developed PDF tremendously, enhancing its features, and making it a crucial standard for digital documents, printing, and for displaying graphics of all kinds on the screens from laptops to smartphones and smartwatches.

Thanks to guest reader for submitting the story.
This discussion has been archived. No new comments can be posted.

Source Code for Adobe's PostScript Publicly Released

Comments Filter:
  • I like PostScript (Score:2, Insightful)

    by Anonymous Coward

    Still the best way to make your printer dance. Getting a printer that does PostScript, or failing that, putting a rpi or whatever in front that translates PostScript to whatever the printer wants, is the surest way to make sure it not only works, but will keep on working across OS updates and changes.

    Quite a ton of restrictions on this release, but probably useful to test against for some other implementation. It'd be nice to have more than ghostscript easily available. It does the job but hoo boy is it un

  • by innocent_white_lamb ( 151825 ) on Saturday December 10, 2022 @05:47PM (#63119918)

    Quote from the article:

    The version of the PostScript source code released to the public by the Computer History Museum is a very early version, dating to late February 1984. While this version does contain an early version of the âoefont hintingâ procedures later kept as a trade secret, these approaches were completely rewritten, expanded, and refined by Bill Paxton in subsequent months. These changes were critical to the success of PostScript as it fully came to market.

  • by rbrander ( 73222 ) on Saturday December 10, 2022 @05:51PM (#63119932) Homepage

    About 40 years, back, I was consumed by an interest in FORTH, the very minimal language invented by Charles Moore to control radio telescopes. Like LISP, it can build up very powerful functions in small amounts of code; has the same power LISP has, to review the whole program tree, and self-modify code, (if you must); and is easy and natural to do object-oriented programming in.

    I just figured anybody who got good at FORTH would be a demon programmer, the same sales pitch that Y-Combinator's Paul Graham wrote about LISP, and how the first web app gained huge advantage from being LISP.

    Well, anybody who used FORTH much can write the rest, a slow admission that it was hard to write readable code in, was not suited to many problems, and I wandered away from it; needless to say, FORTH did not catch on, though it's still around, with many fanatics.

    Except that PostScript is really just FORTH with a bunch of specific functions for text and graphics presentation; that's the way of FORTH - every application is just the language extended in ever-more-specific directions, with the final FORTH "word" (function) being "interpret-document".

    A friend once used this to program the drawing of a recursive, space-filling tree graphic in PostScript - a very, very short file that called the recursive program. Then the little computer printer would sit for a friggin' hour, recursing down the program 20 levels - and suddenly print out a million branches of a tree. (Memory permitting).

    Aside from a lot of real-time control uses, and a fair number of application programs from its enthusiasts (mostly electrical engineers, I think), FORTH really hugely changed the world by giving us PostScript.

    So, as a frustrated FORTH stan, I'm well contented with that thought.

    • Speaking of self modifying code, seeing as how postscript is Turing complete, I recall reading through some proof of concept viruses written in postscript. I don't remember if any postscript viruses became a thing or not.

      • by Nebulo ( 29412 ) on Saturday December 10, 2022 @06:38PM (#63120024)

        It would be more accurate to say that Postscript malware exists, but viruses are almost impossible (or impractical) due to the nature and inherent limitations of most Postscript systems. Postscript contains no facility for accessing a network from code, for example, dramatically limiting its ability to autonomously spread over wide areas. Most Postscript devices contain no significant permanent storage; power cycling a printer returns it to baseline. Postscript programs are designed to be written to the device, one byte at a time, in sequence –there is no inherent need for bi-directional communication with the code transmitting the program, and often no bi-directional communication whatsoever, so there is little danger of code "leaking" from the Postscript program back into an external executable context.

        Of course there are exceptions to these statements. Some Postscript interpreters, including Ghostscript, extend the language to add features that Adobe never found necessary. Some industrial devices include hard drives for long-term storage. But the vast majority of Postscript devices – small scale laser printers in homes and offices – adhere to the statements above.

        To my knowledge, nothing that you would recognize or define as a virus has ever been widely deployed in Postscript. What malware has existed has taken advantage of systems external to Postscript; for example, whatever interface a printer manufacturer creates to accept Postscript jobs via a network. As a result, Postscript devices were just never attractive targets to create mischief any more sophisticated than overlaying your printed pages with the word "FART" in 48pt Helvetica Bold. :)

      • I found Project Zero's writeup of a PDF-based zero click iMessage exploit to be fascinating reading. Whoever created this exploit used the functions of an image decoding algorithm buried deep in a PDF parser to create a virtual machine.

        https://googleprojectzero.blogspot.com/2021/12/a-deep-dive-into-nso-zero-click.html [blogspot.com]

        https://googleprojectzero.blogspot.com/2021/12/a-deep-dive-into-nso-zero-click.html [blogspot.com]

      • by sxpert ( 139117 )

        we had fractals rendering code in poststript, that would take days to run in your average HP printer, locking it up for a while

    • About 40 years, back, I was consumed by an interest in FORTH...

      Shut up and subscribe me to your newsletter.

      • by rbrander ( 73222 )

        Heh, don't tempt me. There's still a "GForth" out there, free, that is quite an impressive one.

        I picked it up after re-reading the old novel I will gift you with knowledge of, though good luck in the used bookstores. "Wizard's Bane" by Rick Cook, 1980s, hauled out the now-old trope of a programmer teleported to a swords-and-sorcery universe, where magic is impossibly hard to learn: long strings of syllables and gestures that will kill you if you get a phoneme wrong. Our Hero discovers that he can cast

    • I like FORTH. The snag is that it was really designed for tiny computers, which is much of the reason for its compactness, not just in code but in syntax and number of characters to do stuff, the near universal style keeping keeping most word s(ie, functions) very short, with one-liners of 64 chars max being preferred. Any code bigger than a 64x16 page was deemed too big and needed to be split up. And if you needed assembler, you wrote that in FORTH too in its postfix style.

      I also found that the short bi

    • by sjames ( 1099 )

      I find it just plain weird that Adobe has repeatedly denied that PS is in any way a flavor of FORTH or based on FORTH.

    • Time to bring PS back to NeXTStep.

    • Back in the day one of my demos was the Towers of Hanoi in PostScript. Feed a file to the printer that ends in something like "4 (s) (i) (d) Hanoi showpage", it thinks for a few seconds, then prints a page with the moves on it.

      ...laura

    • FORTH gave forth some other applications; somewhere I think I still have a commercial 2D CAD program written in it that I bought for my 8086 PC. It performed fine for the limited range of stuff I did on it (mainly planning a new porch.; shame it wasn't a new Porsche :-) ). I tried a bit of FORTH programming and was mightily impressed by the power, but worried about the fragility of the resulting stack (a bug at the bottom would create havoc) and pretty unreadable code (and I know about that, having spent s

  • by greytree ( 7124971 ) on Saturday December 10, 2022 @06:05PM (#63119956)
    I think Adobe made PDF deliberately awful so that people would leave programming it to them.
    • by gweihir ( 88907 )

      Probably. Reminds me when our Tectronix Phaser could not print my PostScript code bach when I was a PhD student. Tectronix was very cool though, I sent them the PS code and a description of the problem and a few weeks later we had a firmware update that could deal with my stuff.

  • Available under the GPL for 34 years now. Except for the fonts it is basically identical. Fonts are not secret though, anybody can read them, some just require a license to get them.

  • I've written a number of PostScript programs. I'd write even more if it had double precision floating point arithmetic.
    • by Nebulo ( 29412 )

      I'm curious - what do you need the additional precision for?

      • Totipotent engineering programs. My idea was to perform engineering calculations (that require double precision to avoid loss of precision) in PostScript and display the result in a aesthetic fashion. Whatever is displayed on a page would therefore be inherently correct.
  • by Dictator For Life ( 8829 ) on Saturday December 10, 2022 @10:07PM (#63120526) Homepage

    PostScript offers a ton of control, but it was categorically the worst thing I've ever had to learn language-wise. It did, however, get the job done when no one else in the company thought the job was possible. My boss said to me afterwards, "See how smart I was to hire you?" (He was being tongue-in-cheek - he really wasn't full of himself at all).

    Given a PDF that would later be printed, insert a tracking barcode that our usual processes could not manage themselves. I ripped the PDF down to PS, made the necessary edits to insert the barcode at the proper place on every page, and then regenerated the PDF. And make this happen fast, for a regular monthly process for all customer invoices.

    Obviously GhostScript was a massive figure in that success too. But I did not enjoy working with PS, aside from the satisfaction of solving the problem.

    • Our organisation had an internal directory of about 150 people. It was maintained by an admin assistant in a Word document(!). This was 2007 or 2008, but they were still on Office 97.

      I setup a mySQL database and some JavaScript forms and had the nice admin assistant enter the contents of the directory via the intranet/browser. She was grateful to know, if not sceptical at first, that this would be the last time she had to deal with updating the directory.

      Once the db was populated I ran up some VBA code/ma

  • by swell ( 195815 ) <jabberwock@poetic.com> on Sunday December 11, 2022 @02:50AM (#63120896)

    Don has been digging into PostScript since before you were born. He's an interesting guy and he mastered the language perhaps better than anyone. But he is eccentric as you will see at this web site https://www.tinaja.com/pssamp1... [tinaja.com]

    Here's an excerpt from the site:
    "I have long been overly enameled with the PostScript Language from Adobe Systems. While an amazingly flexible and totally general purpose computer language, PostScript excells at world class fonts and typography.

    But little appreciated is PostScript's ability to handle most any technical math or engineering illustrations task, as well as being able to be taught to read or write most any disk file in any language."

    Lancaster can outgeek anyone here, I suspect.

  • Sorry, it had to be said.

  • Does the source code reveal the encryption for all those top-secret Type 1 fonts? (I mislaid my copy of the Black Book.)

Every nonzero finite dimensional inner product space has an orthonormal basis. It makes sense, when you don't think about it.

Working...