2008/11/10 Eko Prasetya <[EMAIL PROTECTED]>: > Lint yang saya selalu pakai adalah PC-Lint, dari Gimpel. Yang free saya belum > belum pernah coba.
Setelah saya cari2 lagi, tidak ada yg free atau open source untuk C++ :( (rasa2nya dulu saya pernah mencoba yang free, tapi kualitasnya sangat jelek). PC-Lint juga tidak terlalu murah (apalagi untuk pemakaian pribadi). Saya menemukan banyak untuk C, Java, serta C#, tapi tidak untuk C++. > Yang lebih bagus sebetulnya Coverity. Coverity tidak invasive, jadi > kita tidak perlu > mengganti code supaya pass linting-nya. Cuma sayang harganya mahal, jadi > kita jalankan di build-server saja. Iya, ini sudah pernah saya dengar, katanya sangat bagus, tapi saya belum pernah nyoba. >> > Tapi dengan simulasi, bukankah kita bisa membatasi program kita supaya tidak > menggunakan feature-feature yang tidak di-support oleh target? Dengan > simulasi, > berarti kita mau agar code yang jalan di simulasi bisa jalan juga > di-target dengan > perubahan seminim mungkin. Effortnya untuk membuat simulasi ini terlalu besar, terutama mensimulasikan kelas2 string di symbian. Memakai class string milik sendiri terlalu membuang memori. Dan defaultnya Symbian ini memakai Unicode 16 bit, jadi biasanya perlu ada konversi ke C string. Tapi ini dulu di jaman ketika awal symbian (Nokia 3650), memorinya yang free biasanya hanya beberapa ratus kb sampai 2 mb. > Hati-hati juga dengan C++ exception. Saya biasanya tidak menggunakan exception > in general, karena handle memory leak pada waktu exception throw jauh > lebih sulit. Di Symbian (apalagi versi awal), memorinya sangat terbatas dan tidak ada paging. Jadi mereka "mewajibkan" program untuk menangani eksepsi dalam alokasi memori (karena kemungkinan gagalnya sangat tinggi). Mereka punya idiom khusus (2 stage constructor) untuk menangani eksepsi pada saat penciptaan objek. API milik symbian juga sebagian besar melempar exception. Karena dulu g++ belum mendukung exception, mereka tidak bisa menggunakan keyword (throws xxx) mereka menggunakan konvensi bahwa method yang berakhiran L mungkin melempar exception. Mereka juga menggunakan system cleanupstack untuk memastikan bahwa memori akan didealokasi ketika terjadi exception. Untuk masalah multi tasking: di awal symbian tidak bisa banyak thread (sangat membuang memory), dan mereka membuat yang namanya Active Object. Tanpa active scheduler program kita akan kelihatan hang (dan akan diterminate), tapi memakai active scheduler ini sulit, dan sulit mensimulasikan ini juga di luar environment Symbian. Hal-hal seperti itu tidak bisa dilewatkan ke static analyzer, bahkan saya baca coverity pun sampai membuat versi khusus untuk mendukung Symbian (http://www.ibtimes.com/prnews/20081021/coverity-symbian-show.htm). Yah intinya sih: kalo tidak percaya, coba deh mengembangkan aplikasi Symbian s60 1st/2nd edition atau UIQ 2. Itu adalah lingkungan pengembangan yang paling saya benci. Walau demikian saya punya proyek open source pembaca Alkitab untuk Symbian sejak 2003 dan sudah saya porting ke hampir semua versi Symbian yang ada (http://compactbyte.com/symbianbible). Pendapat saya pribadi: Di tahun 2003-2005 an, Symbian ini terlalu "memaksakan diri" untuk bermulti tasking dengan memori sangat terbatas (free memory biasanya selalu di bawah 2 mb kecuali di HP kelas atas macam communicator). Sekarang sih sudah lebih baik (free memory sudah bisa lebih dari 16 mb). Waktu itu programmer harus bersusah payah untuk bisa memprogram dengan sehemat mungkin memori dengan aneka trik Symbian. Dulu Palm OS lawas tidak benar-benar multi tasking, setiap kita pindah program, statenya disimpan. Sampai sekarang pun iPhone/iPod touch yang memorinya sudah 128 mb tidak mengijinkan program berjalan di latar belakang. Perlu dicatat: memori 2 mb mungkin besar untuk jaman 90an, tapi sekarang ini kita berurusan dengan data yang besar. Jika ada 1 program media player yang berjalan, program itu bisa memakan lebih dari 1 mb (sebagian untuk cache agar tidak tersendat). Jika ada program yang menampilkan 1 file jpeg dari kamera 0.3 mpixel itu juga minimal sudah memakai 500kb. Sebagian orang memakai wallpaper custom, ringtone custom, dsb. > Sekarang dunia embedded sudah jauh lebih baik, terutama setelah ada Linux. > Moga-moga saja Android bisa lebih populer di dunia mobile. > > Agak menyimpang, FYI, gcc 4.4 mendukung lambda dan auto. Combined with STL, > it's gonna be interesting. Iya sepertinya akan sangat menarik. -- Regards Yohanes http://tinyhack.com/freewarelist/s603rd/ -- Berhenti langganan: [EMAIL PROTECTED] Arsip dan info: http://linux.or.id/milis