Quando Java è una buona scelta per lo sviluppo web?
Per favore, non dire "Quando hai un team di sviluppo che conosce solo Java".
Quando Java è una buona scelta per lo sviluppo web?
Per favore, non dire "Quando hai un team di sviluppo che conosce solo Java".
Risposte:
Dati i numerosi framework disponibili, la maturità della piattaforma ecc., Sono tentato di dire "quasi sempre". Quindi, ecco alcuni motivi per cui non dovresti usare Java:
Java è utilizzato in siti Web di piccole e medie dimensioni. Il punto cruciale è che c'è molto meno hosting web gratuito per i siti Web Java rispetto ad esempio a PHP, il che significa che se non si dispone di risorse sufficienti per ospitare il proprio server Web, probabilmente non si sceglierà Java.
Si noti che con Java EE 6, in particolare il profilo Web, sono incluse molte tecnologie standard che possono creare applicazioni Web molto potenti senza dover codificare molto. Purtroppo non è ancora abbastanza mainstream.
Si noti che questo è cambiato un po 'di recente con Google Application Engine, che consente di distribuire applicazioni Web Java standard (con alcune restrizioni) nel cloud gratuitamente per siti a traffico medio-basso.
Quando la tua piattaforma è UNIX / Linux e hai bisogno di un ricco set di strumenti, come Mappatura oggetti / relazionali, Sicurezza, Orchestrazione complessa di servizi Web, ecc.
(Non stiamo parlando di semplici siti Web, vero?)
Ogni volta che ancora un altro team Java mi fa incazzare, sfogo cercando domande come questa. Lasciami ripetere. Sono uno sviluppatore lato cliente e lo sono da quasi 5 anni. Ho lavorato su siti che vanno dai microscopi unici per lo più a contenuto, a siti enormi come Sears, a siti più sofisticati di tipo app in cui è richiesta una profonda esperienza dell'interfaccia utente. Ho avuto a che fare con Rails, PHP, .net web form (ew), .net MVC (molto meglio) e una disposizione bouquet di soluzioni Java per lo sviluppo web accompagnata da sviluppatori e team che sono stati tutti disastri completi da affrontare. Scrivo anche un po 'di Python e sto iniziando a scavare Django.
La mia esperienza con i team Java è stata universalmente terribile. Gli strumenti sono sempre una PITA. Gli sviluppatori non vogliono mai credere di aver fatto qualcosa di sbagliato e indurli a reinvestigare il proprio territorio una volta che hai escluso un problema alla tua estremità è come tirare i denti. La mia prima vittima nel trattare con i team Java nella mia esperienza è il tempo di sviluppo convertito in tempo di e-mail scrivendo lunghe e lunghe spiegazioni del perché il problema è definitivamente alla fine. L'HTML non è generalmente il loro problema a meno che tu non voglia effettivamente controllarlo. Quindi è probabile che tutto vada all'inferno perché in realtà vuoi spostare alcuni div di livello superiore.
Ci sono cose sulla lingua che non mi piacciono, ma penso che il vero problema sia la cultura e il fatto che l'accettazione sia così diffusa, hai una tonnellata di mediocrità nel mezzo. La cultura che sospetto scaturisce dal modo in cui viene commercializzato Java. Scrivi una volta, distribuiscilo ovunque. Traduzione: "Devi solo imparare una cosa!" Le persone che trovano fondamentalmente attraente vogliono maneggiare Java come un martello gigantesco per ogni unghia con un minimo di affinamento del loro mestiere per quanto riguarda lo sviluppo del web.
Quindi, se hai sviluppatori che conoscono Java e altre lingue ma che in realtà preferiscono Java, direi di sì, vai avanti se sembra la soluzione giusta. Ma se hai sviluppatori Java che conoscono Java e tutto il resto soddisfa a malapena i criteri per renderlo effettivamente un punto elenco sul loro curriculum, chiedi loro di creare una semplice app con una varietà di pagine semi-complesse sull'estremità HTML e provare questo test semplice. Rompi un po 'di HTML. Prova a convincerli a capire cosa c'è che non va. Se il problema immediato che iniziano a risolvere è deviare la colpa da loro stessi, tenerli lontani! @ # $ Dallo sviluppo web. Il web dev è multidisciplinare e richiede un interesse attivo nel settore per avere successo. Non è un posto per persone che vogliono solo mantenere la conoscenza di una lingua e sono più inorridite dai problemi che interessate a risolverli.
Non sto affermando che Java stessa è la radice dell'incompetenza e ho sentito che la primavera è buona. Sono sicuro che ci sono team Java competenti là fuori. Non ne ho ancora incontrato uno e non penso che sia una coincidenza. Penso che Sun abbia molto a che fare con questo. Penso anche che gestire team web come o sotto dipartimenti IT abbia molto a che fare con questo.
Java è perfetto per i piccoli siti Web. Puoi far funzionare le pagine JSP molto rapidamente con un server Web Java come Tomcat , ad esempio.
Sebbene nella mia esperienza Java sia più comune per i siti Web di grandi dimensioni in cui vi è una maggiore necessità di elaborazioni complesse sul lato server, in questo caso troverete framework Java più sofisticati utilizzati come JavaServer Faces (JSF).
È importante notare che storicamente un'installazione Java completa non era disponibile in molte configurazioni di web hosting a basso costo, quindi ciò potrebbe spiegare la prevalenza di altre lingue come PHP in questi ambienti.
Le ragioni principali per l'utilizzo di Java nello sviluppo web si riducono a quanto segue:
Parlando tecnicamente:
Se avessi avviato un'applicazione Web, avrei usato Ruby on Rails e progettato in modo tale che gli hotspot potessero essere scambiati quando RoR raggiungeva il suo limite di ridimensionamento delle prestazioni.
Java ha un odore definito di COBOL e "i programmatori di fascia bassa usano Java" in sospeso, e i fiaschi Oracle non stanno aiutando la reputazione. Se hai la scelta , scegli una lingua che attiri i migliori sviluppatori.
È semplice: utilizzare Java quando le prestazioni del back-end sono una delle principali preoccupazioni. C'è più sovraccarico durante la codifica, ma il codice verrà eseguito letteralmente tra il 1 ° e il 1 ° e 1 ° / 500 ° del tempo. Php, Ruby e altre lingue tipizzate dinamicamente saranno sempre molto più lente dei server java o .net.
La maggior parte delle soluzioni per il web non avrà bisogno di questo. Twitter non ha abbandonato Rails fino a quando non hanno iniziato ad avere un picco di popolarità, ad esempio.
Non l'unico motivo, ma con la crescente popolarità della creazione di siti Web con sofisticati front-end simili ad applicazioni pur avendo la logica di fare "cose" sul server - non dovrebbe essere necessario alcun motivo per spiegare perché Java sia almeno uguale a qualsiasi altro opzione sul lato server. Ma alla fine del client, se qualsiasi javascript si trasformerà rapidamente in un incubo di manutenzione del codice e facendo uso di GWT per mantenere queste cose a distanza di armi in modo da poter programmare in Java, puoi avere il meglio di entrambi i mondi con il tuo server facendo il sollevamento di carichi pesanti e il processore di un cliente che dà loro l '"esperienza". Impara a integrarlo con qualcosa come jQuery e puoi avere anche tutto il piacere per gli occhi che desideri.
Non alcun tipo di esperto delle alternative, ma se qualcun altro può proporne uno con lo stesso tipo di flessibilità e ampiezza, felice di sentirlo.
Il motivo principale per cui sceglierei java è se è necessario utilizzare transazioni distribuite, che può essere una grande preoccupazione per molte aziende. Tuttavia, puoi ancora utilizzare il tuo linguaggio di scripting preferito per lo sviluppo Web e delegare il lavoro su Java solo quando hai bisogno di transazioni veloci / distribuite.
Credo che sarebbe quando l'applicazione sarà molto complessa, con molte persone che la sviluppano, con molti moduli complessi, una logica aziendale complessa e deve comunicare con molte altre applicazioni aziendali.
Ad ogni modo, potresti sviluppare anche in Grails, che offre molte caratteristiche interessanti, facilita molto lo sviluppo e sta maturando molto velocemente.
Java è ok, ma se le prestazioni non sono cruciali, puoi ottenere gli stessi risultati con meno sforzo in altre lingue.
Java è un linguaggio di tipo statico ed è più economico degli altri linguaggi di tipo statico utilizzati per lo sviluppo Web, vale a dire C # e VB.net, se la tua azienda non ha un abbonamento MSDN. Le lingue tipizzate staticamente sono utili per progetti medio-grandi, regole di dominio complesse e molto codice back-end, perché puoi organizzare meglio le tue classi e gli IDE ti aiuteranno a trovare errori nel tuo codice.
Con linguaggi tipicamente dinamici, come PHP, Python, Ruby, il tuo sviluppo sarà molto più veloce, ma dovrai testare il tuo codice molto meglio. Se non hai molto tempo e denaro e le tue esigenze cambiano molto rapidamente e non devi fare calcoli molto complessi, le lingue dinamiche sono molto meglio.
Sicurezza
Il motivo principale per le grandi aziende che scelgono Java rispetto ad altre soluzioni è perché è considerato molto più sicuro.
Ciò è dovuto principalmente al fatto che è supportato da un'azienda così grande (ora oracolo).
Va tenuto presente che Java offre un livello molto elevato di sicurezza e un eccellente supporto e analisi (anche se ha un prezzo).