Thomas Knoll, a PhD student in computer vision at the University of Michigan, had written a program in 1987 to display and modify digital images. His brother John, working at the movie visual effects company Industrial Light & Magic, found it useful for editing photos, but it wasn’t intended to be a product. Thomas said, “We developed it originally for our own personal use…it was a lot a fun to do.”
Gradually the program, called “Display”, became more sophisticated. In the summer of 1988 they realized that it indeed could be a credible commercial product. They renamed it “Photoshop” and began to search for a company to distribute it. About 200 copies of version 0.87 were bundled by slide scanner manufacturer Barneyscan as “Barneyscan XP”.
The fate of Photoshop was sealed when Adobe, encouraged by its art director Russell Brown, decided to buy a license to distribute an enhanced version of Photoshop. The deal was finalized in April 1989, and version 1.0 started shipping early in 1990.
Over the next ten years, more than 3 million copies of Photoshop were sold.
That first version of Photoshop was written primarily in Pascal for the Apple Macintosh, with some machine language for the underlying Motorola 68000 microprocessor where execution efficiency was important. It wasn’t the effort of a huge team. Thomas said, “For version 1, I was the only engineer, and for version 2, we had two engineers.” While Thomas worked on the base application program, John wrote many of the image-processing plug-ins.
With the permission of Adobe Systems Inc., the Computer History Museum is pleased to make available, for non-commercial use, the source code to the 1990 version 1.0.1 of Photoshop. All the code is here with the exception of the MacApp applications library that was licensed from Apple. There are 179 files in the zipped folder, comprising about 128,000 lines of mostly uncommented but well-structured code. By line count, about 75% of the code is in Pascal, about 15% is in 68000 assembler language, and the rest is data of various sorts.
Download Photoshop version 1.0.1 Source Code
(Score: 5, Funny) by c0lo on Thursday May 24 2018, @12:21PM (7 children)
What do you mean Pascal?
Not Rust? Not even Go-lang?
Must be ported to node.js at once!
(grin)
https://www.youtube.com/watch?v=aoFiw2jMy-0 https://soylentnews.org/~MichaelDavidCrawford
(Score: 3, Funny) by DavePolaschek on Thursday May 24 2018, @12:58PM (4 children)
If a guy were to go digging, he could discover a copy of node.js within Photoshop.
:-|
(Score: 2) by c0lo on Thursday May 24 2018, @02:14PM
Almost sure thing. But is hard to get digging into the (creative) cloud
https://www.youtube.com/watch?v=aoFiw2jMy-0 https://soylentnews.org/~MichaelDavidCrawford
(Score: 4, Funny) by DannyB on Thursday May 24 2018, @02:25PM (2 children)
That's about as believable as a fright simulator buried in Excel.
People today are educated enough to repeat what they are taught but not to question what they are taught.
(Score: 2, Funny) by Anonymous Coward on Thursday May 24 2018, @04:42PM
It looks like you're looking for scary things, would you like help?
(Score: 5, Funny) by DeathMonkey on Thursday May 24 2018, @07:10PM
That's about as believable as a fright simulator buried in Excel.
We're talking about Excel.. That fright is 100% genuine, not simulated.
(Score: 2) by RamiK on Thursday May 24 2018, @06:10PM (1 child)
1. Compile it to webasm.
2. Host it on an ad-driven site.
3. Profit.
compiling...
(Score: 2) by realDonaldTrump on Thursday May 24 2018, @08:08PM
4. Cease and desist letter
(Score: 0) by Anonymous Coward on Thursday May 24 2018, @12:41PM
"using graph;"
the simpler, saner days when coding graphics was so much more intuitive.
now, at a minimum, I have to learn the intricacies of VTK to get something working (ok, maybe mayavi is somewhat reasonable).
(Score: 3, Informative) by JoeMerchant on Thursday May 24 2018, @12:45PM
50,000 lines of C code: https://globenewswire.com/news-release/2018/05/22/1510151/0/en/Computer-History-Museum-Makes-the-Eudora-Email-Client-Source-Code-Available-to-the-Public.html [globenewswire.com]
🌻🌻 [google.com]
(Score: 0) by Anonymous Coward on Thursday May 24 2018, @12:47PM (7 children)
In my 4th decade as a professional, covering half a dozen languages, Pascal easily wins by SLOC. I've gradually reduced the amount of code I write over the years. Management and reasons
(Score: 3, Funny) by c0lo on Thursday May 24 2018, @12:52PM
Me too. I learned C.
https://www.youtube.com/watch?v=aoFiw2jMy-0 https://soylentnews.org/~MichaelDavidCrawford
(Score: 1, Interesting) by Anonymous Coward on Thursday May 24 2018, @12:52PM (3 children)
Turbo Pascal for DOS ( version 7 ) was my favorite. Never did too much with Delphi though.
(Score: 0) by Anonymous Coward on Thursday May 24 2018, @02:31PM (1 child)
I've never seen Delphi (or Moula II).
I was given a turbo Pascal disc with the database toolbox and an afternoon to create a database system for a nonprofit organization. This was about a month after I'd learned C and only knowing BASIC and asm before that. So I learned Pascal (and what a database was) all in the same day. It was barely different than C other than the syntax, begin/ed...{/}.
(Score: 0) by Anonymous Coward on Thursday May 24 2018, @05:39PM
[I found that it is] barely different from C.
(Score: 5, Interesting) by DannyB on Thursday May 24 2018, @02:44PM
Yep. TP7 stands out as excellent.
About 1993, we had some code written in the p-System from the 1980's. Quite a bit. The p-System had all but disappeared. We could no longer even find who to continue paying annual licensing fees to. We were using a product from a Canadian company called "the datalex bubble" which let you run the entire p-System OS within an MS-DOS executable. Neat. But moving files into and out of p-System volumes to DOS files was a major pain point.
So I got TP7. I wrote some command line tools that I dubbed "pTools". This was a collection of several commands, including PCOPY.EXE, PKRUNCH.EXE and others. You could use a syntax like:
PKRUNCH.EXE C:\foo\somevol.vol
This would do the p-System "Krunch" operation (eg, squish all files toward the beginning of the volume, leaving all free space at the end of the volume) from the DOS command line. And it was WAY faster than doing this operation within the actual p-System. My PKRUNCH.EXE, and all other tools in pTools were built on a common TP7 library I wrote which used large buffers on "modern" DOS machines that had upwards of several MEGABYTES!!! of memory or more!
The tools would interpret paths with backslashes as DOS path syntax, up to a "vol" file which was a p-System volume. You would then continue the pathname syntax using colons to delve into "sub volumes" (eg dot-SVOL files) that contained volumes within volumes. So a command like:
PKRUNCH.EXE C:\foo\somevol.vol:*
would krunch all of the subsidiary volumes.
Or I could copy a deeply embedded p-System TEXT file out to DOS:
PCOPY.EXE C:\foo\somevol.vol:subvol1.svol:myfile.text C:\myfile.txt
I greatly enjoyed working in TP7's DOS based edit-compile environment. As a Mac (classic) guy, I appreciated the "text ui" with a mouse. File, Edit, etc pull down menus. Text windows. Dialog boxes, etc.
I found Delphi very interesting. But never did much with it myself. I was looking for cross platform as the holy grail. 56% of our customer base was Mac, but with a growing MS Windows customer base. I eventually ended up in Java after trying many alternatives.
TP7 stands out as one of my favorite experiences. Along with Macintosh Common Lisp, and before that Mac Perl Lisp, and XLisp from about 1986 to 1993. Six years of Lisp was a profound joy.
People today are educated enough to repeat what they are taught but not to question what they are taught.
(Score: 0) by Anonymous Coward on Thursday May 24 2018, @01:52PM (1 child)
Declining eyesight? I notice a lot of older coders doing more management when their eyes take the Presbyopia turn.
(Score: 0) by Anonymous Coward on Thursday May 24 2018, @08:14PM
No, not so much management as technical advisor on multiple company wide projects and general problem solving/mentoring
(Score: 5, Informative) by SomeGuy on Thursday May 24 2018, @12:48PM (4 children)
While it is always good to point it out to those who have not seen it before, this was released back in 2013. It might help to link to the main article rather than the download page: http://www.computerhistory.org/atchm/adobe-photoshop-source-code/ [computerhistory.org]
(Score: 1, Insightful) by Anonymous Coward on Thursday May 24 2018, @01:31PM (3 children)
The download page also requires JS because plain HTML forms are apparently too hard to concoct in the present year. Nonwithstanding, the file can be downloaded without clicking any of the buttons because it's exposed in the page source.
(Score: 2) by JoeMerchant on Thursday May 24 2018, @01:57PM
Blame Google, they optimized JS execution in Chrome - accelerating the scripted web tsunami.
🌻🌻 [google.com]
(Score: 2) by meustrus on Thursday May 24 2018, @04:33PM (1 child)
Have you worked with plain HTML forms? They are actively hostile to interacting with REST APIs. Which would be less surprising if REST weren't part of the original design goals for HTTP.
Not that I agree with requiring JS. But that's because I like graceful degradation and smaller file sizes, which are not things most developers ever have a reason to even discover as worthy goals.
If there isn't at least one reference or primary source, it's not +1 Informative. Maybe the underused +1 Interesting?
(Score: 1, Informative) by Anonymous Coward on Thursday May 24 2018, @04:48PM
I have, a plenty, and I still do. There's no reason whatsoever why submitting a form that will be validated server side anyway (I hope so at least) be done with jQuery without offering the fallback of a standard input type=submit button.
Hell, I've used greasemonkey to forcefully add such a button to a bunch of forms and they work fine without any of that gunk. People are just lazy and incompetent.
(Score: 2) by goodie on Thursday May 24 2018, @02:03PM (6 children)
The first programming language I learned (ok, TP to be exact). My first job was programming in Delphi so that helped quite a bit. Say what you want but fuck programming was more intuitive back then... No web crap to add on top of everything. Delphi had really great 3rd party components you could buy as well (DevEx etc.) that really made your applications shine for customers.
Good times...
(Score: 3, Insightful) by Anonymous Coward on Thursday May 24 2018, @04:48PM (1 child)
Everything was more intuitive before the Year 2000. Whenever I need to test something quickly I still have number of old tools handy such as QBasic when I don't want to write 1000 lines of code and add 3 libraries just to draw a line to the screen to visualize something. Got a copy of Open Watcom for that too when QBasic is too slow, and Visual Basic 6 when I need something on windows quick and easy (And not slow/bloated like .NET). Works good enough in Wine too if I'm in pinch.
It's always nice to see how things back then didn't need a whole bunch of hand holding like we have today to get tasks done. They also didn't need these "Beautiful" UX designs from a bunch of losers in California who drink too much coffee and wear plaid clothing 24/7. It's times like this that make realize how much the "Modern" web was a mistake. Screw it, let's all go back to the way it was back when we had BBSes.
(Score: 3, Insightful) by goodie on Thursday May 24 2018, @04:54PM
The worst thing for me is that the premise of all that web crap "multiplatform" or "WORE" is a fallacy. At the end of the day, you have to customize. Might not be for the OS, but it may be for the browser/device. It's kinda sad that a lot of the time spent in dev is spent re-writing stuff to work with the latest trendy framework that adds 0.2% benefits for 25% extra crap/bloat/maintenance headaches...
(Score: 4, Interesting) by Arik on Thursday May 24 2018, @04:48PM (2 children)
Zmud had a pascal-ish scripting language that I used the heck out of though. IIRC not only was the internal scripting language pascal-ish but I think the whole thing was written in Delphi too.
But now I've made Pascal sound dead. It's still in wide use and active development.
Particularly in form of https://en.wikipedia.org/wiki/Object_Pascal
not just for Mac: http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Supported_Target_Platforms
If laughter is the best medicine, who are the best doctors?
(Score: 3, Informative) by dry on Friday May 25 2018, @04:56AM (1 child)
Better to refer to Free Pascal, which seems to be compatible with various historic pascals including Object Pascal. Turbo Pascal and Delphi. It also seems to target lots of OSes and architectures.
https://www.freepascal.org/ [freepascal.org]
https://en.wikipedia.org/wiki/Free_Pascal [wikipedia.org]
(Score: 2) by Arik on Friday May 25 2018, @05:39AM
If laughter is the best medicine, who are the best doctors?
(Score: 2) by wonkey_monkey on Thursday May 24 2018, @05:45PM
...binary load lifters. And they're not much bigger than two meters.
systemd is Roko's Basilisk
(Score: 2) by Rich on Thursday May 24 2018, @05:05PM
MacApp 2 was a surprisingly clean framework. Not bad at all for the first attempt at creating one.
I happen to sit on a MacApp 3 like framework to which I own all the rights. It was clean-room engineered from client calls and documentation (with improvements) when a customer of mine decided that it was way more efficient to re-create the framework (about 50 kLOC) than to re-create all their vertical market applications (about 1000 kLOC) when Apple dropped it to force developers to Cocoa. Interesting story on its own, it has to run 24/7 in regulated environments, runs all the way from Harmony (7.6 (!, not 10.7.6) ) to High Sierra (10.13) and I eventually wrote a multilingual view editor (WorldScript (!, in the 2010s), Unicode only for import/export) for it, that, unlike IcePick, does not crash.
Anyway, enough tales of lore, buggers that it wasn't MacApp 2 I had to do. Or I would've given compiling PS1 a try. On Lightspeed Pascal. :)
(Score: 3, Touché) by opinionated_science on Thursday May 24 2018, @09:19PM
a version that will run on linux /s
(Score: 3, Interesting) by PartTimeZombie on Thursday May 24 2018, @11:35PM
I became a Photoshop user in about 1992 on (I think) an Apple IIc.
It was bloody awful. I was a Photolithographer, and the idea was that we could retouch pics and do colour correction quicker and easier than using film separations, but we couldn't and it wasn't.
Frankly, if I wasn't restarting the Mac due it locking completely I was restarting Photoshop after it crashed.
It was not really until about 1994 (or so, memory is a bit vague to be honest) that digital systems could really compete with manually editing film.
Of course in no time at all every kid leaving high school wanted to be a "graphic designer" and the wages slumped to almost nothing, so I got the hell out altogether.
(Score: -1, Troll) by Anonymous Coward on Friday May 25 2018, @03:58AM
Maybe this code could be used to help the GIMP devs get their act together. Even today, GIMP still doesn't have CMYK :(