Adobe Photoshop Source Code (2013)

(computerhistory.org)

631 points | by PaulHoule 10 days ago

31 comments

  • pmcjones 10 days ago
    In the aughts I worked at Adobe and spent time trying to archive the source code for Photoshop, Illustrator, PostScript, and other apps. Thomas Knoll's original Mac floppy disk backups were available, so I brought in my Mac Plus, with a serial cable to transfer the files to a laptop via Kermit. The first version was 0.54, dated 6 July 1988. The files on the floppies were in various ancient compressed archive formats, but most were readable. I created an archive on a special Perforce server of all the code that I found. Sadly, the earliest Illustrator backups were on a single external disk drive that had gone bad.
    • xd1936 10 days ago
      Thank you for your service. Super cool project. Hopefully they make their way to archive.org or Github someday.
      • pmcjones 10 days ago
        Adobe has the only copy, and they have donated early versions of PostScript (https://computerhistory.org/blog/postscript-a-digital-printi...) and Photoshop; people should ask Adobe to release more. Everything I find in the public domain I post at https://www.softwarepreservation.org/projects .
        • jart 10 days ago
          Wow are you the one that posted the original LISP 1.5 source code? I colorized that and used it to good effect in my blog posts. https://justine.lol/sectorlisp/#listing
        • mistrial9 10 days ago
          isn't the topic the Patents, not the code? The code is mired in Mac toolbox details, no?
          • userbinator 10 days ago
            Patents expire after 20 years at most, I believe. Everything from before 2004 has expired already.
          • reaperman 10 days ago
            Even the parents from 1988-2000 would be well expired now
          • 3abiton 10 days ago
            Can you patent open-source code?
            • simondotau 10 days ago
              Of course you can. If you invented it, and nobody else has patented it, you can patent it. Opening the source doesn’t invalidate your rights as an inventor or copyright holder, though it can add confusion and/or complexity to the enforcement of both the patent and the open source license.
              • andyferris 10 days ago
                Yes, but my understanding is that publically detailing how your invention works _before_ trying to patent it means the invention becomes public knowledge/prior art. That is, so long as you submit a patent application before releasing the open-source code, it should be OK, but there's no much you can do once the cat is out of the bag.
                • simondotau 10 days ago
                  I imagine the rules and best practices would vary between jurisdictions, but basically yeah. But as soon as you file for the patent, you can release source and enjoy the confusion.

                  (Based on 30 seconds of googling, it seems that the USA and Australia gives inventors a 1 year grace period after publishing, but the granted patent might not be valid in other countries.)

                  • p_l 10 days ago
                    USA also used to not consider publications or patents published outside USA as prior art, to the point of granting patents that were rewritten from someone else's patent in another country.

                    Not sure if it got better or worse with WTO patent rules.

                    • Dalewyn 9 days ago
                      Considering the history of NAND flash amounts to Toshiba applying to Japan's patent office and getting laughed out of the room, then Sandisk saw it and applied for and received a patent for NAND flash from the US Patent Office, it's probably still the case.
            • p_l 10 days ago
              Arguably patents as intended should require description of patented device/technique in detail that allows replicating it - effectively open sourcing it.

              The patent then serves as temporary moat on applying that specific technique or producing that specific device to refund the inventor.

              In practice... well, sometimes patents were used to recover details of closed-source software or hardware.

    • mistrial9 10 days ago
      the Illustrator guy was in Palo Alto and approachable .. at the time the feedback was that the interface interactions were not great .. hard to say now, but Freehand became popular quickly, then folded.
      • mannyv 10 days ago
        Freehand still hasn't been beat, even after all these years. Never did like Illustrator, but like everyone learned to use it once Freehand bit the dust.
        • yelling_cat 10 days ago
          I hadn't thought about Freehand in a decade and now I'm angry at Adobe for killing it all over again. It never got in your way and let you fully focus on your work. Illustrator never lets you forget that you're using a tool to create things like Freehand did.
      • pmcjones 10 days ago
        Mike Schuster, who by the way is a superb programmer.
    • MontagFTB 9 days ago
      Thank you for fighting the good fight, Paul. We miss you and Alex around here.
    • Shinchy 9 days ago
      Wow, oddly enough that kind of sounds quite fun.
    • nunez 10 days ago
      That's awesome.
  • butchlugrod 10 days ago
    Great write-up here about what it takes to build the app from this source code: http://basalgangster.macgui.com/RetroMacComputing/The_Long_V...
    • lelandfe 10 days ago
      Blown away as I read more posts on this site. Not many people out there with this sort of knowledge. Thanks for the link.
      • butchlugrod 10 days ago
        I know! I have read every piece on the site, and they really go into some fantastic detail about old Apple stuff. No idea who this person it, and they have not posted in a few years, but would love to know more about their background. Almost certainly a developer inside Apple in the 80s and 90s.
        • araes 9 days ago
          Suspicion based on some of the other articles is just somebody who's really an in-depth Apple user. Listens to folklore.org, notes in a couple articles that they appear to be on the outside and need to buy stuff just like everybody else. Some of the articles mention "awe" at how tiny the old Mac binaries were. May have been Apple tech support.

          In "The Standard File Package" [1] from Saturday, February 27, 2010:

          > It has never been my job to provide technical support to casual (I mean non-professional) Mac users, but I have helped friends and family members. [araes note: Implies may have been professional technical support]

          In "Name it Scrapbook" [2] from Saturday, February 20, 2010:

          > I am not an iPhone developer, and I don't know everything about it, but I write cocoa programs on Macs, and I have read the iPhone developer documentation.

          Seems like somebody who just reads everything about Mac history, culture, and development. Quite plausible the author may actually know "more" than the original developers, because a lot don't care about their own products as much as the user base.

          [1] http://basalgangster.macgui.com/RetroMacComputing/The_Long_V...

          [2] http://basalgangster.macgui.com/RetroMacComputing/The_Long_V...

    • internetter 10 days ago
      Anyone having trouble adding this to their feed reader? The RSS works fine on my end, but Miniflux says

         This website is too slow and the request timed out: Get "http://basalgangster.macgui.com/RetroMacComputing/The_Long_View/rss.xml": dial tcp 209.182.219.107:80: i/o timeout
      • hexagonwin 10 days ago
        seems to work just fine for me. maybe it was a temporary issue?
  • kasajian 10 days ago
    I remember traveling to Adobe in the mid-90s to exchange source-code with them, 'cause PhotoShop was MacApp based, and they had a layer working on Windows. And we traded an in-process SQL engine.

    I recall brining home some of the code, there were definitely parts of PhotoShop that were included, but not a lot. Just some funky color-space calculations that we ignored.

    I'm looking forward to looking at the source to see if there's any remnants of MacApp in the mix. They may have changed everything since the mid 90s. Who knows.

    • irq 10 days ago
      I love this story - code trading is such a cool idea, and one I haven't heard of much before. Anyone else have any code trading stories?
      • exe34 10 days ago
        in academia/research, it's quite normal. often you wish they hadn't given you the code and provided an equation instead.
    • mk_stjames 10 days ago
      They call that out as an exception specifically actually: "All the code is here with the exception of the MacApp applications library that was licensed from Apple"
    • jaredwy 10 days ago
      Worked on photoshop for many years. It’s still there today.
      • MontagFTB 9 days ago
        There you are! Hope you are doing well my friend.
        • jaredwy 9 days ago
          Hah! Not sure who this is. But email? jared.wyles gmail.com
    • mistrial9 10 days ago
      MacApp on Windows ?!! of course.. what a bloatware.. Think Class Library saved the life of lots of devs. Greg Dow might still work for Adobe today. ps- PowerPlant was even better than TCL now thinking on it.. https://en.wikipedia.org/wiki/PowerPlant
  • TIPSIO 10 days ago
    Incredible that the UX is still generally the same. What a vision the original engineers had.

    I am annoyed today though every time I open the app. The only time it has ever felt snappy on desktop was a sweet period when the MacBook Pro M1 first came out and Adobe Photoshop had a Silicon beta out.

    Those days are long gone and we are slow again.

    • ompogUe 10 days ago
      Not sure if you worked with it in the early '90's, but on a Mac w/4MB of RAM, it took ~5-10 minutes to undo a Guassian Blur. The pain was real.

      The way to go back then was the SGI Indigo w/96MB.

      It worked best for me in the late '90's on a 9500, and even then needed an entire GB of RAM.

      • alamortsubite 10 days ago
        Ha! In the early '90's the way to go was Live Picture [1]! Your undo would have been instantaneous!

        Unfortunately, Live Picture only ran on Mac. Photoshop was a bit janky on SGI back then, IIRC, but still the better of the two platforms overall.

        [1] http://lensgarden.com/uncategorized/live-picture-software-th...

        • huxley 10 days ago
          Hahaha that’s Old School.

          Live Picture was one of several photo compositor tools that focused on Photoshop’s pain points. Fauve Matisse was a little earlier than Live Picture and I believe it introduced layers to Mac photo editing. They ended up getting acquired by Macromedia (or perhaps even Macromind) after a rewrite to compete with Live Picture it was renamed Xres and then abandoned.

        • sillywalk 8 days ago
          > Photoshop was a bit janky on SGI

          It was ported over to Irix (and Sun/Solaris/HP-UX and Rhapsody) using a toolkit called Lattitude[1], sort of a reverse-engineered Mac toolbox, that translated Mac API calls to the appropriate Unix/Motif/$Whatever calls, using the native look and feel.

          The earlier version was used to port MS Word/Excel to Unix. Metrowerks purchased it for porting (classic) Mac apps to Rhapsody.

          [1] http://preserve.mactech.com/articles/mactech/Vol.13/13.06/Ju...

          [There's an IEEE article if you have access, which I don't:

          https://ieeexplore.ieee.org/document/186761

        • ompogUe 10 days ago
          Yes, I remember Live Picture! It was slick. I actually spent more time in that and Fractal Design Painter, than Photoshop back then.
        • Daub 10 days ago
          I believe that Livepicture was fast because they loaded the full image as a set of tiles.

          I also believe that Photoshop was 'inspired' to introduce layers in version 3 in response to Livepicture's layers. It was layers which caused Photoshop to explode in popularity.

          Adobe then went on to sue Macromedia for using tabs in their interface. Bummer.

      • Daub 10 days ago
        People forget that Photoshop worked on a Silicon Graphics box. It was indeed the way to go, so long as you could afford it.
      • apercu 10 days ago
        "SGI Indigo". I had one of these. Not for Photoshop but still...
        • DonHopkins 10 days ago
          "Indy: an Indigo without the 'go'". -- Mark Hughes (?)

          http://www.art.net/~hopkins/Don/unix-haters/tirix/embarrassi...

          • yjftsjthsd-h 10 days ago
            > There are too many daemons. In a vanilla 5.1 installation with Toto, there are 37 background processes.

            Comparing the output of `ps aux` on a default install of Debian and OpenBSD still gives me this feeling:)

          • nullhole 10 days ago
            Excellent joke.

            Indy still had the best looking case, though, I think. There's something about that sliced-box appearance that's so unexpected and interesting.

            • boffinAudio 10 days ago
              I have my SGI O2 sitting on top of my Indy, just because the contrast in design ethos inspires me, somehow.
    • aredox 10 days ago
      Is it because the UX is good or because changing it is impossible without the users rebelling en masse?
      • kjellsbells 10 days ago
        I cant speak for all PS users, but it's not that it is a special UX so much that it is embedded in the muscle memory of the user community, and that degree of familiarity contributes mightily to people being able to get work done quickly.

        The closest example I cam think of, which people inside Adobe most certainly know about, is the failed attempts by Quark Xpress to update their product in the late 90s/early 00s, which led to them losing a 95% market share position to Adobe InDesign. You do not mess with the tools that a loud and creative community rely upon to get their jobs done.

        • bonaldi 10 days ago
          is the failed attempts by Quark Xpress to update their product in the late 90s/early 00s

          There were a number of factors here - outsourcing engineering leading to a disastrously buggy 4.0, then failing to move to OS X for years after the market was ready to, hostile and arrogant approach to customers ("where else will they go?") and finally the misbegotten attempt to turn a DTP app into a web design tool. InDesign 1 was fairly clunky, but everyone was desperate to escape.

          It's an Amiga-like shambles of mismanagement that wasted an early lead; I am still nostalgic for both tbh.

          • frankharv 10 days ago
            I don't know if I agree about InDesign being clunky.

            The problem was everybody liked PageMaker7 and nobody wanted something new.

            How about Audacity? The clowns simply bought CoolEdit and renamed it. Very innovative.

        • brazzledazzle 10 days ago
          Adobe actually changed a bunch of shortcuts at least a couple of points between photoshop 7 and creative cloud. I remember how I'd developed muscle memory that took a bit to fully overwrite.
          • tambourine_man 10 days ago
            There are settings to revert them all
            • brazzledazzle 10 days ago
              Yeah but I wanted to maintain "compatibility" with others using the software whether for discussion's sake or so I can hop on their workstation and not have to think about changing anything. Turning those legacy settings on and having that survive restarts could be flaky/buggy. I got the impression keeping that functionality well tested wasn't the highest thing on their development priorities.
              • tambourine_man 10 days ago
                Adobe needs an easier and broader “settings” in the cloud. It should be as easy as login in to have your completely bespoke Photoshop greeting you.
                • pests 10 days ago
                  Slightly different experience, but logged into my friends Google TV the other day and it had all my apps and I was correctly signed into everything, background and screensaver all set up. Very smooth experience.
        • philistine 10 days ago
          The only way Adobe can get out of this conundrum is by announcing a transition to a new interface, finding ways to incentivize schools to teach the new interface, while keeping the old one around for as long as possible to give time for the oldies to slowly retire. We're talking decades.
          • basch 10 days ago
            The user interface is extremely customizable. You can have a default layout and still keep legacy ones around. You wouldn’t need to kill the legacy layout unless you are removing the cuetomizability.
        • nprateem 10 days ago
          Intellij are about to learn this lesson unfortunately.
          • grishka 9 days ago
            Oh yes. As someone who writes a lot of Java, I once had a discussion with someone from JetBrains on Twitter about it. It boiled down to me saying "I'm simply not open to change, I like my IDE UIs the way they are right now, thank you very much" and him repeatedly not even trying to understand my point and replying "could you please try the new design and share your feedback".
        • nineteen999 10 days ago
          It can also work the other way though on rare occasions. The Blender UI revamp had the opposite effect, it helped drew more users to the platform (although so did the addition of Cycles and later EeeVee renderers).
      • biofox 10 days ago
        No point fixing something that isn't broken (someone please tell Microsoft)
        • turnsout 10 days ago
          In Photoshop there are at least three completely different dialog boxes [0] for saving an image as a JPEG, each with totally different UI widgets and functionality.

          They simply refuse to revise anything in the interface—they just keep adding. It's the software equivalent of hoarding.

          [0] Save/Save as, Export As, Save for Web (Legacy)

          • bombcar 10 days ago
            I'm ride-or-die on Save for Web (Legacy), it's the way to go by far.

            Now if they'd just integrate the tinypng plugin that was deprecated in 2023 - https://help.tinify.com/help/deprecation-of-the-photoshop-pl...

            • turnsout 10 days ago
              Same—I just wish they'd either drop the "(Legacy)" and admit that they can never remove it, or add those same features to the Export dialog!
          • grishka 9 days ago
            There's also two implementations of the "new document" dialog. The old one, that works instantly, and the new one, that takes a solid second to render no matter how fast your machine is. There's a checkbox in settings to use the old one.
          • reddalo 9 days ago
            How long has the Save for Web been "Legacy"? I feel like it's been there for a long time.
            • jaredwy 9 days ago
              I was the engineer that added that string. Since adding that string... I joined the photoshop team officially. Spent maybe 5 years there. I have left adobe. I Had a year and a half sabbatical. Now writing this comment. It's been a while.
              • turnsout 9 days ago
                Ha, comments like this are why I love hn!
            • MontagFTB 9 days ago
              The intent was to direct customers to the new “Export As” experience, which was a newer code base and handled some things SFW did not. Enough people couldn’t leave SFW behind though, and it’s been Legacy ever since.

              Anecdotally, SFW is the result of converting Adobe ImageReady into a plugin. When IR was originally created, many of its sources were split off from Photoshop to get it off the ground. So now we have two variants of “the same” sources for many files- one evolving in Photoshop, and the other frozen in time in Save for Web.

        • Rinzler89 10 days ago
          >No point fixing something that isn't broken

          But how do you know a UX isn't broken, when you've only seen one iteration of it you're whole life and have nothing else to compare it to? Kind of like Plato's Cave Allegory.

          You have to try new things, and if you see them fail, then you know which one was the best.

          • beau_g 10 days ago
            Use gimp, add a new layer, paste something into it, and resize it, then you will know
            • frankharv 10 days ago
              How about PhotoShop's Magic Lasso?

              I have not found many tools that work as well and make productivity great.

          • Dylan16807 10 days ago
            "try" doesn't imply "ship to millions of customers"

            And sometimes there's good enough and you should leave it alone. QWERTY isn't optimal but it's not very far from it.

            • Rinzler89 10 days ago
              But if you're not gonna ship it to all your millions of users and receive the outrage as feedback, how will you ever know if it works or not?

              A/B testing to a few users only works in web-app front-ends, not in professional tools where all single end-user releases need to look and act exactly the same.

              Shipping to only a handful of users wasn't a thing in the era of "Gold CD" releases, and even in the era of the internet updates, nobody will want to take part in A/B testing and end up with a different Photoshop UX than what his colleague is using, so you either ship to all or none.

              So it seems Photoshop's UI is more of a cause of inertia and resistance to change, rather than nailing right the first time.

              • marginalia_nu 10 days ago
                A/B testing does very little to improve any UX. It's got merits in performance optimization, where the implementation differs but the contract is static between A and B, but with user interfaces, it generally leads to pessimizations as usage is not proportional to usefulness.

                The rare exception is single-purpose interfaces where increasing one singular interaction is an end in itself, e.g. a marketing page, but that's a pretty unique case that is very far removed from a productivity tool.

              • Dylan16807 10 days ago
                You bring in testers and UI experts, and you have the experts watch the testers.

                Shipping to mass market is a bad way to get feedback.

                • Karunamon 10 days ago
                  Are there such a thing as UI experts anymore? It seems like we only have designers left, and I am none too thrilled about their influence.
            • aredox 10 days ago
              AZERTY is very bad and France is still stuck with it, despite Québec having a variant of QWERTY for decades, ditto for Switzerland having a custom QWERTZ, and BÉPO being heads above.
            • eimrine 10 days ago
              Qwerty is a significant brake in learning English from scratch.
              • Dylan16807 10 days ago
                How so?

                And I'm pretty sure an alphabetical keyboard would do much more harm than good, if that's the implied alternative.

                • pests 10 days ago
                  Every time I'm confronted with an alphabetical keyboard my brain malfunctions. It should be easy but I'll be on R or S looking for the T and spend 5 minutes scanning for it. Usually via remote with some crappy app trying to login or search and its on a big TV huge, usually people watching making the awkwardness even worse since everyone else can obviously see where the T is.

                  /end rant

                • eimrine 9 days ago
                  > How so?

                  I am not native but I feel pleasure from using Dvorak and chatting with no need to look at keyboard. I am trying to spread acknowledgement about Dvorak among young folks and those who agreed to learn feel the same boost. The difference is unimaginable for those who already has some muscle memory for anything related to Qwerty such as Ctrl-C. So the difference is between creating the layout for touchtyping goals and creating the layout for any other ones.

        • navjack27 10 days ago
          Hard to do when the power users for the most part try to block analytics and the insider testers have very fluid workflows and there is no such thing as death by a thousand papercuts to them. They aren't getting the signal because the people that should be telling them the signal are actively denying sending the signal.
          • eimrine 10 days ago
            Аre you saying this about OS which shows ads in Start menu?
      • bufferoverflow 10 days ago
        As someone, who used Photoshop a lot, the UI/UX is good. It would be pretty hard to make it significantly better. And yes, even if you somehow made it better, many users would complain, because they have muscle memory of the UX, and are extremely efficient with it.
      • maxglute 10 days ago
        It would be curious to see UX timeline of what PS influenced, and what influenced it, in mouse age. A lot of desktop derivative products seem to hold on PS-like UI, it's all very mutually reinforcing. I'm not sure what iPad UX is like. I remember autocad products also adding ribbon system and it wasn't end of the world, but also very few ppl that I know end up migrating.

        Part of me feels like it's... either very optimal for masses to learn because very few PSers (outside of photography) I know have professional peripherals (some have hotkey stickers on keycaps), vs lots of other creative fields have specialized decks/hardware to make streamline workflow.

        Like part of me feels like there is a better physical hardware implmentation to manipulate all the curves/histograms other than moving around with mouse, but mouse+keyboard is... good enough.

        • bonaldi 10 days ago
          A lot of PS 1.0's UI (2-col toolbox on the left etc) owes its heritage to MacPaint, which was a launch app for the Mac. Even the iPad shares keyboard shortcuts set by the original Mac, though has considerably broken away in other aspects.
      • BeFlatXIII 10 days ago
        Considering how many complaints about GIMP UI being bad with no more substance than "Just compare it to Photoshop!", I'd bet 65% on option B.
      • bonestamp2 10 days ago
        When Photoshop went subscription I bought the full version of CS6 (or whatever the last non-subscription version was). It was very expensive. Then when that stopped working on Mac, I tried using every reasonable competitor, paid for several. I'm sure some of them are very competent tools, but it was a nightmare trying to learn a new UI. I bit the bullet and started paying the subscription.
    • grishka 10 days ago
      Just downgrade? I still use some version from 2022, the first M1-compatible one that was cracked. Still as snappy as it was 2 years ago.
    • ljm 10 days ago
      The Messy Middle is an incredible book that essentially details how the CEO of BeHance, back in the day, rewrote Adobe's offering for the cloud, and detailed how he'd do it.

      Scott Belsky - now investor himself - writing how he sold both BeHance and Adobe down the road for the rent economy.

      I say The Messy Middle is an incredible book, but it is shelf help for dwindling execs.

      To their generic credit, the open source scene for artistry and imagery is better than it ever was, because everybody has been priced out of the pro tools that actually can't keep up without community support.

    • darknavi 10 days ago
      I still use an old CS6 license and while it's snappy in the app, it still takes its time to boot.
    • vondur 10 days ago
      Back in 1997-98 we had Pentium II machines (450mhz) with fast SCSI drives and 128 MB of ram that were fast Photoshop machines. I also remember it being pretty fast on the G3 Mac's when they first came out.
      • MenhirMike 10 days ago
        > I also remember it being pretty fast on the G3 Mac's when they first came out.

        One of the comments that Steve Jobs made in the Boston 1997 speech was "No one at Apple has reached out to Adobe to ask how to build the ultimate Photoshop machine" - and in the next few years, Photoshop benchmarks were a key Mac vs Intel comparison during his keynotes.

        I don't know if Jobs already had influence on the original beige Power Macintosh G3, but he really seemed to care about Photoshop performance when he arrived.

    • ChiperSoft 10 days ago
      Back when PS6 was the current release I deliberately downgraded to copies of 2 and 3.5 that I found on a Hotline server, because they were extremely fast and did 90% of what I used photoshop for.
  • stockhorn 10 days ago
    An article from 2013 with an adobe photoshop version 1.x from 1990....
    • boomskats 10 days ago
      I'm pretty sure half of that code is still running in WASM on photoshop.adobe.com
      • msk-lywenn 10 days ago
        You mean current photoshop includes pascal code?
        • callalex 10 days ago
          Tools used for art often get irrationally preserved for the sake of it. For example I have had a conversation with more than one person (well 2 but still) who believed unironically that the wiring inside vintage guitars and amps must be coated with asbestos insulation or it would change the tone/texture of the sound.
          • PaulHoule 10 days ago
            Don’t crush that in a hydraulic press.
        • wongarsu 10 days ago
          What's wrong with Pascal, apart from the ability to hire developers for it?
          • PaulHoule 10 days ago
            I hated the dialects of Pascal we were using at school in the early 1980s because they didn’t really support systems programming but after I got a 286 machine I got into Turbo Pascal which did have the extensions I need and that I preferred greatly to C but I switched to C in college because I could write C programs and run them on my PC or on Sun workstations with a 32 bit address space.
          • miohtama 10 days ago
            Turbo Pascal and later Delphi were really nice, but I guess in the same vertical C won due to its UNIX legacy.

            You can pretty much transform 1:1 between C and Pascal code.

          • p0w3n3d 10 days ago
            Writing in Pascal itself is a Job Preservation Pattern
          • msk-lywenn 9 days ago
            Nothing wrong, just surprised
        • madeofpalk 10 days ago
          I would not be surprised if it does. Photoshop is big and has a lot of legacy.
          • dlachausse 10 days ago
            I have a feeling that much of it was translated to C or C++ at some point for portability and maintainability reasons. There are several automated Pascal to C translators out there, such as the following...

            http://users.fred.net/tds/lab/p2c/

            Also the languages are similar enough that a programmer with knowledge of both could translate it manually without too much difficulty.

            • dunham 10 days ago
              Typically TeX is translated from Pascal to C too, via web2c.

              But there also is a Pascal to WASM compiler out there, which was written specifically for TeX:

              https://github.com/kisonecat/web2js

              TeX itself is only about 500kb of wasm, uncompressed, but the memory images with LaTeX loaded are quite a bit larger.

        • MontagFTB 9 days ago
          It was transpiled to C and then C++ many years ago.
  • Exuma 10 days ago
    I looked at the source code but I wish I could understand what makes it beautifully elegant. I was pondering this question before as I was learning rust, and how tricky it was (decision overload) to make just a snake game (regarding code structure). I then was thinking how one would build a UI, functions which operate on a "space", and I thought of photoshop specifically, or 3d studio max. So finding this repo was really cool, except I simply just don't understand it.

    If anyone knows of good resource I could learn code structure LMK! I find it interesting just from a learning perspective, as I always try to increase my design pattern chops

    • logdahl 10 days ago
      I can't say much about this code or your personal background, but my honest opinion is to take a step back and examine the principles.

      I used to be very bothered by abstractions, design patterns and structure. But I realized that when I worked with 'true' imperative code (forget classes for a while), keeping all code in the same file, the code started to structure itself. I am not saying this is the only way, but I feel like OOP can be a hinderance, as you get bogged down by alternatives.

    • mannyv 10 days ago
      It uses MacApp, which was one of the first frameworks that tried to handle all the boilerplate for you.

      The basic structure of MacApp apps is a document, and the MacApp framework dispatches events to your handlers. It's been forever since I worked on a MacApp app, but I think that's the basic structure.

      It sounds like the MacApp stuff isn't included, but it's probably out there somewhere.

      I know at some point Adobe ported MacApp to Windows so they didn't have to rewrite everything. I expect at some point they replaced MacApp with their own abstraction layer.

  • smburdick 10 days ago
    John Knoll was the FX lead for the Star Wars prequels, and went on to direct Rogue One.

    The behind the scenes documentaries for the prequels have aged well: https://youtu.be/da8s9m4zEpo?si=5y5gHUMxztwVzMny

  • thih9 10 days ago
    > they could not have imagined that they would be adding a word to the dictionary.

    Adobe tries to fight that, as this leads to genericization[1]. Their trademark guidelines[2] state a number of examples, like:

    "Always capitalize and use trademarks in their correct form. Correct: The image was enhanced with Adobe® Photoshop® Elements software. Incorrect: The image was photoshopped."

    [1]: https://en.wikipedia.org/wiki/Generic_trademark

    [2]: https://www.adobe.com/legal/permissions/trademarks.html

    • deusum 10 days ago
      I believe it's now well into the realm of genericization.[1] Xerox lost a major lawsuit relatedly, iirc.

      [1] e.g, https://www.consumerreports.org/consumerist/15-product-trade...

    • andai 10 days ago
      I understand the pressure they're under, but nobody's going to say that...
      • afavour 10 days ago
        I’m sure they know that. The text is there so that they can stand up in court and point to it, not because they think people will actually follow the instructions.
      • electroly 10 days ago
        It's just like "LEGO® bricks." They're desperately trying to avoid genericization but it's way too late and nobody is going to say that informally. All companies want you to use their trademarks as capitalized adjectives but nobody can make you, personally, do that. But it does help with their official corporate partners who will follow the guidance if they want to stay in Adobe/LEGO's good graces.
      • chias 10 days ago
        "Oh you're not actually using Linux, that's GNU/Linux"
    • cynicalsecurity 10 days ago
      I photoshopped an image with Gimp.
      • hallarempt 10 days ago
        I, as the Krita maintainer, hereby give everyone the right to verb the trademarked name "krita". Whether it's I "krittered that concept" or "I kritaed that sketch" -- it's fine!

        The only thing you cannot do with the trademarked name krita is publish rip-off, spyware-laden versions in places like eBay.

        • tagawa 10 days ago
          Side note: Thank you for your work! My non-technical partner was able to create and print postcards that had to be in CMYK format, thanks to Krita. You made her very happy :-)
        • Moru 10 days ago
          Except Krita is a word in Swedish so good luck trademarking that one here :-)
      • ThrowawayTestr 10 days ago
        I gimped an image with Adobe Photoshop®
      • downrightmike 10 days ago
        such a terrible name
        • dclowd9901 10 days ago
          Nobody’s ever accused open source of being good at naming stuff
        • aragonite 10 days ago
          Do the users find the name terrible though? I'm pretty sure on at least 3 different occasions I heard someone excitely yelling "time to bring out the GIMP!" or some such when they needed to do some quick photo editing.

          Case in point: https://www.youtube.com/watch?v=T4CjOB0y9nI&t=2518s

          • bigstrat2003 10 days ago
            Yeah, GIMP is an awesome name. It's fun and playful, one of the better named programs out there imo.
      • Zambyte 10 days ago
        While using GIMP
      • resource_waste 10 days ago
        No you didn't. No one actually uses Gimp. We just say 'Gimp is a replacement for photoshop' and pretend that is actually an acceptable solution for people using Linux.

        (Btw I switched to Krita and I'm never going back to Gimp. Even the things Gimp should be good at, Krita is better.)

        • rvense 10 days ago
          Personally I crop screenshots with GIMP twice a year and it's absolutely fine for that. Not sure what your problem is.
          • NovemberWhiskey 10 days ago
            If your use-case is "crop screenshots", your competition isn't Photoshop, it's MS Paint.
            • bmacho 10 days ago
              There aren't many image editors that are able to crop pictures in a usable way. MS Paint for example can't do that. I wonder if the "move this rectangle" method is under patents.
              • taskforcegemini 9 days ago
                Maybe you mean something different by "cropping", but drawing a rectangle followed by ctrl+c then ctrl+n is fairly quick / good enough
            • yjftsjthsd-h 10 days ago
              If there was a linux port of paint, I'd consider it. Until then, GIMP is fine.
              • bigstrat2003 10 days ago
                Check out Pinta. It does basic image editing pretty well, imo.
              • nunez 10 days ago
                jspaint.app has you covered
        • wizzwizz4 10 days ago
          GIMP is the screenshot cropping tool, or for when you want to write a Lisp program to do a single, technically-precise thing to an image. Krita for everything else!

          I'm still waiting for the Krita equivalent of Inkscape.

          • Zambyte 10 days ago
            I use Lisp extensions all the time for things people claim GIMP can't do, like draw certain shapes.

            GIMP is to Emacs as Photoshop is to Intellij. Both GIMP and Emacs are fairly lean out of the box; it is meant to be molded into what the user wants. The problem is the target audience of Emacs is much more keen on programmatically modifying their systems than the target audience of GIMP.

          • ltlnx 10 days ago
            What issues do you have with Inkscape? I've used it for both (semi-)professional and personal work, and the UX is quite pleasant.
            • HKH2 9 days ago
              Inkscape is buggy, especially when clipping. Sometimes layers or filters aren't shown properly. Editing filters is a bit arcane.

              When I first started using Inkscape, I disliked all the dialog boxes, but I'm used to them now.

            • wizzwizz4 9 days ago
              It's a semi-decent SVG editor (if you ignore all the XML Editor crashes), but you can't draw in it.
          • harrison_clarke 10 days ago
            sounds like exactly what ronin is for

            tutorial/example video: https://www.youtube.com/watch?v=SgAWGh1s9zg

        • HKH2 9 days ago
          Krita can't print.
        • wasteduniverse 10 days ago
          [dead]
    • ian-g 10 days ago
      Much more effectively, Velcro's been trying the same thing: https://www.youtube.com/watch?v=rRi8LptvFZY

      It still won't work in the long run, but I'm very aware now that Velcro is a trademarked name.

    • tjoff 10 days ago
      Is genericization really a problem though?
      • caseyohara 10 days ago
        Yes, companies can lose the exclusive right to their mark if the brand is sufficiently genericized. Just ask Frisbee, (Kawasaki) Jet Ski, ChapStick, Velcro, Lego, Band-Aid, Jacuzzi, the list goes on.

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

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

        • quesera 10 days ago
          Most annoyingly, IMO: Sriracha.

          The Huy Fong guy decided not to trademark the term, and consequently in the last few years, everyone is selling a Sriracha sauce, all of which are grossly inferior to the original.

          I've tried many of them, being lately in a Huy Fong desert, and esp during their period of production issues.

          There are a couple of also-rans, rating maybe 7 stars out of 10. They do not taste like real Sriracha, but they're OK. If they didn't call themselves Sriracha, I might appreciate them more.

          • jimbobthrowawy 10 days ago
            I don't think that's any more annoying than "ketchup" or "barbecue" sauce not being trademarked. I hear the sauce made by their original pepper suppliers is pretty good though.
            • quesera 10 days ago
              I've tried it, and I do not like it. The flavor is boring.

              Checking up on Huy Fong today, I discovered that they have announced another production disruption this month, expected to last until Labor Day. Their pepper supply is too green.

              I appreciate their dedication to product! Yes it's a serious supply chain management failure, but I can accept that their requirements are difficult for vendors to meet. A substandard Sriracha might be better than no Sriracha, but there are plenty of substandard vendors already. I'll wait for Huy Fong to get the good stuff sorted out.

              I hope they resolve this issue soon and permanently. Maybe they and their old pepper grower can make amends, for the good of humanity.

        • sgerenser 10 days ago
      • edmara 10 days ago
        Of course. A trademark exists to mutually protect consumers and businesses from deceptive advertising. When a term referring to a specific product becomes a term for a product category etc, trademark protections then becomes harmful to consumers, but they still benefit the business. If you're building a brand generally you want to be as close to the legal limit as possible without exceeding it
        • anticensor 7 days ago
          There are jurisdictions where genericide is explicitly outlawed.
        • schmidt_fifty 10 days ago
          [dead]
    • somat 10 days ago
      ehh... I am not sure,

      A photo shop was a thing long before adobe made some software that could replace an entire photo shop and called it... Photoshop. Verb your nouns and that thing you do in a photo shop becomes "to photoshop"

      I think the insistence on using the "Adobe® Photoshop®" is more that the term is already sort of generic and they are on shaky ground from the start. Sort of like windows, or dos, Microsoft goes hard always calling it "Microsoft Windows®" or "MS DOS®" because just windows, or disk operating system are already very generic terms.

      https://youtube.com/v/BR6F0EdyulA?t=404 (dave plummer)

      Not that this will stop them from trying to sue you if you release products using those terms, Gotta give the lawyers something to do after all. Otherwise they would just be sitting around wasting money.

      This is in contrast to Xerox a term invented specifically for a new invention and the company that invented it.

      • deaddodo 10 days ago
        It doesn't necessarily matter if you follow their guidelines or not, this is all legal facade so that they can retain their trademark. In the majority of instances, they simply have to show they made efforts to retain their unique trademark. They don't care that you say "I photoshopped X" they just care that GIMP isn't marketed as "GIMP: Open Source Photoshop" (or similar instances).
    • maurosilber 10 days ago
      "Always capitalize and use trademarks in their correct form.

      Incorrect: The image was photoshopped.

      Correct: The image was enhanced with GIMP software."

  • ChrisMarshallNY 10 days ago
    I remember seeing Photoshop, when it was pre-Adobe, in a hospital, in Ann Arbor.

    I thought it was amazing.

    One note: I'm almost certain that the version of MacApp (the Apple Pascal app framework) was still in beta, at the time.

    I used some of Tom Knoll's code (a B-spline algorithm), as a base for a curve editor. He had done some work as a contractor for the company I worked at.

    • astrange 10 days ago
      What was it doing in a hospital?
      • ChrisMarshallNY 10 days ago
        One of the tech people in the hospital was friends with Tom Knoll, and had it running on a Mac II (I think). I was taking a class there, and the teacher took us on a field trip, to see it.

        This was 1988 or ‘89.

  • dlachausse 10 days ago
    Kudos to companies that are releasing the source code to antique versions of their software. I hope more companies do so in the future.

    Unfortunately I fear that much of this source code has been lost to time and multiple serial acquisitions over the years. Also, wide spread use of version control is a fairly recent phenomenon, so much of this source code if it still exists at all is on random tape backups and floppy disks or printouts in binders.

    • fermigier 10 days ago
      https://www.softwareheritage.org/

      "We collect and preserve software in source code form, because software embodies our technical and scientific knowledge and humanity cannot afford the risk of losing it.

      Software is a precious part of our cultural heritage. We curate and make accessible all the software we collect, because only by sharing it we can guarantee its preservation in the very long term."

      (Founded by a friend, Roberto Di Cosmo).

    • derefr 10 days ago
      I feel like, if some organization like the Internet Archive were to offer a "software source-code time-delayed-publication escrow service" (with real boilerplate legal contracts punishing early leaks), a lot of companies would take them up on it.

      I imagine such a service could be pretty automated/low-touch. One way it could work:

      1. you mirror your git repos to a private server the software-conservation org controls.

      2. The software-conservation org then sets up matching public repos, initially empty.

      3. Every hour, an agent runs, that scans all the private repos for commits with commit timestamps older than ten years (or whatever each company has signed on for as a release period); and syncs just those commits, into that repo's matching public repo.

      4. Refs are then also synced, but rewritten, as if `git filter-branch` had been run to remove all commits less than ten years old. Any refs that are empty after filtering are dropped.

      • schlauerfox 10 days ago
        why is source code submission to the LOC not necessary like a book to register copyright? Seems reasonable they hold it in escrow for 30 years or whatever reasonable term copyright should be.
  • dang 10 days ago
    Related:

    Adobe Photoshop 1.0.1 Source Code (2013) - https://news.ycombinator.com/item?id=17132058 - May 2018 (200 comments)

    Photoshop 1.0 Source Code - https://news.ycombinator.com/item?id=5215737 - Feb 2013 (78 comments)

  • sys_64738 10 days ago
    Early Photoshop was junk compared to Deluxe Paint on the Amiga. History only remembers the winners so it’s unfortunate DPaint gets lost the midst time.
    • aceazzameen 10 days ago
      DPaint was incredible. But Photoshop was still pretty good on its own too. It just happened to advance at a greater rate than DPaint did.
  • NewsaHackO 10 days ago
    Which do you think has more features, this or current GIMP?
    • FdbkHb 9 days ago
      GIMP.

      But it doesn't take many later versions of Photoshop to start becoming more productive than using GIMP because of functionality it has that GIMP does not:

      Adjustment layers were introduced in 4.0 (1996, GIMP didn't even exist yet)

      Layer styles were introduced in 6.0 (2000)

      Smart Filters were introduced in CS3 (2007)

      They're all invaluable tools that provide a non-destructive workflow where you can go and edit a change you made without having to undo everything you did after that change and redoing things again.

      If I had to use an ancient version of a program and have nothing but that program until the end of times, I would pick Photoshop CS3.

      This entire class of functionality still does not exist in GIMP.

      A lot of modern tools can be added to GIMP through the G'MIC plugins (like the healing tool), but the core editing loop functionality, what is in my opinion the most important thing, is extremely primitive and outdated. All of the competition provides non destructive editing. Including other open source software like Krita (which focuses more on painting tools rather than photo editing, leaving a hole in the open source ecosystem).

    • resource_waste 10 days ago
      What has accomplished more work? Photoshop prior to 2013, or Gimp all time?

      Lol we all know.

      Why is Gimp the knee jerk reaction when its rarely used in the real world? Did we learn it in the 2000s and just keep repeating it? (I say this as a Krita fan)

      • MayeulC 10 days ago
        The source code in the linked article is for Photoshop v1.0.1, published in 1990.

        Though I don't think Gimp is as rarely used in the real world as you seem to think. We all live in different bubbles, but I know more people that use GIMP than Photoshop.

      • Zambyte 10 days ago
        Why are you comparing it to Photoshop in 2013? The article is about Photoshop in 1990.
    • HKH2 9 days ago
      Gimp has got a lot better recently. The smart transform tool is excellent.

      Still can't select more than one layer though.

    • Zambyte 10 days ago
      GIMP has a plugin system and this does not AFAIK, so you're comparing unbounded features vs bounded features.
  • nunez 10 days ago
    I took an image processing class during my Comp Eng undergrad. We learned about and implemented (in C, or maybe Java; I think it was C) some of the bitmap processing algorithms that Photoshop incorporated. Some of that math is no joke, and making it tight in the late 80s must have been harder still.
  • Rufus_Tuesday 10 days ago
    Anybody remember BarneyScan XP?
  • dukeofdoom 10 days ago
    I was looking for a freeish alternative for mac, but so far only found Photopea which is online but has an almost identical interface. Works pretty good basic things, but kind of bad at removing a background. So still searching ...
  • ilrwbwrkhv 10 days ago
    "We developed it originally for our own personal use…it was a lot a fun to do"

    I honestly do not think anything cool has ever been built due to capitalism. Great ideas to great products are just musings.

  • mrKola 10 days ago
    I would love to see the code of Fireworks. Adobe bought macromedia just to kill the apps.

    If I could bring one app back to life, it would be Fireworks. I was soooo good as it, no other software compares.

    • kibibu 10 days ago
      I don't think that's entirely why. They kept Flash around for a long time
  • shivanshu120 10 days ago
    Great article written on some of the best code out there in the market.
    • dylan604 10 days ago
      best code? Have you ever read people's thoughts on the PSD format? I know the two are not the same, but it does make you wonder how the PSD issues do not present in the app's code as well.
      • PaulHoule 10 days ago
        If I was going to complain about Photoshop it is that it does most operations in the chosen color space (say sRGB) instead of linear light. This is certainly wrong for operations that are physically motivated like blurs even if people sometimes like the result.
      • anemoknee 10 days ago
        I haven't myself, but I'm interested to see what folks are thinking. Any resources you can share?
  • ge96 10 days ago
    wonder if anybody has it up on github
    • peterjmag 10 days ago
      Somebody pushed it up here: https://github.com/amix/photoshop

      But that might be violating the Computer History Museum's license: https://github.com/amix/photoshop/blob/2baca147594d01cf9d17d...

      • SushiHippie 10 days ago
        > But that might be violating the Computer History Museum's license:

        Yep, TFA includes this sentence:

        > To download the code you must agree to the terms of the license, which permits only non-commercial use and does not give you the right to license it to third parties by posting copies elsewhere on the web.

      • ge96 10 days ago
        12 yrs old wow. I'm surprised everything is in the root folder... no subfolder/groupings, probably uploader choice not actually how it was written?
    • HumblyTossed 10 days ago
      Does the zip file not work?
      • ge96 10 days ago
        I just didn't want to download it, just view it, like a PDF that opens in the web vs. auto downloads
  • mdaniel 10 days ago
    (2013)
    • Eduard 10 days ago
      I find the addition of "(2013)" to the title misleading.

      "Adobe Photoshop Source Code (2013)"

      I thought it is about Photoshop source code from around 2013.

  • mentos 10 days ago
    I wonder what the biggest semantic similarities are between the source code of the first 1990s Photoshop and today’s.
    • jaredwy 9 days ago
      There are a lot more similarities between todays code base and this code base than you might ever think :)
  • divyenduz 10 days ago
    Is there a youtube channel or something that does deep dives into antique source code like this or windows XP?
  • supportengineer 10 days ago
    I prefer Photon Paint or DeluxePaint
  • wezdog1 10 days ago
    That pronunciation of Photoshop bugs me. Not everyone has an American accent.
  • kls0e 10 days ago
    excellent read, how tangible. love the praise of the code structure. impressed on how consistent photoshop's UI is, up to contemporary versions.
  • Nuella19 10 days ago
    [dead]
  • hi_there_ 9 days ago
    [flagged]
  • hi_there_ 9 days ago
    [flagged]