Java vs. C # - Prospettiva della produttività [chiuso]


34

Se hai una pluriennale esperienza nel lavoro con Java e una pluriennale esperienza nel lavorare con C # e .NET, apprezzerei la tua opinione sulle differenze di produttività nello sviluppo del software tra questi due ambienti. Uno dei nostri clienti sta valutando la possibilità di sostituire la soluzione software esistente. Poiché la sostituzione richiederà circa. 10-15 anni di lavoro, una scelta per Java o .NET, in base alle differenze di produttività tra loro, possono influenzare in modo significativo l'investimento richiesto e il time-to-market.

Saresti in grado di fornirci un'indicazione delle differenze di produttività nello sviluppo di software tra Java e C # /. NET? Preferirei ricevere una risposta come segue:

La mia esperienza si basa su X anni di esperienza con Java e X anni di esperienza con C # /. NET. Java è X% più produttivo di C # .NET o C # /. NET è X% più produttivo di Java se si tiene conto di quanto segue.


24
Immagino che una cosa importante qui sia anche ciò che stai facendo. .NET potrebbe essere migliore per alcuni tipi di progetti e Java per altri.
Øyvind Knobloch-Bråthen,

4
Che tipo di progetto è? Molto dipende dalle librerie disponibili per quello che stai cercando di fare. Per quanto riguarda la lingua, preferisco fortemente C #, ma non sto affermando che .net sia migliore di java per tutti i tipi di progetti.
CodesInChaos,

7
L'IMO ha una decisione strategica molto importante e non dovrebbe assolutamente basarsi sulla produttività del programmatore. Se vuoi una GUI di Windows all'avanguardia e perfettamente funzionante, non puoi scegliere Java anche se le statistiche affermano che è stata del 7% più produttiva. Se hai bisogno di un vero prodotto multipiattaforma senza le restrizioni di Mono, Java è il tuo bambino, anche se C # ha la sintassi migliore.
user281377,

2
@Edin: "Applicazione enterprise" non è molto descrittivo di che tipo di applicazione è ... È solo desktop, configurazione client / server, servizi web, siti web, possibili applicazioni satellitari su dispositivi mobili ecc.?
timore

3
È "Java" non "JAVA"
Mahmoud Hossam,

Risposte:


17

La mia esperienza si basa su 10 anni di esperienza con Java e 3 anni di esperienza con C # /. NET. Java è più produttivo dello 0% rispetto a C # .NET. Questo si basa sulla scrittura di applicazioni basate su servizi di back-end.
C # /. NET è forse il 5% più produttivo di Java per la scrittura di applicazioni utente. Ma poi non lo faccio da quasi 5 anni in Java e il nuovo editor dell'interfaccia utente di Netbeans avrebbe potuto colmare il divario.

Vuoi aumentare la produttività? CI (idealmente consegna continua) e test automatizzati. La produttività ottenuta dalla scelta della lingua / piattaforma / IDE su qualsiasi lingua / piattaforma / IDE principale è piuttosto ridotta.


Intendi dire 0% per Java? Intendi lo 0% in più di produttività per applicazioni basate su servizi back-end o Java in generale? Solo controllando.
Jon Onstott,

Se dovessi chiedermi di scrivere un'applicazione back-end (alcune regole, accesso a db e che cosa hanno te), la stima sarebbe identica sia per C # che per Java. Se chiedessi un'applicazione per l'utente finale di Windows, renderei la mia stima leggermente più grande per Java rispetto a C # (WPF / XAML e il suo supporto MVVM tramite associazione Penso che sia leggermente più produttivo del più manuale di associazione e costruzione dell'interfaccia utente in Java (come disattivato 5 anni fa)).
mlk,

+1 per "La produttività ottenuta dalla scelta della lingua / piattaforma / IDE su qualsiasi lingua / piattaforma / IDE principale è piuttosto ridotta."
Adam Jaskiewicz,

3
-1 per l'ultima frase. Per ogni classe di problemi (del mondo reale), puoi scegliere due lingue di alto livello per scopi generali, dove l'aumento della produttività dall'una all'altra supera il 100%. Se scegli tra C # e Java, troverai poca differenza (anche se direi che C # si rivelerà significativamente più produttivo in aree adatte alla programmazione funzionale). Se la scelta è tra C e OCaml, la differenza ti spalanca.
back2dos

42

Ho lavorato su progetti sia al college che nel Real World ™ usando Java e C # da 5 anni.

