Kamis, 11 Maret 2010

Perbedaan QT dan JAVA

Perbedaan QT dengan JAVA

Qt dibuat oleh sebuah perusahaan yang berada di swedia bernama trolltech, pertama kali Qt dibuat karena para pendiri Qt, yang pada saat itu merupakan sekelompok programmer muda yang ingin memtbuat sistem rumah sakit yang memdukung banyak platform, platform yang ada di rumah sakit trersebut menggunakan UNIX dan Macintosh, mereka mencoba untuk mencari toolkit yang multiplatform dan mudah digunakan, tetapi karena tidak adanya toolkit yang mereka inginkan, dan yang ada hanyalah beberapa toolkit di UNIX sistem yang tidak terlalu bagus dan komersial, sedangkan untuk versi macintosh, terpaksa harus dilakukan pengkodingan ulang untuk menyesuaikan dengan platform macintosh, dari kerumitan-kerumitan inilah mereka akhirnya memutuskan untuk membuat toolkit yang multiplatform.
Untuk memahai istilah toolkit, akan dimulai dari konsep dasar GUI di UNIX sistem dan windows, sebagai gambaran perbedaan GUI diantara keduanya:

     +-----------------+        +-----------------+
  | GUI Application |        | GUI Application |
  +-----------------+        +-----------------+
  |     Toolkit     |        |     WinAPI      |
  +-----------------+        |       &         |
  | X Window System |        |   GUI System    |
  +-----------------+        +-----------------|
  |   OS Kernel     |        |    OS Kernel    |
  +-----------------+        +-----------------+
      UNIX System               Windows System

Untuk di windows, sebuah aplikasi GUI berhubungan dengan WinApi, dari mulai berkomunikasi dengan kernel, sampai dengan membuat control seperti button, window, dialog dsb.
Sedangkan dalam UNIX, untuk bisa membuat control (UNIX menggunakan istilah Widget untuk control seperti button, window, combobox, dll) UNIX menggunakan dua cara:



1.    Membuat sendiri button, combobox, dll dengan cara menggambar sendiri melalui API ke x-windows system, karena pada dasarnya x-windows system merupakan system yang menyediakan akses ke graphic card dan hanya menyediakan API untuk menggambar ke layar saja.
2.    Menggunakan Library untuk menggambar button, combobox, dll. Daripada menggambar sendiri dari awal, library untuk menggambar user interface seperti button, combobox, dll nilah yang disebut dengan toolkit.

Ada banyak toolkit yang tersedia, seperti TWM, Tcl-Tk dsb, namun sekarang toolkit yang lebih modern dan popular adalah GTK dan Qt. GTK awalnya dibuat hanya sebagai library penunjang GIMP, sebuah program untuk memanipulasi gambar, namun kemudian banyak dipakai dalam Desktop Environtment GNOME, sedangkan Qt kemudian digunakan dalam Desktop Environment KDE.

Berbeda dengan Konsep java, toolkit cakupannya lebih kecil dibandingkan java, berikut gambar model java:

     +-------------------------------+
  |       Java Application        |
  +-------------------------------+
  | Java Framework:               |
  |-------+------+--------+-------|
  | Swing | JDBC | Applet | dst.. |
  +-------------------------------+
  |      Java Virtual Machine     |
  +------------+----------+       |
  | Windows:   | UNIX:    |       |
  |   WinAPI   |          |       | 
  |     &      | X-Window |       |
  | GUI System |          |       |
  +------------+----------+-------+
  |           OS Kernel           |
  +-------------------------------+

Jadi sebenarnya java lebih kompeks, java memungkinkan suatu aplikasi hanya perlu berdiri di atas java virtual macine, dan tidak code langsung ke OS ataupun ke WinAPI/x-windows system, karena itulah java disebut Platform,  Sedangkan kelengkapan Java, dari mulai GUI (Swing), Database (JDBC), dsb. membuat Java disebut sebagai Framework. Karena dituntut mengembangkan aplikasi dalam lingkungan Java secara keseluruhan. Berbeda dengan Qt karena Qt benar2 Native Programming Language dengan C++ sebagai bahasanya.
Lalu mengapa Qt dan bukan Java??? nah, seperti yang digambarkan diatas, Java merupakan Platform yang berdiri diatas Platform lain (maksudnya OS) sehingga dari segi speed performance sangat jauh perbedaan antara aplikasi Java dan Qt, Namun boleh dibilang Qt cukup berkembang, dan sepertinya Qt mulai perlahan-lahan bisa disebut Framework karena cukup lengkap fasilitas yang disediakan Qt untuk ukuran sebuah Toolkit sebab Qt juga memiliki class2 yang berkaitan dengan level OS seperti Thread, Mutex, Semaphore, sampai dengan class2 utility seperti Map, String, dsb.

0 komentar:

Posting Komentar