4 คะแนน โดย GN⁺ 2024-05-16 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

ซอร์สโค้ด Adobe Photoshop

อัญมณีแห่งซอฟต์แวร์: ซีรีส์ซอร์สโค้ดประวัติศาสตร์ของพิพิธภัณฑ์ประวัติศาสตร์คอมพิวเตอร์

  • Photoshop: หมายถึงการดัดแปลงภาพดิจิทัลด้วยซอฟต์แวร์ Photoshop หรือซอฟต์แวร์แก้ไขภาพอื่น ๆ โดยเฉพาะการเปลี่ยนแปลงในลักษณะที่บิดเบือนความเป็นจริง (ที่มา: พจนานุกรม Merriam-Webster Online, ปี 2012)

การกำเนิดของ Photoshop

  • ช่วงปลายทศวรรษ 1980 พี่น้อง Thomas Knoll และ John Knoll เริ่มออกแบบและเขียนโปรแกรมแก้ไขภาพ
  • Thomas Knoll เป็นนักศึกษาปริญญาเอกด้าน computer vision ที่มหาวิทยาลัยมิชิแกน และในปี 1987 เขาได้เขียนโปรแกรมสำหรับแสดงผลและแก้ไขภาพดิจิทัล
  • John Knoll ทำงานที่ Industrial Light & Magic บริษัทด้าน visual effects สำหรับภาพยนตร์ และนำโปรแกรมนี้ไปใช้ประโยชน์ในการแต่งภาพ

พัฒนาการของ Photoshop

  • โปรแกรมค่อย ๆ พัฒนาขึ้นและถูกเรียกในชื่อ "Display"
  • ช่วงฤดูร้อนปี 1988 ทั้งคู่ตระหนักว่าโปรแกรมนี้มีศักยภาพทางการค้า จึงเปลี่ยนชื่อเป็น "Photoshop"
  • Barneyscan ผู้ผลิต slide scanner ได้นำเวอร์ชัน 0.87 ไปรวมชุดจำหน่ายประมาณ 200 ชุด ภายใต้ชื่อ "Barneyscan XP"

ข้อตกลงกับ Adobe

  • จากคำแนะนำของ Russell Brown ซึ่งเป็น art director ของ Adobe ทำให้ Adobe ตัดสินใจซื้อไลเซนส์เพื่อจัดจำหน่าย Photoshop
  • มีการลงนามสัญญาในเดือนเมษายน 1989 และเปิดตัวเวอร์ชัน 1.0 ในช่วงต้นปี 1990
  • หลังจากนั้น 10 ปี Photoshop มียอดขายมากกว่า 3 ล้านชุด

รายละเอียดทางเทคนิคของ Photoshop ยุคแรก

  • Photoshop รุ่นแรกเขียนขึ้นด้วย Pascal เป็นหลักสำหรับ Apple Macintosh และบางส่วนเขียนด้วยภาษาเครื่องสำหรับไมโครโปรเซสเซอร์ Motorola 68000
  • ในเวอร์ชัน 1 Thomas เป็นวิศวกรเพียงคนเดียว ส่วนเวอร์ชัน 2 มีวิศวกรเข้าร่วมอีกสองคน
  • Thomas ดูแลงานแอปพลิเคชันหลัก ขณะที่ John เขียนปลั๊กอินประมวลผลภาพจำนวนมาก

การเปิดเผยซอร์สโค้ด

  • ด้วยการอนุญาตจาก Adobe Systems พิพิธภัณฑ์ประวัติศาสตร์คอมพิวเตอร์ได้เผยแพร่ซอร์สโค้ด Photoshop เวอร์ชัน 1.0.1 จากปี 1990 สำหรับการใช้งานที่ไม่ใช่เชิงพาณิชย์
  • ซอร์สโค้ดประกอบด้วย 179 ไฟล์ และเป็นโค้ดที่มีโครงสร้างดีมากเกือบไร้คอมเมนต์ รวมประมาณ 128,000 บรรทัด
  • ประมาณ 75% ของโค้ดเขียนด้วย Pascal และราว 15% เขียนด้วย 68000 assembly language

คำอธิบายเกี่ยวกับซอร์สโค้ด

  • ความเห็นจาก Grady Booch หัวหน้านักวิทยาศาสตร์ด้านวิศวกรรมซอฟต์แวร์แห่ง IBM Research Almaden และกรรมการของพิพิธภัณฑ์ประวัติศาสตร์คอมพิวเตอร์:
    • การได้เปิดดูซอร์สโค้ดของ Photoshop 1.0 ก็เหมือนกับการเปิดสุสานของโบราณวัตถุโบราณ
    • มีการแยก interface และ abstraction อย่างสม่ำเสมอ และตัดสินใจออกแบบ abstraction แบบแยกเป็นคอมโพเนนต์ได้อย่างดี
    • โครงสร้างพื้นฐานยังคงถูกเก็บรักษาไว้แม้ในการใช้งานสมัยใหม่
    • แม้แทบไม่มีคอมเมนต์ แต่โค้ดอ่านง่ายมาก

