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

Kirim email ke