Photoshop 1.0 Source Code
computerhistory.org
computerhistory.org
(license: https://gist.github.com/micheljansen/4949042)
The article (cache: http://webcache.googleusercontent.com/search?hl=en&clien...) also has some cool screenshots of early Photoshop :)
Looks like it allows you to produce derivative products, which is great, however, it also forbids commercial use, meaning it's at least not at the same level as FSF- and OSI-approved licenses.
(I've honestly not heard much about CHM before. Making sure to find my way there next time I manage to end up in the Bay Area)
[0] http://www.computerhistory.org/atchm/macpaint-and-quickdraw-...
In the rather unlikely case you want to know, read http://filibeto.org/unix/macos/lib/dev/documentation/Carbon/..., which details how you (sort of) transparently could call 68K code from PPC code and vice versa.
The section "Special Case Calling Conventions" lists all special cases. You get such cases as "Parameters are passed to the routine in registers A3 and D7, and output is returned in registers D2, D3, and D4".
In the golden age of Delphi, the language was pretty on par with today's Objective-C: Classes, late binding, properties, reference counting, modern strings, etc.
I wonder how much influence there was between the two.
The Lisa's OS was written in Pascal.
http://www.cs.oberlin.edu/~jwalker/lisa-legacy/
"The majority of Lisa programs were written in the Pascal language by Apple with a few programs written in 68000 assembly language. To give an idea of the size of this effort the Lisa operating system was written in around 90,000 lines of Pascal and each Lisa program (eg LisaWrite) contained somewhere around 50,000 lines each."
http://en.wikipedia.org/wiki/Pascal_(programming_language)#H...
Like others in this thread, I learned Pascal early on and was befuddled by C for a long time. I wrote some Pascal on my Apple //e, played with Lisa (had access thru work), completely missed the Mac boat, cut my teeth on TurboPascal. Gods, I loved Borland.
Apple did not use C heavily until the OS was re-written in C++ in System 7 in 1991
I always thought that Jobs' greatest triumph in pushing Rhapsody was bringing their developers back to using their own tools (though I suppose Carbon could be considered a short term loss).
Revolution in The Valley http://shop.oreilly.com/product/9780596007195.do
C only took over because of UNIX.
I love Pascal. Clean, concise, rigid, fast. Haven't touched it in 10 years though.
Then used Turbo/Borland Pascal 5.0/5.5 for quite a while, a bit of 6.01, short Delphi, and by that time already moved to C/C++
I moved of a reasonably stupid thing. The MoveFile() function exposed in Borland Pascal was not able to move files between folders. Although I knew some assembly, and Ralph Brown Interrupt List was the greatest thing ever, I did not consider rewriting routines in it (For some reason I was thinking - this language supports this, and this one that... much later I realized - these were just libraries, even if they were builtin ones - CRT). But for that reason I moved to C/C++ - because it had the function... lol.
I loved how .TPU/.DPU files worked, much more efficient than headers.
Now we need to force everyone to move to safer languages.
One thing I like in C++ over C, is that the language + libraries gives me enough freedom to achieve a Pascal like programming safety, thanks to references, STL and stronger type checking than C.
I specially like the Native Oberon and Active Oberon operating systems.
Although the original version lacked a few features, most dialects had them. Turbo Pascal and Mac Pascal were considered the dialects to achieve compatibility with.
Eventually in 1990 there was a revised version of the standard, Extended Pascal which contained such features. However by then the Pascal world searched for Turbo Pascal compatibility on most compilers.
The Pascal parts ought work, if you have a compiler for the same pascal dialect.
Edit: Maybe it could be built as a 32 bit Carbon app for OS X with some modifications. That's all a little before my time, so I'm not sure how much was changed by the time OS X came around.
As usual, Adobe doesn't "get it".
This particular source code is from an extremely old version of Photoshop, there would be no potential commercial harm whatsoever from allowing people to reuse this source code however they want.
I could have lived with the "no commercial use" restriction that's typically used, but to not have a right to redistribute at all severely restricts its utility.
Given that the commercial value of this particular source code drop is effectively zero, I fail to see what Adobe being a billion dollar company has to do with anything. Nor do I see what this has to do with the "OSS" movement of "Free Software" in general, neither of which were mentioned in my original post.
Copyrights that may expire long after my death also don't seem like something I should be grateful for.
It's not that easy I guess. Even Photoshop 1 has tons of patents in it's algorithms.
As long the web site stays up, everyone is free to go there and download it for himself/herself.
Nor any ports to attempt ot make it compileable/runnable.
Code isn't supposed to be hung on a wall. If you can't even collaborate to make it work again, it does lose a lot, and waiting ~95 years isn't really a practical alternative.
Will the website stay up that long? Is archive.org allowed to preserve it?
[1] http://fabiensanglard.net/quakeSource/index.php
On the other side, the road is paved with failed OSS companies that were praised as "really getting it", starting with the archetypal one: VA Linux.
(btw, is my typo that amusing to you? Wait till you find out about cat videos then...)
But that's not possible, so the port to C had been started.
(Oh but Delphi - this systems are not Windows)
I do recognize that Pascal sadly was never strong on UNIX/Mainframe systems, which I imagine is your case.
My move from Turbo Pascal/Delphi to C and C++ happened around the time I needed to target UNIX systems. Given the choice I always take C++ over C, because I can achieve a Pascal like safety.
But I do miss coding Delphi.
If Sun hadn't pushed Java so hard and Borland didn't went schizophrenic with what to do with their products, Delphi would probably still be quite strong nowadays.
Still the best way to code native applications on Windows though.
Not sure they looked into FreePascal (and it is a couple of years already)
About C vs C++, I agree
Fair enough. Thanks for pointing it out.
http://mikewilliamson.wordpress.com/2010/02/16/12-years-old-...
InitToolbox(8);
However, there is no other mention of InitToolbox in the sources. Is it part of the Mac OS API? Which compiler were these sources meant for?
http://en.wikipedia.org/wiki/MacApp "MacApp was based on Object Pascal, Apple’s object-oriented extension to Pascal, developed in consultation with Pascal inventor Niklaus Wirth."
I never ever try to say it's comparable to Photoshop.
Really, there's a whole bunch of stuff which is trivially easy in photoshop and not so much in Gimp.
Fractional selection lets you apply adjustments and effects without harsh boundaries between the adjusted part and the unaffected part. Per-layer alpha channels are needed to blend together different layers smoothly. And actually, you could implement the effect of the former with just the latter.
So yeah; Paint.NET needs editable per-layer transparency channels.
OpenPDN repo history: initial commit, circa 2009.
Pretty sure that doesn't even qualify as a fork!
The reason it was forked is due to people selling recompilations of it.
http://www.computerhistory.org/atchm/adobe-photoshop-source-...
:/