Kode Sumber Adobe Photoshop 1.0.1 yang Dipublikasikan pada 2013
(computerhistory.org)- Photoshop, yang menjadi alat utama untuk penyuntingan gambar digital, berawal dari program personal pada 1987, lalu melalui distribusi Adobe dan menjadi produk komersial pada 1990
- Computer History Museum, atas izin Adobe Systems Inc., mempublikasikan kode sumber Photoshop 1.0.1 untuk penggunaan nonkomersial
- Kode yang dipublikasikan terdiri dari 179 file, sekitar 128.000 baris, dengan sebagian besar ditulis dalam Pascal dan assembly 68000
- Pustaka aplikasi MacApp yang dilisensikan dari Apple tidak termasuk dalam publikasi ini, dan ada pembatasan untuk redistribusi serta penggunaan komersial
- Grady Booch menilai bahwa dari kode awal tersebut terlihat desain yang terstruktur dengan baik dan struktur dasar yang berlanjut hingga Photoshop modern
Awal Photoshop dan komersialisasinya
- Thomas Knoll adalah mahasiswa doktoral yang meneliti computer vision di University of Michigan, dan pada 1987 ia menulis program untuk menampilkan serta memodifikasi gambar digital
- John Knoll, yang bekerja di Industrial Light & Magic, melihat bahwa program ini berguna untuk penyuntingan foto, tetapi sejak awal tidak ada niat untuk menjadikannya produk
- Nama awalnya adalah Display, dan seiring fiturnya makin canggih, pada musim panas 1988 mereka menilai program ini bisa menjadi produk komersial
- Kedua bersaudara itu mengganti namanya menjadi Photoshop, dan produsen pemindai slide Barneyscan membundel sekitar 200 salinan versi 0.87 dengan nama Barneyscan XP
Adobe dan peluncuran Photoshop 1.0
- Adobe, atas dorongan art director Russell Brown, memutuskan membeli lisensi untuk mendistribusikan versi Photoshop yang telah ditingkatkan
- Kesepakatan selesai pada April 1989, dan Photoshop 1.0 mulai dikirimkan sejak awal 1990
- Selama 10 tahun berikutnya, Photoshop terjual lebih dari 3 juta salinan
- “Photoshop” menjadi begitu luas digunakan hingga di kamus online Merriam-Webster dipakai sebagai verba yang berarti mengubah gambar digital dengan Photoshop atau perangkat lunak penyunting gambar lainnya
Kode sumber Photoshop 1.0.1 yang dipublikasikan
- Computer History Museum, dengan izin Adobe Systems Inc., mempublikasikan kode sumber Photoshop 1.0.1 versi 1990 untuk penggunaan nonkomersial
- Sebagian besar kode disertakan, tetapi pustaka aplikasi MacApp yang dilisensikan dari Apple dikecualikan
- Folder terkompresi berisi 179 file, terdiri dari sekitar 128.000 baris kode
- Sekitar 75% adalah Pascal
- Sekitar 15% adalah assembly Motorola 68000
- Sisanya adalah berbagai jenis data
- Photoshop awal ditulis terutama dalam Pascal untuk Apple Macintosh, dan bagian yang membutuhkan efisiensi eksekusi menggunakan bahasa mesin untuk Motorola 68000
- Thomas Knoll menyatakan bahwa pada versi 1 ia adalah satu-satunya engineer, dan pada versi 2 ada dua engineer
- Thomas menangani program aplikasi utama, sementara John menulis berbagai plugin pemrosesan gambar
Unduhan dan ketentuan lisensi
- Untuk mengunduh kode, pengguna harus menyetujui ketentuan lisensi
- Lisensi hanya mengizinkan penggunaan nonkomersial, dan tidak memberikan hak untuk memposting salinan di tempat lain di web serta melisensikannya kembali kepada pihak ketiga
- Materi terkait:
Struktur kode menurut Grady Booch
- Grady Booch membandingkan pengalaman membuka kode sumber Photoshop 1.0 dengan Howard Carter yang pertama kali membuka makam Tutankhamun
- Kode tersebut dinilai sebagai sistem yang sangat terstruktur dengan baik, dengan pemisahan antarmuka dan abstraksi yang konsisten
- Untuk setiap kombinasi antarmuka dan implementasi umumnya ada satu tipe utama, sehingga keputusan desain yang mengomponenkan abstraksi mudah diikuti
- Nama yang konsisten, metode yang terbagi dengan tepat, dan implementasi yang sederhana membuat struktur sistem relatif mudah dipahami
- Di Photoshop 1.0 terlihat struktur dasar yang masih tersisa dalam bentuk yang lebih berkembang pada implementasi modern
- Tile dan filter disebut sebagai struktur yang representatif
- Termasuk abstraksi memori virtual untuk menangani gambar yang jauh lebih besar daripada buffer tampilan atau memori utama
- Photoshop 1.0 berukuran sedikit di atas 100.000 baris, tetapi versi modern mencapai lebih dari 10 juta baris
- Baik dulu maupun sekarang, banyak kode terkait dengan input/output dan berbagai format file yang harus ditangani Photoshop
- Kode sumber versi 1.0 hampir tidak memiliki komentar, dan sebagian besar komentar menempel pada potongan assembly
- Booch menilai bahwa kurangnya komentar bukan masalah karena kodenya mudah dibaca, dan komentar justru mungkin bisa mengganggu
- Di dalam kode juga tersisa jejak dari masa itu
- Kode pemrosesan untuk perangkat lunak pemindai Thunderscan milik Andy Herzfield
- Dukungan untuk format file grafis raster TARGA awal
- Beberapa referensi ke Barneyscan
Fitur dan keterbatasan Photoshop 1.0
- Layar awal Photoshop menampilkan alat-alat yang tersedia untuk digunakan
- Brush dapat dipilih bukan hanya berdasarkan warna, tetapi juga ukuran dan tekstur
- Tersedia alat seleksi yang canggih dan beragam filter gambar
- Salah satu fitur penting yang belum ada adalah kemampuan membagi gambar ke dalam beberapa layer, dan fitur ini ditambahkan pada versi 3 pada 1994
- Pada halaman Preferences, sebagian fitur dapat dikustomisasi
- Pilihan font, ukuran font, dan gaya font masih terbatas
- Teks dimasukkan ke dalam kotak dialog lalu dipindahkan ke dalam gambar
1 komentar
Pendapat Hacker News
Saat bekerja di Adobe pada tahun 2000-an, saya pernah mencoba mengarsipkan kode sumber Photoshop, Illustrator, PostScript, dan aplikasi lain
Masih ada cadangan floppy Mac asli milik Thomas Knoll, jadi saya membawa Mac Plus, lalu memindahkan file ke laptop dengan kabel serial dan Kermit; versi pertamanya adalah 0.54 tertanggal 6 Juli 1988
File-file di floppy itu memakai berbagai format arsip kompresi lama, tetapi sebagian besar masih bisa dibaca, dan semua kode yang ditemukan disimpan di server Perforce khusus
Sayangnya, cadangan Illustrator yang paling awal berada di satu drive disk eksternal yang rusak
Saat itu ada masukan bahwa interaksi antarmukanya kurang baik, dan meski sekarang sulit menilainya, FreeHand cepat populer lalu kemudian menghilang
Ada tulisan yang merangkum dengan baik apa saja yang diperlukan untuk membangun aplikasi dari kode sumber ini: http://basalgangster.macgui.com/RetroMacComputing/The_Long_V...
Tidak banyak orang yang memiliki pengetahuan semacam ini
RSS berfungsi baik di sisi saya, tetapi di Miniflux muncul
This website is too slow and the request timed out: Get "http://basalgangster.macgui.com/RetroMacComputing/The_Long_View/…;: dial tcp 209.182.219.107:80: i/o timeoutSaya ingat pernah pergi ke Adobe pada pertengahan 90-an untuk melakukan pertukaran kode sumber
PhotoShop berbasis MacApp, dan Adobe punya layer yang berjalan di Windows
Kami menukar mesin SQL yang sedang kami kerjakan, dan kode yang saya bawa pulang jelas berisi sebagian PhotoShop, meski tidak banyak; hanya semacam kode perhitungan ruang warna yang aneh yang kami abaikan
Saya ingin melihat-lihat sumbernya untuk mengetahui apakah jejak MacApp masih tersisa
Bisa saja semuanya sudah berubah sejak pertengahan 90-an
Saya jarang mendengar contoh seperti ini, jadi penasaran apakah ada cerita pertukaran kode lainnya
Tentu saja begitu, tetapi itu perangkat lunak yang cukup bongsor
Think Class Library menyelamatkan banyak developer, dan Greg Dow mungkin masih bekerja di Adobe sampai sekarang
Kalau dipikir-pikir, PowerPlant lebih baik daripada TCL: https://en.wikipedia.org/wiki/PowerPlant
Mengejutkan bahwa pengalaman pengguna secara umum masih sama sampai sekarang
Visi para engineer awalnya luar biasa
Namun belakangan saya merasa kesal setiap kali membuka aplikasinya, dan satu-satunya periode singkat ketika terasa responsif di desktop adalah saat MacBook Pro M1 pertama keluar dan ada beta Silicon untuk Adobe Photoshop
Masa itu sudah berakhir, dan kini kembali lambat
Penderitaannya nyata, dan saat itu jika ingin memakainya dengan benar, SGI Indigo dengan RAM 96MB lebih baik
Pada akhir 90-an, paling cocok dipakai di 9500, dan waktu itu pun butuh seluruh RAM 1GB
Saya masih memakai versi crack dari sekitar 2022 yang pertama mendukung M1, dan masih tetap responsif seperti dua tahun lalu
Scott Belsky kini menjadi investor, dan ia menulis tentang proses menjual BeHance dan Adobe ke arah ekonomi sewa
Meski bisa disebut buku yang bagus, isinya juga terasa lebih seperti buku pengembangan diri untuk kalangan eksekutif yang makin menyusut
Meski begitu, ekosistem open source untuk karya seni dan gambar kini lebih baik dari sebelumnya; dalam praktiknya, ini karena alat profesional yang tak bisa disaingi tanpa dukungan komunitas menjadi terlalu mahal sehingga semua orang tersisih
Artikel tahun 2013 tentang Adobe Photoshop 1.x dari 1990, ya
Saya sudah melihat kode sumbernya, tetapi saya berharap bisa memahami apa yang membuat kode itu indah dan elegan
Saat belajar Rust, saya punya kegelisahan serupa: bahkan untuk game Snake sederhana pun, menentukan struktur kode terasa sulit karena ada terlalu banyak pilihan
Ketika memikirkan cara membuat fungsi dan UI yang bekerja di atas “ruang”, saya teringat Photoshop atau 3ds Max, dan menemukan repositori ini benar-benar menyenangkan, tetapi saya memang tidak bisa memahaminya begitu saja
Dari sudut pandang pembelajaran ini menarik dan saya ingin meningkatkan kemampuan pola desain, jadi kalau ada materi bagus untuk mempelajari struktur kode, mohon beri tahu
Dulu saya sangat bergulat dengan abstraksi, pola desain, dan struktur
Namun saya menyadari bahwa ketika bekerja dengan kode imperatif yang “sebenarnya”, melupakan class sejenak, dan menaruh semua kode dalam file yang sama, kode itu mulai membentuk strukturnya sendiri
Bukan berarti ini satu-satunya jalan, tetapi saya merasa pemrograman berorientasi objek bisa menjadi penghambat karena membuat kita tenggelam dalam pilihan
Struktur dasar aplikasi MacApp adalah dokumen, dan framework MacApp mendispatch event ke handler
Sudah lama sejak saya mengerjakan aplikasi MacApp, tetapi seingat saya struktur dasarnya seperti itu
MacApp sendiri tampaknya tidak disertakan, tetapi kemungkinan ada di suatu tempat, dan Adobe pernah mem-port MacApp ke Windows agar tidak perlu menulis ulang semuanya
Saya menduga pada suatu titik kemudian mereka menggantinya dengan lapisan abstraksi mereka sendiri
John Knoll adalah kepala efek visual untuk prekuel Star Wars, dan kemudian ikut mengerjakan Rogue One
Dokumenter behind-the-scenes pembuatan prekuel itu masih layak ditonton sekarang: https://youtu.be/da8s9m4zEpo?si=5y5gHUMxztwVzMny
https://www.imdb.com/title/tt19896784/?ref_=nv_sr_srsg_0_tt_...
Beliau menulis buku teks klasik di bidang deteksi radiasi
Ada bagian yang mengatakan “mereka pasti tidak membayangkan akan menambahkan satu kata ke kamus”, tetapi Adobe berusaha mencegah hal ini karena bisa mengarah pada generikisasi merek dagang
Pedoman merek dagangnya memuat contoh seperti “Selalu gunakan merek dagang dengan huruf kapital dan dalam bentuk yang benar. Contoh benar: The image was enhanced with Adobe® Photoshop® Elements software. Contoh salah: The image was photoshopped.”
[1]: https://en.wikipedia.org/wiki/Generic_trademark
[2]: https://www.adobe.com/legal/permissions/trademarks.html
Seingat saya Xerox juga kalah dalam gugatan besar terkait hal ini
[1] Contoh: https://www.consumerreports.org/consumerist/15-product-trade...
https://www.youtube.com/watch?v=rRi8LptvFZY
Dalam jangka panjang mungkin tetap tidak berhasil, tetapi sekarang saya jelas sadar bahwa Velcro adalah nama merek dagang
Saya ingat pernah melihat Photoshop sebelum Adobe di sebuah rumah sakit di Ann Arbor
Saya pikir itu benar-benar luar biasa
Sebagai tambahan, versi MacApp yang digunakan saat itu adalah framework aplikasi Apple Pascal dan hampir pasti masih beta
Tom Knoll menggunakan algoritme B-spline dari kode yang ia kerjakan sebagai kontraktor di perusahaan kami sebagai dasar editor kurva
Perusahaan yang membuka kode sumber perangkat lunak versi lama patut dipuji
Saya berharap ke depannya lebih banyak perusahaan melakukan hal itu
Namun saya khawatir banyak kode sumber seperti ini sudah hilang seiring waktu dan melalui beberapa proses akuisisi beruntun
Penggunaan version control secara luas juga merupakan fenomena yang relatif baru, jadi kalaupun masih tersisa, kemungkinan besar ada di backup tape acak, floppy disk, atau hasil cetak di dalam binder
“Kami mengumpulkan dan melestarikan perangkat lunak dalam bentuk kode sumber, karena perangkat lunak memuat pengetahuan teknis dan ilmiah kita, dan umat manusia tidak boleh mengambil risiko kehilangannya
Perangkat lunak adalah bagian berharga dari warisan budaya
Kami mengelola semua perangkat lunak yang kami kumpulkan dan membuatnya dapat diakses
Karena hanya dengan berbagi, pelestarian untuk waktu yang sangat panjang dapat dijamin”
Didirikan oleh teman saya, Roberto Di Cosmo
Termasuk juga perjanjian hukum standar yang nyata untuk menghukum kebocoran dini
Ini bisa menjadi layanan yang cukup otomatis dan minim campur tangan
Perusahaan dapat melakukan mirroring repositori git ke server privat yang dikelola organisasi pelestarian, lalu organisasi pelestarian membuat repositori publik kosong yang bersesuaian
Setelah itu, setiap jam sebuah agen memindai repositori privat dan menyinkronkan ke repositori publik hanya commit yang waktu commit-nya lebih dari 10 tahun lalu
Ref juga disinkronkan, tetapi ditulis ulang seolah-olah semua commit yang lebih baru dari 10 tahun telah dihapus dengan
git filter-branch, dan ref yang kosong setelah difilter dibuang