Delphi vs C # untuk pemrograman GUI [ditutup]

20

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

Seorang teman mengatakan kepada saya untuk mencari Delphi dan yang lain mengatakan C # adalah yang terbaik, well, apa 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

elf1984
sumber

Jawaban:

20

Delphi, pasti:

  1. Kesederhanaan - Sintaksis Delphi didasarkan pada Pascal, yang secara eksplisit dirancang agar mudah dipelajari, dan itu dapat memenuhi janji itu. C # didasarkan pada keluarga C, yang ... yah ... 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. Plus memiliki debugger Visual Studio berharap debuggernya akan seperti ketika dewasa. 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 pertarungan. 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 lebih cepat startup 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 Lepas - 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 perpustakaan 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 tidak 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 dengan berat ratusan MB yang akan dimiliki oleh pengguna Anda. untuk mengunduh dan menginstal secara terpisah.
Mason Wheeler
sumber
2
@ Elf: Mungkin ada lebih banyak pekerjaan C # yang tersedia, tetapi ada juga lebih banyak orang yang bersaing untuk itu. Pengembang Delphi yang terampil tidak kesulitan mencari pekerjaan.
Mason Wheeler
5
C # tidak hanya didasarkan pada C ++, tetapi juga pada Delphi dan Java. Saya juga belajar pemrograman dalam Pascal, dan saya melihat sangat banyak filosofi dalam C #. Mengenai pointer terkelola, Anda telah mendapatkannya mundur, tidak ada overhead mengakses data melalui pointer dikelola, dan mengubahnya lebih cepat daripada dalam sistem menggunakan penghitungan referensi.
Guffa
12
Sintaksis delphi yang mudah dipelajari adalah pernyataan yang sepenuhnya subjektif. Saya marah dengan sintaksis Delphi, dan memutuskan untuk tidak mempelajarinya karena alasan itu.
Tjaart
8
-1: Jawaban ini bias seperti orang gila. Visual Studio debugger setidaknya sama baiknya jika tidak lebih baik dari Delphi. Dokumentasi delphi tidak bisa dibandingkan dengan MSDN sebagai dokumentasi terbaik yang pernah ada.
marco-fiset
4
Penempatan - gagal total. Deplhi membutuhkan Windows, jadi itu adalah langkah mundur dari C #. C # adalah perangkat portabel dan multiplatform berkat Mono. Delphi tidak. Anda tidak perlu membeli Windows untuk menjalankan program yang ditulis dalam C # yang tidak menggunakan pustaka Win32 secara eksplisit. Kesederhanaan - juga kegagalan. Sintaksis C # sangat mudah dibaca, sangat ringkas, dan mudah ditulis. Delphi tidak. Dokumentasi API - tidak! Jika saya menulis "layanan web C #", saya mendapatkan banyak hasil yang relevan. Tidak ada hal seperti itu untuk Delphi. Kecepatan, threading, terutama debugger - juga salah.
TheLonelyCoder
15

C # umumnya akan memiliki basis pengguna yang lebih besar, lebih banyak pengembangan di masa depan, dan alat untuk pengembangan RAD 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.

bunglestink
sumber
4
Terima kasih, menurut sebuah posting di daniweb.com/forums/thread54305.html , integrasi dan kelengkapan API Win32 di Delphi bahkan melampaui C
elf1984
2
Anda harus benar-benar melihat ke Delphi jika Anda berpikir bahwa C # adalah lingkungan pengembangan utama untuk membuat aplikasi desktop dengan cepat. Saya pribadi benci ketika saya harus membuat barang-barang desktop dengan studio visual, tetapi saat ini saya tidak selalu punya pilihan (sayangnya).
Wouter van Nifterick
1
Alat RAD (bentuk desain) Visual Studio menyedot, terus terang.
Warren P
1
@ WarrenP Bisakah Anda jelaskan?
Tjaart
1
Buat aplikasi server dalam C # dan Buat aplikasi desktop dalam Delphi, karena delphi menghasilkan kode asli yang lebih sulit untuk diretas!
justyy
14

