Newsgroup: it.lavoro.informatica
Titolo: Dal mondo .NET a Java

mi trovo a poter/dover fare questo passaggio
 
esperienza lavorativa di 6-7 anni, ma su java prossima allo zero (a 
parte qualche hello world)
 
evidentemente mi ero sopravvalutato perchï¿œ sto riscontrando difficoltï¿œ 
notevoli nel districarmi nell'immenso (per me) universo di librerie, 
tecnologie, ecc... anche nel mettere su un banale web service o web 
application
 
non ï¿œ tanto il linguaggio o la private void in sï¿œ, quanto il mondo e la 
terminologia che gira intorno, davvero confusionaria (ai miei occhi) e varia
 
qualche consiglio o testo da consigliare al riguardo?
 
grazie mille

 qualche consiglio o testo da consigliare al riguardo?
 
Ti consiglio di farti un giro su 
mokabyte.it
, troverai
tantissimo ma davvero tantissimo materiale, a vari livelli.
 
 


Se non sei a digiuno di OOP, Thinking in Java ï¿œ un must. Ma non ï¿œ 
semplice da digerire. C'ï¿œ un ottimo libro scritto - incredibile - da un 
italiano - su Java. E' fermo alla versione 5 mi pare, ma ï¿œ ottimo per 
partire: Claudio De Sio Cesari --- Object Oriented && Java 5 (II 
Edizione) --- 
http://www.claudiodesio.com
 
Head First Java si legge molto bene, ma anch'esso ï¿œ fermo alla versione 
5 (per iniziare va bene).
 
L'approccio consigliato ï¿œ ovviamente quello a piccoli step. Se pensi di 
poter realizzare un web service in Java in pochi passi ti sbagli.
 
Contrariamente a quanto ti ï¿œ stato risposto nell'altro post, Java non ï¿œ 
proprio cosï¿œ *ben* organizzato. O meglio, ï¿œ molto *dispersivo*. La 
stessa cosa, a volte, puï¿œ essere realizzata in cento modi diversi e 
usando librerie disparate: questa affermazione non va mal interpretata 
facendo il confronto con - ad esempio - PHP, dove per la stessa atomica 
funzione ci sono librerie di "base" ... *quasi* simili. PHP ï¿œ *mal* 
organizzato, in confronto (niente flame, please).
 
Alcune cose "semplici", ad esempio aprire e leggere un file, richiedono 
piï¿œ linee di codice di quanto si possa pensare: Java ï¿œ verboso.
 
Non cadere nel tranello di usare subito le librerie di terze parti - 
Guava, Common Utils, ... - altrimenti ti perdi le basi.
 
Se a hello world ci sei giï¿œ passato, inizia con passi graduali come :
 
- prendere confidenza con le classi di Java (Object, String, List, Map, ...)
- giocherellare con l'ereditarietï¿œ: mi serve un'interfaccia o una classe 
astratta? Giocherella con esempi semplici come la gerarchia di animali 
(Animale, Felino, Leone, Gatto, Soriano, ...)
- creare classi inter-dipendenti che si passano informazioni: costruire 
un POJO bean (belli i termini di Java, eh?) con i suoi bei "setter" e 
"getter". Come scriveresti le classi per gestire un ordine fatto in 
pizzeria? (classi Azienda, Ordine, Pizza, Menu, Cameriere, ...)
- aprire, leggere, scrivere un file: gestione delle eccezioni, buffer, ...
- passare a classi e strutture piï¿œ complesse: che cos'ï¿œ una Servlet? che 
cos'ï¿œ un Thread?
- passare ad architetture ancora piï¿œ complesse: EJB, Web Service, 
REST(full),... Qui entrano in gioco i framework.
 
In mezzo a questo, forse piï¿œ verso all'inizio, ci metterei i design 
patterns:
 
http://eii.ucv.cl/pers/guidi/documentos/Guidi-GoFDesignPatternsInJava.pdf
 
 
che usa Java "semplice", senza librerie, quindi ï¿œ molto comprensibile, 
anche se il docente porello non ï¿œ madrelingua ï¿œ il suo italiano ï¿œ un po' 
pasticciato :-)
 
Il codice giï¿œ pronto: 
https://github.com/iw6dgm/GoFDesignPatterns
 
 
saluti,
M.

 poter realizzare un web service in Java in pochi passi ti sbagli.
 
