Merakit sendiri lingkungan pemrograman ActionScript

18 Januari 2010

Wah, sudah hampir satu tahun persis blog ini saya tinggalkan. Alasan pertamanya sederhana: life interferes :)

Alasan kedua atas kemalasan saya di blog ini, adalah saya sedang jenuh mempelajari desain bahasa dan teknik kompilasi (kapan-kapan balik, it’s my deepest passion), pindah mempelajari bagaimana memproduksi film animasi sendiri. Resolusi 2010 saya, harus sudah memproduksi setidaknya satu film pendek animasi. Software yang saya gunakan adalah Blender 3D, dan waktu dan kapasitas otak yang tersisa setelah mempelajari animasi dan sketsa (untuk storyboarding dan desain karakter), saya gunakan untuk memprogram perangkat-perangkat tambahan untuk Blender agar memudahkan proses menjadi One-Man Pixar :P

Menggambar dan animasi ternyata susah, dan pikiran saya kadang kelayapan kembali ke pemrograman. Satu bidang yang menjembatani keduanya adalah pemrograman grafis, dan selama 1 tahun terakhir di waktu luang saya mengakrabkan diri dengan bahasa-bahasa pemrograman grafis PostScript, Processing, dan yang terakhir: ActionScript. Di antara ketiganya saya paling menyukai ActionScript, karena lebih manusiawi dari PostScript dan lebih mudah diajak eksperimen ketimbang Processing (sayangnya berbasis Java dan sulit menguji program lewat command-line).

Meski tersedia IDE semacam Flex Builder atau Flash Develop, dalam menciptakan lingkungan pemrograman ActionScript yang nyaman, saya kembali bergantung pada GNU Emacs tercinta, dan menambahkan paket/file berikut:

  • Adobe Flex [URL] dan/atau SWFTools [URL]. Diperlukan untuk mengkompilasi file .as kode sumber program menjadi file Flash .swf. Kompiler SWFTools as3compile adalah yang waktu kompilasinya paling cepat dan berukuran paling kecil di antara kedua pilihan ini, namun kompiler Adobe Flex mxmlc lebih ketat memberlakukan sintaks ActionScript, ditambah bonus komponen-komponen Flex yang memudahkan kita sewaktu-waktu menciptakan Rich Internet Application.
  • Adobe Flash Player – Debugger Version [URL]. Diperlukan untuk menguji file Flash yang dihasilkan. Versi player Flash ini memudahkan debugging program-program ActionScript, termasuk mencetak perintah tracing ke stdout.
  • Emacs ActionScript mode [URL]. Di antara berbagai versi yang ditawarkan, saya paling sreg dengan buatan John Connors (HTML, jangan langsung "Save As…"), turunan dialek Java dari cc-mode.
  • Dokumentasi ActionScript + Adobe Flex [URL]. Tersedia satu file arsip berisi seluruh dokumentasi offline ActionScript dan Adobe Flex dalam format HTML dengan ukuran total cukup besar, 100MB++, yang kemudian saya ubah menjadi file .chm HTML Help berukuran 17MB.

Terakhir, saya tambahkan aturan khusus ActionScript berikut ke dalam Makefile generik (daftar Makefile yang digunakan GNU Make bila tidak ditemukan makefile per-proyek, ditentukan dalam env-variable MAKEFILES):

# Actionscript
SWFWIDTH = 640
SWFHEIGHT = 480
FLASHPRJ = flashplayer_10_sa_debug.exe
AS3COMPILE = as3compile --width $(SWFWIDTH) --height $(SWFHEIGHT)
MXMLC = mxmlc -default-background-color=0x7f7f7f \
        -default-size=$(SWFWIDTH),$(SWFHEIGHT)
%_st.swf: %.as
        $(AS3COMPILE) $^ -o $@ --width 800 --height 600

%.swf: %.as
        $(MXMLC) $^ -o $@

%_test: %.swf
        $(FLASHPRJ) $^

%.html:: %.swf
        @echo '<object width="$(SWFWIDTH)" height="$(SWFHEIGHT)">' \
                '<param name="movie" value="$^">' \
                '<embed src="$^" width="$(SWFWIDTH)"'\
                ' height="$(SWFHEIGHT)">' \
                '</embed></object>' > $@

… sehingga untuk menguji file XYZ.as saya hanya perlu menjalankan perintah make XYZ_test (yang dalam Emacs saya petakan ke satu tombol dengan fungsi Emacs-Lisp).

Kesan saya tentang ActionScript sejauh ini positif. Sekadar membuat program ActionScript untuk credit-roll film sangatlah mudah (dan jauh lebih cepat di-render ketimbang jika membuatnya sebagai scene 3D dalam Blender), mungkin saya akan mengusulkannya untuk Seruling Project-nya Blender Indonesia di mana saya turut terlibat (jelas open source, jelas punya keunggulan, tinggal presentasinya seperti apa…).


Software Sebagai Produk vs Software Sebagai Jasa

8 Maret 2009

Sejak pertama mengetahui keberadaan bahasa Nusa (dulu Batak), saya selalu rutin mencari tahu kabar perkembangannya. Maklum, model distribusi kompiler untuknya saat ini tidak lazim saya temui, yaitu melalui milis privat di Yahoo! Groups namun dengan pengumuman publik. Saya coba registrasi (ini sebelum memulai pengembangan bahasa saya sendiri, saat ini Jeruk), namun tidak ditanggapi. Tak apalah, malah jadi disibukkan urusan sendiri saja.

Akhir Februari lalu, saat penasaran lagi dengan Nusa, saya temui artikel menarik di situs Pak Bernaridho, pencipta bahasa ini. Mungkin beliau terkadang melakukan narcissism-search —seperti saya juga :P — karena di sana beliau merespon kritik pedas seorang blogger dari Kalimantan Selatan yang, meski judulnya salah alamat, diarahkan pada pandangan beliau tentang software bebas. Sepintas lalu artikel Pak Bernaridho memang terkesan menghina software bebas, namun berkat tanggapan ini segala isu yang keruh bagi saya menjadi jelas, bahkan akhirnya mempengaruhi perspektif saya sendiri. Maka sebelum saya lancarkan tanggapan saya secara penuh, saya ucapkan terima kasih baik pada Pak Syamsuddin Ideris yang berani memulai proses dialektik ini maupun Pak Bernaridho Hutabarat yang bersedia merespon dengan kepala dingin.

Para pengembang software profesional tentu telah familiar dengan inti catatan; saya hanya mempertegas saja konsep yang jarang ditekankan dalam artikel lain. Now, on with the show!

Baca entri selengkapnya »