ภาพหน้าจอของ Photoshop ยุคแรก

  • หน้าหลัก: แสดงเครื่องมือที่ใช้งานได้
  • สามารถเลือกสี ขนาด และพื้นผิวของแปรงได้
  • มีเครื่องมือเลือกหลายแบบและฟิลเตอร์ภาพหลากหลาย
  • ฟีเจอร์ image layer ที่เพิ่มเข้ามาในเวอร์ชัน 3 ยังไม่มีในเวอร์ชันแรก ๆ
  • หน้าการตั้งค่าที่ให้ความสามารถในการปรับแต่งผู้ใช้
  • สามารถเลือกแบบอักษร ขนาดตัวอักษร และสไตล์ได้อย่างจำกัด

รายการเผยแพร่ซอร์สโค้ดประวัติศาสตร์

  • ซอร์สโค้ด MacPaint และ QuickDraw, 18 กรกฎาคม 2010
  • ซอร์สโค้ดภาษาโปรแกรม APL, 10 ตุลาคม 2012
  • ซอร์สโค้ด Adobe Photoshop, 13 กุมภาพันธ์ 2013
  • ซอร์สโค้ด Apple II DOS, 12 พฤศจิกายน 2013
  • ซอร์สโค้ดยุคแรกของ Microsoft MS-DOS, 25 มีนาคม 2014
  • ซอร์สโค้ด Microsoft Word for Windows เวอร์ชัน 1.1a, 25 มีนาคม 2014
  • ซอร์สโค้ดยุคแรกของ Digital Research CP/M, 1 ตุลาคม 2014
  • ซอร์สโค้ด Xerox Alto, 21 ตุลาคม 2014
  • ซอร์สโค้ดยุคแรกของ Electronic Arts DeluxePaint, 22 กรกฎาคม 2015

แนะนำผู้เขียน

  • Len Shustek เป็นประธานผู้ก่อตั้งกิตติมศักดิ์ของพิพิธภัณฑ์ประวัติศาสตร์คอมพิวเตอร์

บทความที่เกี่ยวข้อง

  • บล็อก CHM: คอมพิวเตอร์สำหรับพวกเราทุกคน, 15 ธันวาคม 2023
  • บล็อก CHM: Furby ของคุณอายุเท่าไร?, 13 ธันวาคม 2023
  • บล็อก CHM: เต่า บล็อก และความทรงจำ, 5 ธันวาคม 2023

ความเห็นของ GN⁺

  • คุณค่าทางประวัติศาสตร์ของ Photoshop: Photoshop ได้จุดประกายการปฏิวัติการแก้ไขภาพดิจิทัล และซอร์สโค้ดของมันช่วยให้เข้าใจบริบททางประวัติศาสตร์ของการพัฒนาซอฟต์แวร์ยุคแรกได้
  • คุณค่าด้านการศึกษาของโค้ด: แม้แทบไม่มีคอมเมนต์ แต่โค้ดที่มีโครงสร้างดีสามารถเป็นสื่อที่มีประโยชน์ต่อการเรียนการสอนด้านวิศวกรรมซอฟต์แวร์
  • ความก้าวหน้าทางเทคนิค: การเปรียบเทียบโครงสร้างของ Photoshop ยุคแรกกับเวอร์ชันปัจจุบันช่วยให้เข้าใจวิวัฒนาการของสถาปัตยกรรมซอฟต์แวร์ได้
  • มุมมองเชิงวิพากษ์: การเปิดเผยซอร์สโค้ดยุคแรกมีคุณค่าทางประวัติศาสตร์ แต่การจำกัดการใช้งานเชิงพาณิชย์ทำให้การนำไปใช้จริงมีข้อจำกัด
  • โครงการที่เกี่ยวข้อง: ซอฟต์แวร์แก้ไขภาพโอเพนซอร์สอย่าง GIMP ก็มีฟังก์ชันคล้ายกันและอาจพิจารณาเป็นทางเลือกแทน Photoshop ได้

1 ความคิดเห็น

 
GN⁺ 2024-05-16
ความคิดเห็นจาก Hacker News

