Domanda

Qual è il miglior sistema operativo per lo sviluppo Java? Le persone di Sun stanno spingendo il Solaris, sì, il Solaris ha alcune funzioni extra incluse (dTrace, possibilità di Performance tuning della JVM, ecc.). Alcuni miei amici, avevano portato la loro applicazione su Solaris e mi dissero che le prestazioni erano eccezionali. Non sono contento di cambiare il mio sistema operativo e utilizzare Solaris invece.

Quali sono state le tue esperienze?

È stato utile?

Soluzione

Dei tre che ho usato (Mac OS X, Linux, Windows), considero Linux il posto migliore per lo sviluppo di Java.

La mia macchina personale principale è un Mac, e ho fatto un sacco di sviluppo Java lì e ne sono rimasto contento. Sfortunatamente, tuttavia, Apple è in ritardo rispetto alle versioni ufficiali di JDK e sei praticamente limitato alle poche versioni che scelgono di fornire.

La mia macchina fornita dal datore di lavoro è una vecchia cassa P4 di HP che uso principalmente per mantenere caldi i miei piedi. Il vero lavoro avviene "Oberon" su un quad-core a 2,6 GHz che esegue Ubuntu 8.04 in modalità 32 bit [1]. I due vantaggi che noto giorno per giorno rispetto a Windows sono:

  1. Una potente riga di comando, che mi aiuta ad automatizzare le piccole cose noiose.
  2. Lontano prestazioni del file system superiori. (Attualmente sto usando EXT3 perché sto diventando conservatore nella mia vecchiaia. Ho usato ReiserFS in precedenza, che era ancora più veloce per il tipo di operazioni che in genere si eseguono su grandi aree di lavoro estratte dalla sovversione.)

Puoi ottenere questi vantaggi anche da un Mac, ma Linux offre un altro bel bonus:

  • X11 remoto: prima che il mio $ EMPLOYER fornisse e-mail e calendario via web, dovevo essere nella finestra di Windows per leggere la mia posta e vedere i miei incontri, quindi ho usato l'X11 di Cygwin. Ciò mi ha permesso di eseguire le cose su Linux ma di visualizzarle sul desktop di Windows.

[1] Eseguivo Ubuntu in modalità 64 bit, ma non avevo problemi. (Mescolare 64 bit e 32 bit è qualcosa che Mac OS X fa molto meglio.) 7.04 ha funzionato bene eseguendo applicazioni a 32 bit sul kernel a 64 bit. 7.10 ha rotto lo script linux32 e la possibilità di installare nuove applicazioni a 32 bit sebbene quelle vecchie continuassero (principalmente) a funzionare. 8.04 ha ucciso java a 32 bit rendendo impossibile la connessione alla rete da una JVM a 32 bit (non più aggiornamenti per Eclipse). L'esecuzione di Eclipse a 64 bit non funzionava in modo affidabile. La versione attuale di oXygen sarebbe stata eseguita (a malincuore) solo sotto la VM a 64 bit IBM, che avrebbe funzionato per circa 10 minuti fino a quando non avesse smesso di ricevere eventi da tastiera. Alla fine ho rinunciato alla frustrazione e ho usato il mio Mac per alcuni mesi fino a quando non ho avuto abbastanza tempo per fare un'installazione a 32 bit di 8.04 sulla scatola di Linux. Ora tutto funziona di nuovo e sono abbastanza felice.

Altri suggerimenti

Sviluppa su quello che ti piace. Come programmatore java potresti voler evitare Mac OS X, principalmente perché le nuove funzionalità sembrano essere state notevolmente ritardate, e anche perché puoi scoprire che non hai più una macchina che supporta le nuove versioni di Java. Detto questo, immagino che lo sviluppo su Mac OS X debba essere molto bello (interfaccia a riga di comando, dtrace, bel sistema operativo).

Sviluppo su Windows con IntelliJ 7. Va bene, ma ha bisogno di hardware pesante. Quindi dispongo su Solaris / Linux. A meno che tu non stia scrivendo la GUI o si integri con il codice C ++, dovresti andare bene a scegliere qualunque cosa ti piaccia.

" sviluppo " ?

Credo che dovresti attenersi al sistema operativo con cui ti senti più a tuo agio o che è il più disponibile per un grande gruppo (di sviluppatori), come ad esempio un set di PC su Windows.

È raro dover fare una messa a punto approfondita sulla piattaforma sviluppo .

Riservereste tutte quelle dtrace e altre ottimizzazioni delle prestazioni alla piattaforma di assemblaggio (ad esempio in Linux), per distribuzioni quotidiane in cui tutto viene ricompilato e testato in unità.

E quindi potresti impostare una JVM speciale (come IBM JRockit invece di Sun JRE) per fare alcune analisi sulla tua piattaforma di integrazione, in cui tutto il tuo sistema può essere testato dalla parte anteriore a quella posteriore, con test di stress e non regressione

E infine, esegui tutti gli UAT (User Acceptance Test) su una piattaforma di pre-produzione (che può essere un costoso F15K o SunFire880 o V490 o ...), con l'obiettivo JRE utilizzato lì.

Il mio punto è: ci sono così tanti parametri da tenere in considerazione tra lo sviluppo e il rilascio in produzione che cambiare il sistema operativo in una fase così precoce potrebbe rivelarsi superfluo.

Sviluppa ciò di cui sei felice e testa su ciò su cui esegui la distribuzione.

Posso sviluppare Java sul mio Mac e implementarlo su Solaris e Linux. La verità è che per la maggior parte delle attività, Java può essere sviluppato in modo indipendente dal sistema operativo. Ciò è particolarmente vero per lo sviluppo lato server.

