Delphi vs C # per programmazione GUI [chiuso]


20

Vengo da PHP e Python con poca conoscenza di C, ho fatto molte applicazioni basate sul web ora sto pensando a un'applicazione desktop per piattaforma Windows.

Un amico mi ha detto di andare per Delphi e altri stanno dicendo che C # è il migliore, beh, quello che sto cercando è

  1. Semplicità
  2. Produttività
  3. Buona documentazione API
  4. Velocità
  5. Trascinare e rilasciare
  6. API multi-thread e buona rete

Grazie

Risposte:


20

Delfi, sicuramente:

  1. Semplicità: la sintassi di Delphi si basa su Pascal, che è stato esplicitamente progettato per essere facile da imparare e può mantenere questa promessa. C # è basato sulla famiglia C, che ... beh ... non lo era .
  2. Produttività - Delphi è un discendente di Turbo Pascal e ha ancora il compilatore più veloce conosciuto dall'uomo, che aumenterà enormemente la tua produttività. Inoltre ha il debugger che Visual Studio desidera che il suo debugger sarà come quando crescerà. Soprattutto nell'ultima versione di Delphi, il debug è molto più semplice.
  3. Buona documentazione API - "API" è una parola piuttosto vaga in questi giorni, che comprende ogni sorta di cose. Presumo che tu intenda le biblioteche, e qui è una specie di tossup. Sia il framework .NET che le librerie standard Delphi hanno una buona documentazione online e una documentazione offline mediocre e difficile da usare. (Una conseguenza del team di Delphi che ha scelto di utilizzare lo stesso orribile sistema di aiuto di Visual Studio, di cui si spera si allontanerà nella prossima versione.)
  4. Velocità: Delphi vince facilmente. Si compila in codice nativo (esecuzione più rapida e avvio molto più veloce perché non esiste una fase JIT) e non utilizza i puntatori gestiti, quindi l'accesso agli oggetti è più veloce e meno ostile alla cache.
  5. Drag and Drop - Una funzionalità integrata di VCL.
  6. Multi threading: Delphi ha una classe di thread incorporata, ma se vuoi fare cose complesse con la concorrenza ci sono opzioni migliori. Primoz Gabrijelcic, un membro della comunità Delphi, ha lavorato su un'eccellente libreria di concorrenza a cui ho contribuito a contribuire. Fornisce supporto di alto livello per obiettivi di threading comuni come pool di attività, loop FOR paralleli e processi di pipeline a più fasi.
  7. Buona API di rete: Delphi viene fornito con Indy, una libreria open source avanzata che semplifica l'impostazione e la gestione delle connessioni Internet. Lo usiamo al lavoro per fornire il livello di comunicazione per un'app leader del settore di cui probabilmente non hai mai sentito parlare a meno che non lavori nei media di trasmissione.
  8. Distribuzione: non era presente nell'elenco, ma vale la pena menzionarlo. Ci sono ancora sistemi là fuori che non hanno il framework .NET preinstallato. Per impostazione predefinita, Delphi compila la sua libreria standard in EXE, quindi utilizza uno smartlinker per rimuovere le parti che non usi, risultando in piccoli EXE che non hanno dipendenze da enormi librerie di runtime che pesano a centinaia di MB che i tuoi utenti avranno per scaricare e installare separatamente.

2
@Elf: potrebbero esserci più lavori C # disponibili, ma ci sono anche molte più persone in competizione per loro. Gli sviluppatori Delphi esperti non hanno problemi a trovare lavoro.
Mason Wheeler,

5
C # non si basa solo su C ++, ma anche su Delphi e Java. Anch'io ho imparato a programmare in Pascal e vedo molto della sua filosofia in C #. Per quanto riguarda i puntatori gestiti, ciò è arretrato, non vi è alcun sovraccarico di accesso ai dati tramite puntatori gestiti e la loro modifica è più rapida rispetto a un sistema che utilizza il conteggio dei riferimenti.
Guffa,

12
La sintassi di Delphi è facile da imparare è un'affermazione completamente soggettiva. Fui infuriato dalla sintassi di Delphi e decisi di non impararlo per quel motivo.
Tjaart,

8
-1: questa risposta è parziale come un matto. Il debugger di Visual Studio è almeno altrettanto buono se non migliore di Delphi. La documentazione di Delphi è inesistente rispetto a MSDN essendo la migliore documentazione di sempre.
marco-fiset,

