Sebagai orang yang cinta programming, saya sangat suka open source. Kali ini saya ingin menceritakan pengalaman pribadi saya dengan open source baru-baru ini. Sebagai orang yang sudah 3 kali mewakili Indonesia di Asia Open Source Symposium dan menjadi panitia ketika acara diadakan di Indonesia, saya sudah banyak mengemukakan dan mendengar masalah bagusnya open source sebagai ideologi dan untuk bisnis. Nah kali ini saya hanya akan membahas dari sudut pandang seorang pribadi yang cinta programming. Untuk Anda yang ingin mempertanyakan open source dari segi bisnis dan lain-lain, akan saya bahas lain waktu.
Saya baru membeli HP Android Acer BeTouch E130 beberapa minggu yang lalu. Device ini memiliki keyboard (bentuknya seperti Blackberry) dan harganya relatif murah. Sebenarnya banyak device android lain yang murah, tapi tanpa keyboard.
Sebagai penggemar command line dan terminal, hal yang ingin saya lakukan adalah menjalankan Debian di device saya. Android menggunakan kernel Linux yang lisensinya GPL, sehingga saya bisa mendapatkan source kernelnya dan mengcompilenya. Saya bisa mengcompile sendiri modul ext3 sehingga saya bisa menginstall Debian dalam lingkungan chroot.
Ketika mulai bermain dengan debian, saya mulai menyadari bahwa keyboardnya kurang nyaman untuk mengetik karakter yang sering dibutuhkan di command line dan program, misanya karakter tilde (untuk shortcut home directory) karakter kurung siku buka dan tutup (untuk indexing array), karakter kurung kurawal buka dan tutup (untuk blok kode program), dsb.
Untungnya program terminal dan client ssh yang saya gunakan (Android Terminal Emulator dan ConnectBot) sifatnya opensource, jadi saya bisa memodifikasinya. Untungnya lagi, proyek keduanya ada di github, jadi saya hanya perlu mem-fork sourcenya dan mengubahnya. Sayapun bisa berbagi perubahan yang saya lakukan pada dunia dengan sangat mudah.
Setelah debian terinstall, dan dengan keyboard yang sudah lebih nyaman, saya bisa menginstall debian dan aneka program di dalamnya. Saya bisa menginstall hampir semua program yang ada di desktop saya, misalnya server SSH, compiler C, Java, interpreter PHP, Perl, Python.
Saya menemukan adanya masalah dalam driver micro sd, yang hanya muncul jika ada penulisan sangat banyak dalam waktu singkat (hasilnya data bisa corrupt). Namun karena drivernya merupakan bagian dari kernel (yang open source), maka saya bisa memperbaikinya juga.
Sebenarnya cerita eksplorasi saya cukup panjang, lengkapnya saya tuliskan di http://yohan.es/android/.
Mungkin Anda pikir saya “gila”, untuk apa menginstall Debian lengkap di ponsel?. Jika Anda pikir saya gila, maka saya pikir Anda kurang mengerti keampuhan puluhan ribu program yang tersedia di debian (baik command line maupun grafik) di banding berbagai aplikasi yang tersedia di Android Market (atau aplikasi Android di luar market).
Saya berikan beberapa contoh: Memanipulasi gambar dalam berbagai format bisa dilakukan dengan ImageMagick (dan di Android atau bahkan iPhone tidak ada program yang setara dengan itu kemampuannya dalam hal support format file dan manipulasi yang bisa dilakukan), berbagai macam format dokumen dan ebook bisa dikonversi di command line. Berbagai macam arsip kompresi bisa dibuka di command line. Saya bisa membuat dokumen dengan lebih efektif menggunakan org-mode atau latex dan menghasilkan PDF yang lebih indah daripada yang bisa dibuat dengan word processor di Android.
Di sini juga terlihat kehebatan open source. Berapa lama Anda harus menunggu berbagai program di Windows untuk beralih ke 64 bit? Apakah Anda menunggu program komersial OS tertentu diporting ke OS Anda? (ada yang menantikan program tertentu dari OS X diporting ke Windows dan sebaliknya). Berbagai program open source bisa dikompilasi oleh siapa saja untuk mendukung platform/CPU baru, dan ini bisa dilihat buktinya dari Debian yang ada di ponsel saya, yang memiliki hampir semua software di debian untuk desktop amd64 yang saya miliki.
Saya memakai banyak produk Apple, tapi sangat menyayangkan bahwa Apple tidak mengijinkan compiler/interpreter di platform iOS (iPod Touch, iPad, iPhone). Padahal menurut saya memiliki compiler di HP bisa berguna untuk mencoba berbagai macam algoritma ketika sedang terpikir sesuatu. Perlu dicatat bahwa saya tidak selalu harus mengetik di layar yang kecil, saya bisa melakukan SSH ke device dari desktop untuk mengetik dan melakukan berbagai hal lain. Dengan adanya compiler di HP, saya juga bisa bereksperimen dengan prosessor ARM (misalnya untuk mempelajari assembly untuk explot buffer overflow.
Dulu komputer pertama yang saya miliki adalah Apple IIe dengan prosessor 1 Mhz, RAM 64 kkb, ROM 16 KB (dengan disk drive yang hanya bisa menampung beberapa ratus KB per disket). Dengan itu saya belajar banyak mengenai pemrograman BASIC. Berikutnya komputer saya adalah Pentium I 120 Mhz, RAM 16 Mb dan harddisk 1 GB. Dengan komputer kedua ini, saya melakukan lebih banyak lagi, dari mulai belajar menggunakan word processor sampai membuat virus. Nah sekarang Acer BeTouch yang saya miliki ini memiliki kecepatan 416 Mhz, dengan RAM 256 Mb dan ROM 512 Mb (dan saya membeli micro SD 16 GB). Jika Anda pikir prosessor dengan kecepatan itu hanya bisa untuk digunakan menelpon dan bermain game saja, maka jiwa programmer Anda kurang besar.
Tanpa open source, saya tidak bisa mengubah-ubah firmware beberapa HP yang saya miliki. Saya tidak bisa memperbaiki bug-bug di berbagai aplikasi yang ada di HP saya. Saya tidak bisa mengubah perilaku yang tidak saya suka dari berbagai device non-open source yang saya miliki.
Bisa dilihat bahwa dengan open source, saya punya kebebasan, untuk melakukan apapun pada device saya. Jika Anda bukan programmer pun, Anda bisa melakukan cukup banyak hal untuk mengcustomize device Anda dari hasil pekerjaan orang lain. Atau jika ada pekerjaan yang Anda inginkan, Anda bisa membayar programmer yang mampu melakukannya. Dalam kasus ponsel dengan OS tertutup, satu-satunya yang mampu mengubah sesuatu adalah pembuat ponselnya, dan Anda harus menunggu dan berharap bahwa perubahan yang Anda inginkan itu akan diimplementasikan.
Tulisan yang sangat menarik pak. 🙂
Semoga saya bisa terus belajar untuk bisa mengoprek open source application dan memodifikasinya sesuai keinginan saya. Memang sih terkadang merasa kesal dengan aplikasi yang ada, kenapa dibuatnya seperti itu, tapi apa daya, ilmu masih belum cukup untuk bisa mengutak-atik source codenya.
Wah,, sapet temen pecinta programming nih.. 🙂
salam kenal pak..
Saya senengnya programming di VB aja pak..
kalao yang lain gak sejago bpk.. 😀
>> tapi sangat menyayangkan bahwa Apple tidak mengijinkan compiler/interpreter di platform iOS (iPod Touch, iPad, iPhone)
Benarkah demikian pak? Artinya aplikasi semacam Gambit REPL seharusnya tidak diperbolehkan dong? He he ini kadang2 saya pake di iPad 2 kalo lagi iseng
http://itunes.apple.com/us/app/gambit-repl/id434534076?mt=8
Iya saya juga heran ada beberapa perkecualian, sementara banyak aplikasi lain ditolak. Di perjanjian Apple sih ditulisnya nggak boleh bikin aplikasi semacam itu.
Ini contoh beritanya Apple Rejects Squeak Smalltalk, padahal itu hanya untuk belajar pemrograman.
Menurut iPhone Developer Program License Agreement yang baru : http://www.eff.org/files/20100302_iphone_dev_agr.pdf
Hasilnya:
http://itunes.apple.com/us/app/hotpaw-basic/id295464266?mt=8
http://stackoverflow.com/questions/4891642/interpreter-for-the-iphone
Terima kasih buat infonya, ternyata saya kurang update dengan situasinya.
Jadi intinya interpreter sudah dibolehkan asalkan tidak mendownload kode dari internet dan tidak berinteraksi dengan sistem. Ini sudah merupakan langkah yg lumayan, setidaknya sudah boleh.
Tapi ini masih sangat terbatas, berbagi kode sesama pengguna tidak bisa dilakukan, dan semua kode harus diketik manual (atau memakai template). Padahal asik sekali jika bisa mendownload potongan kode untuk dipakai (daripada sulit mengetik manual).
Saat ini menurut saya ada 2 aplikasi intepreter legal yang ada di iTunes
– JavaScript-1
Disediakan text editor untuk mengolah code JavaScript, CSS dan HTML. Ditambah juga fasilitas ‘file saving’. Dilengkapi juga dengan embedded web browser untuk testing. Wah ini sudah cukup luar biasa, karena kita dapat menghabiskan waktu luang membuat project seperti JavaScript library di iOS device kita.
– SQL Note (Lite)
Disediakan text editor untuk mengolah instruksi SQLITE. Hasil query nya ditambilkan dalam plain table. Cukup membantu saya untuk belajar instruksi SQLITE. Sayangnya kita hanya bisa mengakses database yang disediakan 😀
tulisan anda sangat menginspirasi saya pak … saya gk habis pikir “Berikutnya komputer saya adalah Pentium I 120 Mhz, RAM 16 Mb dan harddisk 1 GB. Dengan komputer kedua ini, saya melakukan lebih banyak lagi, dari mulai belajar menggunakan word processor sampai membuat virus. ,
” it’s awesome … sedangkan saya sekarang bisa di katakan menggunakan komputer yg lebih baru dan spec tinggi tapi belum bisa apa2 … sungguh memalukan yah …