it-swarm.it

Delphi vs C # per la programmazione della GUI

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

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

20
elf1984

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 # si basa 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à enormemente la tua produttività. Inoltre ha il debugger Visual Studio desidera che il suo debugger sarà come quando cresce. 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ù veloce 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 cache-friendly.
  5. Drag and Drop - Una funzione 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 n'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.
20
Mason Wheeler

C # generalmente avrà una base di utenti più ampia, più sviluppo in futuro e gli strumenti per 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.

15
bunglestink

Entrambi hanno tutti e 6 i punti desiderati, ma penso che C # abbia il vantaggio su molti 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 a entrambi PHP e Java, quindi se vuoi alzarti e correre più veloce da uno di questi sfondi, allora C # ha il bordo.
  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 dello Stack Overflow di seguito.
  4. Velocità, Delphi potrebbe avere il vantaggio su questo, ma Assembly ha la meglio su tutti, 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 le estensioni parallele lock(){} 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 grassetto , 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 Java solo per confronto.

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

14
weston

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

Preferisco di gran lunga il OO con inclinazioni funzionali di C # rispetto al procedurale con OO inclinazioni 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 (sviluppo rapido di applicazioni) non c'è molto tra Winforms e il design della GUI di Delphi. Mi ricordano a vicenda.

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

8
Matt Ellen