Concordo sul resto del post, ma su questo no. Un webservice in java (jax-ws) si scrive in tre righe.
 
-- 
Soprano

 terminologia che gira intorno, davvero confusionaria (ai miei occhi) e varia
 
il mondo java non è più confusionario, è molto più aperto quindi più variegato.
su .net tu hai uno stack su cui realizzare servizi web, su java ce ne sono
a decine. tuttavia se non sta a te decidere quale adottare (e immagino/spero
sia così, visto che sei totalmente nuovo) non devi studiarti tutto l'universo
ma focalizzarti su quello che ti serve. per sapere cosa ti serve è necessario
tu ponga la domanda a chi di dovere ovvero al capo del tuo progetto.

 mi trovo a poter/dover fare questo passaggio
 
Sincere condoglianze da un felice sviluppatore .Net :)
 
Io per quello che devo fare in Java (sviluppo anche su Android) provo una
sincera e profonda idiosincrasia iniziando dall'IDE (uso Eclipse) a
scendere (listener, editor dei form, etc etc *per me* implementazioni
lontane anni luce dall'eleganza di .Net).
 
Detto questo, io sono partito con "Learning Java, 4th Edition", poi Google.
 
PaF
 
PS.
E' solo il mio modesto parere, nessun flame. Anni ed anni di VB prima e
.Net dopo mi hanno un poco sclerotizzato, lo riconosco, ma sono felice e
soprattutto efficiente cos� :)
 

 lontane anni luce dall'eleganza di .Net).
 
ovviamente è tutto opinabile, però è giusto precisare:
 
- eclipse non è l'unico ide e nemmeno lo strumento "ufficiale" per 
android (che è basato su intellij idea)
 
- poi a proposito di idiosincrasia: visualstudio ha dei bellissimi
designer che generano codice a nastro, ma qualcuno ha provato a lavorare
in più di uno sullo stesso oggetto e poi fare il merge delle modifiche? 
no perché la mia esperienza a proposito è da prendere il portatile e 
scaraventarlo dal sesto piano, ma sicuramente è un limite mio.

 poter realizzare un web service in Java in pochi passi ti sbagli.
 
Mi sto convincendo che il mio errore ï¿œ stato l'aver pensato di poter 
usare la mia esperienza in ambito microsoft per facilitare questo 
passaggio...
 
...cosa che invece sembro non poter fare nella misura che credevo :)
 
Ad ogni modo grazie per i numerosi consigli

 Sincere condoglianze da un felice sviluppatore .Net :)
 
Eh, lo sono anch'io... :)
 
In realt� sono ancora in fase di decisione, i tempi per questo passaggio 
sono piuttosto larghi e quindi il tempo ci sarebbe... non nascondo di 
aver sempre avuto un certo rigetto per il mondo java (dal basso della 
mia ignoranza al riguardo, preciso) ma adesso sono orientato sul fare 
questo bagno di umilt�...
 

 scaraventarlo dal sesto piano, ma sicuramente � un limite mio.
 
La mia esperienza di lavoro in gruppo risale a parecchio tempo fa (ho la
fortuna di essere l'unico sviluppatore dove lavoro e di esserlo stato per i
miei progetti passati con la mia societ�), ma con un buon gestore del
codice (es. subversion e TortoiseSVN che si integra in Visual Studio)
questi problemi non dovrebbero risolversi ?
 
la mia critica a Microsoft nei confronti di Visual Studio � un'altra: la
continua evoluzione con nuove versione, senza preoccuparsi troppo di
migliorare le precedenti. 
 
PaF

 passaggio...
 
Infatti ï¿œ proprio questo il problema: l'esperienza in ambito microsoft
vale men che zero in ambito open.
 
 

 questo bagno di umiltï¿œ...
 
E' il primo passo per abbandonare il lato oscuro della Forza e
diventare un Jedi ;-)
 
 

 vale men che zero in ambito open.
 
Ah, interessante, quindi io che lavoro al 60-70% in .Net ma mi trovo perfettamente a mio agio in Java, visto che non sono un genio devo essere un caso strano... 
 
La verità è che i concetti, ovviamente, oltre un certo livello, sono quelli, basta studiare e applicarsi: semplicemente, di norma chi usa Java odia .Net, e chi usa .Net odia Java. Il tutto ovviamente senza aver quasi mai aperto un libro o provato a scrivere una roba appena più complessa dell'"Hello world".
 