Giù le mani, mi piace usare di più C # per la sua sintonia e l'uso dello zucchero sintattico. Raramente troverai aFactory.GetFactory(OfFactory.GetFactory(Factory)); codice in C #. È più facile da leggere e seguire perché la sintassi è più piccola e più concisa.

Con quale sarai più produttivo? Dipende dal tipo di progetto.

Stai progettando un'applicazione desktop per Windows? Quindi C # è la scelta migliore grazie al suo potente IDE Visual Studio e .NET Framework rende la creazione della GUI molto semplice.

Francamente, sono contento di non usare più Java (ormai è passato più di un anno) perché ricordo quanto il codice doveva essere orribilmente dettagliato. Un rapido esempio è la gestione delle eccezioni. Se il tuo codice può generare un'eccezione, devi tenere conto di ogni singola eccezione possibile. Questo trasforma rapidamente il codice banale in una mostruosità di 20 righe +.

C # non è come tenere la mano, se decidi di lasciare aperto il codice che è tu a decidere come sviluppatore.

C # ha anche apportato molte aggiunte nel corso dell'anno che lo rendono una gioia da usare. Lambdas, delegati, funzione anonima (a la Ruby), tante piccole cose buone che troverai mentre vai avanti.


3
Ricordo che in Java da uni, un punto sono contento di dimenticare. Gestione forzata delle eccezioni. sì, aveva uno scopo, ma la documentazione del codice può dirti se i metodi generano eccezioni e ti dà la possibilità di scegliere cosa fare.
JonWillis,

5
ahah, sono un programmatore Java ma mi è piaciuto il tuo codice di esempio.
Chuck Stephanski,

6
If your code can throw an exception you must account for every single exception possible.Non vedo il rovescio della medaglia di questo, almeno questo aumenta la consapevolezza dei problemi ... però, potrei essere solo io.
Bobby

4
Le eccezioni verificate indicano che si scrive il codice di gestione degli errori come parte dell'implementazione principale, invece di fissarlo come ripensamento. Questo significa parecchio manutenzione.

Penso che sia solo un disaccordo sul significato delle eccezioni: si possono prevedere circostanze (il file non esiste) o errori imprevisti (dividere per 0). Java ha deciso che le eccezioni dovrebbero rappresentare entrambi e così ha verificato sia le eccezioni che quelle deselezionate. Questa è una caratteristica sorprendentemente controversa.
Tikhon Jelvis,

23

Ho lavorato a lungo con Java (dal 1996) e .Net (dal 2002) e nel 2010 ho deciso di andare con Java nella mia azienda sulla base del fatto che sarebbe stato l' ambiente più produttivo in generale .

Si noti che definisco la produttività dello sviluppo del software in termini di valore aziendale creato per unità di costo / risorsa, su base end-to-end (vale a dire, è necessario esaminare la produttività dell'intero ciclo di vita del software, compresi l'implementazione e la manutenzione, non solo il codifica iniziale !!).

