GUI programlama için Delphi vs C # [kapalı]


20

Ben C ve az bilgi ile PHP ve Python arka plan geliyor, şimdi birçok platform tabanlı yaptım şimdi windows platformu için Masaüstü uygulaması düşünüyorum.

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

Yanıtlar:


20

Delphi, kesinlikle:

  1. Basitlik - Delphi'nin sözdizimi, öğrenmesi kolay olacak şekilde açıkça tasarlanmış olan Pascal'a dayanır ve bu sözü yerine getirebilir. C # 's C ailesine dayanır, ki ... iyi ... değildi .
  2. Verimlilik - Delphi, Turbo Pascal'ın torunudur ve hala insanlığın bildiği en hızlı derleyiciye sahiptir ve bu da verimliliğinizi büyük ölçüde artıracaktır. Ayrıca Visual Studio, hata ayıklayıcının büyüdüğü zamanki gibi olmasını istiyor. Özellikle Delphi'nin son sürümünde hata ayıklama çok daha kolaydır.
  3. İyi API dokümantasyonu - "API" bu günlerde her türlü şeyi kapsayan oldukça belirsiz bir kelimedir. Sanırım kütüphaneler demek istiyorsun, ve işte bu bir nevi tossup. 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 ( JIT aşaması olmadığı için daha hızlı yürütme ve çok daha hızlı başlatma) ve yönetilen işaretçiler kullanmaz, böylece nesne erişimi daha hızlı ve daha az önbellek dostu olur.
  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 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.

2
@Elf: Daha fazla C # işi olabilir, ancak onlar için rekabet eden çok daha fazla kişi vardır. Yetenekli Delphi geliştiricileri iş bulmakta zorlanmazlar.
Mason Wheeler

5
C # sadece C ++ değil, aynı zamanda Delphi ve Java'yı da temel alır. Pascal'da programlamayı da öğrendim ve onun felsefesinin çoğunu C # 'da görüyorum. Yönetilen işaretçilerle ilgili olarak, geriye doğru aldığınızdan, yönetilen işaretçiler aracılığıyla verilere genel bir erişim yoktur ve bunları değiştirmek, sayım kullanan bir sistemdekinden daha hızlıdır.
Guffa

12
Delphi sözdiziminin öğrenilmesi kolay olması tamamen öznel bir ifadedir. Delphi sözdizimi tarafından çileden çıkarıldım ve bu nedenle öğrenmeye karşı karar verdim.
Tjaart

8
-1: Bu cevap deli gibi önyargılı. Visual Studio hata ayıklayıcı en azından Delphi daha iyi değilse iyidir. Delphi belgeleri, MSDN'nin şimdiye kadarki en iyi belgeler olmasına kıyasla dayanıksızdır.
marco-fiset

4
Dağıtım - toplam başarısız. Deplhi Windows gerektirir, bu yüzden C # 'dan geriye doğru bir adım. C #, Mono sayesinde taşınabilir ve çok platformludur. Delphi değil. Açıkça Win32 kitaplıkları kullanmayan C # ile yazılmış bir programı çalıştırmak için Windows satın almanız gerekmez. Basitlik - ayrıca başarısızlık. C # 'ın sözdizimini okumak çok kolay, özlü ve yazması kolaydır. Delphi değil. API belgeleri - cehennem yok! "Web hizmeti C #" yazarsam, tonlarca alakalı sonuç alırım. Delphi için böyle bir şey yok. Hız, iş parçacığı, özellikle hata ayıklayıcı - ayrıca yanlış.
TheLonelyCoder

15

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

  1. Sözdizimi, PHP ve C'de kullandığınızla 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şletme 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.


4
Teşekkürler, daniweb.com/forums/thread54305.html adresindeki bir gönderiye göre, Delphi'de Win32 API entegrasyonu ve eksiksizliği C'yi bile
geçiyor

2
C # 'ın masaüstü uygulamaları hızlı oluşturmak için nihai geliştirme ortamı olduğunu düşünüyorsanız gerçekten Delphi'ye bakmalısınız. Visual studio ile masaüstü işleri yaratmam gerektiğinde kişisel olarak nefret ediyorum, ama bugünlerde her zaman bir seçeneğim yok (maalesef).
Wouter van Nifterick

1
Visual Studio'nun RAD (form tasarımı) araçları açıkçası emiyor.
Warren P

1
@WarrenP Lütfen biraz ayrıntı verebilir misiniz?
Tjaart

1
C # 'da sunucu uygulaması yaratın ve Delphi'de masaüstü uygulaması yaratın, çünkü delphi kırılması daha zor olan yerel kod üretir!
justyy

