//Dari <Panduan Pengembang Delphi 5>
1.2 Apa itu Delphi?
Kita sering menanyakan pertanyaan seperti: “Apa yang membuat Delphi begitu bagus?” dan “Mengapa saya lebih memilih Delphi dibandingkan alat pemrograman lain?” Selama bertahun-tahun, kami telah menemukan dua jawaban, satu panjang dan satu lagi pendek, untuk pertanyaan-pertanyaan seperti ini. Jawaban singkatnya adalah: efisiensi. Untuk membuat aplikasi Windows, menggunakan Delphi adalah cara termudah yang bisa kita temukan. Tentu saja sebagian orang (bos dan calon pelanggan) tidak puas dengan jawaban ini. Oleh karena itu, kami harus menyajikan jawaban rinci kami, yang menggambarkan kombinasi faktor-faktor yang membuat Delphi begitu efektif. Kami merangkum faktor-faktor yang menentukan efisiensi alat pengembangan perangkat lunak menjadi lima poin berikut:
• Kinerja lingkungan pengembangan visual.
• Kecepatan kompiler dan efisiensi kode yang dikompilasi.
& #8226; Kemampuan bahasa pemrograman dan kompleksitasnya.
• Fleksibilitas dan skalabilitas struktur database.
• Ekstensi kerangka kerja untuk desain dan pola penggunaan.
Meskipun ada banyak faktor lain yang harus disertakan, seperti konfigurasi, dokumentasi, dukungan pihak ketiga, dll., kami menemukan bahwa ini adalah cara paling akurat dan paling sederhana untuk menjelaskan kepada orang-orang mengapa kami memilih Delphi. Tentu saja, lima poin di atas mungkin juga mencakup beberapa faktor subjektif, namun kuncinya adalah: seberapa efisien Anda saat menggunakan alat khusus untuk pengembangan? Seperti yang ditunjukkan pada Gambar 1-1, semua aspek kinerja alat dievaluasi dan diukur (antara 1 dan 5) dan ditandai pada setiap sumbu Gambar 1-1. Akhirnya, sebuah segi lima dapat diperoleh. Semakin besar luas segi lima maka semakin efisien pula alat tersebut.
Tidak perlu memberi tahu Anda jawaban apa yang kami dapatkan dengan menggunakan metode ini - Anda akan mengetahuinya sendiri setelah mencobanya! Mari kita lihat lebih dekat kinerja Delphi di area ini dan bandingkan dengan alat pengembangan Windows lainnya.
1.2.1 Lingkungan pengembangan visual
Lingkungan pengembangan visual biasanya dibagi menjadi tiga komponen: editor, debugger, dan perancang formulir. Seperti kebanyakan alat RAD (pengembangan aplikasi cepat) modern, ketiga bagian ini bekerja sama. Saat Anda bekerja di perancang formulir, Delphi secara otomatis menghasilkan kode di belakang layar untuk kontrol yang Anda manipulasi pada formulir. Anda juga dapat menambahkan kode sendiri di editor untuk menentukan perilaku aplikasi, dan Anda juga dapat men-debug program dengan mengatur breakpoint dan titik pemantauan di editor yang sama.
Secara umum, editor Delphi mirip dengan editor alat lainnya, namun teknologi Code Insight-nya menghemat banyak pekerjaan input. Teknologi ini didasarkan pada informasi kompiler, bukan pada tipe perpustakaan seperti Visual Basic, sehingga memiliki cakupan aplikasi yang lebih luas. Meskipun editor Delphi juga memiliki banyak opsi konfigurasi yang bagus, menurut saya editor Visual Studio memiliki lebih banyak ruang untuk konfigurasi. Dalam versi 5, fungsi debugger Delphi akhirnya menyusul debugger Visual Studio, dengan banyak fitur lanjutan, seperti debugging jarak jauh, asosiasi proses, debugging DLL dan paket, pemantauan lokal otomatis, dan jendela CPU. Delphi juga mendukung penempatan dan docking jendela secara acak saat melakukan debug dan menyimpan status ini sebagai pengaturan desktop perintah. Hasilnya, IDE Delphi telah mencapai dukungan yang baik untuk fungsi debugging.
Seperti yang sering terlihat di beberapa lingkungan terintegrasi (seperti VB dan beberapa alat Java), keuntungan dari debugger yang sangat lengkap adalah ketika aplikasi di-debug, ia dapat mengubah kodenya, sehingga mengubah perilakunya. Sayangnya, fungsi ini tidak didukung oleh Delphi karena terlalu rumit untuk diimplementasikan ketika dikompilasi menjadi kode asli.
Untuk alat RAD (seperti Delphi, Visual Basic, C++Builder dan PowerBilder, dll.), perancang formulir adalah fitur unik. Beberapa lingkungan pengembangan yang lebih klasik, seperti VC++ dan BC++, menyediakan editor percakapan, namun tidak mengintegrasikan perancang formulir ke dalam proses pengembangan. Seperti yang dapat dilihat dari grafik efisiensi pada Gambar 1-1, tidak adanya perancang formulir akan mengurangi efisiensi alat pengembangan secara keseluruhan. Selama beberapa tahun terakhir, Delphi dan Visual Basic telah bersaing ketat untuk meningkatkan fungsionalitas form designer. Setiap versi barunya memiliki fitur yang lebih baik daripada versi sebelumnya. Apa yang membuat perancang formulir Delphi unik adalah Delphi dibangun di atas kerangka kerja berorientasi objek yang sebenarnya. Dengan cara ini, perubahan yang Anda buat pada kelas dasar akan disebarkan ke semua kelas turunan. Salah satu teknologi utama yang terlibat di sini adalah VFI (visual form legacy), yang merupakan pewarisan bentuk visual. Teknologi VFI memungkinkan Anda untuk secara dinamis mewarisi bentuk lain apa pun di proyek atau pustaka objek saat ini. Setiap kali bentuk dasar berubah, bentuk turunannya segera diperbarui. Fitur penting ini dijelaskan secara rinci di Bab 4, "Kerangka dan Desain Aplikasi".
1.2.2 Kecepatan kompiler dan efisiensi kode yang dikompilasi
Kompiler cepat memungkinkan Anda mengembangkan perangkat lunak selangkah demi selangkah, sering memodifikasi kode sumber, mengkompilasi ulang, menguji, memodifikasi lagi, mengkompilasi lagi, menguji lagi... membentuk siklus pengembangan yang baik. Jika kecepatan kompilasi sangat lambat, pengembang harus memodifikasi kode secara batch, membuat beberapa perubahan sebelum setiap kompilasi untuk beradaptasi dengan proses loop yang tidak efisien. Ini meningkatkan efisiensi pengoperasian, menghemat waktu pengoperasian, dan menghasilkan kode biner yang lebih pendek. Keunggulannya terbukti dengan sendirinya.
Mungkin fitur paling terkenal dari kompiler Pascal adalah kecepatannya, dan Delphi dibangun di atas kompiler ini. Faktanya, ini mungkin merupakan kompiler kode asli bahasa tingkat tinggi tercepat untuk Windows. Kompiler C++ yang dulunya lambat telah membuat kemajuan besar dalam beberapa tahun terakhir, menambahkan penautan dan berbagai strategi caching, terutama di Visual C++ dan C++ Builder. Namun demikian, kompiler C++ masih beberapa kali lebih lambat dibandingkan Delphi.
Apakah kecepatan kompilasi sebanding dengan efisiensi pengoperasian? Tentu saja tidak. Delphi dan C++Builder berbagi backend compiler yang sama, sehingga kode yang dihasilkan setara dengan yang dihasilkan oleh compiler C++ yang baik. Menurut standar evaluasi terbaru yang dapat diandalkan, Visual C++ dalam banyak kesempatan dianggap sebagai yang paling efisien dalam hal kecepatan kompilasi dan panjang kode yang dihasilkan, berkat beberapa langkah pengoptimalan yang sangat kuat. Meskipun keuntungan kecil ini sulit untuk diperhatikan dalam pengembangan aplikasi pada umumnya, keuntungan kecil ini dapat berguna jika Anda menulis kode komputasi yang rumit.
Teknologi kompilasi Visual Basic agak istimewa. Dalam pengembangannya, VB beroperasi secara terintegrasi dan cukup responsif. Kompiler ini lebih lambat dan kode yang dapat dieksekusi yang dihasilkan jauh kurang efisien dibandingkan alat Delphi dan C++.
Java adalah bahasa menarik lainnya. Bahasa alat berbasis Java terbaru JB uilder dan Visual J++ mengklaim bahwa kecepatan kompilasinya dapat menandingi
Ini sebanding dengan Delphi, namun efisiensi eksekusi kode yang dihasilkan tidak memuaskan karena Java adalah bahasa terintegrasi. Meskipun Jave membuat kemajuan yang stabil, kecepatan larinya masih jauh di belakang Delphi dan C++ di sebagian besar situasi.
1.2.3 Fungsionalitas dan Kompleksitas Bahasa Pemrograman
Fungsionalitas dan kompleksitas suatu bahasa tergantung pada siapa yang melihatnya dan menjadi bahan perdebatan. Apa yang sederhana bagi satu orang mungkin sulit bagi orang tersebut; apa yang fungsinya terbatas bagi satu orang mungkin sempurna bagi orang lain. Oleh karena itu, poin-poin berikut ini hanya berdasarkan pengalaman dan pemahaman pribadi penulis.
Majelis pada dasarnya adalah bahasa yang paling kuat. Anda dapat melakukan hampir semua hal dengannya. Namun, mengembangkan aplikasi perakitan yang paling sederhana sekalipun sangatlah sulit dan mungkin tidak menghasilkan apa-apa. Tidak hanya itu, menyimpan sepotong kode perakitan dalam lingkungan pengembangan grup untuk waktu yang lama terkadang mustahil. Saat kode tersebut diteruskan dari satu orang ke orang berikutnya, dan orang berikutnya, ide dan maksud desain menjadi semakin tidak jelas, hingga kode tersebut tampak seperti buku dari surga. Oleh karena itu, kami menilai perakitan sangat rendah karena kuat namun terlalu rumit untuk hampir semua pengembang.
C++ adalah bahasa lain yang sangat kuat. Dengan bantuan fitur-fitur potensialnya (seperti makro praprosesor, templat, pemuatan operator, dll.), Anda hampir dapat mendesain bahasa Anda sendiri menggunakan C++. Selama Anda menggunakan opsi fungsionalnya yang kaya dengan benar, Anda dapat mengembangkan kode yang ringkas, intuitif, dan mudah dipelihara. Namun masalahnya adalah banyak pengembang yang menyalahgunakan fitur ini, yang dapat dengan mudah menyebabkan kesalahan besar. Faktanya, lebih mudah menulis kode C++ yang buruk daripada menulis kode C++ yang baik. Karena bahasanya sendiri tidak akan mengarah ke desain yang bagus - itu terserah pengembangnya.
Objek Pascal dan Java terasa sangat mirip dengan kita karena mereka memahami keseimbangan kompleksitas dan fungsionalitas dengan sangat baik. Mereka semua mengambil pendekatan untuk membatasi fungsionalitas yang tersedia untuk meningkatkan desain logis pengembang. Misalnya, keduanya menghindari konsep pewarisan berganda yang sepenuhnya berorientasi objek tetapi mudah disalahgunakan dan sebagai gantinya mengimplementasikan satu kelas yang menjalankan fungsionalitas beberapa antarmuka. Tidak ada yang mendukung pemuatan operator yang indah namun berbahaya. Keduanya memiliki beberapa fitur canggih, seperti penanganan pengecualian, informasi tipe run-time (RT TI) dan memori string seumur hidup yang dikelola sendiri. Pada saat yang sama, tidak ada bahasa yang ditulis oleh dewan editorial khusus, namun berasal dari individu atau kelompok dalam satu organisasi yang memiliki pemahaman yang sama tentang bahasa tersebut.
Visual Basic pada awalnya dirancang untuk memudahkan pemula untuk memulai dan berkembang lebih cepat (sesuai dengan namanya). Namun sebagai sebuah bahasa, VB harus terus belajar dari kelebihannya dan memperbaiki kelemahannya, yang membuatnya menjadi semakin kompleks dalam beberapa tahun terakhir. Untuk menyembunyikan rincian ini dari pengembang, VB masih mempertahankan beberapa penyihir untuk membuat proyek yang kompleks.
1.2.4 Fleksibilitas dan skalabilitas struktur database
Karena Borland tidak memiliki skema database, Delphi mempertahankan apa yang kami anggap sebagai struktur database paling fleksibel dari semua alat. BDE sangat kuat untuk sebagian besar aplikasi berbasis platform database lokal, klien/server dan ODBC. Jika Anda tidak puas dengan hal ini, Anda dapat menghindari penggunaan BDE dan memilih komponen ADO asli yang baru. Jika Anda belum menginstal ADO, Anda dapat membuat kelas akses data Anda sendiri atau membeli solusi akses data pihak ketiga. Selain itu, MIDAS membuat akses multi-tier ke sumber data lebih mudah diterapkan. Alat Microsoft (ODBC, OLE DB, atau lainnya) secara logis cenderung mendukung solusi database dan akses data milik Microsoft.
1.2.5 Ekstensi kerangka kerja untuk desain dan pola penggunaan
Ini adalah fitur penting yang sering diabaikan oleh alat desain perangkat lunak lainnya. VCL adalah komponen terpenting Delphi. Kemampuan untuk memanipulasi komponen pada waktu desain, membuat komponen, dan menggunakan teknologi OO (berorientasi objek) untuk mewarisi perilaku komponen lain merupakan faktor kunci yang menentukan efisiensi Delphi. Dalam banyak kasus, komponen VCL ditulis menggunakan pendekatan desain OO tetap. Sebagai perbandingan, kerangka kerja berbasis komponen lainnya seringkali terlalu kaku atau rumit. Misalnya, kontrol Active X memiliki kemampuan waktu desain yang sama dengan kontrol VCL, namun tidak dapat diwarisi untuk membuat kelas baru dengan perilaku berbeda. Kerangka kerja kelas tradisional, seperti OWL dan MFC, mengharuskan Anda memiliki banyak pengetahuan tentang struktur internal, dan tanpa dukungan waktu desain dari alat RAD, fungsinya akan terhambat. Alat yang dapat menyaingi fungsionalitas VCL di masa depan adalah WFC (Windows Foundation Classes) dari Visual J++, yang merupakan Windows Foundation Class. Namun dengan tuntutan hukum Sun Microsystems atas masalah Java yang masih tertunda, masa depan Visual J++ masih belum jelas.