4 điểm bởi GN⁺ 2024-05-16 | 1 bình luận | Chia sẻ qua WhatsApp

Mã nguồn Adobe Photoshop

Viên ngọc phần mềm: loạt mã nguồn lịch sử của Bảo tàng Lịch sử Máy tính

  • Photoshop: nghĩa là chỉnh sửa hình ảnh kỹ thuật số bằng phần mềm Photoshop hoặc phần mềm chỉnh sửa ảnh khác, đặc biệt theo cách làm méo mó hiện thực (nguồn: từ điển trực tuyến Merriam-Webster, năm 2012)

Sự ra đời của Photoshop

  • Vào cuối những năm 1980, hai anh em Thomas Knoll và John Knoll bắt đầu thiết kế và viết một chương trình chỉnh sửa ảnh
  • Thomas Knoll là nghiên cứu sinh tiến sĩ ngành thị giác máy tính tại Đại học Michigan, và vào năm 1987 đã viết một chương trình để hiển thị và chỉnh sửa hình ảnh kỹ thuật số
  • John Knoll làm việc tại công ty hiệu ứng hình ảnh điện ảnh Industrial Light & Magic và đã sử dụng chương trình này một cách hữu ích cho việc chỉnh sửa ảnh

Sự phát triển của Photoshop

  • Chương trình dần phát triển và được gọi bằng cái tên "Display"
  • Mùa hè năm 1988, họ nhận ra chương trình này có tiềm năng thương mại và đổi tên thành "Photoshop"
  • Nhà sản xuất máy quét slide Barneyscan đã bán kèm khoảng 200 bản phiên bản 0.87 với tên "Barneyscan XP"

Thỏa thuận với Adobe

  • Theo đề nghị của giám đốc nghệ thuật Russell Brown của Adobe, Adobe quyết định mua giấy phép phân phối Photoshop
  • Hợp đồng được ký vào tháng 4 năm 1989, và đầu năm 1990 phiên bản 1.0 được phát hành
  • Trong 10 năm sau đó, hơn 3 triệu bản Photoshop đã được bán ra

Chi tiết kỹ thuật của Photoshop thời kỳ đầu

  • Photoshop thời kỳ đầu chủ yếu được viết bằng Pascal cho Apple Macintosh, một phần được viết bằng mã máy cho vi xử lý Motorola 68000
  • Ở phiên bản 1, Thomas là kỹ sư duy nhất; đến phiên bản 2 có thêm hai kỹ sư tham gia
  • Thomas làm phần chương trình ứng dụng cơ bản, còn John viết nhiều plugin xử lý hình ảnh

Công bố mã nguồn

  • Với sự cho phép của Adobe Systems, Bảo tàng Lịch sử Máy tính đã công bố mã nguồn Photoshop phiên bản 1.0.1 năm 1990 cho mục đích phi thương mại
  • Mã nguồn gồm 179 tệp, với khoảng 128.000 dòng mã có cấu trúc tốt và hầu như không có chú thích
  • Khoảng 75% mã được viết bằng Pascal, khoảng 15% được viết bằng hợp ngữ 68000

Bình luận về mã nguồn

  • Ý kiến của Grady Booch, nhà khoa học trưởng về kỹ nghệ phần mềm tại IBM Research Almaden và là ủy viên của Bảo tàng Lịch sử Máy tính:
    • Việc mở mã nguồn Photoshop 1.0 giống như mở một ngôi mộ chứa cổ vật cổ đại
    • Sự tách bạch nhất quán giữa giao diện và trừu tượng hóa, cùng các quyết định thiết kế theo hướng thành phần hóa trừu tượng, được thực hiện rất tốt
    • Cấu trúc cơ bản vẫn được giữ nguyên ngay cả trong các bản triển khai hiện đại
    • Dù gần như không có chú thích, mã vẫn rất dễ đọc

Ảnh chụp màn hình Photoshop thời kỳ đầu

  • Màn hình chính: hiển thị các công cụ có sẵn
  • Có thể chọn màu cọ, kích thước và kết cấu
  • Cung cấp nhiều công cụ chọn vùng và bộ lọc hình ảnh
  • Tính năng layer hình ảnh được thêm ở phiên bản 3 nên không có trong các phiên bản đầu
  • Trang thiết lập cung cấp các tính năng tùy chỉnh
  • Có thể chọn số lượng phông chữ, cỡ chữ và kiểu chữ hạn chế

Danh sách công bố mã nguồn lịch sử

  • Mã nguồn MacPaint và QuickDraw, ngày 18 tháng 7 năm 2010
  • Mã nguồn ngôn ngữ lập trình APL, ngày 10 tháng 10 năm 2012
  • Mã nguồn Adobe Photoshop, ngày 13 tháng 2 năm 2013
  • Mã nguồn Apple II DOS, ngày 12 tháng 11 năm 2013
  • Mã nguồn ban đầu của Microsoft MS-DOS, ngày 25 tháng 3 năm 2014
  • Mã nguồn Microsoft Word for Windows phiên bản 1.1a, ngày 25 tháng 3 năm 2014
  • Mã nguồn Digital Research CP/M thời kỳ đầu, ngày 1 tháng 10 năm 2014
  • Mã nguồn Xerox Alto, ngày 21 tháng 10 năm 2014
  • Mã nguồn thời kỳ đầu của Electronic Arts DeluxePaint, ngày 22 tháng 7 năm 2015

Giới thiệu tác giả

  • Len Shustek là Chủ tịch sáng lập danh dự của Bảo tàng Lịch sử Máy tính