Ecco gli elementi chiave del mio ragionamento:

  • La sintassi è un fattore secondario nella produttività - mentre Java è certamente prolisso e preferisco la sintassi di C #, semplicemente non importa molto. Che i tuoi sviluppatori object.getSomeProperty()digitino object.SomePropertyo utilizzino una classe interna anonima rispetto a una lambda, semplicemente non farà alcuna differenza apprezzabile per il vantaggio competitivo della tua azienda ....
  • L'ecosistema della libreria è fondamentale: sviluppando un prodotto software moderno, non si desidera sviluppare da zero molti componenti comuni. L'ecosistema Java ha un chiaro vantaggio in termini di numero e qualità delle librerie open source (in particolare quelle sviluppate da Apache, Google, Eclipse Foundation e RedHat / JBoss)
  • Flessibilità di portabilità / distribuzione : so di poter implementare una JVM praticamente su qualsiasi piattaforma, inclusi grandi cluster Linux economici. Con .Net sei limitato agli ambienti Windows. Con i progressi nelle opzioni di cloud hosting, ho ritenuto che questo fosse un vantaggio piuttosto importante.
  • Scala e Clojure sono entrambe opzioni praticabili per lo sviluppo su JVM se si desiderano funzionalità linguistiche avanzate. È un'opzione realistica da sviluppare in Java, ma tieni aperta l'opzione per passare a Scala o Clojure nel tempo. In una certa misura si tratta di linguaggi di "prossima generazione" che penso siano in vantaggio sia rispetto a Java che a C #, quindi questo mi ha rassicurato sul fatto che la piattaforma Java ha un buon futuro in termini di innovazione del linguaggio. (Java 7 e 8 sembravano promettenti, ma non trattenevo esattamente il respiro ....)
  • I costi di manutenzione sembravano piuttosto favorevoli a Java. Java ha una sintassi più semplice di C #, il che significa più verbosità, ma sul rovescio della medaglia significa che le persone tendono a scrivere codice più gestibile - è semplicemente più difficile scrivere "codice intelligente". Inoltre, il mondo Java attribuisce un peso molto maggiore alla retrocompatibilità rispetto al mondo .Net, che sarà un vantaggio in termini di costi di manutenzione per più anni.
  • Indipendenza del fornitore - dopo aver visto le aziende bruciate dal blocco dei fornitori in passato, ho sentito che era un vantaggio andare con l'ecosistema Java relativamente più aperto piuttosto che con il mondo .Net dominato da Microsoft. Ad esempio, preferirei scegliere i database piuttosto che essere spinto a utilizzare SQL Server (e la spinta è piuttosto forte, sia attraverso il supporto degli strumenti che il tipico skillset degli sviluppatori .Net). Mantenere indipendente il fornitore di investimenti di prodotti chiave è, a mio avviso, una mossa intelligente a lungo termine. Ho giudicato (giustamente) che OpenJDK sarebbe stato il futuro di Java, quindi avrei effettivamente costruito su una piattaforma open source.
  • Talento : questo è ovviamente soggettivo, ma sono rimasto più colpito dall'abilità tecnica degli sviluppatori nel mondo Java che nel mondo .Net. La mia impressione in media è stata che gli sviluppatori .Net tendevano a fare qualunque cosa Microsoft fornisse strumenti o modelli semplici, mentre gli sviluppatori Java tendevano a preoccuparsi di più di trovare la giusta soluzione dal punto di vista dell'ingegneria del software. Questo è completamente soggettivo e senza dubbio dipende dalla specifica località / mercato e c'erano chiaramente molte persone che non si adattavano a questo modello, quindi YMMV ovviamente.
  • Gli strumenti erano a livello. Microsoft ha molti strumenti fantastici e facili da usare che sarebbero particolarmente interessanti per lo sviluppo su Windows. Tuttavia sto lavorando principalmente allo sviluppo lato server, dove direi che gli strumenti Java hanno il vantaggio. In particolare, Maven ha dimostrato di essere uno strumento estremamente potente nell'ecosistema Java che non credo abbia ancora un equivalente decente nel mondo .Net.

Quindi, sebbene ci fossero molte considerazioni complesse, nel complesso sono abbastanza contento della scelta di andare con Java, e farei la stessa scelta oggi (all'inizio del 2012).

Probabilmente l'unico caso ora in cui andrei con .Net sarebbe se stavo sviluppando un'applicazione desktop solo per Windows (dove il vantaggio .Net è chiaramente enorme).


9
+1: ottima risposta! Riassume molte delle questioni che dovrebbero essere prese in considerazione quando si valuta la produttività nel suo insieme. Alcuni zuccheri sintattici possono rendere un linguaggio fresco e più "moderno", ma ci sono anche altri importanti fattori che influenzano la produttività.
Giorgio,

3
+1 per una risposta molto più completa rispetto alle precedenti.
NlightNFotis

1
Da quando hai citato Scala e Clojure potresti anche menzionare anche F # ...
Mauricio Scheffer,

2
Grande! Analisi approfondite. Proprio quello che stavo cercando. :)
xebo,

9

Ho: Java 10 anni, C # 8 anni

Io voto Java per

  1. Nessun blocco del fornitore (è possibile cambiare server web / app da linux a windows in Unix)
  2. Interoperabilità / intercambiabilità di pacchetti di terze parti, come JasperReports JFreeChart, JSF o Spring
  3. La maggior parte dell'innovazione viene da qui (Log4j, Ant, Spring, Hibernate e così via)
  4. Funziona su più server applicazioni (tipo A). Come JBoss, Tomcat, WebSphere, GlassFish, WebLogic

23
Che tipo di "innovazioni" può essere in una lingua senza lambda?
Logica SK

6
C'erano altri framework MVC prima di ASP MVC (ad esempio MonoRail) ...
EricSchaefer,

2
Oh BTW: Lambdas / Closures sono una funzione linguistica, stai parlando di framework.
EricSchaefer,

