it-swarm-id.com

Delphi vs C # untuk pemrograman GUI

Saya berasal dari PHP dan Python latar belakang dengan sedikit pengetahuan tentang C, saya telah melakukan banyak aplikasi berbasis web sekarang saya sedang memikirkan aplikasi Desktop untuk windows) peron.

Seorang teman mengatakan kepada saya untuk mencari Delphi dan yang lain mengatakan C # adalah yang terbaik, yah, yang saya cari adalah

  1. Kesederhanaan
  2. Produktifitas
  3. Dokumentasi API yang baik
  4. Kecepatan
  5. Seret dan Jatuhkan
  6. Multi threading & API Jaringan Bagus

Terima kasih

20
elf1984

Delphi, pasti:

  1. Kesederhanaan - sintaksis Delphi didasarkan pada Pascal, yang secara eksplisit dirancang agar mudah dipelajari, dan dapat memenuhi janji itu. C # didasarkan pada keluarga C, yang ... yah ... was tidak .
  2. Produktivitas - Delphi adalah turunan dari Turbo Pascal, dan ia masih memiliki kompiler tercepat yang dikenal manusia, yang akan meningkatkan produktivitas Anda dengan luar biasa. Ditambah itu memiliki debugger Visual Studio berharap debuggernya akan seperti ketika itu tumbuh. Terutama di versi terbaru Delphi, debugging jauh lebih mudah.
  3. Dokumentasi API yang bagus - "API" adalah kata yang cukup samar akhir-akhir ini, mencakup segala macam hal. Saya menganggap Anda maksud perpustakaan, dan di sini itu semacam undian. Kerangka .NET dan pustaka standar Delphi memiliki dokumentasi online yang baik dan dokumentasi luring yang biasa-biasa saja dan sulit digunakan. (Konsekuensi dari tim Delphi memilih untuk menggunakan sistem bantuan mengerikan yang sama dengan Visual Studio, yang mereka harap akan pindah dari dalam versi berikutnya.)
  4. Kecepatan - Delphi menang dengan mudah. Ini mengkompilasi ke kode asli (eksekusi lebih cepat dan banyak startup lebih cepat karena tidak ada fase JIT,) dan tidak menggunakan pointer yang dikelola sehingga akses objek lebih cepat dan lebih sedikit cache-tidak ramah.
  5. Seret dan Jatuhkan - Fitur bawaan VCL.
  6. Multi threading - Delphi memiliki kelas utas bawaan, tetapi jika Anda ingin melakukan hal-hal rumit dengan konkurensi, ada opsi yang lebih baik. Primoz Gabrijelcic, anggota komunitas Delphi, telah mengerjakan pustaka concurrency yang sangat baik yang telah saya bantu berkontribusi. Ini memberikan dukungan tingkat tinggi untuk tujuan threading umum seperti pengelompokan tugas, paralel loop UNTUK dan proses pipa multi-tahap.
  7. Good Network API - Delphi dikirimkan bersama Indy, perpustakaan open-source yang matang yang membuat koneksi Internet mudah diatur dan dikelola. Kami menggunakannya di tempat kerja untuk menyediakan lapisan komunikasi untuk aplikasi terkemuka di industri yang mungkin belum pernah Anda dengar kecuali Anda bekerja di media penyiaran.
  8. Penempatan - Ini tidak ada dalam daftar Anda, tetapi perlu disebutkan. Masih ada sistem di luar sana yang belum memiliki .NET framework yang sudah diinstal. Secara default, Delphi mengkompilasi pustaka standarnya ke dalam EXE, kemudian menggunakan smartlinker untuk menghapus bagian yang tidak Anda gunakan, menghasilkan EXE kecil yang tidak memiliki ketergantungan pada pustaka runtime besar yang beratnya mencapai ratusan MB yang akan dimiliki oleh pengguna Anda. untuk mengunduh dan menginstal secara terpisah.
20
Mason Wheeler

C # umumnya akan memiliki basis pengguna yang lebih besar, lebih banyak pengembangan di masa depan, dan alat untuk RAD pengembangan melalui Visual Studio tidak dapat dipercaya.

  1. Sintaksnya akan mirip dengan yang Anda gunakan dalam PHP dan C.
  2. Visual Studio dengan alat-alatnya dan IntelliSense sangat produktif.
  3. MSDN
  4. Sekali lagi, alat VS + Intellisense, tetapi kecepatan benar-benar berasal dari keakraban bahasa Anda dan fitur-fiturnya.
  5. Desainer VS untuk WinForms, WPF.
  6. System.Threading dan System.Net

Saya tidak punya banyak pengalaman dengan Delphi, dan saya hanya berbicara tentang pengalaman saya dengan C # secara umum. Di mana saya bekerja, saya memiliki tenggat waktu yang sangat ketat yang dibayangkan oleh non-programmer, dan saya dapat memompa keluar lini aplikasi desktop bisnis dengan sangat cepat. Dalam tiga minggu terakhir, saya beralih dari spesifikasi ke penyebaran pada dua aplikasi LOB winforms. Produktivitas untuk pengembangan GUI di C # dengan VS hanya gila.