Bài viết liên quan

  • CHM Blog: Máy tính cho tất cả chúng ta, ngày 15 tháng 12 năm 2023
  • CHM Blog: Furby của bạn bao nhiêu tuổi?, ngày 13 tháng 12 năm 2023
  • CHM Blog: Rùa, khối lệnh và ký ức, ngày 5 tháng 12 năm 2023

Ý kiến của GN⁺

  • Giá trị lịch sử của Photoshop: Photoshop đã tạo ra cuộc cách mạng trong chỉnh sửa hình ảnh kỹ thuật số, và thông qua mã nguồn của nó, có thể hiểu được bối cảnh lịch sử của giai đoạn phát triển phần mềm ban đầu.
  • Giá trị giáo dục của mã nguồn: Dù gần như không có chú thích, mã có cấu trúc tốt có thể trở thành tài liệu hữu ích cho giáo dục kỹ nghệ phần mềm.
  • Tiến bộ kỹ thuật: Bằng cách so sánh cấu trúc của Photoshop thời kỳ đầu với cấu trúc của các phiên bản hiện đại, có thể hiểu được sự tiến hóa của kiến trúc phần mềm.
  • Góc nhìn phê phán: Việc công bố mã nguồn ban đầu có giá trị lịch sử, nhưng do bị giới hạn sử dụng thương mại nên có giới hạn trong việc khai thác thực tế.
  • Dự án liên quan: Phần mềm chỉnh sửa ảnh mã nguồn mở như GIMP cũng cung cấp các tính năng tương tự và có thể được xem là một lựa chọn thay thế cho Photoshop.

1 bình luận

 
GN⁺ 2024-05-16
Ý kiến trên Hacker News

Tóm tắt các bình luận trên Hacker News

  • Trải nghiệm lưu trữ mã nguồn Adobe

    • Chia sẻ trải nghiệm lưu trữ mã nguồn của Photoshop, Illustrator, PostScript và các dự án khác tại Adobe.
    • Dùng bản sao lưu đĩa mềm Mac gốc của Thomas Knoll để truyền tệp bằng Mac Plus và cáp serial.
    • Có các tệp ở nhiều định dạng lưu trữ nén cổ, bao gồm cả tệp của phiên bản 0.54 đề ngày 6 tháng 7 năm 1988.
    • Toàn bộ mã đã được lưu trữ vào máy chủ Perforce, nhưng bản sao lưu Illustrator thời kỳ đầu nằm trên một ổ đĩa ngoài đã hỏng.
  • Trải nghiệm trao đổi mã nguồn với Adobe

    • Chia sẻ trải nghiệm đến thăm Adobe vào giữa thập niên 90 để trao đổi mã nguồn.
    • Photoshop dựa trên MacApp và có một lớp hoạt động trên Windows.
    • Có lấy một phần mã của Photoshop và phần tính toán không gian màu, nhưng phần lớn đã bị bỏ qua.
    • Muốn kiểm tra xem trong mã nguồn hiện tại còn dấu vết của MacApp hay không.
  • Tính nhất quán của UX

    • Ngạc nhiên vì UX nhìn chung vẫn gần như không đổi.
    • Vào giai đoạn đầu MacBook Pro M1 ra mắt, bản beta Silicon của Adobe Photoshop chạy nhanh nhất.
    • Hiện tại nó lại chậm đi.
  • Khó cảm nhận vẻ đẹp của mã nguồn

    • Đã xem mã nguồn nhưng khó hiểu được vẻ đẹp của nó.
    • Trong lúc học Rust và suy nghĩ về cấu trúc mã, người viết từng tự hỏi phải xây dựng UI như Photoshop hay 3D Studio Max bằng cách nào.
    • Muốn biết các tài nguyên tốt để học về cấu trúc mã.
  • Bài viết về Adobe Photoshop phiên bản 1.x

    • Bài viết năm 2013 về Adobe Photoshop 1.x của năm 1990.
  • Ngăn thương hiệu bị khái quát hóa

    • Adobe đang nỗ lực ngăn thương hiệu bị dùng như danh từ chung.
    • Đưa ra ví dụ cách dùng đúng như "hình ảnh được cải thiện bằng phần mềm Adobe® Photoshop® Elements" thay cho "photoshopped".
  • Lời khen cho việc công bố mã nguồn cũ

    • Khen ngợi các công ty công bố mã nguồn của phần mềm cũ.
    • Rất nhiều mã nguồn có lẽ đã biến mất theo thời gian và qua nhiều lần mua lại.
    • Việc dùng hệ thống quản lý phiên bản một cách phổ biến là hiện tượng khá mới, nên nhiều mã nguồn có thể chỉ còn tồn tại trên các bản sao lưu băng từ ngẫu nhiên, đĩa mềm hoặc được in ra và lưu trong bìa còng.
  • Trải nghiệm với các phiên bản Photoshop đầu tiên

    • Từng thấy Photoshop thời trước Adobe tại một bệnh viện.
    • Khi đó phiên bản MacApp có thể vẫn đang ở trạng thái beta.
    • Đã dùng thuật toán B-spline của Tom Knoll làm nền tảng cho trình chỉnh sửa đường cong.
  • Sự nghiệp của John Knoll

    • John Knoll là FX lead của loạt tiền truyện Star Wars và là người chỉ đạo Rogue One.
    • Các phim tài liệu hậu trường của loạt tiền truyện vẫn được bảo tồn rất tốt.