5
@ SK-logic, non è necessario lambdas per scrivere un livello O / R.

2
@Giorgio, lambdas si adatta perfettamente a qualsiasi lingua con GC. Non c'è posto per loro in C ++ e C, ovviamente.
SK-logic,

6

Java: 5 anni (non continui)
C #: 7 anni

Non credo che tu possa quantificare la produttività in questo modo. Ciò dipende fortemente dal singolo sviluppatore e dal progetto. Usa ciò che i tuoi sviluppatori sanno.

Modifica:
definiamo "tipica applicazione aziendale" come:

  • a più livelli
  • client / server
  • DB supportato

Sia Java che C # possono farlo. Non è tanto una questione di lingua, ma di framework / runtime. Ancora una volta, usa ciò che i tuoi sviluppatori sanno. Possono imparare una nuova lingua e un nuovo framework, ma ci vuole tempo per farlo. Sarebbe vero per un'app desktop. Entrambe le lingue possono essere utilizzate con numerosi toolkit / librerie GUI, ma tutte hanno approcci e filosofie diverse.


3
"Dipende molto dal singolo sviluppatore" ... ed è esattamente per questo che ha voluto un'opinione da persone che hanno esperienza in entrambi i mondi ... "e dal progetto". ... che dovrebbe richiedere una risposta che indichi quali tipi di progetti trarranno vantaggio dalle diverse tecnologie.
timore

4
Non dipende da questo sviluppatore (aka me), ma dagli sviluppatori che dovrebbero costruire il progetto. Sarebbe anche più facile se avesse dichiarato che tipo di progetto sta per costruire ...
EricSchaefer,

@eric è la tipica applicazione enterprise
Edin Dazdarevic,

@Edin, Java ha l'edizione JavaEE con funzionalità aziendali integrate. È possibile sviluppare rapidamente applicazioni con questo framework. Tuttavia, fa un sacco di cose da Magic, devi conformarti alle sue regole. E se le cose si rompono, non aspettarti che i messaggi di eccezione siano utili poiché lo stacktrace è enorme. L'accesso a un DB con nome errato o DB è disattivato, lo stacktrace è così grande che non è possibile vedere che cosa ha causato il problema iniziale.
JonWillis,

5
Sicuramente esiste una "tipica applicazione aziendale", prendi questi dati dal punto a, consenti all'utente di rovinarli, quindi inseriscili nel punto b. ;)
mezmo,

6

