Adobe Photoshop Source Code (2013)
Legacy Code and Languages
- Early Photoshop (v1.x, 1990) was written in Pascal, using Apple’s MacApp framework.
- Comments speculate that substantial early logic likely persisted for many years, then was transpiled or rewritten into C/C++ for portability.
- Pascal→C and Pascal→WASM tools are mentioned; TeX is cited as a prominent example of such translation.
- A former Photoshop engineer notes that pieces of the original MacApp-based layer still survive in the modern codebase.
Trademarks and Genericization (“photoshopped”)
- Adobe’s insistence on “Adobe® Photoshop® software” instead of “photoshopped” is discussed as a classic attempt to avoid trademark genericization.
- Similar efforts by LEGO and Velcro are mentioned; some think Photoshop is already effectively genericized, others note law still protects it.
- A distinction is made between informal speech (ignored by users) and formal/commercial usage where partners follow guidelines.
Photoshop vs Open-Source Alternatives
- GIMP is debated: some use it for very simple tasks (cropping, scripting), others argue it’s rarely used professionally compared to Photoshop or Krita.
- Krita is praised for painting and non-destructive editing; Inkscape is seen as useful but buggy and awkward for drawing.
- GIMP is criticized for missing core non-destructive workflows (adjustment layers, layer styles, smart filters) that Photoshop has had for decades.
- Naming (“GIMP”) is controversial; some find it terrible, others think it’s fun. Krita’s maintainer (in-thread) explicitly encourages verbing “Krita”.
UX Stability, Muscle Memory, and Change
- Many note how consistent Photoshop’s UI has remained; some see this as good design, others as inertia and fear of user backlash.
- Power users rely heavily on muscle memory; even small shortcut changes cause pain.
- Multiple overlapping dialogs (“Save for Web (Legacy)”, “Export As”) are cited as evidence of UI accretion rather than cleanup.
- Comparisons are made to other tools (QuarkXPress failures, Blender’s successful revamp, JetBrains IDEs) as cautionary tales about redesigns.
Performance and Hardware Evolution
- Early 1990s usage on low-RAM Macs involved multi‑minute operations (e.g., Gaussian blur undo).
- SGI workstations, later Pentium II machines and G3 Macs, are remembered as high-performance Photoshop setups.
- Some users find modern versions sluggish compared to older CS-era builds, even on powerful hardware; others stick to older versions for snappiness.
Source Release, Licensing, and Preservation
- The released Photoshop 1.0.1 code is praised; there’s appetite for similar releases (Illustrator, Fireworks, Windows XP, etc.).
- A GitHub mirror of the code likely violates the Computer History Museum license, which forbids relicensing/posting elsewhere.
- Software preservation efforts (e.g., Software Heritage, personal archival projects inside Adobe) are discussed, including challenges with lost media and missing early Illustrator code.
- Ideas are floated for time-delayed source escrow services or integrating source submission into copyright registration.
Architecture, Frameworks, and Code Structure
- Photoshop 1.0 relies heavily on MacApp; this explains missing function definitions in the released code (they’re in the framework).
- Some commenters advise learners to focus on fundamental imperative structure first, then let abstractions emerge, rather than starting from patterns/OOP.
- The code is admired for its structure, but several readers admit they struggle to fully grasp a large, framework-heavy 1990-era Mac app.