ซอร์สโค้ด 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 ความคิดเห็น
ความคิดเห็นจาก Hacker News
สรุปรวมความคิดเห็นจาก Hacker News
ประสบการณ์การเก็บถาวรซอร์สโค้ดของ Adobe
ประสบการณ์แลกเปลี่ยนซอร์สโค้ดกับ Adobe
ความสม่ำเสมอของ UX
ยากจะเข้าใจความงามของซอร์สโค้ด
บทความเกี่ยวกับ Adobe Photoshop เวอร์ชัน 1.x
การป้องกันไม่ให้เครื่องหมายการค้ากลายเป็นคำสามัญ
ชื่นชมการเปิดเผยซอร์สโค้ดเก่า
ประสบการณ์กับ Photoshop เวอร์ชันยุคแรก
เส้นทางอาชีพของ John Knoll