Posted
by
CmdrTaco
on Tuesday July 20, 2010 @08:53AM
from the keep-it-away-from-ben-stiller dept.

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

And if we're "lucky" Doom 3 will be the last one... One of the consequences of id's merger with Zenimax is that the latter have no interest in sharing their tech with the outside world. Word has it that Carmack will "petition" them to release the Doom 3 source. It feels like the end of an age.

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

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)

Assuming the source code is still kept in useful form by a company that is not ashamed of it, there is little to lose and much goodwill to be gained by releasing "abandonware" -- but those are two large assumptions, aren't they?

Hopefully this starts a trend where companies release their source to the world once they're done with it.

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.

I agree with everything except the 'a full copy (including source and binaries, in the case of software) of any copyrighted work be placed in government escrow' - my personal opinion is that binaries and source code are two separate entities, and I see no reason why someone who has the public binary should get the private source when the copyright expires.

The comparison I was thinking of personally was film making - lots of 'source' material involved in making a film that will never see the light of day when copyright expires on it, especially with more modern digital and animated films (the model and textures for Shrek for example).

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

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.

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

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

You seem to be deliberately missing my point - no one is guaranteeing anything, value or absence of value. There is no requirement that something has value once it passes into the public domain, it's a crap shoot that society take part in with regard to the granting of copyright. Just because a binary would be useless to you doesn't mean that you should have an entitlement to anything other than what was distributed.

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

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

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

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

I'd like to point out that if you were to accuse someone of violating your copyright on your "public binary" you would use your "private source" to prove your accusations. In fact you would compare your "private source" against their "private source." The source code and the binary are inexorably linked both in terms of development/implementation and (in my opinion) copyright.

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

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

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]

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!

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.

In high res - 6 colors - black, white, blue, orange, green, purple. But two adjacent bytes were either blue/orange or green/purple depending on the high bit for the first byte, as I recall..... I still pronounce the root beer as Hi-Res.

The Macintosh II, released in 1987, was capable of 24-bit color, which is something like millions of colors more than 15.

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

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

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

As someone else pointed out, the monkey sent random mouse events to the program to make sure nothing could crash it. When the monkey was alive, the code would keep the monkey from quitting the program or doing anything else that would stop it. The monkey made MacPaint a virtually crash proof program.

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. Tryopen/Developer/Documentation/DocSets/com.apple.adc.documentation.AppleSnowLeopard.CoreReference.docset/Contents/Resources/Documents/samplecode/Sketch-112

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.

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

Apple's TOS for the iPhone don't care what language you write your app in just so long as it compiles to native machine code for the A4 processor. If you could manage to find (or write your own) Pascal-to-A4-machine-code compiler, you could write an iPhone app in Pascal if you really wanted to.

...is for Apple to revive the venerable MacPaint brand and release an image editing program based on CoreImage. Could be part of iLife, could be a developer sample code project, but either way, the Mac really should ship with a way for any user to take full advantage of all the investment Apple put into that framework.

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)

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

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.

:-DI 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:=/

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.

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

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

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

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.