14

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

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

  1. Delphi bellek yönetimi gerektirir, bu yüzden tek başına C # 'ı basitleştirdiğini iddia edebilirsiniz. Kabul edilen cevap burada sözdizimden bahsediyor, iyi C # sözdizimi hem PHP hem de Java'ya benzer, bu nedenle bu arka planlardan herhangi birinden daha hızlı kalkmak ve çalışmak istiyorsanız, C # kenara 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 kalacağım.
  3. Dokümantasyon, Delphi her zaman iyiydi, MSDN daha iyidir, ayrıca destek için daha büyük bir topluluk bulacaksınız, aşağıdaki Yığın Taşması analizime bakın.
  4. Hız, Delphi'nin bu konuda avantajı olabilir, ancak montaj 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. Sürükle ve bırak, her ikisinde de kullanılabilir.
  6. Çok iş parçacıklı, Delphi iyidir ama C # lock(){}paralel uzantılar ve yeni gibi yapılarda mükemmeldir await.

Ekstra nokta, soru başlığı GUI programlama, çünkü ben .nets WPF'nin büyük bir hayranıyım, Delphi'nin yarı yolda olduğu tek şey, kalın ve şimdi ölü bir acı olan Bold'du.

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

Ekledim c, bunun yaş diliyle ilgili bir sorun olmadığını ve Javasadece karşılaştırma için olduğunu ekledim .

Ben bir C # veya Java fan çocuğu değilim, 7 yıl boyunca büyük bir Delphi hayranıyım, profesyonel saf Delphi geliştiricisiydim, ancak 2005'ten itibaren kötü bir şekilde başarısız olan foray ile. Yerel 32 bit derleme için bile IDE. Delphi 7 bence dilin zirvesiydi.


Bu düşüşe bir cevap vermeye ne dersiniz?
weston

1
Ben aşağılayıcı değilim, ama soruyu cevaplamadığınızı söyleyebilirim. Sadece Delphi'nin stackoverflow üzerindeki popülerliğini değerlendiriyorsunuz. Bir noktaya dikkat edin, ama IMHO oldukça küçük. Bir teknolojiyi kullanan tek kişi olmak her zaman kötü bir şey değildir.
Simon Bergot

@Simon fair point, şimdi tüm noktaları cevapladım ve soru sayısının analizini topluluk büyüklüğü hakkında daha geniş bir noktaya entegre ettim.
weston

Daha fazla soruya neden olan dilin kullanımı daha karmaşık olduğu söylenebilir. ;-) Bold WPF ile nasıl benzerdi? WPF kullandım ve benzerlik görmedim.
Jim McKeeth

@JimMcKeeth Hem Bold hem de WPF, verileri UI kontrollerine bağlamak için bir çerçeve sağlar; böylece veriler değiştiğinde, UI güncellenir ve gerekirse tam tersi.
weston

8

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

Ben çok Delphi OO eğilimleri ile prosedür C # fonksiyonel eğilimleri ile OO tercih. Aralarında seçim yaparken nasıl kod yazmayı tercih ettiğinizi düşünmelisiniz. Basitlik söz konusu olduğunda çok fazla şey olduğunu düşünmüyorum - sadece daha kolay bulduğunuz şey. Aynı şey verimlilik için de geçerlidir.

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

Ö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 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.


Harika cevabınız için teşekkür ederim. acemi olarak hangi kitabı okudun şimdi VS 2010 üzerinde C # 4 ve .NET 4 başlayacağım
elf1984

4
Delphi uygulamasını C # 'a aktarmaya çalışırken dikkatli olun. Denediğim her şirketi duyduğumda, Joel'in "Asla Yapmamanız Gereken Şeyler, Bölüm 1" de yaptığı her noktayı doğruladılar ve ürün ve ona sahip olan şirket için felaketle sonuçlandı.
Mason Wheeler

Üzgünüm, c # 4 için yeni başlayanlar kitabında size gerçekten tavsiyede bulunamıyorum. C # başladığımda bir tane olduğundan emin değilim (1.1 gün içinde. Eminim biraz vardı, ama bir tane okumadım). Başladığımda ilk kullandığım kitabın 21 gün içinde Jesse Liberty tarafından Teach Yourself C ++ olduğunu düşünüyorum. Üstesinden gelmek çok uzun sürdü, ama çok şey öğrendim. Sahip olduğum bir başka güzel kitap da Delphi'yi keşfetti, bu dersin kitabıydı. Tavsiye ettiğim bir kitap, David West'in Object Thinking olduğunu, çünkü gerçekten OOP ve OOD hakkında düşünmenizi sağlıyor, ayrıca Bill Wagner'in Etkili C # ...
Matt Ellen

... Yeni başlayanlar kitabı değiller, ancak temel bilgilere sahip olduğunuzda, daha iyi bir programcı olmak için harika ipuçları ve tavsiyeleri var.
Matt Ellen

BTW Delphi'de LINQ arıyorsanız Alexandru Ciobanu'nun DeHL kütüphanesine göz atın. LINQ tarzı koleksiyonlar ve operatörler sağlar. LINQ sözdizimi (sözde SQL şeyler) henüz Delphi'de değil, ancak görünüşe göre derleyici ekibi gelecekteki bir sürüm için çalışıyor.
Mason Wheeler
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.