it-swarm-eu.dev

Delphi vs C # pro programování GUI

Pocházím z PHP a Python pozadí s malou znalostí C, udělal jsem mnoho webových aplikací, nyní přemýšlím o desktopové aplikaci pro Windows) plošina.

Kamarád mi řekl, abych šel za Delphi a jiní říkají, že C # je nejlepší, no, to, co hledám, je

  1. Jednoduchost
  2. Produktivita
  3. Dobrá dokumentace API
  4. Rychlost
  5. Drag and Drop
  6. Vícevláknové a dobré síťové API

Dík

20
elf1984

Delphi, rozhodně:

  1. Jednoduchost - Delphiho syntax je založena na Pascalu, který byl výslovně navržen tak, aby se snadno naučil, a může splnit tento slib. C # je založen na rodině C, která ... no ... nebylo nebylo .
  2. Produktivita - Delphi je potomkem Turbo Pascalu a stále má nejrychlejší kompilátor, který je člověku znám, což enormně zvýší vaši produktivitu. Plus má debugger Visual Studio si přeje, aby jeho debugger byl jako když vyroste. Zejména v nejnovější verzi Delphi je ladění mnohem snazší.
  3. Dobrá dokumentace k API - „API“ je v dnešní době docela vágní slovo, které zahrnuje nejrůznější věci. Předpokládám, že máte na mysli knihovny, a tady je to jakousi hod. Rámec .NET Framework i standardní knihovny Delphi mají dobrou online dokumentaci a průměrnou, obtížně použitelnou offline dokumentaci. (Důsledek toho, že se tým Delphi rozhodl použít stejný hrozný systém nápovědy jako Visual Studio, z něhož se snad v další verzi snad vzdálí.)
  4. Rychlost - Delphi snadno vyhrává. Zkompiluje se do nativního kódu (rychlejší spuštění a mnohem rychlejší spuštění, protože neexistuje fáze JIT) a nepoužívá spravované ukazatele, takže přístup k objektům je rychlejší a méně nepřátelských mezipaměti.
  5. Drag and Drop - Vestavěná funkce VCL.
  6. Více vláken - Delphi má vestavěnou třídu vláken, ale pokud chcete dělat složité věci souběžně, existují lepší možnosti. Primoz Gabrijelcic, člen komunity Delphi, pracuje na vynikající souběžná knihovna , ke které jsem pomohl přispět. Poskytuje vysokou úroveň podpory pro běžné cíle podprocesů, jako je sdružování úloh, paralelní FOR smyčky a vícestupňové procesy potrubí.
  7. Dobré síťové API - Delphi je dodáván s Indy, vyspělou knihovnou s otevřeným zdrojovým kódem, která usnadňuje nastavení a správu připojení k internetu. Používáme ji v práci k zajištění komunikační vrstvy pro špičkovou aplikaci, o které jste pravděpodobně nikdy neslyšeli, pokud nepracujete ve vysílání médií.
  8. Nasazení - Toto nebylo na vašem seznamu, ale stojí za zmínku. Stále existují systémy, které nemají předinstalovaný rámec .NET. Ve výchozím nastavení Delphi zkompiluje svou standardní knihovnu do EXE a poté pomocí smartlinkeru odstraní části, které nepoužíváte, což má za následek malé EXE, které nemají závislost na masivních runtime knihovnách vážících stovky MB, které vaši uživatelé budou mít stáhnout a nainstalovat samostatně.
20
Mason Wheeler

C # obecně bude mít větší uživatelskou základnu, další vývoj v budoucnosti a nástroje pro vývoj RAD vývoj prostřednictvím Visual Studio jsou neuvěřitelné).

  1. Syntaxe bude podobná syntaxi, kterou jste použili v PHP a C.
  2. Visual Studio se svými nástroji a IntelliSense je velmi produktivní.
  3. MSDN
  4. Opět platí, že nástroje VS + Intellisense, ale rychlost skutečně pochází ze znalosti vašeho jazyka a jeho funkcí.
  5. VS návrhář pro WinForms, WPF.
  6. System.Threading a System.Net

Nemám mnoho zkušeností s Delphi a mluvím jen o svých zkušenostech s C # obecně. Tam, kde pracuji, mám extrémně krátké termíny, které si nepředstavují programátoři, a jsem schopen čerpat řadu podnikových desktopových aplikací velmi rychle. V posledních třech týdnech jsem přešel od specifikace k nasazení ve dvou LOB aplikacích winforms. Produktivita pro vývoj GUI v C # s VS je prostě šílená.