4
Distribuzione: errore totale. Deplhi richiede Windows, quindi questo è un passo indietro rispetto a C #. C # è portatile e multipiattaforma grazie a Mono. Delphi no. Non è necessario acquistare Windows per eseguire un programma scritto in C # che non utilizza esplicitamente le librerie Win32. Semplicità - anche fallimento. La sintassi di C # è molto facile da leggere, molto concisa e facile da scrivere. Delphi no. Documentazione API - inferno no! Se scrivo "web service C #" ottengo tonnellate di risultati pertinenti. Niente del genere per Delphi. Velocità, threading, in particolare il debugger - anche falso.
TheLonelyCoder

15

C # generalmente avrà una base di utenti più ampia, più sviluppo in futuro e gli strumenti per lo sviluppo di RAD attraverso Visual Studio sono incredibili.

  1. La sintassi sarà simile a quella usata in PHP e C.
  2. Visual Studio con i suoi strumenti e IntelliSense è estremamente produttivo.
  3. MSDN
  4. Ancora una volta, strumenti VS + Intellisense, ma la velocità viene davvero da una familiarità della tua lingua e delle sue caratteristiche.
  5. Progettista VS per WinForms, WPF.
  6. System.Threading e System.Net

Non ho molta esperienza con Delphi e sto solo parlando delle mie esperienze con C # in generale. Dove lavoro, ho delle scadenze estremamente strette previste dai non programmatori e sono in grado di pompare le applicazioni desktop aziendali in modo estremamente rapido. Nelle ultime tre settimane sono passato dalle specifiche alla distribuzione su due applicazioni LOB winforms. La produttività per lo sviluppo della GUI in C # con VS è semplicemente folle.


4
Grazie, secondo un post su daniweb.com/forums/thread54305.html , l'integrazione dell'API Win32 e la completezza in Delphi superano anche C
elf1984

2
dovresti davvero esaminare Delphi se pensi che C # sia l'ambiente di sviluppo definitivo per la creazione rapida di applicazioni desktop. Personalmente lo odio quando devo creare cose desktop con Visual Studio, ma al giorno d'oggi non ho sempre scelta (purtroppo).
Wouter van Nifterick,

1
Gli strumenti RAD (design del modulo) di Visual Studio fanno schifo, francamente.
Warren P

1
@WarrenP Potresti per favore elaborare?
Tjaart,

1
Crea un'applicazione server in C # e crea un'applicazione desktop in Delphi, perché delphi produce codice nativo che è più difficile da decifrare!
justyy,

14

Entrambi hanno tutti e 6 i punti che desideri, ma penso che C # abbia il vantaggio di più se non tutti.

Per passare attraverso i punti:

  1. Delphi richiede la gestione della memoria, quindi si potrebbe sostenere che da solo rende C # più semplice. La risposta accettata menziona la sintassi qui, anche la sintassi C # è simile sia a PHP che a Java, quindi se vuoi alzarti e correre più veloce da uno di questi sfondi, allora C # ha il vantaggio.
  2. Produttività, penso che tu possa fare di più velocemente in C #. La libreria .net ti dà così tanto che ai vecchi tempi, dovrei cercare componenti delphi di terze parti per fornire.
  3. Documentazione, Delphi è sempre stata buona, MSDN è migliore, inoltre troverai una community più ampia di supporto, vedi la mia analisi sullo Stack Overflow di seguito.
  4. Velocità, Delphi potrebbe avere il vantaggio su questo, ma l'assemblaggio vince su tutto, quindi di solito non è un buon motivo per scegliere una lingua. Una cosa che vorrei sottolineare è che ho sentito la gente citare che C # è interpretato. Non è, non è mai stato, ha sempre avuto una SIC.
  5. Trascina selezione, disponibile su entrambi.
  6. Multithreading, Delphi è buono ma C # è eccellente con build in costrutti come lock(){}estensioni parallele e il nuovo await.

Punto in più, il titolo della domanda è la programmazione della GUI, per questo sono un grande fan di .nets WPF, che, l'unica cosa che Delphi aveva a metà strada era Bold , che era un dolore da domare e ora morto.

Dimensione della comunità, confrontando il numero di domande su questo e Stack Overflow su entrambi i tag Delphi e C # vedrai che la dimensione della comunità C # è molto più grande.

Stack Overflow:

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

Ho aggiunto c, per dimostrare che non è un problema con l'età delle lingue e Javasolo per confronto.

Non sono un fan di C # o Java, sono stato un grande fan di Delphi, sviluppatore professionista puro di Delphi per 7 anni, ma l'hanno davvero rovinato dal 2005 in poi con la loro incursione maledetta in .net che ha rovinato la stabilità del IDE per compilazione anche nativa a 32 bit. Dal mio punto di vista Delphi 7 era il massimo della lingua.


