MacPaint Source Code Released to Museum 175
gbooch writes "The Computer History Museum, located in Mountain View, California, is not only a museum of hardware but also a museum of software. Today, with the permission of Apple, the Museum has made available the original source code of MacPaint.
MacPaint was written by Bill Atkinson, a member of the original Macintosh development team. Originally called MacSketch, he based it on his earlier LisaSketch (also called SketchPad) for the Apple Lisa computer. Bill started work on the Macintosh version in early 1983. "
As goes Apple... (Score:2)
Re: (Score:3, Informative)
Uh... id has been doing this for years. And id doesn't wait 27 years to do it, either.
ftp://ftp.idsoftware.com/idstuff/source/ [idsoftware.com]
Re: (Score:3, Insightful)
Re: (Score:3, Insightful)
How many great companies have been destroyed by bad mergers.
The Activision/Blizzard merger has already caused one of the biggest PR disasters in the history of the gaming company we considered one of the best in the world before - not only to work at, but to deal with as a customer. The Zenimax/ID merger is rapidly destroying the soul of perhaps one of the most innovative companies in the history not only of gaming but of software as a whole. ID for their genre-redefining (and in at least one case CREATING
Re: (Score:2)
Didn't Activision also merge with Infocom a long time ago and destroy the Zork series? What is with those guys?
Re: (Score:3, Funny)
What constitutes done with it? When was the last time any development or effort was put into any thing DukeNukem related? What about Windows 3.1 (oh sorry, that code is still in Windows, isn't it, heh)
Abandonware (Score:5, Interesting)
I have released my HDOS, CP/M, and MS-DOS product source code from the 1980s [wlindley.com]; there were a few other software packages I sold back then, but I no longer have readable floppies with enough bits of source to release them.
Re:As goes Apple... (Score:5, Insightful)
That was kind of the point with the concept of "copyright": that the copyrighted work in question would enter the public domain after a short time in order to enrich society as a whole.
What *should* be happening, at the very least, is that a full copy (including source and binaries, in the case of software) of any copyrighted work be placed in government escrow so that it can be released to the public after the copyright expires (which should be about five or ten years, in the case of software).
How sad that copyright law has been twisted so terribly by the rich and powerful to the detriment of human civilization.
Re: (Score:2)
Re: (Score:2)
Similarly, I don't have to release to the public letters written by my great-great-great-great grandmother, even though they'd be out of copyright now had I/she published them in the past.
Re: (Score:3, Insightful)
Re: (Score:2)
Re: (Score:3, Insightful)
You don't have to release it, but you never asserted copyright protections on it either. It doesn't seem unreasonable to tie the two together -- you can keep something secret OR assert copyright protections, but not both.
We do exactly the same thing with patents. You can have trade secrets and even take legal action to protect them and prevent them from being improperly shared. OR you can have patent, which makes the design public, but allows you to prohibit use of the design even in independent implementat
Re:As goes Apple... (Score:4, Informative)
This is perhaps the most ill-constructed wealth of ignorance posted on Slashdot for a while, at least without original intent to be tardy.
Copyright protects creative works. Whereas published works may have required copyright notice [loc.gov] on the work (before 1989), or deposit with the Library of Congress [loc.gov], unpublished works have never required a copyright notice [copyright.gov] for protection. If you created it, you have the copyright on it, and can take protective action against others distributing copies of your work.
Patents protect exclusive distribution of inventions. We do not do the exact same thing with patents. Patents allow you to take legal action and prohibit competitors from making infringing products.
Trade secrets are secrets as long as they are kept secret, but 'infringing' products are not actionable. You have not publicly declared that you invented something, so if someone else invents it they can use it too (and might even be able to patent it if you haven't created prior art implementing your invention). There are only legal covenants (and criminal liability in some states) to prevent employee disclosure, theft, or espionage. Trade secrets can include non-copyrightable or non-patentable things such as the formula for Red Bull.
Software, which is currently under discussion, can have all: patentable (think Amazon one-click checkout patent), under copyright (as the Amazon web server software is, even if undisclosed), and contain trade secrets (such as server cloud optimization routines to speed processing).
If you work for Apple and released the source code to 1984's Macintosh File System you would be breaching your non-disclosure trade secret agreement with Apple. The disclosed software would still be covered by copyright, and features or inventions implemented in the software may be covered by patents too. Many software patents are so vague in their description (merely describing the end result or user interface) that the actual implementation in code may indeed be a trade secret too.
Re: (Score:2)
And I see absolutely no USE for a 10-year old binary without source code. With source code you can base new programs on it, port it to new platforms and be able to read your data files from 10 years ago...
With source code you are actually enriching the public domain, without it - you're doing nothing of any value whatsoever. Whatever value binary-only software may have is definitely incredibly time-linked. Abandonware binaries have little or no use. The best you could hope for is to run them in an emulator
Re: (Score:3, Insightful)
Re: (Score:2)
The purpose of copyright is to contribute value to the public domain. It makes sense not to put a definition of value on say, a book or a painting. Why does it make sense ? Because often the value of these works aren't even RECOGNIZED until well after the copyright is expired and the creator long dead. We all know the Vincent Van Gogh type histories.
But when it comes to a functional work - it has a functional purpose, and since the REASON for copyright is to serve the public - it can be reasonably stated th
Re: (Score:2)
The purpose of copyright is to contribute value to the public domain.
But there is no guarantee of value, ever.
Re: (Score:2)
Re: (Score:2)
But that is exactly what Copyright is meant to do "To promote the Progress of Science and useful Arts, by securing for limited Times to Authors and Inventors the exclusive Right to their respective Writings and Discoveries."
Don't limit others to your imagination (Score:2)
Just because YOU can't conceive of a use for 10-year-old binary without source code doesn't mean others can't.
With an old binary we can at least run the program enough to create requirements suitable for reconstructing and improving the program. I've heard much of "MULE" and other great programs past, and my reflex is a desire to run them to grok their behavior and subsequently write a new take thereon. Having the source is valuable, but lacks decades of development in the art. I could write a clone of MacP
Re: (Score:2)
And I see absolutely no USE for a 10-year old binary without source code.
10-year-old versions of Photoshop are still quite useful today. That particular software hasn't progressed that much in that time, and supports data formats that are still commonly used.
Re: (Score:2)
Given that reasoning, are you suggesting that the code isn't protected by copyright since it wasn't published? Because traditionally copyright protections have applied to both published and unpublished works.
I'd also argue that the source code is a fundamental component of the information needed to reproduce the work, which is the basis of copyright protections. Using the book analogy, it's not only possible to photograph and re-print a book on new paper, but also to typeset the underlying text and reproduc
Re: (Score:2)
Given that reasoning, are you suggesting that the code isn't protected by copyright since it wasn't published? Because traditionally copyright protections have applied to both published and unpublished works.
I'd say that that is a good point and also the point I am trying to make - on expiration of copyright, you are entitled to whatever was distributed and nothing else (IE what you can get hold of), regardless of whether that makes the distributed portion pointless or not.
I'd also argue that the source code is a fundamental component of the information needed to reproduce the work, which is the basis of copyright protections. Using the book analogy, it's not only possible to photograph and re-print a book on new paper, but also to typeset the underlying text and reproduce the story in another form. Isolating the source code from the binary is like limiting reproductions of books to photographs only, and making it illegal to re-typeset the text because the original TXT files were never made public.
See my other comment about movies being a better example - there are lots of resources produced during the making of a movie that would be beneficial to the public domain, but you are never going to get. Should Hollywood be required to archi
Re: (Score:2)
Not private once it expires (Score:2)
If the copyright has expired, the source code is not private any more, it's public domain.
Re: (Score:2)
> What *should* be happening...
Nah, that doesn't get to the root of the problem.
No, copyright should only be available for source. Binaries should only be copyrighted as a derived work of the source. Remember the purpose of copyright is NOT to make the author wealthy, it is to "promote progress in the useful arts and sciences" and so source should eb required to be disclosed as part of the exchange for the copyright.
This would allow others to study the work, patch the program and adapt it as time went
Re: (Score:2)
It is worth noting copyright does make a feeble attempt at this. In order to sue for copyright infringement the work must be registered. In order to seek statutory damages the work must be registered before the infringement. One of the requirements of registrat [copyright.gov]
Re: (Score:3, Funny)
Re: (Score:2)
Why is anyone interested in Office 2010 when OOo doesn't have a ribbon?
Re: (Score:2)
Why is anyone interested in Office 2010 when OOo doesn't have a ribbon?
I was glad to read in the OOo 3.3 Dev branch that Calc just bumped it's Spreadsheet Matrix to a 1M rows, up from the 2^16 number currently.
Hypercard? (Score:2, Interesting)
Oh wow (Score:5, Insightful)
Oh wow, I still remember the first time I saw MacPaint-- there was nothing like it. Bill Atkinson did a superb job, shoehorning all those features so they could run in 128K of RAM.
He just barely made it-- I remember trying to find how much memory my desk accessory could use while MacPaint was running, and when you did a "print preview", the available RAM went down to like 1800 bytes! Yikes!
Folklore.org (Score:5, Informative)
Re: (Score:2)
The eight-year old me thought it was incredible. I remember spending a lot of hours just drawing on my parent's 512k mac. All those lost masterpieces!
Re: (Score:2)
Just looking at the interface--its amazing how many of the UI elements are STILL the industry standard.
Re: (Score:2)
>I remember thinking how expensive and lacking in features 'MacPaint' was.
Er, um, MacPaint was "free". It was bundled with every Mac, for at least three years.
And wasn't the color on the ZX limited to like seven colors, in 24x80 character-sized blocks?
Re: (Score:2)
And wasn't the color on the ZX limited to like seven colors, in 24x80 character-sized blocks?
15 colours.
Which is 13 more than the Mac had.
(Personally I preferred painting with 4096 colours...)
Re: (Score:3, Informative)
15 colours.
Which is 13 more than the Mac had.
(Personally I preferred painting with 4096 colours...)
No, the Apple II (not the Macintosh) was limited to 15 colors in low-res and 8 in hi-res. The Macintosh II, released in 1987, was capable of 24-bit color, which is something like millions of colors more than 15.
Re: (Score:2)
No, the Apple II (not the Macintosh) was limited to 15 colors in low-res and 8 in hi-res
We were talking about the Spectrum though...
The Macintosh II, released in 1987, was capable of 24-bit color, which is something like millions of colors more than 15.
Indeed, and the original Macintosh, which we were talking about, IIRC only had 1 bit colour? Yes, it's true that the Mac eventually surpassed the ZX Spectrum a few years later.
Re: (Score:2)
Oops, sorry..another conversation in this thread had me thinking 1987 Macs, not the 1984 versions.
6 colors in Hi-Res (Score:2)
I still pronounce the root beer as Hi-Res.
Re: (Score:2)
Strictly speaking the Mac II only had 8-bit (256 from a palette of 24bits) colours because a) graphics cards capable of higher were not readily available and b) Quickdraw had not yet been updated to draw in 24-bits colour. The Mac II added new data structures that could support 24-bit colour, but the routines to operate on those data structures were not there. The QuickDraw 32 extens
Re: (Score:2)
I didn't start the argument!
Re: (Score:2)
Yes, that expensively free MacPaint (queue the "MacOS tax" comments in 3...2...1...). Lacking in features? That usually happens with "free". It wasn't for another couple of years until Aldus Freehand and Adobe Photoshop 1.0 came out that MacPaint became suddenly "lacking in features".
I have no idea what a ZX-Spectrum is, but when I was in college and studying print design in 1988, everything was Mac based because it could do 32-bit color and dual monitor layout, while the IBM clones gave you the choice of
Re: (Score:2)
Positive. MacIIs could do 24-bit color (sorry about the 32-bit, got a bit overzealous) in 1987. We didn't go dual monitor until our IIfx in 1989, but that's close enough for my 40 year old memory.
I designed the 1992 Bill Clinton campaign logo using that computer!
Whaaaa? (Score:5, Interesting)
; FUNCTION Monkey: BOOLEAN;
TST MonkeyLives
Funcy monkey.
Re:Whaaaa? (Score:4, Informative)
If that's in the source, I think at one time Apple had some testing harness that sent random click events to programs to see if it would crash. That might be what is meant by the monkey.
Re: (Score:2)
Monkey test (Score:2)
Yes, a bit later I even saw a separate release of this monkey thing: you would launch your app, then launch the monkey, and thousands of clicks were hitting the screen. (seeing this the first time was atrocious ;-)
When the worst that happened was that sooner or later a given serie of click would trigger a quit command, you were safe :-)
(and indeed, at that time, the UI was so simple, with ALL command accessible via single one-step menus, that from a quality insurance point of view, I think it did look a rea
Re: (Score:3, Funny)
P. S. of course, you would never silently launch this on your office neighbor's mac. Never.
Re:Whaaaa? (Score:5, Informative)
Explanation: it was a reference to Apple's automated testing framework, as per the zero-score reply you can't see:
http://folklore.org/StoryView.py?project=Macintosh&story=Monkey_Lives.txt
Re: (Score:2)
Nothing on Mac OS X (Score:5, Insightful)
Funny how Macs now lack the equivalent of MacPaint.
Re: (Score:3, Informative)
If you install Xcode, you will get a sample app called Sketch. It's pretty much a light version of MacPaint.
Re: (Score:2)
If you install Xcode, you will get a sample app called Sketch. It's pretty much a light version of MacPaint.
I have Xcode installed, and Sketch is nowhere to be found. I suspect it comes with only older versions of Xcode, unless someone can prove this guess wrong.
Re: (Score:3, Informative)
/Developer/Examples/Sketch/Sketch.xcodeproj
Apple-B. /Developer/Examples/Sketch/build/Debug/Sketch.app
You don't think something that came with Developer Tools came as just an app did you?
Also means you have to have installed the examples. This is from the latest version of XCode on Snow Leopard.
Re: (Score:2)
Re: (Score:2)
I would check your sources if they did not contain the examples. Most likely you chose not to install the examples.
Re: (Score:2)
Possible. It lives at /Developer/Examples/Sketch on my computer. Of course, you have to build it first.
I think there's also a few other versions available hidden in the SDK documentation. Try /Developer/Documentation/DocSets/com.apple.adc.documentation.AppleSnowLeopard.CoreReference.docset/Contents/Resources/Documents/samplecode/Sketch-112
open
Re: (Score:2)
All of the files should be in there for you to build it.
Re: (Score:2)
Out of coffee typo. :p
Re: (Score:2)
You're right. I was thinking about MacDraw, sorry.
Re: (Score:2)
MacPaint's SLOC is just under 6,000. Sketch is just over 2,000. So, umm... you're probably right.
Re: (Score:2)
Re: (Score:2, Informative)
I rather like this for quick and simple things:
http://seashore.sourceforge.net/ [sourceforge.net]
It's under active development again. The "preview snapshot" is quite nice.
Re: (Score:2)
Yeah, they don't have the Internets or anything like that.
Not just a Converter: GraphicConverter (Score:3, Informative)
... by Thorsten Lemke (Lemkesoft):
http://www.lemkesoft.com/content/188/graphicconverter.html [lemkesoft.com]
What's especially great with this software:
Thorsten is still supporting Mac OS Classic (i.e. Mac OS 9 running natively) users by providing specific versions of GraphicConverter for their OS.
Mac OS X being supported too, of course.
Walter.
Re: (Score:2)
http://flyingmeat.com/acorn/ [flyingmeat.com]
Costs $50. Did you mean Gimp?
Re: (Score:2)
Funny how Macs now lack the equivalent of MacPaint.
Perhaps that's because no one would want it?
Besides, if Apple did include a MacPaint equivalent, people like you would complain that they were taking opportunities away from independent developers.
Re: (Score:2)
Probably infringes some 1987 mspaint patent (Score:5, Funny)
The problem with this is that Apple was so innovative that they can infringe patents for ideas that other large companies came up with years later.
and Quickdraw (Score:3, Interesting)
MacPaint is an example of good code (Score:5, Informative)
I've looked at the source and it shows many good programming traits, like variable and procedure naming that makes sense, separation of concerns (each procedure is short and does only one or two things; and it's procedural), etc. The code is very easy to follow. It shows that good programming is more about the programmer than the programming language.
"Best program ever written" (Score:5, Interesting)
I remember watching a NerdTV interview with Andy Hertzfeld [pbs.org] which made mention of MacPaint. Now I've done a search, I've found the transcript of Andy's interview [pbs.org] on the web. I'll quote the section I was thinking of:
[...] an older guy got up and said he thought MacPaint was probably the best program ever written. Was it possible for him to see the source code? It turns out the person asking the question was Don Knuth [...]
Sounds like Bill Atkinson can cite you and Knuth as fans :)
What no comment like RIP JSB? (Score:4, Funny)
Did anyone spot this one... (Score:5, Funny)
; Wrist Test - see if user is gripping left front
; edge of mouse as this will cause drawing
; performance to drop-off
FUNCTION WristTest : Boolean;
Uncanny eh!?
Too sad. (Score:3, Insightful)
It wont run on an iphone - its in pascal. Emulation or non-native/transpiled programs are forbidden, i heard.
Re: (Score:2)
Re: (Score:2)
It wont run on an iphone - its in pascal.
Whoa. I guess that puts the "Nobody ever wrote anything useful in Pascal" meme to rest.
Re: (Score:3, Informative)
Pretty much *all* of the classic Mac software was written in Pascal -- it was Apple's premier development system. C didn't really catch on outside the UNIX world until the mid to late 1980s.
Re: (Score:2)
Re: (Score:2)
Come on, Microsoft... Gollow suit... (Score:2)
... When are you going to release the source for that Gorillas game??.... ... ...oh, wait....
Knuth wanted the source! (Score:2)
For "The Art of Computer Programming", according to the article. What was he planning on doing? Converting it to his pseudo-assembly language MIX? As far as I know, Knuth has never used a high level language in his AoCP, although obviously he knows how to program in them (early versions of TeX were in Pascal, and now they are in C)
Re: (Score:2)
So how long until that copyright will expire?
Re: (Score:2, Insightful)
So how long until that copyright will expire?
A lot longer than the code will be relevant.
Re: (Score:3, Informative)
Will be? It isn't relevant now, in terms of actual utility. It was written against a toolkit that no longer ships for a machine which had 128KB of RAM and a monochrome screen.
The only relevance that it has at all is historical. It was one of the showcase applications at the launch of the original Mac and so it's interesting to see how people worked on such resource-constrained systems. You wouldn't do things the same way now - even a cheap mobile phone is a few orders of magnitude more powerful than
Re: (Score:3, Interesting)
The TI-89a has a much smaller screen than MacPaint had, and it likely interfaces to it in a different way. None of the Mac toolbox APIs are available and, most importantly, the TI-89a has no mouse and so controlling an app designed exclusively for a mouse would be painful.
Writing a drawing program from scratch for the calculator would be simpler than porting MacPaint - indeed, a port would likely become a complete rewrite by the time it was finished.
QuickDraw (Score:2)
He just needs to implement QuickDraw for the TI-89. (yikes!)
Re: (Score:2)
Re: (Score:3, Informative)
QuickDraw's addons and new APIs were an extension, but core QuickDraw is required for the entire Mac UI. That was a system level API.
Re: (Score:2)
That's QuickDraw 32, the 32-bit extension to the original QuickDraw.
Re: (Score:2)
:-D :=/
I remember, while MacPaint was black & white, there already were alternative print kits with colors (for the Apple ImageWriter printer, yes I'm 50 years old), and you could install a separate printer pilot that would translate fill-in patterns into colors on the printer.
hum. It may well have been MacDraw patterns in fact
Re: (Score:2)
Although the initial version of Quickdraw had color support, it was really primitive and (IIRC) only supported a total of 8 colors. However, due to the way that a printer worked by intercepting Quickdraw callbacks, it's no surprise that a printer driver could identify Mac Draw fill patterns and translate those to colors.
It wouldn't have been possible in Mac Paint, though, because everything was flattened to a plain bitmap.
Re: (Score:2)
..and "computer chronicles" had a segment about some add-on (graphics adapter + monitor?) so you could see the color graphics. That is, on the orig b&w Macs.
Re: (Score:2)
Pascal and C are both members of the Algol family, and both provide a fairly primitive model of the computer to the programmer (flat address space, basic structure, but no higher-order functions, and so on). You can automatically translate between the two. The Pascal compiler does some extra type checking, but there's very little semantic difference between the two languages. The biggest difference is an implementation issue (not specified by either language): their early implementations passed parameter
Re: (Score:2)
It helped that Apple used a UCSD variant of the language, which was a lot more practical to use than "standard" Pascal. The most important thing was "units", which let you break up programs into modules with separate header files. They later implemented Object Pascal, which made use of the Macintosh Memory Manager's ability for relocatable memory objects (handles).
Then Borland goes and (IMHO with two college students over a summer break) re-implements it in a C++ sort of way for TP6 because their memory al
Re:MacPaint, HyperCard, HyperTalk -- Atkinson (Score:2)
As far as I know, all versions of Mac System (i.e. the operating system, not yet called "Mac OS" in these days) before v7 have been written almost completely in Pascal. Of course, there may have been contained many portions of Assembler (a.k.a. "assembly") code as well.
Starting with System 7, the Mac operating system had been re-coded in C with most applications were following soon.
Walter.
P.S. Bill Atkinson, author of MacPaint, later created the HyperCard environment, which included a subset of MacPaint as
Re: (Score:2)
> The Lisa was never sold!
Ah, I think what the writer was trying to say was that the disks were the old Apple ][ / Lisa dual-sided 5 1/4 inch drives, which were the original drives intended for the Mac.
They actually did a small production run of those, for internal use, so there were Lisas and Macs with 5 1/4 inch drives, and a lot of development software was on those style of floppies.