VietTechiesHIỂU CÔNG NGHỆ. MỞ GÓC NHÌN.
☰ Chuyên mục

Âm hai nghìn dòng code: Hành trình Bill Atkinson tạo nên QuickDraw và MacPaint

06/10/2026 · VietTechies · Biên tập

Bức minh họa phác họa chiếc cọ vẽ bằng thủy tinh trong suốt phát sáng lơ lửng trên lưới điểm ảnh hình học cùng bảng màu đặt trên nền xanh chàm tối.
Ảnh minh họa do AI tạo.

Năm 1982, khi ban quản lý Apple yêu cầu các kỹ sư báo cáo năng suất hằng tuần bằng số dòng code đã viết, Bill Atkinson đã nộp một con số âm duy nhất: âm 2.000. Ông vừa trải qua tuần lễ tái cấu trúc các thủ tục phần mềm cho dự án Apple Lisa, giúp tốc độ tính toán vùng tăng gấp sáu lần nhưng lại thu gọn đáng kể dung lượng mã nguồn. Với Atkinson, lập trình phần mềm là một hình thái nghệ thuật, nơi sự rõ ràng và hiệu quả quan trọng hơn nhiều so với khối lượng dòng lệnh đơn thuần.

Ảnh tư liệu: Andy Hertzfeld
Ảnh tư liệu: Andy Hertzfeld. Ảnh: Tony Wills. Wikimedia Commons · CC BY-SA 3.0. Đã đổi kích thước và định dạng WebP; không chỉnh sửa hình ảnh.

Báo cáo dòng code âm

Atkinson tin rằng cách tốt nhất để ngăn ngừa lỗi phần mềm là viết mã nguồn ngăn nắp, dễ hiểu ngay từ cái nhìn đầu tiên. Theo Bảo tàng Lịch sử Máy tính, ông thường xuyên viết lại hoàn toàn từng phần mã nguồn từ đầu tới năm lần chỉ để đạt được độ sáng tỏ tối đa. Khi các quản lý dự án áp dụng mẫu biểu theo dõi năng suất hằng tuần trong giai đoạn tăng tốc phát triển Lisa, Atkinson đã sử dụng con số dòng lệnh âm để chứng minh rằng việc loại bỏ mã thừa đem lại hiệu năng vượt trội cho phần mềm. Nhận được các báo cáo âm trong vài tuần liên tiếp, ban quản lý quyết định không yêu cầu ông nộp biểu mẫu nữa.

Từ LisaGraf đến QuickDraw

Trước khi bắt tay vào dự án Macintosh, Atkinson từng phát triển LisaGraf cho dòng máy Apple Lisa nhằm quản lý đồ họa điểm ảnh. Khi chuyển sang phục vụ dự án Macintosh, LisaGraf tiến hóa thành QuickDraw – thư viện đồ họa cốt lõi chịu trách nhiệm hiển thị mọi hình ảnh trên màn hình. QuickDraw bao gồm 17.101 dòng mã hợp ngữ dành cho vi xử lý Motorola 68000, phân bố trên 36 tập tin. Để loại bỏ hiện tượng nhấp nháy màn hình vốn rất phổ biến ở các phần mềm đồ họa thời đó — nơi các hình dạng bị xóa đi trước khi vẽ lại —, Atkinson đã tạo ra một vùng đệm bộ nhớ ẩn. Bằng cách dựng hình ảnh ẩn trong bộ nhớ trước khi xuất kết quả lên màn hình, QuickDraw đã đem lại trải nghiệm thị giác vô cùng mượt mà.

Thiết kế không gian hội họa

Đầu năm 1983, Atkinson bắt đầu phát triển chương trình vẽ MacPaint cho Macintosh, cải tiến từ bản mẫu LisaSketch (còn gọi là SketchPad). Thay vì dùng menu thả xuống để chọn họa tiết vẽ như SketchPad, ông thiết kế các bảng công cụ cố định ngay trên màn hình. Mã nguồn của ứng dụng gồm 5.822 dòng Apple Pascal cho phần xử lý logic cấp cao và 3.583 dòng hợp ngữ cho các thao tác yêu cầu tốc độ xử lý tức thì. Đến tháng 4 năm 1983, Atkinson bổ sung các công cụ biểu tượng như FatBits cho phép chỉnh sửa từng điểm ảnh, Paint Bucket để đổ màu vùng kín, và Lasso để chọn các vùng không có hình dạng chữ nhật. Ông thậm chí còn viết một thủ tục nhận dạng ký tự quang học để chuyển hình vẽ thành văn bản, nhưng sau đó đã gỡ bỏ để tránh MacPaint biến thành một trình soạn thảo văn bản nửa vời thay vì một ứng dụng đồ họa chuyên biệt.

Gói gọn nghệ thuật trong 128 kilobyte

Atkinson hoàn tất MacPaint vào tháng 10 năm 1983, đưa phần mềm vận hành hoàn hảo trong những giới hạn phần cứng khắc nghiệt lúc bấy giờ. Chiếc máy tính Macintosh nguyên bản chạy trên vi xử lý Motorola 68000 tốc độ 8 MHz, với dung lượng bộ nhớ vỏn vẹn 128 kilobyte và không có phần cứng tính toán số thực dấu phẩy động riêng. MacPaint, QuickDraw cùng các thủ tục thiết yếu của hệ điều hành đều phải cùng chung sống trong dung lượng bộ nhớ vô cùng hạn hẹp đó.

Dù đối mặt với những ràng buộc khắt khe ấy, bộ mã nguồn được tinh chỉnh tỉ mỉ của Atkinson vẫn đem lại sự tương tác thị giác mượt mà và phản hồi tức thì khi chiếc máy tính chính thức ra mắt. Nhờ chứng minh rằng đồ họa điểm ảnh tốc độ cao có thể chạy mượt mà trong 128 kilobyte bộ nhớ mà không cần phần cứng số thực dấu phẩy động, MacPaint và QuickDraw đã thiết lập một bài đo hiệu năng mới cho phần mềm máy tính cá nhân. Atkinson đã cho thấy quá trình tái cấu trúc kiên trì cùng kiến trúc mã nguồn sạch sẽ có thể khai phá sức mạnh tính toán tương tác ngay trên những phần cứng hạn chế nhất.

Ảnh đầu bài: minh họa do AI tạo, không phải ảnh tư liệu.

Nguồn: MacPaint and QuickDraw Source Code