The Grand Unified Model (2) - The Finder 大统一模型(2) - Finder

作者: 布鲁斯·霍恩 日期: 1983年1月 人物: 布鲁斯·霍恩、拉里·凯尼恩、史蒂夫·乔布斯、弗兰克·鲁道夫、史蒂夫·卡普斯、丹·史密斯、比尔·阿特金森、安迪·赫茨菲尔德 主题: 软件设计 概要: 关于苹果第一代Macintosh的开发以及制造它的人的轶事: Finder 的演变 , 大统一模型(2) - Finder The Grand Unified Model (2) - The Finder

When I joined the Mac team, one of the first things I did was work on the Finder. The first Finder was created in 1982, with the help of Andy. It was a simple picture of a floppy disk with tabs representing the files on it. This Finder was special because you could move the tabs around to organize the files in a way that made sense to you. My experience with a computer language called Smalltalk also helped with this Finder. The big “Do It” button was named after a similar button in Smalltalk. This first Finder was actually usable and served as a temporary solution until the real Finder was ready.

当我加入 Mac 团队时,我做的第一件事就是开发 Finder。第一个 Finder 于 1982 年在 Andy 的帮助下创建。这是一张软盘的简单图片,上面有代表文件的选项卡。这个 Finder 很特别,因为您可以移动选项卡,以对您有意义的方式组织文件。我使用一种名为 Smalltalk 的计算机语言的经验也对这个 Finder 有所帮助。大的“Do It”按钮是以 Smalltalk 中的一个类似按钮命名的。第一个 Finder 实际上是可用的,并作为临时解决方案,直到真正的 Finder 准备就绪。

After the first version of Finder, I created another one that looked more like the real thing. This new version didn’t actually read the disk, but instead showed a pretend list of files and folders from a text file. At the time, our computer system didn’t have real folders, so I had to pretend to have them. This prototype had some new features like:

  • Double-clicking to open folders, documents, and apps
  • Dragging and dropping files between folders
  • Showing icons and lists of files
  • Keeping icons in the same place on the screen Even though this prototype wasn’t really working, it gave us an idea of what we wanted to build. Unfortunately, it also made us think that making the real Finder would be easy, but it wasn’t.
在 Finder 的第一个版本之后,我创建了另一个看起来更像真实版本的版本。这个新版本实际上并没有读取磁盘,而是显示了文本文件中的假装文件和文件夹列表。当时,我们的计算机系统没有真正的文件夹,所以我不得不假装有它们。该原型有一些新功能,例如:
* 双击打开文件夹、文档和应用程序
* 在文件夹之间拖放文件
* 显示图标和文件列表
* 将图标保持在屏幕上的同一位置
尽管这个原型并没有真正发挥作用,但它让我们了解了我们想要构建的东西。不幸的是,这也让我们认为制作真正的 Finder 会很容易,但事实并非如此。

Bill Atkinson came to visit and I showed him a sample of what we were working on. He had been thinking about a thing called the Lisa Filer, which was being created by Dan Smith and Frank Ludolph. He wasn’t happy with their design. When he saw some ideas in our demo that were also in a project called Dataland from MIT, he liked it and we started a new project called IF (Icon Filer). Bill, Dan, and Frank worked on a new Filer based on these ideas and it was ready in time for the first Lisa computer to be released in 1983. Meanwhile, I was working on something else called the Resource Manager until later that year.

比尔·阿特金森来拜访,我向他展示了我们正在做的工作的样本。他一直在考虑一种叫做 Lisa Filer 的东西,它是由 Dan Smith 和 Frank Ludolph 创建的。他对他们的设计并不满意。当他在我们的演示中看到一些来自麻省理工学院名为 Dataland 的项目中的想法时,他很喜欢它,我们开始了一个名为 IF(图标文件管理器)的新项目。 Bill、Dan 和 Frank 根据这些想法开发了一款新的 Filer,它及时准备好,以迎接 1983 年第一台 Lisa 计算机的发布。与此同时,我一直在开发名为“资源管理器”的其他东西,直到那年晚些时候。

I still had trouble starting my work on the Finder until I learned how to manage files and programs. We wanted to make the Macintosh a very easy-to-use computer, like a special device that provides information, which anyone can use. One thing I thought could be improved about computers was that it is hard to give good names to files. In the Finder, I wanted to make it easy for people to give files names that make sense, without putting too many rules on what they can name it.

在我学会如何管理文件和程序之前,我仍然无法在 Finder 上开始工作。我们希望使麦金塔成为一款非常易于使用的计算机,就像一个提供信息的特殊设备,任何人都可以使用。
我认为计算机可以改进的一件事是很难给文件起好名字。在 Finder 中,我想让人们轻松地为文件命名有意义的名称,而不会对他们的命名设置太多规则。

A long time ago, and sometimes still today, there were rules for naming files. There were limits on how long the name could be and what types of characters were allowed. File names had to end with a special letter and period, like “.txt” for text files or “.exe” for programs. This helped the computer understand what type of file it was. Also, file names were usually limited to a maximum of eight characters before the special letter and period. This made it hard to understand what the file was named on other computers, which was something we wanted to avoid.