Mi piace sviluppare un Unix in generale su una finestra di Windows, ma sono io.

Direi Mac OS X.

Sviluppo Java integrato. Tutti gli strumenti da riga di comando unix che desideri. Fuori dalla scatola. Formica e maven sono lì. Non le ultime versioni, ma è abbastanza facile da aggiornare.

Sì, potresti non avere l'ultima versione di JDK, ma in realtà, a meno che tu non abbia bisogno di sviluppare per l'ultimo e il più grande JDK, non sarà un problema.

La risposta è più semplice di quanto si pensi: usa il tuo sistema operativo preferito. Per Java, è la risposta migliore. Non lo sviluppo stesso, ma la tua comodità aiuterà il tuo successo, la navigazione di documenti ecc. Nel tuo ambiente preferito.

Personalmente, non mi preoccuperei. Vorrei utilizzare la piattaforma che supporta meglio gli strumenti di sviluppo e la piattaforma di destinazione che usi.

Perché è necessario ottimizzare la JVM? Questa è una cosa molto insolita da voler fare. Sarebbe meglio scrivere in un linguaggio di livello inferiore come C ++?

Dtrace è disponibile per OS X, c'è anche una porta linux. Storicamente Solaris ha avuto la reputazione di essere lento (da qui il soprannome di Slowaris). Non sono sicuro che sia ancora vero.

Ho avuto successo prima di fare lo sviluppo Java in Windows con Eclipse. Sembra che tu stia anche chiedendo informazioni sulla distribuzione / hosting. Qualunque sistema operativo sia il migliore su cui eseguire l'applicazione, non dovrebbe realmente prevedere quale sistema operativo utilizzi per sviluppare l'applicazione.

Windows ed Eclipse funzionano bene, come suggerito da pmiller. Posso anche raccomandare OS X con Eclipse o IntelliJ IDEA (quest'ultimo funziona anche su Windows).

Ho sempre fatto lo sviluppo Java di base su Solaris (pratica di programmazione delle strutture di dati di base all'Università), quindi non posso offrire alcun confronto reale, temo. L'ho trovato abbastanza doloroso su Solaris, tuttavia, a causa della mancanza di strumenti adeguati (penso di essere limitato a nedit o qualcosa del genere).

Una cosa che devi prendere in considerazione è se stai per sviluppare un'applicazione che potrebbe essere eseguita su un mac. Adoro OS X, ma il buon vecchio steve si è assicurato che ci siano sempre molte versioni JDK dietro. Abbiamo appena ottenuto Java 6. Lo sviluppo su un Mac può almeno assicurare che stai lavorando con la versione JDK più bassa possibile.

Ho usato Linux, Windows e OS X. Il mio grande argomento a favore di OS X è che si tratta di un sistema operativo facile da usare (cioè. Posso eseguire iTunes, i browser più moderni e non ho bisogno di assegnare 50 % del mio tempo mantenendolo su un laptop come Linux) con una base unix. Poiché la maggior parte del mio sviluppo riguarda i sistemi unix, questo rende la vita enormemente più produttiva. Inoltre, c'è una comunità di sviluppo sempre più attiva dietro la piattaforma qui. Questi motivi funzionano anche al contrario per Windows - mentre cygwin chiude alcuni dei miei requisiti per l'utilizzo degli strumenti unix - non è come avere un vero sistema unix.

Il tuo ambiente di sviluppo DEVE ESSERE LO STESSO DELLA PRODUZIONE.

Non esiste un "miglior ambiente di sviluppo" che non è identico al tuo ambiente di produzione. Esegui ciò che esegui in produzione, in sviluppo.

Detto questo, ciò non significa che non è possibile eseguire l'IDE, ad esempio, su un altro sistema operativo, purché si continui a sviluppare sullo stesso sistema di produzione (su un altro computer o su una macchina virtuale, ad esempio).

Windows va bene.

Solaris è anche un meraviglioso ambiente di sviluppo Java (mi piace meglio di Windows, ma per motivi soggettivi), ma a meno che non lo si stia implementando su di esso, potrebbe non valere la pena passare a.

Linux è un po 'ingombrante per lo sviluppo di Java, ma fattibile.

L'unico che non posso raccomandare è il Mac perché sono sempre molto indietro rispetto alla versione di Java disponibile (non fornita da Sun, Apple fa il suo).

Il mio miglior consiglio è quello di sviluppare sulla piattaforma di destinazione. In questo modo, quando lo esegui durante i test di sviluppo ed esegui i test delle unità, sai che funzionerà anche sulla piattaforma di destinazione, senza brutte sorprese.

Se stai prendendo di mira tutte le piattaforme, potresti davvero voler sviluppare su un Mac perché otterrai le brutte sorprese sul Mac. Per quanto riguarda Java, su Windows e Unix, "funziona semplicemente", ma non tanto su Mac. Sun sviluppa Java runtime (JRE) per tutti i sistemi operativi tranne Mac. Apple sviluppa il proprio JRE.

Se sviluppi su Mac, molto probabilmente stai sviluppando contro il minimo comune denominatore, quindi ciò che gira su Mac dovrebbe funzionare sugli altri. Questa è stata la mia esperienza.

A parte questo, ti consiglio sempre di scegliere il sistema operativo in base al funzionamento del tuo software. Scegli il sistema operativo che esegue il tuo IDE e altri strumenti che usi per lo sviluppo e il test. Se più di un SO esegue gli strumenti di cui hai bisogno, scegli quello che li esegue meglio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top