The Denny Depok

The Denny Depok

Gosipin IT Bareng Mas Denny Depok Yuk…

The Denny Depok RSS Feed
 
 
 
 

Pike, Scripting Rasa C/C++ Sesungguhnya

3 tahun lalu saya ngalamin namanya kebosanan bahasa pemrograman. Waktu itu saya sebagai programmer Enterpise Java (ngurusin EJB dan kawan-kawannya), tapi sampingan masih maen Delphi, VB, C++ (pake visual C++) dan belajar C#. Kebosanan terbesar saya adalah menghadapi proses kompilasi yang lama (java paling bertanggung jawab), library yang sulit dipakai (java dan C# bertanggung jawab), pengaturan pointer/object supaya tidak leak memory (delphi dan c++ bertanggung jawab) dan terakhir saya merasa bodoh untuk mengkompilasi program yang pada akhirnya akan di interpretasi (lagi-lagi java dan C# bertanggung jawab).

Akhirnya saya pada satu titik ingin pindah bahasa baru. Kriterianya adalah harus scripting ! (saya males ngompile lagi, trus pengen jalan di Linux/Unix, Windows dan kalo bisa MacOS — loh bukannya ini unix juga :P). Harus ada garbage collector (selamat tinggal pointer). Harus punya banyak library yang dibangun sama programmer (semantik cukup untuk profesor aja :D).

Beberapa bahasa scripting saya eksplorasi, mulai dari phyton, ruby, php dan terakhir pike. Walaupun akhirnya saya milih PHP + Javascript, Pike cukup menyita perhatian saya. Jadi apakah Pike itu ? Dari situs resminya pike adalah bahasa pemrograman scripting umum (maksudnya bisa buat apa aja, gak cuma web) yang sintaksnya mirip sekali dengan C/C++. Mendukung konsep OOP, punya garbage collector, loading time yang cepet dan lisensinya GPL, LGPL dan MPL (jadi jangan ragu untuk makenya).

Contoh hello world dengan menggunakan pike adalah :


int main()
{
write("Hello World\r\n");
return 0;
}

Terlihat familiar ? Tentu aja, soalnya lebih dari 95% sintaks Pike adalah sintaks C/C++. Contoh penggunaan kelas adalah :


class TestClass
{
void func1()
{
write("hello from func1");
}
void multiply(int a, int b)
{
return a * b;
}
}
int main()
{
TestClass obj1 = TestClass();
int a = 5;
int b = 10;
obj1->func1();
write(sprintf("Hasil dari %d x %d = %d", a, b, obj1->multiply(a, b)));
return 0;
}

Makin kelihatan miripnya kan ? Programmer C/C++ yang udah bosen maen sama pointer dan pemakaian string yang ribet tentu aja akan seneng untuk make Pike.

Permasalahan utama, untuk apa Pike kalo emang mirip banget sama C/C++ ? Kenapa gak pake C++ aja sekalian. Jawabannya adalah kalo pake C/C++ kan harus mikirin jalan hidupnya object dan pointer, nah dengan pike (tentu dikerjain garbage collectornya) hal tersebut sudah gak ada lagi. Pengaruhnya ? ya tentu aja mrogramnya jadi lebih mudah dan lebih cepet. Apalagi scripting, gak usah compile banyak-banyak lagi. Tinggal ubah script yang berubah trus jalanin lagi, beres… Apalagi operasi string yang gampang banget mirip-mirip javascript+PHP, udah gak usah akses lewat null terminated string deh.

Trus apa kelebihan Pike dibandingin Phyton ato Ruby ? Menurut saya (yang emang dari awal belajar mrogram pake C), pindah ke pike tuh kayak gak ada usaha untuk belajar, beda sama Phyton dan ruby yang agak beda konsepnya sama C/C++. Kalo dibanding PHP ? ya gimana ya, sebenernya saya fans berat PHP, tapi untuk aplikasi diluar web, PHP kayaknya gak ada apa-apanya. Eits jangan protes dulu, yang saya lihat adalah ketersediaan fungsi Threading (PHP masih maen process pake fork, php_thread dan 4 tahun gak ada kabar), ada lib SDL (emang sih PHP bisa di extend, tapi SDL kalo gak ada thread ?) ada lib OpenGL (sama, php bisa di extend openGL tapi nulis extentionnya susah + lagi-lagi gak ada thread… males). Trus ada lib GTK (walau saya gak suka sama control GTK yang gede-gede, tapi lumayan lah bisa cross platform).