15
bunglestink

Oba mají všech 6 bodů, které chcete, ale mám pocit, že C # má Edge na většině, ne-li na všech.

Projít body:

  1. Delphi vyžaduje správu paměti, takže můžete argumentovat, že samotné C # je jednodušší. Přijatá odpověď zde zmiňuje syntaxi, takže syntaxe C # je podobná oběma PHP a Java), takže pokud chcete rychlejší a rychlejší provoz z některého z těchto prostředí, pak C # má hranu.
  2. Produktivita, myslím si, že se v C # uděláte rychleji. Knihovna .net vám dává tolik, že ve špatných starých časech bych musel hledat komponenty Delphi třetích stran, abych je mohl poskytnout.
  3. Dokumentace, Delphi's byla vždy dobrá, MSDN je lepší, plus najdete větší komunitu pro podporu, viz moje anaylsis Stack Overflow.
  4. Rychle, Delphi by to mohl mít na hraně, ale Shromáždění všechno převyšuje, takže to obvykle není dobrý důvod pro výběr jazyka. Jedna věc, na kterou bych poukázal, je, že jsem slyšel lidi citovat, že C # je interpretován. To není, nikdy to nebylo, vždycky měl JIT.
  5. Drag and drop, k dispozici na obou.
  6. Vícevláknové zpracování, Delphi je dobré, ale C # je vynikající díky vestavěným konstrukcím jako lock(){} paralelní rozšíření a nové await.

Extra bod, název otázky je GUI programování, pro toto jsem velký fanoušek .net WPF, což jediná věc, kterou měl Delphi, že byl na půl cesty byl tučné , což byla bolest skrotit a teď mrtvý.

Velikost komunity, porovnáním počtu otázek na toto a Stack Overflow na značkách Delphi a C # uvidíte, že velikost komunity C # je mnohem větší.

Přetečení zásobníku:

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

Přidal jsem c, abych ukázal, že to není problém s věkem jazyků a Java jen pro srovnání.

Nejsem fanoušek C # nebo Java fanoušek pro kluky, byl jsem velkým fanouškem Delphi, profesionálním čistým vývojářem Delphi po dobu 7 let, ale od roku 2005 to opravdu zkomplikovali s jejich špatně opuštěným vpádem do .net, který způsobil stabilitu stability IDE pro dokonce nativní 32bitovou kompilaci. Delphi 7 byla podle mého názoru vrcholem jazyka.

14
weston

Když jsem byl na uni, učil jsem se programovat s Delphi. Jsem trochu rezavý, ale v současné době si přečtu spoustu kódu Delphi, který jej přenese do aplikace C #.

Hodně preferuji OO s funkčními sklony C # před procedurálními procedurami s OO sklony Delphi.) Při výběru mezi nimi byste měli zvážit, jak dáváte přednost kódu. Nemyslím si, že v tom je mnoho, pokud jde o jednoduchost - přesně to, co považujete za jednodušší. Totéž platí pro produktivitu.

Pokud jde o RAD (rychlý vývoj aplikací), mezi winformy a designem GUI Delphi není moc, navzájem mi připomínají.

WPF na druhé straně je něco, co preferuji před oběma pro svůj deklarativní styl.

Nemyslím si, že existuje velký rozdíl mezi kvalitou a pokrytím dokumentace poskytnuté dodavatelem pro C # nebo Delphi. Myslím, že najdete více informací o C #, které nejsou prodejci, ale mohlo by to být jen proto, že jsem ve skutečnosti Delphi příliš nehledal.

S Delphi jsem nemusel dělat žádné podprocesové programování a jakákoli síť, kterou jsem dělal, byla před lety a nemohu si vzpomenout.

Knihovny .NET pro paralelní zpracování, události a další zpracování podprocesů jsou dobré. Takže vám nebude chybět. Pokud jde o vytváření sítí, existuje velká podpora, takže se opět velmi doporučuje.

Celkově bych šel s C # /. NET. Je to částečně kvůli WPF, ale také dávám přednost kódu, který píšu v C #. Pokud vím, delphi nemá nic jako Linq, což mi připadá neocenitelné.

8
Matt Ellen