Adobe Photoshop Source Code (2013)

631 points by PaulHoule on 2024-05-15 | 219 comments

Automated Summary

The article discusses the early history and development of Adobe Photoshop. The software was originally created in the late 1980s by Thomas and John Knoll as a tool for editing digital images. After realizing its potential as a commercial product, they named it Photoshop and secured a license with Adobe Systems for distribution. The first version of Photoshop was released in 1990 and was primarily written in Pascal for the Apple Macintosh. The Computer History Museum has made the source code for Photoshop 1.0.1 available for non-commercial use, providing insight into the early design and architecture of this influential software.

Archive links


pmcjones on 2024-05-15

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 on 2024-05-15

Thank you for your service. Super cool project. Hopefully they make their way to or Github someday.

pmcjones on 2024-05-15

Adobe has the only copy, and they have donated early versions of PostScript ( and Photoshop; people should ask Adobe to release more. Everything I find in the public domain I post at .

jart on 2024-05-15

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.

pmcjones on 2024-05-15

I beat the bushes for the source code, documenting my finds ( and posting them (, but the early work was done by Jack Harper, Pascal Bourguignon, Rich Cornwell and Bob Abeles, Andru Luvisi, Angelo Papenhoff, Al Kossow, and others.

mistrial9 on 2024-05-15

isn't the topic the Patents, not the code? The code is mired in Mac toolbox details, no?

userbinator on 2024-05-16

Patents expire after 20 years at most, I believe. Everything from before 2004 has expired already.

reaperman on 2024-05-15

Even the parents from 1988-2000 would be well expired now

irrational on 2024-05-15

Poor moms and dads.

3abiton on 2024-05-15

Can you patent open-source code?

simondotau on 2024-05-16

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 on 2024-05-16

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 on 2024-05-16

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 on 2024-05-16

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 on 2024-05-16

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 on 2024-05-16

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 on 2024-05-15

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 on 2024-05-15

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 on 2024-05-16

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.

p_l on 2024-05-16

Is there some good summary somewhere? I remember having, ahem, access to both as a teen but Illustrator had more brand effect behind it.

yelling_cat on 2024-05-17

This mid-'90s time capsule and the decade-plus of comments below it summarize how a lot of Freehand users felt about the program:

pmcjones on 2024-05-15

Mike Schuster, who by the way is a superb programmer.

MontagFTB on 2024-05-16

Thank you for fighting the good fight, Paul. We miss you and Alex around here.

Shinchy on 2024-05-16

Wow, oddly enough that kind of sounds quite fun.

nunez on 2024-05-16

That's awesome.

butchlugrod on 2024-05-15

Great write-up here about what it takes to build the app from this source code:

lelandfe on 2024-05-15

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 on 2024-05-15

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 on 2024-05-16

Suspicion based on some of the other articles is just somebody who's really an in-depth Apple user. Listens to, 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.



internetter on 2024-05-15

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 "": dial tcp i/o timeout

hexagonwin on 2024-05-15

seems to work just fine for me. maybe it was a temporary issue?

kasajian on 2024-05-15

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 on 2024-05-15

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 on 2024-05-15

in academia/research, it's quite normal. often you wish they hadn't given you the code and provided an equation instead.

mk_stjames on 2024-05-15

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 on 2024-05-16

Worked on photoshop for many years. It’s still there today.

MontagFTB on 2024-05-16

There you are! Hope you are doing well my friend.

jaredwy on 2024-05-16

Hah! Not sure who this is. But email? jared.wyles

mistrial9 on 2024-05-15

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..

TIPSIO on 2024-05-15

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 on 2024-05-15

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 on 2024-05-15

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.


huxley on 2024-05-15

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 on 2024-05-17

> 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.


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

ompogUe on 2024-05-15

Yes, I remember Live Picture! It was slick. I actually spent more time in that and Fractal Design Painter, than Photoshop back then.

Daub on 2024-05-16

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 on 2024-05-16

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 on 2024-05-15

"SGI Indigo". I had one of these. Not for Photoshop but still...

DonHopkins on 2024-05-15

"Indy: an Indigo without the 'go'". -- Mark Hughes (?)

yjftsjthsd-h on 2024-05-15

> 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 on 2024-05-15

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 on 2024-05-16

I have my SGI O2 sitting on top of my Indy, just because the contrast in design ethos inspires me, somehow.

aredox on 2024-05-15

Is it because the UX is good or because changing it is impossible without the users rebelling en masse?

kjellsbells on 2024-05-15

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 on 2024-05-15

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 on 2024-05-15

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.

frankharv on 2024-05-15

Whoops I meant Adobe Audition=CoolEditPro

invalidlogin on 2024-05-15


brazzledazzle on 2024-05-15

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 on 2024-05-15

There are settings to revert them all

brazzledazzle on 2024-05-15

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 on 2024-05-15

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 on 2024-05-16

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 on 2024-05-15

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 on 2024-05-15

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 on 2024-05-15

Intellij are about to learn this lesson unfortunately.

grishka on 2024-05-16

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 on 2024-05-16

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 on 2024-05-15

No point fixing something that isn't broken (someone please tell Microsoft)

turnsout on 2024-05-15

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 on 2024-05-15

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 -

turnsout on 2024-05-15

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 on 2024-05-16

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 on 2024-05-16

How long has the Save for Web been "Legacy"? I feel like it's been there for a long time.

jaredwy on 2024-05-16

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 on 2024-05-16

Ha, comments like this are why I love hn!

MontagFTB on 2024-05-16

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 on 2024-05-15

>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 on 2024-05-15

Use gimp, add a new layer, paste something into it, and resize it, then you will know

frankharv on 2024-05-15

How about PhotoShop's Magic Lasso?

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

Dylan16807 on 2024-05-15

"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 on 2024-05-15

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 on 2024-05-15

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 on 2024-05-15

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 on 2024-05-15

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 on 2024-05-15

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 on 2024-05-15

Qwerty is a significant brake in learning English from scratch.

Dylan16807 on 2024-05-15

How so?

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

pests on 2024-05-16

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 on 2024-05-16

> 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 on 2024-05-15

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 on 2024-05-15

Аre you saying this about OS which shows ads in Start menu?

bufferoverflow on 2024-05-15

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 on 2024-05-15

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 on 2024-05-15

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 on 2024-05-15

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 on 2024-05-15

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 on 2024-05-15

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 on 2024-05-15

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 on 2024-05-15

I still use an old CS6 license and while it's snappy in the app, it still takes its time to boot.

vondur on 2024-05-15

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 on 2024-05-15

> 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 on 2024-05-16

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 on 2024-05-15

An article from 2013 with an adobe photoshop version 1.x from 1990....

boomskats on 2024-05-15

I'm pretty sure half of that code is still running in WASM on

msk-lywenn on 2024-05-15

You mean current photoshop includes pascal code?

callalex on 2024-05-15

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 on 2024-05-15

Don’t crush that in a hydraulic press.

wongarsu on 2024-05-15

What's wrong with Pascal, apart from the ability to hire developers for it?

PaulHoule on 2024-05-15

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 on 2024-05-15

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 on 2024-05-15

Writing in Pascal itself is a Job Preservation Pattern

msk-lywenn on 2024-05-16

Nothing wrong, just surprised

madeofpalk on 2024-05-15

I would not be surprised if it does. Photoshop is big and has a lot of legacy.

dlachausse on 2024-05-15

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...

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

dunham on 2024-05-15

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:

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

MontagFTB on 2024-05-16

It was transpiled to C and then C++ many years ago.

Exuma on 2024-05-15

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 on 2024-05-15

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 on 2024-05-15

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.

kalleboo on 2024-05-16

> it's probably out there somewhere

Exuma on 2024-05-16

Ahh interesting... so that would explain the function definitions that were missing for certain functions that were called!

smburdick on 2024-05-15

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:

hondo77 on 2024-05-15

VFX supervisor, exec producer, and story by, but not director of Rogue One:

dylan604 on 2024-05-15

There's a multi-part series "Light & Magic" on ILM available on Disney+ that I really enjoyed.

acidburnNSA on 2024-05-16

I met his dad, who was a professor emeritus at University of Michigan's nuclear engineering department. He wrote the classic textbook on radiation detection.

thih9 on 2024-05-15

> 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."



deusum on 2024-05-15

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

[1] e.g,

andai on 2024-05-15

I understand the pressure they're under, but nobody's going to say that...

afavour on 2024-05-15

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 on 2024-05-15

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 on 2024-05-15

"Oh you're not actually using Linux, that's GNU/Linux"

DaiPlusPlus on 2024-05-15

TIL, "Linux", without the "GNU/" prefix is a registered trademark of Linus Torvalds.

So (in the US, at least), it's "Linux(TM)" and not "GNU/Linux" - I'm going to love using this the next time anyone goes uhmackshully to me.

medmunds on 2024-05-15

Uhmackshully, since it's registered, it's "Linux®". The ™ is for unregistered trademarks.

DaiPlusPlus on 2024-05-15

Hoisted by my own petard!

cynicalsecurity on 2024-05-15

I photoshopped an image with Gimp.

hallarempt on 2024-05-15

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 on 2024-05-16

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 on 2024-05-16

Except Krita is a word in Swedish so good luck trademarking that one here :-)

ThrowawayTestr on 2024-05-15

I gimped an image with Adobe Photoshop®

aceazzameen on 2024-05-16

That sounds accurate.

downrightmike on 2024-05-15

such a terrible name

dclowd9901 on 2024-05-15

Nobody’s ever accused open source of being good at naming stuff

aragonite on 2024-05-15

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:

bigstrat2003 on 2024-05-15

Yeah, GIMP is an awesome name. It's fun and playful, one of the better named programs out there imo.

Zambyte on 2024-05-15

While using GIMP

resource_waste on 2024-05-15

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 on 2024-05-15

Personally I crop screenshots with GIMP twice a year and it's absolutely fine for that. Not sure what your problem is.

NovemberWhiskey on 2024-05-15

If your use-case is "crop screenshots", your competition isn't Photoshop, it's MS Paint.

bmacho on 2024-05-15

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 on 2024-05-16

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 on 2024-05-15

If there was a linux port of paint, I'd consider it. Until then, GIMP is fine.

bigstrat2003 on 2024-05-15

Check out Pinta. It does basic image editing pretty well, imo.

nunez on 2024-05-16 has you covered

wizzwizz4 on 2024-05-15

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 on 2024-05-15

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 on 2024-05-15

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 on 2024-05-16

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 on 2024-05-16

It's a semi-decent SVG editor (if you ignore all the XML Editor crashes), but you can't draw in it.

harrison_clarke on 2024-05-15

sounds like exactly what ronin is for

tutorial/example video:

HKH2 on 2024-05-16

Krita can't print.

wasteduniverse on 2024-05-15


ian-g on 2024-05-15

Much more effectively, Velcro's been trying the same thing:

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

tjoff on 2024-05-15

Is genericization really a problem though?

caseyohara on 2024-05-15

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.

quesera on 2024-05-15

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 on 2024-05-15

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 on 2024-05-16

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 on 2024-05-15
edmara on 2024-05-15

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 on 2024-05-18

There are jurisdictions where genericide is explicitly outlawed.

schmidt_fifty on 2024-05-15


somat on 2024-05-15

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. (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 on 2024-05-15

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 on 2024-05-15

"Always capitalize and use trademarks in their correct form.

Incorrect: The image was photoshopped.

Correct: The image was enhanced with GIMP software."

ChrisMarshallNY on 2024-05-15

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 on 2024-05-16

What was it doing in a hospital?

ChrisMarshallNY on 2024-05-16

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 on 2024-05-15

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 on 2024-05-15

"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 on 2024-05-15

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 on 2024-05-16

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 on 2024-05-15


Adobe Photoshop 1.0.1 Source Code (2013) - - May 2018 (200 comments)

Photoshop 1.0 Source Code - - Feb 2013 (78 comments)

sys_64738 on 2024-05-16

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 on 2024-05-16

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 on 2024-05-15

Which do you think has more features, this or current GIMP?

FdbkHb on 2024-05-16


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 on 2024-05-15

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 on 2024-05-15

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 on 2024-05-15

Why are you comparing it to Photoshop in 2013? The article is about Photoshop in 1990.

HKH2 on 2024-05-16

Gimp has got a lot better recently. The smart transform tool is excellent.

Still can't select more than one layer though.

Zambyte on 2024-05-15

GIMP has a plugin system and this does not AFAIK, so you're comparing unbounded features vs bounded features.

nunez on 2024-05-16

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 on 2024-05-15

Anybody remember BarneyScan XP?

Rufus_Tuesday on 2024-05-16
dukeofdoom on 2024-05-15

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 on 2024-05-15

"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.

shivanshu120 on 2024-05-15

Great article written on some of the best code out there in the market.

dylan604 on 2024-05-15

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 on 2024-05-15

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 on 2024-05-15

I haven't myself, but I'm interested to see what folks are thinking. Any resources you can share?

dylan604 on 2024-05-15
dewey on 2024-05-18

That's some random rambling from a guy on the internet, not a proper explanation or a deep dive with what's objectively wrong with it.

vsuperpower2020 on 2024-05-15

One of these links is locked behind an account and the other only redirects to a dead repository. Thanks, I guess.

dylan604 on 2024-05-15

I don't have a reddit account, and I was able to read it after agreeing that I was over 18. After that, it displayed the diatribe just fine for me. <shrugs>

However, feel free to google it yourself

mrKola on 2024-05-16

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 on 2024-05-16

I don't think that's entirely why. They kept Flash around for a long time

ge96 on 2024-05-15

wonder if anybody has it up on github

peterjmag on 2024-05-15

Somebody pushed it up here:

But that might be violating the Computer History Museum's license:

SushiHippie on 2024-05-15

> 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 on 2024-05-16

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 on 2024-05-15

Does the zip file not work?

ge96 on 2024-05-16

I just didn't want to download it, just view it, like a PDF that opens in the web vs. auto downloads

mdaniel on 2024-05-15


Eduard on 2024-05-15

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 on 2024-05-15

I wonder what the biggest semantic similarities are between the source code of the first 1990s Photoshop and today’s.

jaredwy on 2024-05-16

There are a lot more similarities between todays code base and this code base than you might ever think :)

divyenduz on 2024-05-15

Is there a youtube channel or something that does deep dives into antique source code like this or windows XP?

supportengineer on 2024-05-15

I prefer Photon Paint or DeluxePaint

wezdog1 on 2024-05-15

That pronunciation of Photoshop bugs me. Not everyone has an American accent.

kls0e on 2024-05-16

excellent read, how tangible. love the praise of the code structure. impressed on how consistent photoshop's UI is, up to contemporary versions.

Nuella19 on 2024-05-16


hi_there_ on 2024-05-17


hi_there_ on 2024-05-17