Ya menurut saya sih Pike bagus banget dipake untuk rapid prototyping untuk ngetes algoritma/aplikasi yang emang mo ditulis pake C/C++. Trus untuk penulisan program game kayaknya menjanjikan juga. Aplikasi yang cross paltform pake Pike mungkin banget (Pike jalan di Linux, Windows dan Darwin -> unixnya MacOS). Distributed aplication (lib protokolnya lumayan lengkap). Btw, pembuat aslinya make Pike untuk buat Roxen Web Server. Trus Opera juga make Pike untuk bagian server dari Opera Mini.

Kelemahannya ? tentu aja dokumentasi yang enggak banget, dikit banget maksudnya. Tutorial juga hampir gak ada. Komunitas kurang banget. Tapi lewat posting ini, saya mo ngajak pembentukan komunitas Pike di Indonesia :D Siapa tau banyak yang berminat. Malahan saya ngusulin, diuniversitas gak usah ngajar C/C++ lagi, tapi ke Pike aja. Lebih modern dan lebih mudah dipakai :D

9 Responses to “Pike, Scripting Rasa C/C++ Sesungguhnya”

  1. 1
    Syafrudin Abi-Dawira:

    Saya punya kisah mirip dengan anda. Tiga tahun yang lalu saya ingin memilih satu bahasa dan inginnya tidak pindah - pindah lagi. Kriterianya juga mirip. Kriteria wajib: 1-scripting (di dalamnya sudah termasuk garbage collection), 2-cross-platform, 3-multi-purpose (web maupun desktop; script kecil maupun aplikasi besar: database / bisnis, grafis / game, numerik / ilmiah). Kriteria tambahan: 4-matang (banyak pengguna: universitas maupun industri; banyak Library; governance pengembangannya sudah berjalan baik), 5-kuat pendukungnya (banyak pengguna: universitas maupun industri; ada pebisnis yang men-”jual”-nya), 6-mudah dipelajari oleh pemula (saya ingin memasyarakatkan ke orang non-TI juga). 7-design bermutu (bagus secara akademik, modern).

    Hasilnya saya memilih Python (yang anda salah ketik jadi phyton :-)), karena:
    #1: jelas;
    #2: bahkan ada versi untuk Java: Jython, .NET: IronPython, dan embedded system;
    #3: ada WxPython / PyGtk / PyQt dan boa-constructor untuk desktop, django / turbogears untuk web, sqlalchemy dkk untuk database, pygame & pyopengl untuk game / grafis, numpy & scipy untuk numerik, twisted untuk serious networking.
    #4: versi 3.0 hampir direlease, ada python.org, Python Foundation, dan PEP process.
    #5: ada Google, activestate, Microsoft, NASA.
    #6: sebetulnya keharusan indentasi menjadi kekurangan di sini, juga soal self, tapi ini cukup minor, selain ini rasanya tidak ada, apalagi shell sudah default.
    #7: dibanding PHP dan Perl, jelas. Meski dibanding Ruby sedikit kalah.

    Sementara pesaingnya Java (dan non-scripting seperti C/C++/C#, Delphi) jelas lewat di #1, sedang JavaScript & PHP kurang di #3, Perl kurang di #3, #4 (menurun), & #5 (menurut saya pemula kurang suka sigil meski minor, juga regex oriented membuat jadi cryptic), Ruby (dan scripting lain di luar yang empat ini) kurang di #4 & #5 (tapi IronRuby didukung Microsoft), Basic (versi scripting) kurang di #7.

    Nah, saya ingin menanyakan apa yang membuat anda merasa tidak cocok dengan python ?

    ps.
    Menurut saya gaya mirip C/C++/Java (seperti Pike), hanya berguna buat veteran C/C++/Java, sementara bagi newbie, ini justru menjadi kekurangan. Bagi newbie, gaya mirip Pascal justru lebih mudah diikuti.

  2. 2
    Syafrudin Abi-Dawira:

    Tentang Pike:
    1. Pike lahir 94, Python lahir 91 sedang Ruby lahir 1995, setelah 14 tahun popularitas Pike belum ada apa - apanya dibanding kakaknya Python, bahkan kalah dibanding adiknya Ruby. Ini menurut saya menandakan ada sesuatu yang salah di Pike.

    2. Syarat suatu bahasa menjadi sangat populer menurut saya lebih banyak ditentukan oleh:
    -1- Momentum kebutuhan, seperti kebutuhan scripting di Unix untuk Perl, kebutuhan semacam CMS untuk PHP.
    -2- Adanya “killer” application, seperti Rail untuk Ruby.
    -3- Promosi kuat suatu perusahaan kuat. Seperti Sun untuk Java, Microsoft untuk VB dan C#.

    Jadi kemudahan kita migrasi ke bahasa tersebut sepertinya kurang penting.

  3. 3
    Syafrudin Abi-Dawira:

    Barusan memeriksa ranking TIOBE (www.tiobe.com), kabar buruknya ranking Pike masih di luar Top50, kalah populer dibanding PHP (#4), Perl (#6), Python (#7), JavaScript (#9), Ruby (#10), Lua (#19), ActionScript (#20), Groovy (#36), ataupun Tcl/Tk (#38).
    Namun secara mutu barusan memeriksa scriptometer (merd.sf.net/pixel/language-study/scripting-language)ternyata score Pike tinggi juga, ranking 7, di bawah sh, Ruby, Perl, Ch, Python, dan PHP.

  4. 4
    Dondy:

    lha .. kalau udah punya GC terus gak ada pointer mirip C# dongg…

    Masa object lifetime gak perlu dipikirin ? GCnya canggihkah ???

  5. 5
    Denny Depok:

    @Syafrudin Abi-Dawira

    Sorry untuk typo-nya :D

    Sebenernya bukan saya gak suka python, tapi gak familiar (mungkin saya bisa dibilang kategori C/C++/Java veteran menurut definisi anda :P). Soal fitur bahasa scripting malah saya menganggap python paling lengkap.

    Kalo dibandingin, saya yakin python akan menang di banyak bidang. Tapi menurut saya Pike akan banyak bermanfaat untuk rapid prototyping bagi programmer system yang kebanyakan make C/C++. Soal speed juga Pike cukup baik jika dibandingin sama scripting lain. Soal killer application kayaknya tinggal menunggu waktu aja.

    Tapi pike kayaknya perlu banyak developer yang mikirin filosofi bahasa supaya bahasa pengembangannya jadi lebih mudah dipakai.

  6. 6
    Denny Depok:

    @Dondy

    Mirip C# ? enggak kali ya, fitur C# kan udah lumayan beda sama C/C++. Apalagi soal scriptingnya, aneh gak sih ngompile source code yang bakalan di interpret ?

  7. 7
    Dondy:

    Well.. gak bener2 intepret as scripting sih.. itu .NET Framework yang bakalan bicara, VM sih heheh..

    Anyway, yang gw maksud adalah dari sisi features language-nya. Untuk native compiler sendiri di komunitas udah mulai banyak yang bikin c# native compiler. Malah kalau gak salah Mono juga bakal implement.

    Coba search c# native compiler atau c# linker di google

  8. 8
    Rafki RS:

    Menarik sungguh menarik diskusinya. Saya yang awam dengan pemrograman banyak mendapat manfaatnya. Thanks Mas denny atas postingannya yang berharga.

  9. 9
    infoGue:

    artikel anda ada di:

    http://programing.infogue.com/pike_scripting_rasa_c_c_sesungguhnya

    anda bisa promosikan artikel anda di infogue.com yang akan berguna untuk semua pembaca. Telah tersedia plugin/ widget vote & kirim berita yang ter-integrasi dengan sekali instalasi mudah bagi pengguna. Salam!

Leave a Reply