Trims, Adobe Flash!

Akhirnya secara resmi Adobe Flash bakalan di matiin oleh yang punya yaitu Adobe dalam beberapa tahun kedepan, tepatnya yaitu di tahun 2020.

Sepertinya semua sudah tahu itu pasti terjadi, hanya tinggal menunggu waktu, lalu kenapa harus ditulis kembali disini?

Ahh…kalau anda mengikuti sejarah pemrograman atau setidaknya malah pernah memakai platform Adobe Flash maka anda yang mungkin sekarang adalah web developer, akan sangat-sangat berterima kasih kepada Adobe karena telah memunculkan platform Flash tersebut.

Berterima kasih, alasannya?

Karena konsep-konsep yang diimplementasikan di platform Flash tersebut merupakan penguat fondasi dari berkembangnya teknologi-teknologi web seperti sekarang ini atau bisa dibilang konsep-konsep tersebut dilahirkan kembali tetapi dengan memakai teknologi lain yang “lebih baik” (akan saya jelaskan kenapa harus memakai tanda petik). Teknologi lain itu adalah HTML 5, WebGL, Web Assembly dan JavaScript.

Rich Internet Application

Konsep RIA atau Rich Internet Application diperkenalkan pertama kali oleh Macromedia (sekarang Adobe) dalam white paper di tahun 2002. Konsep ini sebenarnya sangat futuristik dimana konsep ini mengupayakan supaya klien yaitu browser, bisa juga dipakai lebih interaktif dan mendukung multimedia alih-alih hanya untuk fungsi transfer, berbagi dokumen ataupun berbagi informasi secara tekstual seperti konsep dasar web diciptakan.

Klien di browser ini diusahakan on-par atau sebanding dengan experience ketika memakai aplikasi desktop sehingga munculah kemudian term Rich Client atau kalau pada jaman sekarang lebih dikenal dengan istilah Thick Client (Fat Client) dengan ciri khusus yaitu pemrosesan data lebih banyak di sisi klien.

Kenapa saya bilang futuristik?

Konsep Rich Internet Application tersebut dalam implementasinya berusaha memanfaatkan luasnya deployment channel yang sudah ada yaitu web dan browser tetapi ada hambatan sangat besar pada waktu itu yaitu masalah kompatibiltas browser yang secara default memang teknologi browser waktu itu yaitu CSS, HTML & JavaScript tidaklah memungkinkan sehingga Adobe harus membuat teknologi lain yang berupa plug-in bernama Adobe Flash Player.

Sebelumnya memang ada usaha untuk membuat konten interaktif yaitu melalui teknologi plug-in Java Applet tapi tidaklah sesukses Adobe Flash.

Rapid Application Development

Kemunculan Adobe Flash Player tersebut secara pasti memunculkan juga Rapid Application Development Tools atau RAD untuk pengembang seperti melegendannya Adobe Flash Profesional yang oleh programer seperti saya waktu itu sangatlah susah untuk menerimanya karena mixing antara kode, desain visualiasi dan timeline merupakan ide yang sangat gila dan mungkin karena mindset seperti itulah tool ini jauh lebih populer dikalangan animator maupun game maker daripada pure web programmer.

Bahkan pada 2016 Adobe Flash Profesional ini telah berubah menjadi Animate CC yang khusus menargetkan animasi untuk HTML5 Canvas & WebGL

Interaktifitas yang dicapai oleh platform flash dengan target web yang berjalan di Adobe Flash Player tersebut memang sangat hebat dan berkat platform ini juga menurut saya konten interaktif di web menjadi bagian yang wajib karena secara historis panjang telah membentuk pasar tersendiri dan membentuk mindset bagi pengguna maupun pengembang bahwa peran web tidak hanya untuk keperluan informasi pasif seperti teks tapi bisa lebih dari itu.

Mungkin karena Adobe Flash-lah banyak lahir pengembang-pengembang game dadakan khusus untuk platform web karena tool seperti Adobe Flash Professional tersebut memberikan kemudahan workflow dalam pengembangan game.

Semakin majunya teknologi hardware, distribusi yang semakin murah dan majunya standard web, faktor interaktif dan pengembangan game di web ini sekarang digantikan oleh HTML 5, JavaScript ataupu teknologi yang lebih superior dalam memanfaatkan GPU seperti WebGL dan semua teknologi baru ini bersifat bawaan default oleh browser dengan kata lain tidak diperlukan lagi yang namanya plug-in!.

Dan sekarang banyak sekali tool untuk creator yang mendukung content creation dengan target WebGL dan salah satu teknologi yang menurut saya sangat mirip secara esensi dengan Adobe Flash Professinal yaitu Unity 3D dan bahkan di versi terbaru saat tulisan ini ditulis yaitu versi 2017.1, Unity 3D juga mempunyai fitur timeline 🙊.

Adobe Flex