15
bunglestink

Keduanya memiliki semua 6 poin yang Anda inginkan tetapi saya merasa C # memiliki Edge pada sebagian besar jika tidak semua.

Untuk melewati poin:

  1. Delphi membutuhkan manajemen memori, sehingga Anda bisa berpendapat bahwa itu saja membuat C # lebih sederhana. Jawaban yang diterima menyebutkan sintaksis di sini, baik sintaksis C # mirip dengan PHP dan Java, jadi jika Anda ingin bangun dan berjalan lebih cepat dari salah satu latar belakang itu, maka C # memiliki Edge.
  2. Produktivitas, saya pikir Anda lebih cepat selesai dalam C #. Pustaka .net memberi Anda begitu banyak sehingga di masa lalu yang buruk, saya harus melihat ke komponen delphi pihak ketiga untuk menyediakan.
  3. Dokumentasi, Delphi selalu baik, MSDN lebih baik, ditambah Anda akan menemukan komunitas yang lebih besar untuk dukungan, lihat anaylsis Stack Overflow saya di bawah ini.
  4. Kecepatan, Delphi mungkin memiliki Edge pada ini, tetapi Majelis mengalahkan semua sehingga biasanya bukan alasan yang baik untuk memilih bahasa. Satu hal yang akan saya tunjukkan adalah bahwa saya pernah mendengar orang mengutip bahwa C # diinterpretasikan. Bukan, tidak pernah, selalu memiliki JIT.
  5. Seret dan lepas, tersedia di keduanya.
  6. Multithreading, Delphi baik tetapi C # sangat baik dengan membangun konstruksi seperti lock(){} ekstensi paralel, dan await baru.

Poin tambahan, judul pertanyaannya adalah pemrograman GUI, untuk ini saya penggemar berat .nets WPF, yang, satu-satunya yang dimiliki Delphi setengah jalannya adalah Bold , yang menyebalkan untuk dijinakkan dan sekarang mati.

Ukuran komunitas, membandingkan jumlah pertanyaan tentang hal ini dan Stack Overflow pada tag Delphi dan C # Anda akan melihat bahwa ukuran komunitas C # jauh lebih besar.

Stack Overflow:

  • Delphi 17K
  • C # 367K
  • Java 312K
  • c 73K

Saya telah menambahkan c, untuk menunjukkan bahwa tidak ada masalah dengan usia bahasa dan Java hanya untuk perbandingan.

Saya bukan C # atau Java fan boy, saya adalah penggemar Delphi yang besar, pengembang Delphi murni profesional selama 7 tahun, tetapi mereka benar-benar mengacaukannya dari tahun 2005 dan seterusnya dengan penjelajahan mereka yang buruk masuk ke .net yang mengacaukan stabilitas IDE untuk kompilasi asli 32 bit. Delphi 7 adalah puncak bahasa dalam pandangan saya.

14
weston

Ketika saya masih di universitas, saya diajarkan pemrograman dengan Delphi. Saya agak berkarat, tetapi saya saat ini membaca banyak kode Delphi untuk port ke aplikasi C #.

Saya lebih suka OO dengan kecenderungan fungsional C # di atas prosedural dengan OO kecenderungan Delphi. Anda harus mempertimbangkan bagaimana Anda lebih suka kode ketika memilih di antara mereka. Saya tidak berpikir ada banyak di dalamnya ketika datang ke kesederhanaan - hanya apa yang Anda temukan lebih mudah. ​​Hal yang sama berlaku untuk produktivitas.

Dalam hal RAD (pengembangan aplikasi cepat) tidak ada banyak antara winforms dan desain GUI Delphi. Mereka mengingatkan saya satu sama lain.

WPF di sisi lain adalah sesuatu yang saya sukai daripada keduanya karena gaya deklaratifnya.

Saya tidak berpikir ada banyak perbedaan antara kualitas dan cakupan dokumentasi yang disediakan vendor untuk C # atau Delphi. Saya pikir Anda akan menemukan lebih banyak informasi non-vendor tentang C #, tetapi itu bisa saja karena saya belum benar-benar mencari banyak hal di jalan Delphi.

Saya tidak harus melakukan pemrograman ulir dengan Delphi, dan jaringan apa pun yang saya lakukan bertahun-tahun yang lalu dan saya tidak ingat.

Pustaka .NET untuk pemrosesan paralel, acara, dan pekerjaan threading lainnya bagus. Jadi Anda tidak akan ketinggalan di sana. Ada banyak dukungan ketika datang ke jaringan, jadi sekali lagi sangat disarankan.

Secara keseluruhan saya akan pergi dengan C # /. NET. Ini sebagian karena WPF, tetapi saya juga lebih suka kode yang saya tulis dalam C #. Sejauh yang saya tahu delphi tidak memiliki sesuatu seperti Linq, yang saya temukan sangat berharga.

8
Matt Ellen