很久以前,有时甚至在今天,文件命名都有一些规则。名称的长度和允许使用的字符类型都有限制。
文件名必须以特殊字母和句点结尾,例如文本文件的“.txt”或程序的“.exe”。这有助于计算机了解它是什么类型的文件。
此外,文件名在特殊字母和句点之前通常限制为最多八个字符。这使得很难理解该文件在其他计算机上的名称,这是我们想要避免的。

We decided to let people name their files whatever they want, using any characters they choose, including spaces. This is okay because on Mac computers, you can just click on a file to choose it, and this works even with files that have spaces in their names. However, on computers where you use commands instead of clicking, it can be tricky to deal with files that have special characters in their names.

我们决定让人们随意命名他们的文件,使用他们选择的任何字符,包括空格。这没关系,因为在 Mac 计算机上,您只需单击文件即可选择它,即使文件名称中包含空格,这也适用。但是,在使用命令而不是单击的计算机上,处理名称中包含特殊字符的文件可能会很棘手。

The Grand Unified Model helped solve this problem too. The idea was to make file types similar to resource objects, which have a specific format and an ID or name. This means that files should be treated the same way, whether they’re a standalone file or stored with other files in a resource file. To do this, I decided to give files a special code, known as the type code, to indicate their format. The user wouldn’t need to know this code, so the computer would take care of it. Larry Kenyon made room in the file directory for this type code, and the Mac would keep the file name separate from the type.

大统一模型也帮助解决了这个问题。这个想法是使文件类型类似于资源对象,它们具有特定的格式和 ID 或名称。这意味着文件应该以相同的方式处理,无论它们是独立文件还是与其他文件一起存储在资源文件中。为此,我决定为文件提供一个特殊的代码(称为类型代码)来指示其格式。用户不需要知道该代码,因此计算机会处理它。 Larry Kenyon 在文件目录中为该类型代码腾出了空间,Mac 会将文件名与类型分开。

Just storing the file type in the folder wasn’t enough. There might be many programs that could open a certain type of file (like a text file). The Mac needed to know which program to use for a specific file. For example, a file called “My Resume” might need to be opened in MacWrite, while another file called “Marketing Plan” might need to be opened in WriteNow. The Finder also needed to know which program created the file, as that would be the best program to open it. So, Apple created another set of four letters, called a “creator code”, that would tell the Finder which program to use to open a specific file. It was also easy for the user to change the default program used to open a file by dragging the file to the program they wanted to use.

仅将文件类型存储在文件夹中是不够的。可能有许多程序可以打开某种类型的文件(如文本文件)。 Mac 需要知道对特定文件使用哪个程序。例如,名为“我的简历”的文件可能需要在 MacWrite 中打开,而另一个名为“营销计划”的文件可能需要在 WriteNow 中打开。
Finder 还需要知道哪个程序创建了该文件,因为这将是打开该文件的最佳程序。因此,Apple 创建了另一组四个字母,称为“创建者代码”,它会告诉 Finder 使用哪个程序来打开特定文件。
用户还可以通过将文件拖到他们想要使用的程序来轻松更改用于打开文件的默认程序。

For a long time, we also wanted to have icons for computer programs and documents on the Mac that make sense. To do this, we used a system called “type and creator” to easily connect a specific icon with each type of file that a certain program can handle. This way, when you look at a file, you can quickly see what program it belongs to and what kind of file it is.

长期以来,我们还希望 Mac 上的计算机程序和文档能够有有意义的图标。为此,我们使用了一个名为“类型和创建者”的系统来轻松地将特定图标与特定程序可以处理的每种类型的文件连接起来。这样,当您查看一个文件时,您可以快速看出它属于什么程序以及它是什么类型的文件。

Where would these special pictures (icons) come from and where would they be saved? It was clear that each program should make its own pictures for its application and files, and put this information inside the application itself. However, if we simply opened the application’s file every time we needed to show an icon, the computer would be very slow. I thought that the computer needed to store these icons and information in a special file. This was called the Desktop Database.

这些特殊的图片(图标)从哪里来,又会保存在哪里?很明显,每个程序都应该为其应用程序和文件制作自己的图片,并将这些信息放入应用程序本身中。然而,如果我们只是在每次需要显示图标时打开应用程序的文件,计算机的速度就会非常慢。我认为计算机需要将这些图标和信息存储在一个特殊的文件中。这被称为桌面数据库。

The Desktop Database

**桌面数据库**

Programmers reading information about the Macintosh computer’s Resource Manager might see a message that says, “The Resource Manager is Not a Database.” This is strange because one of the first things the Resource Manager was used for was actually a database. This database was called the Desktop Database and it stored information about computer programs, documents, and their icons.