Perkembangan selanjutnya dari Adobe Flash adalah munculnya teknologi Adobe Flex yang menurut saya pribadi adalah satu-satunya teknologi platform Adobe Flash dimana programer murni seperti saya bisa sangat produktif dalam mengembangkan aplikasi web interaktif maupun desktop.

Any prove?

Ide developer 2 minggu untuk menyelesaikan projek yang kompleks adalah sangat mungkin karena secara pribadi saya pernah mengembangkan aplikasi web dan desktop di tahun 2010-an memakai stack Adobe Flex, PHP dan MySQL dengan waktu pengembangan tidak lebih dari seminggu (solo developer)🙈.

Poin yang ingin saya sampaikan adalah mature-nya teknologi seperti Adobe Flex dan mature-nya workflow dalam pengembangan dengan dukungan tool RAD, dokumentasi dll itulah yang akan mem-boost developer untuk bisa jauh lebih produktif dan menghasilkan produk yang dalam kasus saya bisa reliable dipakai lebih dari 5 tahun.

Adobe Flex dibangun dengan konsep yang sangat OOP dan kalau anda belum tahu bahwa bahasa pemrograman ActionScript 3 yang dipakai di platform Flash di Adobe Flex 3/4 adalah bahasa pemrograman yang merupakan implementasi dari EcmaScript 4.

EcmaScript 4 atau ES4 adalah spec JavaScript yang di abandon di tahun 2008 karena dirasa terlalu overdesign dan sebenarnya banyak fitur-fitur di ES4 yang ternyata diwujudkan kembali di ES6.
Dokumentasi ActionScript 3

Disamping itu konsep pemrograman user interface (ui) berdasarkan tag seperti di Adobe Flex sangatlah elegan dan readable dan mungkin konsep pemrograman ui inilah menurut saya yang mengilhami pemrograman ui di bahasa pemrograman lain seperti pada pengembangan ui di Android.

Flash Builder (Flex Builder 4)

Konsep data binding seperti pada kebanyakan framework JavaScript saat ini sudah diimplementasikan oleh teknologi Adobe Flash bahkan sejak Adobe Flex 1.5 yang boleh terbilang sangat jadul.

Adobe Flex 1.5 (ActionScript 2)

Banyak sebenarnya implementasi-implementasi konsep teknologi yang telah ada di platform Flash jauh sebelum web development booming dengan HTML5 & JavaScript seperti chart interaktif, sistem pengembangan modular atau component based, tersedianya komponen ui maupun data yang tinggal pakai, sistem layout yang konsisten, adanya sistem sinkronisasi data antara klien dan server bahkan sistem custom component yang skinnable secara programatik-pun sudah ada pada Adobe Flex 4.x.

Flex Builder 3
Setelah booming-nya HTML5 dan penggunaan JavaScript di browser, pada 2011 Adobe mensedekahkan Adobe Flex ke Apache Foundation.

Meskipun tidak terhitung banyaknya projek komunitas pendukung yang berdasarkan platform Adobe Flash entah itu IDE, game engine dll tetapi ada beberapa yang tool yang cukup sukses membawa teknologi ini ke ranah desktop seperti MDM Zinc.

Kenapa ke desktop? kalau anda bandingkan atau pernah mengembangkan aplikasi desktop memakai Java SWT maupun Swing ataupun Trolltech Qt maka akan jauh lebih mudah mendesain UI memakai platform Adobe Flash hanya saja karena API terbatas pada lingkungan web maka penggunaan untuk aplikasi desktop sangat terbatas. Perangkat lunak seperti MDM Zinc muncul dan memungkinkan untuk memakai API native OS-pun di platform Flash.

MDM Zinc sangat powerful karena kita bisa membuat software desktop memakai Flash dengan cara yang cepat, sayangnya tool ini sudah tidak dikembangkan lagi dan website-nya pun sudah offline per-April 2015.

Secara personal menurut saya sebenarnya software ini masih sangat relevan meskipun sekarang banyak yang menyarankan untuk memakai Electron tetapi untuk aplikasi CRUD biasa masih sangat mumpuni.

Kebutuhan aplikasi desktop dengan memakai teknologi Flash sepertinya memang bukan tujuan Adobe pada awalnya, tetapi lambat laun platform Flash juga memunculkan teknologi desktop yang bersifat platform agnostic yaitu Adobe AIR.

Prinsip teknologi ini hampir sama dengan teknologi Java Virtual Machine (JVM) dan Swing. Jadi aplikasi desktop yang dikembangkan dengan Adobe Flash Profesional maupun memakai Adobe Flex SDK bisa berjalan lintas OS melalui runtime yang bernama AIR Runtime.

Satu hal yang perlu dicatat bahwa platform Flash di Adobe Flex/AIR khususnya untuk komunikasi data dari dan ke server tidak terbatas pada protokol data HTTP seperti REST, JSON, XML, Text maupun layanan-layanan model JAVA seperti SOAP Web Service tetapi juga mendukung format binary seperti Action Message Format atau AMF.

🍵

