it-swarm.dev

GUI programlama için Delphi vs C #

Ben PHP ve Python C bilgisi az arka plan ile geliyorum, şimdi birçok web tabanlı uygulama yaptım şimdi Windows için Masaüstü uygulaması düşünüyorum platformudur.

Bir arkadaşım Delphi için gitmemi söyledi ve diğerleri C # en iyisi, aradığım şey

  1. Basitlik
  2. Verimlilik
  3. İyi API belgeleri
  4. Hız
  5. Sürükle ve bırak
  6. Çoklu iş parçacığı ve İyi Ağ API'sı

Teşekkürler

20
elf1984

Delphi, kesinlikle:

  1. Basitlik - Delphi'nin sözdizimi, öğrenmesi kolay olacak şekilde açıkça tasarlanan Pascal'a dayanır, ve bu sözü yerine getirebilir. C # 's C ailesine dayanır ... değil .
  2. Verimlilik - Delphi, Turbo Pascal'ın torunudur ve hala insan tarafından bilinen en hızlı derleyiciye sahiptir, üretkenliğinizi muazzam bir şekilde artıracaktır. Artı Visual Studio hata ayıklayıcısının, büyür. Özellikle Delphi'nin son sürümünde hata ayıklama çok daha kolaydır.
  3. İyi API belgeleri - "API" bu günlerde her türlü şeyi kapsayan oldukça belirsiz bir Word. Sanırım kütüphaneler demek istiyorsun, ve işte bu bir çeşit savurganlık. Hem .NET çerçevesi hem de Delphi standart kitaplıkları iyi çevrimiçi belgelere ve vasat, kullanımı zor çevrimdışı belgelere sahiptir. (Delphi ekibinin, bir sonraki sürümde uzaklaşacakları Visual Studio ile aynı korkunç yardım sistemini kullanmayı seçmesinin bir sonucu.)
  4. Hız - Delphi kolayca kazanır. Yerel kodu derler (daha hızlı yürütme ve çok JIT aşaması olmadığı için daha hızlı başlatma) ve yönetilen işaretçiler kullanmaz, böylece nesne erişimi daha hızlı olur ve daha az önbellek dostu.
  5. Sürükle ve Bırak - VCL'nin yerleşik bir özelliği.
  6. Çoklu iş parçacığı - Delphi yerleşik bir iş parçacığı sınıfına sahiptir, ancak eşzamanlılık ile karmaşık şeyler yapmak istiyorsanız daha iyi seçenekler vardır. Delphi topluluk üyesi Primoz Gabrijelcic, katkıda bulunduğum yardım için mükemmel bir eşzamanlılık kütüphanesi üzerinde çalışıyor. Görev havuzu oluşturma, paralel FOR döngüleri ve çok aşamalı boru hattı süreçleri gibi yaygın iş parçacığı hedefleri için üst düzey destek sağlar.
  7. İyi Ağ API'sı - Delphi, Internet bağlantılarını kurmayı ve yönetmeyi kolaylaştıran olgun bir açık kaynaklı kütüphane olan Indy ile birlikte gelir. Bunu, yayın ortamında çalışmadığınız sürece muhtemelen hiç duymadığınız sektör lideri bir uygulama için iletişim katmanı sağlamak amacıyla kullanıyoruz.
  8. Dağıtım - Bu listenizde değildi, ancak belirtmeye değer. Halen önceden .NET framework yüklü olmayan sistemler var. Varsayılan olarak, Delphi standart kütüphanesini EXE'de derler, ardından kullanmadığınız parçaları kaldırmak için bir akıllı bağlantı kullanır, bu da kullanıcılarınızın sahip olacağı yüzlerce MB ağırlığında büyük çalışma zamanı kitaplıklarına bağımlı olmayan küçük EXE'lerle sonuçlanır. ayrı olarak indirmek ve yüklemek için.
20
Mason Wheeler

C # genellikle daha büyük bir kullanıcı tabanına, gelecekte daha fazla geliştirmeye sahip olacak ve RAD Visual Studio aracılığıyla geliştirme araçları inanılmaz.

  1. Sözdizimi PHP ve C'de kullandığınıza benzer olacaktır.
  2. Araçları ve IntelliSense ile Visual Studio son derece verimlidir.
  3. MSDN
  4. Yine, VS araçları + Intellisense, ancak hız gerçekten dilinizi ve özelliklerini biliyor.
  5. WinForms, WPF için VS tasarımcısı.
  6. System.Threading ve System.Net