m.
 

 diventare un Jedi ;-)
 
Data la cronica mancanza di donne nel nostro settore sarebbe meglio
diventasse la principessa Leila :P
 
PaF 

 La veritï¿œ ï¿œ che i concetti, ovviamente, oltre un certo livello, sono quelli,
basta studiare e applicarsi: semplicemente, di norma chi usa Java odia .Net, e
chi usa .Net odia Java. Il tutto ovviamente senza aver quasi mai aperto un libro
o provato a scrivere una roba appena piï¿œ complessa dell'"Hello world".
 
Senti, ti rispondo qui anche per quanto presente nell'altro thread
relativo a Java. Se io ho parlato ï¿œ per cognizione di causa e per
esperienza. Non ï¿œ del tutto vero che i concetti siano sempre gli stessi.
Esempio: anni fa fui chiamato a tenere un corso di Visual Basic.Niet.
Avendo avuto in passato larga esperienza con Visual Basic 3-4-5-6,
mi documentai sul successore in salsa .Niet. Beh, mi venne il panico!
Un minestrone di concetti di programmazione imperativa ante-guerra,
falsa OOP mascherata con denominazioni non standard e perfino copiate
da altri linguaggi (Delplhi), "costrizioni alla Micro$soft" e cazzi e mazzi
vari mi fecero "declinare" gentilmente la proposta di tenere un corso su quel
linguaggio. Mai scelta fu piï¿œ azzeccata.
 
 
 

 Concordo sul resto del post, ma su questo no. Un webservice in java (jax-ws) si scrive in tre righe.
 
Uhm... forse mi sono espresso male.
Forse, in questo specifico caso, puoi anche scrivere un semplice pojo di 
tre righe e annotarlo come webservice. Ma *tutto* quello che c'� 
*intorno* per farlo funzionare non sono tre righe :-)
 
M.

 essere un caso strano...
 
secondo me questo non è un buon argomentare. dotnet è un framework con la 
sua clr e il suo pacchetto di linguaggi, java è un linguaggio, quindi non 
capisco che razza di confronto fate. se uno è un esperto programmatore f# 
è sicuro che a lavorare in java non si troverà a suo agio. immagino voi 
date per scontato c# o vbnet, che analogamente a java sono linguaggi 
imperativi, ad oggetti, espressivamente poveri e dalla sintassi simile, 
per cui è ovvio imparato uno ci si arrangia con tutti senza bisogno di 
essere geni.   

 Studio) questi problemi non dovrebbero risolversi ?
 
per esempio: se tu nel design del dataset fai una modifica e la stessa 
cosa la fa un'altro programmatore, poi quando vai a fare il merge delle 
due modifiche c'è da piangere. questo perché visual studio si prende la 
libertà di riorganizzare il file xml secondo sue paturnie ad ogni 
salvataggio. magari perché hai solo spostato la tabella col mouse. 

 lontane anni luce dall'eleganza di .Net).
 
Guarda, li Eclipse fa la sua parte. E' un ambiente di sviluppo che ho sempre trovato superato da un lato e arruffato dall'altro. Ora, sono anni che non lo uso (al contrario di Eclipse, ahime), però ricordo che quando provai NetBeans ne fui folgorato.
 
-- 
Ciao!
Luca

 designer che generano codice a nastro
 
Limite di VisualStudio (storico, eh?): valanghe di wizard. Poi, però, se vuoi raggiungere risultati buoni, le mani nel codice ce le devi ben mettere!
NOTA: comunque, condivido, non mi piace dove sta andando Visual Studio, nelle ultime versioni, troppo approccio Microsoft ("tu, imbecille, non sai cosa stai facendo, per cui lo faccio io per te").
 
-- 
Ciao!
Luca

 Avendo avuto in passato larga esperienza con Visual Basic 3-4-5-6,
 
Ecco.
Partiamo da un concetto. VB<finoa6> era un prodotto orrendo. Ha consentito a molti di fare le peggio cose "che tanto stavano in piedi". Siccome questi molti erano davvero molti, Microsoft ha fatto un errore strategico fondamentale. Oltre a C#, linguaggio di elezione per .NET, ha creato 
VB.NET
, con l'orrendo accrocchio che hai descritto ma che aveva come unico pregio quello di non mandare troppo in panico quelli abituati a VB. Se vuoi che ti dica come la penso, non avrebbe MAI dovuto esistere.
Prova a giocare in modo serio con C#, vedrai che la distanza da Java non è poi così siderale (parlo in termini di uso del linguaggio).
 