Keduanya memiliki semua 6 poin yang Anda inginkan tetapi saya merasa C # memiliki keunggulan 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 sintaks di sini, baik sintaksis C # mirip dengan PHP dan Java, jadi jika Anda ingin bangun dan menjalankan lebih cepat dari salah satu latar belakang itu, maka C # memiliki keunggulan.
  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, plus Anda akan menemukan komunitas yang lebih besar untuk dukungan, lihat anaylsis Stack Overflow saya di bawah ini.
  4. Kecepatan, Delphi mungkin memiliki keunggulan dalam hal ini, tetapi perakitan 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 yang baru await.

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

Ukuran komunitas, membandingkan jumlah pertanyaan tentang 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 itu bukan masalah dengan usia bahasa dan Javahanya untuk perbandingan.

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

Weston
sumber
Bagaimana dengan balasan dengan downvote itu?
barat
1
Saya bukan downvoter, tetapi saya akan mengatakan bahwa Anda tidak menjawab pertanyaan. Anda hanya menilai popularitas Delphi di stackoverflow. Anda yakin benar, tapi itu IMHO cukup kecil. Menjadi satu-satunya yang menggunakan teknologi tidak selalu merupakan hal yang buruk.
Simon Bergot
@Simon fair point, saya sekarang telah menjawab semua poin dan mengintegrasikan analisis dari sejumlah pertanyaan menjadi poin yang lebih luas tentang ukuran komunitas.
barat
Dapat dikatakan bahwa bahasa yang menghasilkan lebih banyak pertanyaan lebih rumit untuk digunakan. ;-) Bagaimana Bold mirip dengan WPF? Saya telah menggunakan WPF dan tidak melihat kesamaan.
Jim McKeeth
@JimMcKeeth Baik Bold dan WPF menyediakan kerangka kerja untuk mengikat data ke kontrol UI sehingga ketika data berubah, UI memperbarui dan sebaliknya jika diperlukan.
weston
8

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 condong fungsional C # daripada prosedural dengan OO condong 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 baik. 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 di C #. Sejauh yang saya tahu delphi tidak memiliki sesuatu seperti Linq, yang saya temukan sangat berharga.

Matt Ellen
sumber
Terima kasih atas balasan Anda yang luar biasa. buku mana yang Anda baca sebagai pemula? sekarang saya akan mulai C # 4 dan .NET 4 pada VS 2010
elf1984
4
Berhati-hatilah saat mencoba port aplikasi Delphi ke C #. Setiap kali saya mendengar ada perusahaan yang mencobanya, mereka akhirnya memvalidasi setiap poin yang dibuat Joel dalam "Things You Should Never Do, Part 1" dan berakhir dengan malapetaka untuk produk dan perusahaan yang memilikinya.
Mason Wheeler
Maaf, saya tidak bisa benar-benar menyarankan Anda pada buku pemula untuk c # 4. Saya tidak yakin saya punya satu ketika saya mulai c # (kembali ke 1.1 hari. Saya yakin ada beberapa, tapi saya tidak membacanya). Ketika saya mulai, saya pikir buku pertama yang saya gunakan adalah Teach Yourself C ++ in 21 Days oleh Jesse Liberty, yang saya baca sebelum saya mulai uni. Butuh waktu lama bagi saya untuk melewatinya, tetapi saya belajar banyak. Buku bagus lain yang saya miliki adalah Discover Delphi, itu buku untuk kursus. Sebuah buku yang saya rekomendasikan adalah Object Thinking oleh David West, karena itu benar-benar membuat Anda berpikir tentang OOP dan OOD, juga Efektif C # oleh Bill Wagner ...
Matt Ellen
... Mereka bukan buku pemula, tetapi begitu Anda memiliki dasar-dasarnya maka mereka memiliki tips dan saran hebat tentang cara menjadi programmer yang lebih baik.
Matt Ellen
BTW jika Anda mencari LINQ di Delphi, lihat perpustakaan DeHL Alexandru Ciobanu. Ini menyediakan koleksi dan operator bergaya LINQ. Sintaks LINQ (hal pseudo-SQL) belum ada di Delphi, tetapi tampaknya tim penyusun sedang mengerjakannya untuk rilis di masa mendatang.
Mason Wheeler