阅读有关 Macintosh 计算机的资源管理器的信息的程序员可能会看到一条消息:“资源管理器不是数据库”。这很奇怪,因为资源管理器最初的用途之一实际上是数据库。该数据库称为桌面数据库,它存储有关计算机程序、文档及其图标的信息。

The application would have a list of resources with special names (known as IDs). These resources would be grouped together and called the “Bundle”. The Bundle would have a special type called “BNDL”. Inside the Bundle, there would be special resources called “FREF” that would connect a document or application type to a specific icon.

该应用程序将有一个具有特殊名称(称为 ID)的资源列表。这些资源将组合在一起并称为“捆绑包”。 Bundle 有一个特殊类型,称为“BNDL”。在捆绑包内,会有称为“FREF”的特殊资源,它将文档或应用程序类型连接到特定图标。

When the Finder finds an app on a disk, it checks a special list to see if it has seen this app before. If it hasn’t, it copies the app’s information and icon, and gives each icon a unique name. This helps ensure that apps work together correctly and don’t get mixed up. There’s a special file that helps the Finder do this, which is like a translator that helps the app’s icons talk to each other.

当 Finder 在磁盘上找到某个应用程序时,它会检查一个特殊列表以查看以前是否见过该应用程序。如果没有,它会复制应用程序的信息和图标,并为每个图标提供唯一的名称。这有助于确保应用程序正确协同工作并且不会混淆。有一个特殊的文件可以帮助 Finder 做到这一点,它就像一个翻译器,可以帮助应用程序的图标相互对话。

To make a picture of a specific document appear, one only needed to look up the right symbol (icon) for the document’s type and creator on the computer’s memory list, and then load the picture. This worked very well on the 400K disk because the computer’s picture manager was good and could handle the job for a long time - a really long time in the world of computers.

要显示特定文档的图片,只需在计算机的内存列表中查找该文档类型和创建者的正确符号(图标),然后加载该图片即可。这在 400K 磁盘上效果很好,因为计算机的图片管理器很好,可以处理很长时间的工作 - 在计算机世界中确实很长一段时间。

By the end of 1982, the Lisa Filer was almost complete. It was very big, taking up 360,000 kilobytes of space. This meant it was too big for us to use, and it did not follow the same rules as the other parts of the system. Although Bill offered to give us the code for the Filer, we always knew we would have to start again and make a new Finder from the beginning.

到 1982 年底,Lisa Filer 已基本完成。它非常大,占据了 360,000 KB 的空间。这意味着它对于我们来说太大而无法使用,并且它不遵循与系统其他部分相同的规则。尽管 Bill 提出向我们提供 Filer 的代码,但我们始终知道我们必须重新开始并从头开始创建一个新的 Finder。

The Mac was supposed to be ready to ship in January 1984. We had to finish it by then. By the end of 1983, I realized I needed help to get it done on time. That’s when Steve Capps was hired to work with me on the Finder. At the same time, important visitors like reporters and writers were being shown around the Mac team and talking to Andy, Steve Jobs, and other team members. Steve Capps and I had too much work to do, so we moved to a different office in a different building to focus on our tasks.

Mac 原本应该在 1984 年 1 月准备好发货。我们必须在那时完成它。到 1983 年底,我意识到我需要帮助才能按时完成任务。就在那时,史蒂夫·卡普斯 (Steve Capps) 受聘与我一起开发 Finder。与此同时,记者和作家等重要访客也被带到 Mac 团队周围,并与安迪、史蒂夫·乔布斯和其他团队成员交谈。史蒂夫·卡普斯和我有太多工作要做,因此我们搬到了另一栋大楼的另一间办公室,以专注于我们的任务。

It was hard to write the Finder. We had to use a lot of special assembly language to make it work because it needed to be very small to fit in the computer’s memory. Capps helped with some of the toughest parts, like copying files. We worked late into the night, listening to music from the band Violent Femmes and other punk rock songs. We had to finish quickly because time was running out.

编写 Finder 很困难。我们必须使用许多特殊的汇编语言才能使其工作,因为它需要非常小才能适合计算机内存。卡普斯帮助解决了一些最困难的部分,例如复制文件。我们工作到深夜,听着 Violent Femmes 乐队的音乐和其他朋克摇滚歌曲。我们必须尽快完成,因为时间已经不多了。

Capps and I finished the first version of the Finder just in time for the Mac’s launch on January 24 (as I always say, “Real Artists Ship”). The Finder was very small, only 46K bytes, which is much smaller than the Lisa Filer. Because of its small size, we were able to fit the entire System, Finder, an application, and a few documents onto a single floppy disk. We were very happy, but also very tired. The big project we had been working on, which included the Finder, was finally complete.

Capps 和我在 1 月 24 日 Mac 发布之际完成了 Finder 的第一个版本(正如我常说的“真正的艺术家之船”)。 Finder非常小,只有46K字节,比Lisa Filer小很多。由于其体积小,我们能够将整个系统、Finder、应用程序和一些文档放入一张软盘上。我们很高兴,但也很累。我们一直在做的大项目,其中包括 Finder,终于完成了。
目录