-- 
Ciao!
Luca

 sua clr e il suo pacchetto di linguaggi, java è un linguaggio, 
 
Che, molto prima di .NET, implementa l'idea dell'ambiente di esecuzione virtuale. Gli amici di Sun pensavano addirittura a un Java Processor (idea che non ha mai visto la luce, per fortuna), fa tu...
Microsoft ha aggiunto solo l'idea di un IL aperto.
 
-- 
Ciao!
Luca

 due modifiche c'è da piangere. 
 
Mai usato un designer per i dataset, e sono ancora qui... ;)
 
-- 
Ciao!
Luca

 Prova a giocare in modo serio con C#, vedrai che la distanza da Java non � poi cos� siderale (parlo in termini di uso del linguaggio).
 
VB fino alla versione 6 ha permesso di programmare anche a chi avrebbe
dovuto dedicarsi ad altro. Sicuramente questo ha dato fastidio a chi si �
visto invadere il proprio orticello o peggio ha dovuto mettere le mani nel
codice scritto coi piedi da altri (parlo per esperienza personale). 
 
Il mondo .Net anche solo per la vastit� delle classi a disposizione,
richiede un poco pi� di studio, quindi ha reso un pi� difficile l'approccio
al "programmatore di Voghera".
 
Io sono arrivato a VB e .NET dopo anni di C++ ma di VB ed il suo successore
VB.Net ho sempre apprezzato la sua semplicit�, ho scritto codice che dopo
20 anni funziona perfettamente da Windows 98 a Windows 8, personalmente
continuo a non riuscire a dare la colpa ad uno strumento se questo viene
usato male da chi non ha le competenze o l'esperienza.
 
Sul fatto di usare C# rispetto a VB, considerando che il codice IL �
praticamebnte uguale, per me � solo questione di gusti. Ci� che sviluppo
con VB potrei scriverlo in C# e viceversa, senza differenze.
 
Con un pennello puoi tinteggiare male una parete o dipingere uno splendido
quadro.
 
PaF

 Prova a giocare in modo serio con C#, vedrai che la distanza da Java non ï¿œ poi
cosï¿œ siderale (parlo in termini di uso del linguaggio).
 
Non metto in dubbio che la microsoft abbia investito tanto per
produrre il C#, perï¿œ da "purista" non guardo mai bene chi copia
un qualcosa da un altro/altri per sbattere sul mercato una propria
soluzione commerciale e far sentire "a tutti i costi" la propria
presenza.
 
 
 

 cosa stai facendo, per cui lo faccio io per te").
 
E torniamo al discorso che stavo facendo: nascondere dettagli importanti
al programmatore perchï¿œ cosï¿œ viene deciso commercialmente "dall'alto"
secondo me ï¿œ gravissimo e non si spinge a creare programmatori migliori.
Cioï¿œ si tenta di farli diventare dipendenti commercialmente dal proprio
prodotto.
 
 

 secondo me ï¿oe gravissimo e non si spinge a creare programmatori migliori.
 
Ecco, il vantaggio del mondo .NET è che, finalmente, se proprio ti vuoi sporcare le mani, ti basta un editor e non hai alcun bisogno di VisualStudio o similia. Va per giustezza aggiunto, peraltro, che i wizard che ho visto finora nascondono in realtà poco: il risultato, se ti prendi la pena di aprire il codice generato nell'editor, è comunque leggibile.
Peraltro io uso SharpDevelop da un paio d'anni in modo intensivo e al posto dei vari VS, e mi ci trovo meglio.
 
-- 
Ciao!
Luca

 da altri linguaggi (Delplhi),
 >
Tipo? Intendo preso da delphi.

 Partiamo da un concetto. VB<finoa6> era un prodotto orrendo. Ha consentito a molti di fare le peggio cose "che tanto stavano in piedi". Siccome questi molti erano davvero molti, Microsoft ha fatto un errore strategico fondamentale. Oltre a C#, linguaggio di elezione per .NET, ha creato 
VB.NET
, con l'orrendo accrocchio che hai descritto ma che aveva come unico pregio quello di non mandare troppo in panico quelli abituati a VB. Se vuoi che ti dica come la penso, non avrebbe MAI dovuto esistere.
 