สรุปรวมความคิดเห็นจาก Hacker News

  • ประสบการณ์การเก็บถาวรซอร์สโค้ดของ Adobe

    • แชร์ประสบการณ์การเก็บถาวรซอร์สโค้ดของ Photoshop, Illustrator, PostScript เป็นต้น ที่ Adobe
    • ใช้แบ็กอัปฟลอปปีดิสก์ Mac ต้นฉบับของ Thomas Knoll เพื่อโอนไฟล์ด้วย Mac Plus และสาย serial
    • มีไฟล์ในฟอร์แมต archive แบบบีบอัดโบราณหลายแบบ รวมถึงไฟล์เวอร์ชัน 0.54 ลงวันที่ 6 กรกฎาคม 1988
    • เก็บถาวรโค้ดทั้งหมดไว้บนเซิร์ฟเวอร์ Perforce แต่แบ็กอัประยะแรกของ Illustrator อยู่บนดิสก์ภายนอกที่เสียหาย
  • ประสบการณ์แลกเปลี่ยนซอร์สโค้ดกับ Adobe

    • ประสบการณ์ไปเยือน Adobe ในช่วงกลางทศวรรษ 90 เพื่อแลกเปลี่ยนซอร์สโค้ด
    • PhotoShop พัฒนาบนพื้นฐานของ MacApp และมีเลเยอร์ที่ทำงานบน Windows
    • ได้นำโค้ดบางส่วนของ PhotoShop และส่วนคำนวณ color space มาใช้ แต่ส่วนใหญ่ถูกมองข้าม
    • อยากรู้ว่ายังมีร่องรอยของ MacApp หลงเหลืออยู่ในซอร์สโค้ดปัจจุบันหรือไม่
  • ความสม่ำเสมอของ UX

    • รู้สึกทึ่งที่ UX โดยรวมยังคงเหมือนเดิมอยู่มาก
    • ในช่วงแรกที่ MacBook Pro M1 วางขาย Adobe Photoshop เวอร์ชัน Silicon beta ทำงานได้เร็วที่สุด
    • ตอนนี้กลับมาช้าอีกครั้ง
  • ยากจะเข้าใจความงามของซอร์สโค้ด

    • เคยดูซอร์สโค้ดแล้วแต่เข้าใจได้ยากว่าความงามของมันอยู่ตรงไหน
    • ระหว่างเรียน Rust และคิดเรื่องโครงสร้างโค้ด ก็สงสัยว่าจะสร้าง UI แบบ Photoshop หรือ 3D Studio Max ได้อย่างไร
    • อยากรู้แหล่งข้อมูลดี ๆ สำหรับเรียนรู้โครงสร้างโค้ด
  • บทความเกี่ยวกับ Adobe Photoshop เวอร์ชัน 1.x

    • บทความปี 2013 ว่าด้วย Adobe Photoshop เวอร์ชัน 1.x ในปี 1990
  • การป้องกันไม่ให้เครื่องหมายการค้ากลายเป็นคำสามัญ

    • Adobe กำลังพยายามป้องกันไม่ให้เครื่องหมายการค้ากลายเป็นคำสามัญ
    • ยกตัวอย่างการใช้ที่ถูกต้อง เช่น "ภาพได้รับการปรับปรุงด้วยซอฟต์แวร์ Adobe® Photoshop® Elements" แทน "photoshopped"
  • ชื่นชมการเปิดเผยซอร์สโค้ดเก่า

    • ชื่นชมบริษัทที่เปิดเผยซอร์สโค้ดของซอฟต์แวร์เก่า
    • มีความเป็นไปได้ว่าซอร์สโค้ดจำนวนมากสูญหายไปตามกาลเวลาและผ่านการเข้าซื้อกิจการหลายครั้ง
    • การใช้ระบบควบคุมเวอร์ชันอย่างแพร่หลายเป็นเรื่องที่เพิ่งเกิดขึ้นไม่นาน จึงเป็นไปได้ว่าซอร์สโค้ดจำนวนมากยังคงอยู่ในรูปของเทปสำรองแบบสุ่ม ฟลอปปีดิสก์ หรือเอกสารพิมพ์ใส่แฟ้ม
  • ประสบการณ์กับ Photoshop เวอร์ชันยุคแรก

    • เคยเห็น Photoshop ก่อนยุค Adobe ที่โรงพยาบาล
    • เวอร์ชัน MacApp ในตอนนั้นอาจยังเป็นสถานะ beta
    • ใช้อัลกอริทึม B-spline ของ Tom Knoll เป็นพื้นฐานของตัวแก้ไขเส้นโค้ง
  • เส้นทางอาชีพของ John Knoll

    • John Knoll เป็นหัวหน้าฝ่าย FX ของ Star Wars ภาค prequel และกำกับ Rogue One
    • สารคดีเบื้องหลังของภาค prequel ยังคงได้รับการเก็บรักษาไว้อย่างดี