Kalaupun dibilang bahwa teknologi Flash itu berat di bandwidth waktu itu maka saya akan sangat merasa dejavu kalau melihat aplikasi web modern yang dibangun diatas stack HTML5, CSS dan JavaScript sekarang yang memiliki ukuran loading file > 1mb dan itupun sangatlah umum sekarang.

Lebih lanjut mungkin tidak ada hubungan antara Web Assembly dan platform Adobe Flash tetapi bisa dibilang mereka (Adobe) juga mempunyai ide yang mirip seperti itu.

Project Tamarin adalah projek kolaborasi antara Adobe dengan Mozilla dimana projek ini memungkinkan browser untuk mengeksekusi secara langsung byte code ActionScript 3 artinya compiler JIT di browser tidak hanya mendukung JavaScript tetapi juga ActionScript 3! 🙊

Teknologi Web Assembly memang jauh lebih luas cakupannya dimana teknologi ini merupakan format binary web yang memungkin bahasa pemrograman lain misal C/C++ untuk di kompilasi ke wasm, artinya untuk mengembangkan aplikasi web sekarang tidak hanya terbatas pada JavaScript, HTML 5 dan CSS.

The Future Is (Mobile) Web

Beberapa konsep penting yang diimplementasikan pada Rich Internet Application menurut white paper Adobe tersebut dan pada akhirnya saya pikir ikut andil dalam memperkuat berkembangnya teknologi web yang sudah ada seperti sekarang yaitu,

  • User interface yang interaktif.
  • Pengembangan berdasarkan komponen.
  • Pemisahan antara logic presentation dan user interface.
  • Client Rendering dan komunikasi yang terjadi antara klien dan server hanyalah data.
  • Client data storage.
  • Platform agnostic.
  • Mendukung fungsi online maupun offline.

Kalau anda melihat poin-poin diatas maka sebagai developer web khususnya anda tidak akan kaget kalau teknologi web sekarang sebenarnya berusaha untuk memenuhi semua poin-poin tersebut dan teknologi web membutuhkan waktu lebih dari 15 tahun untuk menyusul hebatnya platform Adobe Flash tersebut.

Ok cukup…kalau platform Adobe Flash tersebut sangatlah hebat lalu kenapa sekarang mati?

Kalau menurut saya teknologi tersebut dipegang oleh satu perusahaan dan bersifat closed-source artinya ada vendor-locking dimana semua keputusan teknologi dan bisnis sangatlah dimonopoli dan seperti sistem keseimbangan pada umumnya pastilah muncul balance actor dalam hal ini yaitu muncul komunitas publik yang berusaha untuk mengembangkan teknologi yang bersifat gratis, siapapun bisa mengembangkan secara bebas dan transparan atau dengan kata lain menciptakan community driven technology.

Selain itu banyak fitur-fitur EcmaScript 4 atau ES4 yang sebenarnya survive dan di implementasikan kembali di ES6 (EcmaScript 2015).

Jadi sebenarnya kalau boleh saya bilang web development modern itu seperti mengulang pengamalan platform flash tetapi dengan memakai kapal besar baru yang berbeda, alih-alih langsung memakai kapal besar yang siap pakai untuk berlayar, saat ini kita ikut berperan serta juga dalam membangun bagian-bagian dari kapal besar baru tersebut.

Petisi Open Source Flash ?

https://github.com/pakastin/open-source-flash

Saya agak skeptis kalau Adobe akan meng-open-source kan platform Flash karena bisnis dan development yang dulunya bernilai multi-million dollar tersebut tetaplah platfrom yang menurut saya masih superior bahkan Adobe masih mempertahankan Adobe AIR sampe sekarang.

Kalau saya analogikan langkah Adobe tersebut seperti Tony Stark yang tiba-tiba mengumumkan untuk menghentikan weapon production sesaat setelah dia bebas dari The Ten Rings (Iron Man 1) tetapi kemudian diam-diam secara internal dia tetap memakai teknologi weapon tersebut untuk membuat suit armor yang super canggih.

Secara personal saya percaya kalau teknologi Adobe Flash itu akan lebih di streamline-kan atau di khususkan untuk tujuan private dan tertentu. Contoh kecil seperti Adobe Flex 1.5 yang kemudian di embed ke ColdFusion atau teknologi Adobe AIR yang banyak dipakai sebagai installer produk Adobe yang lain.

Meskipun ada solusi lain yang lebih open dan murah seperti teknologi HTML5, JavaScript, WebGL dan Web Assembly tapi bukan berarti teknologi tersebut jauh lebih superior daripada Adobe Flash hanya saja teknologi-teknologi baru tersebut memang jauh lebih bisa diterima dan diadopsi secara luas serta yang lebih penting adalah mudah dikontrol oleh publik.

Bagaimanapun teknologi datang dan pergi hanya saja konsep-konsep dasar kurang lebih sama dan akan selalu ada pelaku (implementasi) yang berbeda dan yang bisa survive adalah pelaku-pelaku yang lebih mementingkan keterbukaan bagi semua.

Trims, Adobe Flash!

Referensi