01 Intro
Halo, selamat datang di kolom
ScriptingWorld master.web.id. Setelah sekitar 5 bulan vakum menulis
artikel berbahasa Indonesiayakni
sejak mwmag berhenti terbit akhir
2002 laluatas permintaan Dhiar, saya akan mencoba
untuk menulis artikel baru di kolom online ini setiap 12 minggu. Alamat kolom ini adalah www.master.web.id/scriptingworld/.
Artikel pertama ini akan menjelaskan sedikit latar
belakang kolom ini, apa itu scripting, dan apa saja yang akan dibahas pada
tulisan-tulisan mendatang.
Ada Apa
Dengan mwmag?
Seperti bulan lelap
tidur di hatimu; yang berdinding kelam dan kedinginan; Ada apa dengannya.Rangga
mwmag
adalah majalah cetak yang diprakarsai oleh beberapa orang dari master.web.id
(Dhiar, saya, dan Ewing) dan kini dimiliki oleh PT Indolinux Inti Media, Tangerang, Jakarta.
Selama sekitar 1 tahun masa beropeasinya sejak Okt 2001 hingga Okt 2002, telah
diterbitkan 7 edisi + 1 edisi yang tidak dicetak dan bisa dibaca online. Di mwmag saya bekerja sebagai kepala editor + editor naskah tunggal:
mencari naskah, menerima dan mengeditnya, dan juga mengisi majalah dengan
tulisan-tulisan sendiri, antara lain kolom tutorial regex dan Python. Kini mwmag sedang vakum
alias tidak terbit. Dan saya kini tidak sedang
melakukan apa-apa dengan mwmag.
Kegiatan utama saya saat ini hanyalah di PT
Master Web Network (MWN) sebagai pengembang sistem, dan di PT Master Web Indonesia (MWI) sebagai
penulis kolom ScriptingWorld.
Kenapa saya menyinggung mwmag? Karena
meskipun sudah sempat dibahas di milis-masterweb dan
ada wawancara
yang menjelaskan mengenai nasib mwmag,
dari waktu ke waktu selalu ada yang bertanya kepada saya; bahkan ke staf MWI
dan MWN. Plus karena saya anggap ScriptingWorld kurang lebih sebagai
salah satu saluran penerus buat saya menulis artikel, mungkin ada baiknya saya
beri penjelasan juga di sini.
Salah satu penyebab orang bertanya ke tempat yang salah (MWI
dan MWN) adalah terlalu banyaknya kata master web di sini. Padahal ada tiga
master web yang berbedameskipun sebagian
orangnya sama. Jadi ceritanya begini: mula-mula ada situs komunitas
master.web.id yang menjadi popular dan akhirnya membentuk PT Master Web
Indonesia (MWI). Pemiliknya Dhiar dan bidang usahanya seputar jasa pembuatan
web, komik, dsb. Lalu ada PT Master Web Network (MWN). Pemiliknya Dhiar, Alex,
dan saya. Bidang usahanya web hosting dan network integrator. Dan terakhir ada
PT Masterweb Media (mwmag).
Pemiliknya PT Indolinux (Edy Liu) dan bidang usahanya penerbitan majalah. PT Indolinux sendiri juga bergerak di bidang web hosting dengan
merek Neocyber.
MWN dan MWI tidak terlibat sama sekali dan tidak tahu menahu
soal majalah. Jadi mohon para pembaca atau pelanggan mwmag menghubungi PT Indolinux untuk segala sesuatu yang
berhubungan dengan mwmag. Alamat
kantor PT Indolinux adalah sbb.:
PT Indolinux Inti Media / PT Indolinux Inti Solusi www.mwmag.com / www.indolinux.com / www.neocyber.net Karawaci Office Park Blok A No. 9 Lippo Karawaci, Jawa Barat 15811 Telp: 021-5577-0581 Fax: 021-5577-0937
Penyebab lain orang masih bertanya-tanya adalah
ketidakjelasan dari PT Indolinux selaku pemilik majalah mwmag dan Indolinux.
Selain pengumuan di website mwmag,
tidak ada lagi pernyataan pers atau penjelasan dari PT Indolinux. Bahkan saya
sendiri selaku karyawan mwmag tidak
memperoleh kejelasan status (termasuk soal gaji yang belum dibayarkan) dan
sampai sekarang belum dapat menghubungi Bapak Edy Liu. Nampaknya sedang ada
masalah di perusahaan yang satu ini.
Oke. Itu penjelasan saya. Semoga puas. Kalau belum puas,
silakan menghubungi langsung kantor PT Indolinux lewat telepon atau datang
langsung. Sekarang kita ke materi utama.
Apa Itu Scripting?
A script is what
you give an actor, but a program is what you give an audience.Larry Wall
Pencipta bahasa skripting Tcl, John Ousterhout, pernah membuat definisi
yang cukup dikotomis antara bahasa pemrograman (bahasa aplikasi) dan bahasa
skripting (bahasa pengelem). Menurutnya, bahasa aplikasi bersifat strongly
typed, mengizinkan kita membuat struktur data kompleks, bersifat terkompilasi,
dan dimaksudkan untuk membuat program yang independen. Contoh bahasa seperti
ini yaitu C. Sementara bahasa
skripting bersifat interpreted, weakly typed atau untyped, tidak mengizinkan
atau hanya secara terbatas memungkinkan kita membuat struktur data kompleks,
dan biasanya program hasilnya membutuhkan program-program lain agar dapat
berfungsi. Contoh bahasa skripting paling popular adalah shell Unix seperti bash. Seperti kita tahu, skrip shell
Unix umumnya hanya memanggil dan merangkai-rangkai program yang kecil-kecil
menjadi satu. Bahkan untuk menampilkan isi file saja skrip shell memakai
program lain seperti cat. Tanpa
program-program lain, skrip shell tidak bisa apa-apa.
Tentu saja, definisi ini terlalu kaku dan tidak selalu
sesuai dengan kenyataan. Pertama,
bahasa aplikasi tidak selalu strongly typed: C sendiri sebetulnya weakly
typed/untyped, karena bebasnya programer memakai casting dan pointer untuk
membypass pemeriksaan kompiler. Bahasa-bahasa skripting seperti Python dan Ruby
bersifat strongly typed, meskipun menggunakan dynamic (run-time) typing. Kedua, batas antara compiled dan
interpreted pun sekarang tidak jelas. Lagipula sebuah bahasa bisa
diimplementasi secara compiled maupun interpreted. Dulu zaman 80-an misalnya,
bahasa C yang interpreted sempat cukup popular. Dan ketiga, yang disebut bahasa skripting sekarang sudah jauh lebih
sempurna dan kaya fitur, tidak lagi menyerupai shell Unix yang seperti bahasa
mainan. OOP, pemrograman modular, struktur data kompleks; semuanya bisa kita
peroleh dari bahasa skripting. Sehingga bahasa skripting pun bisa dipakai untuk
membangun sistem yang besar dan kompleks.
Jadi kita mungkin perlu mencari definisi yang lebih tepat. Sejak
dua tahunan yang lalu, Lab AI MIT
menggelar workshop tahunan berjudul
Lightweight Languages Workshop sekaligus mempopularkan istilah lightweight.
Barangkali istilah ini pula yang lebih cocok untuk menggambarkan bahasa-bahasa
yang ingin saya bahas. Tapi untuk saat ini kita akan tetap memakai istilah
skripting.
Apa itu bahasa yang lightweight? Sesuai arti katanya, bahasa
yang lightweight yaitu yang ringan. Tidak
[terlalu] kompleks, sehingga tidak perlu belajar terlalu lama untuk bisa
menguasainya. Tidak banyak aturan,
sehingga cepat dan tidak susah bikin program, apalagi yang pendek-pendek. Tidak kaku, sehingga programer bisa
berekspresi bebas dan have fun menulis program.
Bahasa Mana yang Termasuk Scripting?
Pengkategorian orang mungkin berbeda-beda. Tapi menurut
saya, ini contoh bahasa-bahasa skripting: Perl, Python, Ruby, VB, ASP/VBScript,
Javascript, PHP, dan Tcl. Umumnya bahasa-bahasa ini memang dynamically typed,
tidak mewajibkan kita mendeklarasikan variabel sebelum memakainya. Sebagian
compiled (rata-rata ke bytecode), sebagian lagi interpreted. Semuanya bersifat
lebih high level dari C dan lebih mudah menulis program yang portabel.
Ini contoh bahasa-bahasa yang tidak saya anggap skripting:
Java, C, C++, Pascal/Delphi. Rata-rata bahasa ini lebih kaku. Lebih cerewet
akan sintaks. Dan lebih banyak punya aturan. Misalnya saja, untuk menulis
program Hello, world! kita mungkin harus membuat kelas dulu, memanggil modul
lain dulu, dsb. Sementara di bahasa skripting, cukup dengan:
print "Hello, world!";
Apa
Yang Akan Dibahas Di Kolom Ini?
Tujuan
kolom ini adalah menunjukkan bahwa bahasa skripting bukanlah bahasa mainan yang
bisa dipandang sebelah mata, melainkan bahasa-bahasa yang produktif dan juga
tak kalah ampuh. Pembahasan paling banyak akan berkisar pada 3P+R (Perl,
Python, PHP, dan Ruby) karena bahasa-bahasa inilah yang saya gauli sehari-hari.
Tapi kita juga akan bermain-main dengan ASP, Javascript, .NET, dan juga mungkin
Actionscriptandaikata suatu hari saya tertarik menjadi animator.
Kita
juga akan banyak membahas regular expression (regex), MySQL/database lainnya,
sistem administrasi (terutama di lingkungan Unix/Linux), dan Internet (HTTP, HTML,
email, dsb) karena itu semua berkaitan erat dengan pemakaian bahasa skripting
sehari-hari.
Untuk
satu-dua artikel mendatang, kita akan bermain-main dengan MySQL. Jadi, saya
tunggu kehadiran Anda sekitar minggu depan. Salam.
[Last-Modified: Wed Feb 26 19:50:50 2003]
|