Ho 10+ anni di esperienza con Java (dalla versione 1.1, davvero!) E 7 anni di esperienza con .NET (principalmente C #).

Hai una decisione molto presa da prendere, ma soprattutto dovresti provare a scomporre in un paio di scenari:

Applicazione desktop

Se stai sviluppando un'applicazione desktop devi scegliere la piattaforma principale con cui lavorerai. Se si tratta di una piattaforma Microsoft, usa .NET, non ci sono soluzioni migliori della piattaforma sviluppata dalla stessa nave madre. Se si tratta di uno scenario Linux o multipiattaforma, prendere in considerazione Java o passare a una soluzione basata sul Web.

Applicazione basata sul Web

Questa è una decisione molto difficile da prendere perché ognuno ha la propria forza e debolezza. Eccone alcuni:

C #

Forza: attualmente ha più slancio nella creazione di nuove funzionalità nel linguaggio e nella piattaforma / framework. Tutto proviene da un unico fornitore e sicuramente questo è un vantaggio. Puoi anche utilizzare alcuni componenti molto potenti come DevExpress, ad esempio (Java non si avvicina nemmeno a qualcosa di simile a quello che il team DX ha messo insieme nel corso degli anni e questo rappresenta un enorme aumento della produttività).

Debolezza: per le applicazioni enterprise .NET non è maturo come Java. Non hai molti fornitori che creano software enterprise in .NET come per Java.

Giava

Forza: più maturo (già spiegato) e ha una grande comunità con diversi grandi progetti open source che possono aiutare. Diversi cosiddetti progetti open source di .NET sono in realtà solo una copia-cat di progetti di Java.

Debolezza: Oracle possiede Java (lo so, non il JCP) e questo è sicuramente un rischio da considerare. Le loro intenzioni non sono molto chiare e personalmente non mi piace dove sta andando la lingua in questo momento (so che molti sviluppatori Java hanno preoccupazioni simili).

Applicazione lato server

Fondamentalmente sono gli stessi argomenti delle applicazioni basate sul Web, ma poiché non devi preoccuparti troppo dell'interfaccia utente, Java in questo caso diventa più forte. Ma ancora una volta, se la piattaforma è principalmente Windows .NET potrebbe essere una scelta migliore.

Considerazioni generali

Nel complesso, a mio avviso, .NET ha il vantaggio principalmente a causa della stretta integrazione di Visual Studio 2010 (senza dubbio il miglior IDE disponibile), MS SQL, Entity Framework, IIS e così via. Tutto ciò rappresenta un enorme aumento della produttività e ho tonnellate di esperienza a dimostrarlo. Inoltre lavoro principalmente con sviluppatori Java che si sono rivolti a .NET e condividono sostanzialmente la stessa opinione.

Penso che sia anche un buon punto che Microsoft sia più forte che mai nel senso che .NET sarà lì per un po '. Quindi, guardando avanti tra 10-15 anni, mi sento più sicuro con .NET rispetto a Java.


4

Sono uno studente di recente laureato all'università, ma ho avuto esperienza commerciale con entrambe le lingue, per un totale di circa 3 anni java e 4 anni C # .Net (nota .net significa che puoi usare C #, VB.net, C ++ CLI, e J # e F #).

Ora affermerò che la mia preferenza generale è C # rispetto a Java, mentre entrambi hanno una sintassi simile, mi piace la potenza del framework .Net rispetto alla compatibilità tra sistemi operativi di Java. Devi considerare fortemente cosa devi costruire? È solo un'applicazione desktop? Hai bisogno di connettività con altri client, quindi con altri desktop, cellulari, siti Web?

** La discussione sull'IDE è andata persa perché la domanda su StackOverflow è stata chiusa. Per finire, Java ha molti IDE gratuiti, ma secondo me non sono paragonabili alla potenza e ai componenti aggiuntivi di Visual Studio. Ma nota i costi di Visual Studio per licenza.

Devi esaminare quali competenze ha già il tuo team di sviluppo, poiché ciò avrà un impatto iniziale. Ciò che è più veloce è qui né lì dato a un utente esperto in entrambe le lingue / framework. Il che suppongo porti al punto che non devi considerare la lingua, poiché la lingua è solo sintassi, ma gli strumenti e il framework che la lingua sta usando.


11
£ 1000 per licenza per VS? Se ricevi abbonamenti MSDN, avrai molto più software e strumenti disponibili per il costo. Dubito davvero che qualcuno paghi il prezzo al dettaglio di VS2010.
James Love,

6
@Michael, non ho mai provato a scrivere estensioni VS. Comunque uso o ho provato una varietà di plugin per Visual Studio. Questi includono Resharper, CodeRush, Gallio, VisualSVN, AnkhSVN, testDriven.Net e molti altri.
JonWillis,

2
@JonWill è d'accordo, ci sono una miriade di estensioni là fuori. In cima a quell'elenco, utilizzo anche (su base giornaliera) Powerivity Product Tools, CKS: Dev per SharePoint e WSPBuilder. La galleria (su visualstudiogallery.msdn.microsoft.com ) ha un paio di migliaia lì, quindi non può essere così difficile scrivere più estensioni per VS (il framework completo è effettivamente fornito per farlo, e c'è un ampio supporto della comunità) .
James Love,

1
Per un progetto che prevede 10-15 anni di lavoro, un costo iniziale per le licenze VS sono le noccioline.
timore

1
Visual Studio 2010 Professional senza MSDN costa $ 550.
Boris Yankov,

3

Con la somiglianza nella sintassi e negli strumenti, i guadagni di produttività da C # o Java non sono di un ordine di grandezza per fare una differenza significativa nel tuo progetto di lavoro di 10-15 anni. Osserverei più da vicino questioni come:

  1. Quali sono i requisiti del progetto e quali capacità linguistiche soddisfano tali requisiti (ad es. Client Windows multipiattaforma o Windows).
  2. Cosa posso mettere in atto come approccio / metodologia di progetto che consentirà al mio team di lavorare in modo produttivo.
  3. Cosa posso fare per l'ambiente di lavoro per essere sicuro di impiegare, trattenere e utilizzare pienamente il miglior team possibile per un progetto significativo.

Vorrei suggerire che, a mio avviso, la premessa alla base della domanda, che "le differenze di produttività tra (C # e Java) possono influenzare in modo significativo l'investimento richiesto e il time-to-market" non è vera. Non dubito che ci sarebbe qualche differenza, ma non sarebbe significativo.


3

Ho passato avanti e indietro tra Java e .NET, a partire da Java 1.2 fino a 1.6 e .NET 1 fino a 4.0, in circa 10 anni di esperienza professionale (prima di essere un programmatore C / C ++).

Un tempo, come .NET 2.0, direi che Java e C # sarebbero più o meno gli stessi, specialmente per il lavoro di back-end. I costrutti del linguaggio erano ancora molto simili. .NET avrebbe probabilmente guadagnato il vantaggio nella programmazione dell'interfaccia utente desktop, a causa del designer WinForms in Visual Studio, e Java avrebbe avuto il vantaggio nelle cose Web / Server, principalmente perché non eri bloccato con IIS.

Passando ora a .NET 3.5 e 4, do il vantaggio della produttività a .NET, a mani basse. Ciò è principalmente, a mio avviso, perché .NET è un linguaggio in evoluzione molto più rapida, dal momento che la SM può prendere decisioni linguistiche relativamente rapidamente, invece di spingere cambiamenti attraverso la politica del JCP. Grandi miglioramenti sono la varparola chiave, la totalità di LINQ, Metodi di estensione, l'operatore Null-coalescenza ??, dynamice probabilmente molto grandi cose altro, che aumenta la produttività.

Ora, detto questo, il linguaggio "più produttivo" per un progetto è quasi sempre quello con cui il maggior numero di sviluppatori è il più a suo agio e con cui ha esperienza. La curva di apprendimento è sempre il principale killer della produttività.


3

Una cosa che ho notato è che molti negozi C # /. NET hanno un atteggiamento "non inventato qui" e vietano tutte le librerie di terze parti / open source mentre molti negozi Java sono più disposti a usare librerie open source. Inoltre sembrano esserci più librerie disponibili per Java. Anche se si guardano alcune interessanti librerie di terze parti in .NET, ad esempio NHibernate, NPOI, Spring.NET, ecc., Sono porte delle librerie Java e quindi sono dietro di esse. Sembra che molte di queste innovazioni siano arrivate prima a Java e dopo che è stata creata una porta .NET. Dal punto di vista della biblioteca sembra certamente che Java vinca in termini di nuove scoperte innovative.

Tuttavia Microsoft crea alcune librerie ufficiali come ASP MVC, LINQ, ecc. Ma spesso come con le librerie di terze parti ASP MVC come Struts, Spring MVC, ecc. Erano già disponibili per Java e Microsoft stava entrando in ritardo nel paradigma web del controller della vista modello.

Naturalmente, molte di queste librerie fanno risparmiare un sacco di tempo e ti rendono più produttivo. Linguaggio di base al linguaggio di base C # e Java non sono poi così diversi e per me è troppo vicino per essere chiamato. Getta nell'esercito di biblioteche di terze parti e la scala si inclina sicuramente verso Java. Ancora con un negozio aperto molta inclinazione si bilancia. È solo che molti negozi .NET hanno l'atteggiamento non inventato qui mentre molti negozi Java sono tutto ciò che serve per portare a termine il lavoro ... Questo è vero anche all'interno dell'azienda che lavoro, il team .NET non ottiene molto (a causa della gestione) mentre il team Java ha molte librerie / utility di terze parti approvate. Anche con .NET molte cose buone non sono gratuite (ad es. Prima di NPOI se si voleva lavorare con documenti Microsoft Office, la maggior parte delle soluzioni [senza contare l'automazione dell'ufficio] non erano gratuite.


"Non inventato qui". In base a quali motivi? Lavoro in un mix tra C # e Java e mi sembrano abusi maggiori da parte di persone Java, ad esempio la creazione di un IConverter e l'implementazione della logica per convertire una stringa in double e viceversa.
George Silva,

Per diversi motivi preferisco C # rispetto a Java, eppure preferisco le librerie "migrate" da Java a C # rispetto al C # nativo, generalmente meglio progettate, testate e applicate nel mondo reale.
umlcat,

0

Mi sono posto questa domanda molto: qual è la migliore? C # o Java?

Ti darò un consiglio e questo consiglio è la conclusione della mia ricerca: nessuno di questi è migliore, solo il linguaggio che conosci bene e con cui puoi fare molte applicazioni affascinanti è il migliore.

Impara come programmare e poi allenarti molto usando una sola lingua e quando diventerai perfetto nello scrivere il codice con essa, pensare ad altre lingue e credimi, imparerai le altre lingue come un gioco da ragazzi.

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.