Vb.net è molto distante da VB6, penso che molti in panico ci sono comunque andati. 
Inoltre (almeno fino a qualche versione fa) il codice VB.Net poteva essere interamente tradotto in automatico in C# senza errori (vedi ad esempio la funzione di Sharpdevelop). Ovvero la differenza con il C# è molto di superficie e poco o nulla di sostanza.
 

 da altri linguaggi (Delplhi)
 
Lascio a te giudicare chi ha contribuito a scrivere il C#, e ancora prima
il Turbo Pascal ed il Delphi
 
http://en.wikipedia.org/wiki/Anders_Hejlsberg
 
 
PaF
 
 

 usato male da chi non ha le competenze o l'esperienza.
 
Visto che siamo partiti dalla constatazione, non smentita, che certe applicazioni Java sono fatte molto male, oso dire che almeno VB6 non ti caricava di tonnellate di pseudo-metodologia da imparare assolutamente, salvo poi scrivere pattume :-)
 
 

 quadro.
 
Si ma se quel pennello ti viene fatto pagare TOT + un TOT mentre
invece ne puoi trovare un altro addirittura piï¿œ valido che costa
solo un TOT o addirittura nulla tu cosa preferiresti?
 
 

 poi scrivere pattume :-)
 
Non proprio. VB (e VB6) una volta prodotto un qualsiasi progetto, con un
calcio in culo mandava il programmatore dritto dritto nell'inferno delle DLL.
Il deployment era quindi rognosissimo e problematicissimo. Tutta questa
"metodologia" era accuratamente nascosta al programmatore all'inizio.
Sia che sia stesse parlando di miseri programmi che di cose grosse.
 
 

 ha scritto:

Alcune denominazioni come "Sender" e altre che non ricordo e nemmeno
mi interessa ricordare...
 
 

 ha scritto:

Ma scusa questo conferma quanto detto. Qui non si stava parlando
del blasone dell'autore del linguaggio, ma delle politiche
commerciali che ne hanno voluto a tutti i cosi il parto.
E' BEN diverso.
 
 

 Sia che sia stesse parlando di miseri programmi che di cose grosse.
 
 
Sono d'accordo che era un prodotto con tanti punti deboli, tra cui questo abuso delle Dll. Quel che dico è che non mi risulta che pretendesse di essere più di quel che era, un semplice RAD dove buttavi sul form un pò di componenti e partivi. E veniva fuori l'accrocchio... :-) 
 


Tu scrivi "falsa OOP mascherata con denominazioni non standard e perfino
copiate da altri linguaggi (Delplhi)", a mio modo di vedere non si tratta
di "copia", visto che l'autore � lo stesso.
 
Mi parli di politica commerciale, cosa avrebbe dovuto fare Microsoft ?
Tenere Visual Studio com'era ed immaginarsi un VS7 sempre basato su COM e
DLL ?
Non capisco questo approccio: indipendentemente dal fare o non fare
qualcosa, che ci sia continuit� col passato oppure una rottura, non va mai
bene.
 
PaF

 Sia che sia stesse parlando di miseri programmi che di cose grosse.
 
Il cosidetto "DLL hell" lo trovava chi voleva buttarcisi a piedi uniti,
senza sapere cosa stava facendo.
Ricordo programmi scritti in VB (ma anche in VC++) che definire con una
interfaccia "barocca" era un eufemismo, dove ogni controllo "colorato" era
un componente COM.
Solo chi programmava senza sapere a cosa andava incontro si imbatteva nei
grossi problemi che hai citato.
 
Io fino al 2000 ho fatto parte per quattro anni di un team di sviluppo di
un grosso gestionale in una software house di Milano, il problema delle DLL
(di una sola particolare DLL peraltro) lo abbiamo avuto solo UNA volta. 
Un mio programma che ho iniziato a scrivere nel 2003 in VB6 (classico
gestionalone custom) di cui ORA sto facendo il porting .NET funziona
perfettamente da Windows 98 a Windows 8.1
Solo culo, oppure sapevamo (e sapevo) cosa stavamo facendo, conoscendo
potenzialit� e limiti degli strumenti usati ?
 
PaF

 mi trovo a poter/dover fare questo passaggio
 
Eccoti un link che potrebbe esserti utile:
 
Java for C# Programmers
 
http://kynosarges.org/JavaCSharp.html