Che ne dici di una risposta con quel downvote?
Weston,

1
Non sono il downvoter, ma direi che non stai rispondendo alla domanda. Stai solo valutando la popolarità di Delphi su StackOverflow. Hai sicuramente un punto, ma è IMHO abbastanza minore. Essere l'unico ad usare una tecnologia non è sempre una brutta cosa.
Simon Bergot,

@Simon punto giusto, ora ho risposto a tutti i punti e ho integrato l'analisi del numero di domande in un punto più ampio sulla dimensione della comunità.
Weston,

Si potrebbe sostenere che il linguaggio che si traduce in più domande è più complicato da usare. ;-) In che modo Bold era simile a WPF? Ho usato WPF e non ho visto alcuna somiglianza.
Jim McKeeth,

@JimMcKeeth Sia Bold che WPF forniscono un framework per associare i dati ai controlli dell'interfaccia utente in modo che quando i dati cambiano, l'interfaccia utente si aggiorna e viceversa, se necessario.
Weston,

8

Quando ero all'università, mi è stato insegnato a programmare con Delphi. Sono un po 'arrugginito, ma al momento sto leggendo un sacco di codice Delphi per portarlo su un'applicazione C #.

Preferisco di gran lunga l'OO con inclinazioni funzionali di C # rispetto alle procedure con inclinazioni OO di Delphi. Dovresti considerare come preferisci programmare quando scegli tra di loro. Non penso che ci sia molto in termini di semplicità, proprio quello che trovi più facile. Lo stesso vale per la produttività.

In termini di RAD (rapido sviluppo di applicazioni) non c'è molto tra Winforms e la progettazione della GUI di Delphi. Mi ricordano l'un l'altro.

WPF d'altra parte è qualcosa che preferisco sia per il suo stile dichiarativo.

Non credo che ci sia molta differenza tra la qualità e la copertura della documentazione fornita dal fornitore per C # o Delphi. Penso che troverai maggiori informazioni non vendor su C #, ma ciò potrebbe essere dovuto al fatto che non ho cercato molto nel modo di Delphi.

Non ho dovuto fare nessuna programmazione thread con Delphi, e qualsiasi rete che ho fatto è stata anni fa e non ricordo.

Le librerie .NET per l'elaborazione parallela, gli eventi e altri lavori di threading sono buoni. Quindi non ti perderai là fuori. C'è molto supporto quando si tratta di networking, quindi di nuovo altamente raccomandato.

Nel complesso andrei con C # /. NET. Ciò è in parte dovuto a WPF, ma preferisco anche il codice che scrivo in C #. Per quanto ne so, Delphi non ha nulla di simile a Linq, che trovo prezioso.


Grazie per la tua meravigliosa risposta. quale libro hai letto da principiante? ora
inizierò

4
Fai attenzione a provare a trasferire un'app Delphi su C #. Ogni volta che ho sentito parlare di qualsiasi azienda che lo ha provato, hanno finito per convalidare ogni punto che Joel ha fatto in "Cose che non dovresti mai fare, parte 1" e si è concluso in un disastro per il prodotto e la società che lo possiede.
Mason Wheeler,

Mi dispiace, non posso davvero consigliarti su un libro per principianti per c # 4. Non sono sicuro di averne uno quando ho iniziato c # (negli ultimi 1.1 giorni. Sono sicuro che ce ne fossero alcuni, ma non ne ho letto uno). Quando ho iniziato, penso che il primo libro che ho usato sia stato Teach Yourself C ++ in 21 Days di Jesse Liberty, che ho letto prima di iniziare l'università. Mi ci sono voluti anni per superarlo, ma ho imparato molto. Un altro bel libro che avevo era Discover Delphi, che era il libro del corso. Un libro che raccomando è Object Thinking di David West, in quanto ti fa davvero pensare a OOP e OOD, anche Effective C # di Bill Wagner ...
Matt Ellen,

... Non sono davvero dei libri per principianti, ma una volta che hai i fondamenti allora hanno ottimi consigli e consigli su come diventare un programmatore migliore.
Matt Ellen,

A proposito, se stai cercando LINQ in Delphi, controlla la libreria DeHL di Alexandru Ciobanu. Fornisce raccolte e operatori in stile LINQ. La sintassi LINQ (roba pseudo-SQL) non è ancora in Delphi, ma a quanto pare il team del compilatore ci sta lavorando per una versione futura.
Mason Wheeler,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.