mardi 13 mai 2008

CVI/Labwindows : Alternative bagi pembenci Labview

Bagi anda-anda yang berkecimpung di Control Systems/Instrumentation, pasti kenal dengan program yang satu ini, ya Labview dari National Instruments. Di Perancis sini, hampir semua Industri memakai Labview sebagai bahasa utama pengembangan sistem instrumentasi dan kontrol di industri. Di tingkat universitas dan ecole (institut/sekolah tinggi), setiap mahasiswa Teknik Elektro dan Ilmu Komputer (Informatique) di Perancis diwajibkan untuk mempelajari Labview sebagai bagian dari matakuliah pemrograman, Sistem Kontrol dan Instrumentasi. FYI uniknya di Perancis, mahasiswa Ilmu Komputer atau seringnya disebut Industrielle Informatique disini SELALU mendapatkan mata kuliah Control Systems dan Instrumentation. Sesuatu yang tidak saya temui di UK dan Indonesia. Hal ini disebabkan oleh banyaknya industri manufaktur di Perancis sehingga demand untuk engineer yang menguasai Sistem Kontrol dan Automasi sangat tinggi.

Labview menggunakan konsep Graphics Language sebagai landasan pemrogramannya. So semua operasi logika, iterasi dan matematika direpresentasikan dengan lambang dan flowchart. Labview memang ideal untuk scientist dan engineer yang kurang kuat background programmingnya tapi harus membuat aplikasi measurement dan insrumentasi dengan cepat.

Ok anyway, bagi saya, meskipun sangat tepat untuk data acquisition and measurement, orang Perancis kebablasan menggunakan Labview sebagai bahasa pemrograman general untuk urusan APA SAJA. Bahkan teman saya disuruh menggunakan Labview untuk memodelkan persamaan matematik (dimana Matlab, Mathematica atau Scilab lebih tepat untuk itu).

Labview memaksa kita untuk menggunakan prinsip dataflow, dimana fleksibilitas menjadi taruhannya.

Untuk program-program sederhana seperti akuisisi data dari instrumen, mengukur, dan menampilkannya, graphical programming language ini sangat cepat dan praktis. Tapi untuk menulis program yang cukup kompleks (misal aplikasi Object Detector and Recognition) dibutuhkan fleksibilitas yang sangat tinggi.

Sebagai orang pure Computer Science yang berlatar belakang text based programming dan telah mempelajari Theory of Programming Language dan Compiler Design, saya sangat membenci Labview dengan alasan berikut :

1. Tidak bisa memberi komentar
2. Tidak bisa memberi nama variabel (WTF ??)
3. Nonlinear dan alurnya susah diikuti, ini bikin program atau main game Maze???
4. Untuk memodifikasi satu perintah (dimana dalam bahasa pemrograman text hanya merubah satu baris) harus merubah keseluruhan struktur program.
5. Nonlinearity membuat sangat sulit untuk di-debug.
6. Nonlinearity membuat timing menjadi hal yang sangat sulit.
7. Penanganan Array dan iterasi yang rumit.
9. Sulit untuk menerapkan konsep OOP.
10. Pendukung Labview bilang operasi Parallel lebih mudah divisualisasikan dengan Labview, BULLSHIT, saya membuat parallel program dengan Celoxica Handel-C, tidak ada masalah.

Pertama kali menggunakan Labview untuk aplikasi numerical simulation and modeling (karena perusahaan tidak memiliki Matlab dan bos taunya hanya Labview), saya banyak terbantu dengan memakai C-Script untuk formula programming. Tapi lama-lama setelah aplikasi jadi kompleks, ternyata gabungan Labview dengan C-Script membuat program jadi rumit dan berat.
Akhirnya, setelah berkutat dengan kejengkelan, VOILA saya menemukan solusinya, Paolo, seorang PhD EE asal Brazil yang juga membenci Labview memberitahu pada saya bahwa Labwindows/CVI bisa menggantikan Labview dan kebetulan perusahaan MEMILIKI LISENSI Labwindows/CVI!

Labwindows/CVI adalah ANSI-C Compiler buatan National Instruments yang diklaim pembuatnya dapat menggunakan semua library dan modul akusisi data dari National Instrument dan compatible dengan Labview. So kita bisa mengerjakan aplikasi instrumentasi dan kontrol yang sama dengan Labview tanpa kepusingan-kepusingan bahasa pemrograman grafis.

Akhirnya semua program Labview saya convert ke Labwindows/CVI dan saya bisa meneruskan pekerjaan saya dengan bahasa pemrograman tercinta, ANSI-C !!

Beberapa hari setelah bermain dengan Labwindows/CVI, saya menyadari bahwa development tool ini lebih friendly daripada Visual C++.Net dan tentu saja memiliki library instrumentasi yang sangat lengkap. So Labwindows/CVI adalah tools terbaik untuk aplikasi instrumentasi, kontrol dan measurement di Industry bagi para software engineer atau hardcore coder.

Aucun commentaire: