Delphi vs C # per la programmazione GUI [chiuso]

18

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

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

  1. Semplicità
  2. Produttività
  3. Buona documentazione API
  4. Velocità
  5. Trascina e rilascia
  6. Filettatura multipla e amp; Buona API di rete

Grazie

    
posta elf1984 24.12.2010 - 09:47
fonte

4 risposte

19

Delphi, sicuramente:

  1. Semplicità - La sintassi di Delphi è basata su Pascal, che è stato esplicitamente progettato per essere facile da imparare, e può mantenere questa promessa. C # è basato sulla famiglia C, che ... beh ... era non .
  2. Produttività - Delphi è un discendente di Turbo Pascal e ha ancora il compilatore più veloce conosciuto dall'uomo, che aumenterà il tuo produttività enormemente. Inoltre ha il debugger che Visual Studio vorrebbe che il suo debugger fosse come quando crescerà. Soprattutto nell'ultima versione di Delphi, il debugging è molto più semplice.
  3. Buona documentazione API - "API" è una parola piuttosto vaga in questi giorni, che comprende ogni sorta di cose. Immagino tu intenda le biblioteche, e qui è una specie di sballottamento. Sia il framework .NET che le librerie Delphi standard hanno una buona documentazione online e documentazione offline mediocre e di difficile utilizzo. (Una conseguenza del team Delphi che sceglie di utilizzare lo stesso orribile sistema di aiuto di Visual Studio, che si spera si allontanerà nella prossima versione.)
  4. Velocità - Delphi vince facilmente. Compilano codice nativo (esecuzione più veloce e molto avvio più veloce perché non esiste alcuna fase JIT,) e non utilizza puntatori gestiti in modo che l'accesso agli oggetti sia più veloce e meno cache-scostante.
  5. Trascina e rilascia - Una funzione integrata del VCL.
  6. Multi threading - Delphi ha una classe thread incorporata, ma se vuoi fare cose complesse con la concorrenza ci sono opzioni migliori. Primoz Gabrijelcic, un membro della comunità di 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 il pool di attività, cicli FOR paralleli e processi di pipeline multistadio.
  7. Buona API di rete - Delphi viene fornito con Indy, una libreria open source matura che semplifica la configurazione e la gestione delle connessioni Internet. Lo usiamo al lavoro per fornire il livello di comunicazione per un'app leader del settore che probabilmente non hai mai sentito nominare a meno che non lavori nei media di trasmissione.
  8. Distribuzione - Questo non era nella tua lista, 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 nel file EXE, quindi usa uno smartlinker per rimuovere le parti che non usi, risultando in piccoli EXE che non hanno dipendenze su enormi librerie di runtime che pesano su centinaia di MB che i tuoi utenti avranno per scaricare e installare separatamente.
risposta data 24.12.2010 - 14:36
fonte
15

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

  1. La sintassi sarà simile a quella utilizzata in PHP e C
  2. Visual Studio con i suoi strumenti e IntelliSense è estremamente produttivo.
  3. MSDN
  4. Ancora, strumenti VS + Intellisense, ma la velocità deriva davvero da una familiarità della tua lingua e delle sue caratteristiche.
  5. Designer 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 scadenze estremamente ravvicinate previste dai non programmatori, e sono in grado di pompare fuori linea di applicazioni desktop estremamente veloci. Nelle ultime tre settimane, passai dalle specifiche alla distribuzione su due applicazioni LOB winform. La produttività per lo sviluppo di GUI in C # con VS è semplicemente pazzesca.

    
risposta data 24.12.2010 - 09:50
fonte
13

Entrambi hanno tutti i 6 punti che vuoi ma sento che C # ha il vantaggio sulla maggior parte se non su tutti.

Per passare attraverso i punti:

  1. Delphi richiede la gestione della memoria, quindi potresti sostenere che solo C # rende più semplice. La risposta accettata menziona la sintassi qui, anche la sintassi C # è simile sia a PHP che a Java, quindi se vuoi essere subito operativo da uno di questi sfondi, C # ha il vantaggio.
  2. Produttività, penso che tu possa fare di più in C #. La libreria .net ti dà così tanto che, nei brutti giorni passati, dovrei cercare i componenti delphi di terze parti da fornire.
  3. Documentazione, Delphi è sempre stato buono, MSDN è migliore, inoltre troverai una comunità più grande per il supporto, vedi il mio Stack Overflow anaylsis di seguito.
  4. Velocità, Delphi potrebbe avere il vantaggio su questo, ma l'assemblaggio trionfa tutti, quindi di solito non è un buon motivo per scegliere una lingua. Una cosa che vorrei sottolineare è che ho sentito persone che citano che C # è interpretato. Non è, non è mai stato, ha sempre avuto un JIT.
  5. Trascina e rilascia, disponibile su entrambi.
  6. Multithreading, Delphi è buono ma C # è eccellente con costrutti in costrutti come lock(){} estensioni parallele e il nuovo await .

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

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

Overflow dello stack:

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

Ho aggiunto c , per mostrare che non è un problema con l'età delle lingue e Java solo per il confronto.

Non sono un fan dei fan di C # o di Java, sono stato un grande fan di Delphi, sviluppatore di Delphi puramente professionale per 7 anni, ma lo hanno davvero rovinato a partire dal 2005 con la loro sfortunata incursione in .net che ha rovinato il stabilità dell'IDE per la compilazione nativa a 32 bit. Delphi 7 era il massimo della lingua a mio avviso.

    
risposta data 22.10.2012 - 10:41
fonte
8

Quando ero all'università, mi è stato insegnato a programmare con Delphi. Sono un po 'arrugginito, ma attualmente 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 al procedurale con le inclinazioni di OO di Delphi. Dovresti considerare come preferisci codificare quando scegli tra di loro. Non penso che ci sia molto da fare quando si tratta di semplicità - proprio quello che trovi più facile. Lo stesso vale per la produttività.

In termini di RAD (sviluppo rapido di applicazioni) non c'è molto tra winform e Delphi. Mi ricordano l'un l'altro.

D'altro canto, WPF è qualcosa che preferisco sia per il suo stile dichiarativo.

Non penso che ci sia molta differenza tra la qualità e la copertura della documentazione fornita dal fornitore per C # o Delphi. Penso che troverete più informazioni non vendor su C #, ma potrebbe essere solo perché non ho cercato molto nel modo di Delphi.

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

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

Nel complesso vorrei andare 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 inestimabile.

    
risposta data 24.12.2010 - 11:49
fonte

Leggi altre domande sui tag