Delphi ile pek tecrübem yok ve sadece C # ile deneyimlerim hakkında konuşuyorum. Çalıştığım yerde, programcı olmayanlar tarafından öngörülen son derece sıkı teslim tarihlerim var ve iş masaüstü uygulamaları hattını son derece hızlı bir şekilde pompalayabiliyorum. Son üç hafta içinde iki winform LOB uygulamasında şartnameden konuşlandırmaya geçtim. VS ile C # GUI geliştirme verimliliği sadece deli.

15
bunglestink

Her ikisi de istediğiniz 6 puan var ama C # tüm değilse en çok Edge olduğunu hissediyorum.

Noktaları gözden geçirmek için:

  1. Delphi, bellek yönetimi gerektirir, bu yüzden tek başına C # 'ı kolaylaştırdığını iddia edebilirsiniz. Kabul edilen cevap burada sözdizimden bahsediyor, iyi C # sözdizimi hem PHP ve Java'ya benzer), bu nedenle bu arka planlardan herhangi birinden daha hızlı çalışmaya başlamak istiyorsanız, C # Edge'e sahiptir.
  2. Verimlilik, sanırım C # 'da daha hızlı iş yaparsınız. .Net kütüphanesi size o kadar çok şey verir ki, kötü eski günlerde, sağlamak için 3. taraf delphi bileşenlerine bakmak zorunda kalırım.
  3. Dokümantasyon, Delphi her zaman iyiydi, MSDN daha iyi, ayrıca destek için daha büyük bir topluluk bulacaksınız, aşağıdaki Stack Overflow analizime bakın.
  4. Hız, Delphi'nin bu konuda Edge'i olabilir, ancak Meclis hepsini koyar, bu yüzden bir dil seçmek için genellikle iyi bir neden değildir. Belirteceğim bir şey, insanların C #'ın yorumlandığını gösterdiğini duydum. Öyle değil, hiç olmadı, her zaman bir JIT vardı.
  5. Her ikisinde de sürükle ve bırak özelliği.
  6. Çok iş parçacıklı, Delphi iyidir ancak C #, lock(){} paralel uzantılar ve yeni await gibi yapılarda mükemmeldir.

Ekstra nokta, soru başlığı GUI programlama, çünkü bu büyük bir .nets hayranıyım WPF, hangi Delphi vardı yarım şey yakın tek şey Bold , hangi bir acı oldu ve şimdi öldü.

Topluluk boyutu, bu soruların sayısını ve hem Delphi hem de C # etiketleri üzerinde Stack Overflow karşılaştırarak C # topluluğunun boyutunun çok daha büyük olduğunu göreceksiniz.

Yığın Taşması:

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

Bunun, yaş karşılaştırması ile ilgili bir sorun olmadığını göstermek için c ekledim ve Java sadece karşılaştırma için.

Ben bir C # veya Java fan boy, ben 7 yıldır profesyonel bir Delphi geliştiricisi, büyük bir Delphi hayranıydım, ama onlar gerçekten 2005 yılından itibaren kötü faray foray ile berbat .net IDE bile 32 bit derleme için bile kararlılığı bozdu. Delphi 7 bence dilin zirvesiydi.

14
weston

Ben üniversitede iken, Delphi ile programlama öğretildi. Biraz paslıyım, ama şu anda bir C # uygulamasına taşımak için Delphi kodu çok okuyorum.

OO = C = fonksiyonel eğilimler ile o OO Delphi eğilimleri. Basitlik söz konusu olduğunda çok şey olduğunu düşünmüyorum - sadece daha kolay bulduğunuz şey - Aynı şey üretkenlik için de geçerli.

RAD (hızlı uygulama geliştirme) açısından, winformlar ve Delphi GUI tasarımı arasında çok fazla bir şey yoktur ve bana birbirlerini hatırlatırlar).

Öte yandan WPF, hem bildirimsel tarzı için hem de tercih ettiğim bir şey.

C # veya Delphi için sağlanan satıcı sağlanan kalite ve kapsamı arasında çok fark olduğunu sanmıyorum. C # hakkında daha fazla satıcı olmayan bilgi bulacaksınız, ama bu sadece Delphi yolunda çok fazla aramadım çünkü olabilir düşünüyorum.

Delphi ile herhangi bir dişli programlama yapmak zorunda kalmadım ve yaptığım herhangi bir ağ yıllar önceydi ve hatırlayamıyorum.

Paralel işleme, olaylar ve diğer iş parçacığı işleri için .NET kitaplıkları iyidir. Yani orada kaçırmayacaksın. Ağ oluşturma konusunda büyük destek vardır, bu yüzden tekrar şiddetle tavsiye edilir.

Genel olarak C # /. NET ile gider. Bu kısmen WPF nedeniyle, ama aynı zamanda ben C # yazmak kodu tercih ederim. Bildiğim kadarıyla delphi'nin Linq gibi çok değerli bir şeyi yok.

8
Matt Ellen