Pagina 3 di 3

Re: Java

Inviato: gio 4 dic 2008, 15:55
da m0rdr3d
Ah... come non detto :oops:

Re: Java

Inviato: gio 4 dic 2008, 16:00
da sir_alex
sir_alex ha scritto:
m0rdr3d ha scritto:Accidenti, non sapevo che Thinking in Java fosse diventato a pagamento. Che peccato :-k
Actually, è sempre stato a pagamento :D
Ha lasciato liberamente scaricabile la 3 perchè era uscita la 4, poi da allora non ne ha scritte altre e quindi quella ha ancora un costo (almeno, penso funzioni così)...
Aggiungerei anche che la versione elettronica (che dovrebbe essere in html come la terza) costa $25, quindi con 16/17 euro volendo ve la cavate, e secondo me potrebbe anche valerne la pena...

Re: Java

Inviato: gio 4 dic 2008, 17:41
da raffaele181188
Io ho comprato la terza edizione PER SBAGLIO questa estate, quando ci ho cliccato su senza pensarci, vabbè stava a 10 dollari + spedizione (versione cartacea). La versione 3, che puoi rintracciare in pdf (come la4, fai un giro su eMule, io ce le ho entrambe...) non tratta features (marginali) come:
costrutto foreach (ma nn ci vuole mica un libro per impararlo, eh...)
generics (ma è un casino pure su quel libro)
tipi enumerati
altre cose, ma sono piccolezze e non tanto usate. Le stesse cose che ti ho elencato sopra si capiscono in mezza giornata e sono spiegate bene sul tut della sun.
e in genere tutte le modifiche al linguaggio apportate dalla versione 5 (bada che ora siamo alla 6 update 11). Comunque la versione 5 è l'UNICA che porta modifiche al linguaggio, le altre erano sempre uguali. Io ti SCONSIGLIO vivamente Thinkin in Java (e bada che ce l'ho sul comodino eh) perchè è STRAPIENO di esempi STUPIDI e pedanti, scritti apposta per non farsi leggere. Ti consiglio Core Java2 (se vuoi dagli un'occhiata in una biblioteca o in libreria) che è il libro ufficiale della Sun. E' in due volumi, quindi ci metterai un bel po' a leggerlo, ma ti eviterai l'approccio da "babbeo" di Bruce Eckel. All'inizio ero entusiasta, ma devo dire che quel libro (più grosso di una bibbia) tanto osannato in realtà è troppo pieno di cose inutili. Inoltre il codice di esempio è stupido. Poi non so che tipo di manuali preferisci, ma ti assicuro che è proprio pesante. In certe cose non è nemmeno tanto approfondito, in altre si dilunga inspiegabilmente (esempio: un capitolone intero tutto dedicato a interfacce e classi interne, non serve a una mazza secondo me, se uno ha voglia di fare esperimenti col linguaggio fa da solo...). Il libro di Horstmann che ti ho suggerito mi sembra molto più tecnico e soprattutto sintetico. Visto che ti serve arrivare subito al succo di Java magari è meglio. E poi magari ti leggi on-line gli ultimi 3-4 capitoli del libro di Eckel dedicati a Ant, JUnit e Design Patterns, quelli sì sono interessanti

Re: Java

Inviato: gio 4 dic 2008, 18:09
da raffaele181188
Ah, lascia stare le guide su internet perchè Java non si impara in mezza giornata, serve un manuale DI CARTA per studiarci le classi fondamentali. E' chiaro che la sintassi di base è sempre quella, sono le classi che vanno conosciute. Se proprio vuoi qualcosa online il tutorial della sun è una miniera d'oro ed anche il punto di partenza per qualsiasi nuova teconologia legata a java (secondo me). Ma ci vogliono settimane per leggerlo tutto per bene, quindi...

E ti esorto anche a stare alla larga dagli IDE se intendi usare Java anche dopo la tesi, perchè non impareresti ad usare il linguaggio ma l'ambiente di sviluppo. Kwrite + Konsole = OK
In un secondo momento (per un progetto vero che deve usare debugger visuali, costruttori di gui eccetera) allora sì scegli elcipse (per me netbeans è meglio ma è troppo lento ed invadente). E poi non capisco l'odio per le gtk...

Riguardo al primo argomento del thread (ovvero la "faccia" di Eclipse e NetBeans) sappi che (giusto per chiarire):
1)Eclipse usa org.eclipse.swt, libreria GUI portabile della IBM che all'interno usa una libreria nativa per ogni sistema operativo (da cui la sua portabilità)e per linux è stato scelto gtk
2)NetBeans usa java.awt + javax.swing (tutto by Sun). In realtà la parte di codice nativo è tutta in java.awt, che si appoggia a librerie native come fanno le swt. Per Linux credo che siano state scelte le gtk, ma forse l'ultima versione supporta anche le qt (non ne sono sicuro, ma ho notato che le applicazioni in java possono usare il look & feel di KDE, quindi ho fatto 2+2... se qualcuno può chiarirmi la cosa gliene sarei grato). TIENI PRESENTE, però, che NetBeans usa una feature della libreria swing che consente alle applicazioni Java di usare la medesima "faccia" chiamata Metal su TUTTI i sistemi operativi di questo mondo. Quindi il NetBeans è volutamente fatto per NON integrarsi visivamente con alcun OS (mantenendo l'indipendenza anche visiva di Java dalla piattaforma), mentre Eclipse NON si integra SOLO con KDE (perchè su windows, mac o gnome per il discorso di cui sopra...). E non odiare le gtk eh eh, e che ti hanno fatto? [-X

Re: Java

Inviato: gio 4 dic 2008, 18:41
da francogdn
raffaele181188 ha scritto: E ti esorto anche a stare alla larga dagli IDE se intendi usare Java anche dopo la tesi, perchè non impareresti ad usare il linguaggio ma l'ambiente di sviluppo. Kwrite + Konsole = OK
Non sono particolarmente d'accordo su questo. Secondo me un IDE può essere un ottimo punto di partenza. Allo sviluppatore serve utilizzare un linguaggio di programmazione come strumento per risolvere un determinato problema. Se poi birg vuole approfondire secondo me può farlo in un secondo momento, utilizzando Kwrite + Konsole, ma lo farà in maniera più consapevole.

Re: Java

Inviato: gio 4 dic 2008, 19:36
da raffaele181188
Secondo me gli IDE sono fondamentali per non perdere ore e ore inutilmente, ma il fatto è che "nascondono" un sacco di cose. E poi molte delle impostazioni e configurazioni apparirebbero "misteriose" senza conoscere il funzionamento sottostante. Visto che all'università si va per imparare... persino per l'html si consiglia di cominciare con semplici editor testuali. E, infine, trattandosi di un progetto poco pretenzioso, credo che il guadagno in termini di tempo non sarebbe così elevato se aggiungessi quello necessario per imparare ad usare l'ambiente di sviluppo: Eclipse soprattutto è un po' ostico all'inizio, con tutti quei bottoni e bottoncini... Detto questo, credo che una volta capito come funziona java sia meglio passare subito ad un IDE, senza perdere tempo con gli strumenti da riga di comando del jdk.

classpath

Inviato: gio 4 dic 2008, 22:05
da birg81
Un attimo di pausa...
Che sono i classpath??
che vuol dire usare i file class all'interno dei jar?!
Da quello che mi state spiegando i file class sono già eseguibili, quindi i file jar sono una collezione di "eseguibili" che sinergicamente collaborano tra loro...
invece qui adduco che partendo da un file jar i posso utilizzare le librerie al loro interno?!
comunque grazie per la dritta di "Thinking in Java" iniziero' a scaricarlo e poi lo faro' stampare a scuola...
xxx ha scritto:E non odiare le gtk eh eh, e che ti hanno fatto?
Offtopic: le odio per una serie di motivi anche se ammetto che sono molto banali

Re: Java

Inviato: gio 4 dic 2008, 22:41
da raffaele181188
Scaricati la versione 4 di TIJ però, che Bruce ha tolto alcune cosucce noiose e ha aggiunto le nuove. Resta sempre valido il consiglio di provare il libro di Hosrtmann, anche graficamente non ci sono paragoni, poi fai tu. Su jar .class e classpath puoi trovare un sacco di cose su internet e ti consiglio di leggerle (anche sul libro di eckel) perchè sono abbastanza importanti, comunque riassumendo
Il compilatore java (javac) prende i sorgenti .java e li compila in bytecode (file .class). Il bytecode è una sorta di pseudo-assembly per la virtual machine (ci sono degli esempi di bytecode anche in TIJ). E' grazie al bytecode che java è portabile.
Ora (semplificando molto) i file .class che fanno parte della stessa libreria vengono messi in una struttura di directory che riflette il nome della libreria. Per esempio le classi Bart.class e Lisa.class dichiarano di appartenere alla libreria (package in java) homer.simpson.famiglia
Allora sono sistemati in una directory homer/simpson/famiglia che si trova da qualche parte nel tuo filesystem.
Per far capire alla JVM dove iniziare a cercare le classi Bart e Lisa (quando le servono) devi specificare la variabile CLASSPATH (E' come quando in BASH aggiungi alla variabile PATH il percorso alla tua directory degli script, stessa cosa)
Per quanto riguarda i jar, se abbiamo le librerie homer.centrale, homer.casa.garage, homer.bardiboe, homer.famiglia ecc. che costituiscono la nostra applicazione naturalmente vogliamo distribuirle tutte insieme. Allora le mettiamo tutte in un unico archivio compresso che ha estensione .jar
Spero di essere stato chiaro ma soprattutto sintetico. Sono cose importanti e dovresti leggere e studiarle bene

Re: Java

Inviato: ven 5 dic 2008, 14:24
da sir_alex
I file .class non sono eseguibili; ogni file .class, compilato da file .java, contiene una singola classe. Volendo puoi considerarne uno singolo alla stregua di eseguibile se contiene il metodo main, un po' come un file cpp con il main è un eseguibile, tutti gli altri sono librerie usate da quello... anche se è un po' poco precisa come definizione.

Re: Java

Inviato: sab 6 dic 2008, 11:30
da 414N
birg81 ha scritto: Sono ing Informatica Ordinamento Quinquennale. Al vecchio ordinamento di programmazione di fa il C++.
Poi è ing e no informatica.
Offtopic: Mi sembra incredibile che tu non abbia mai visto Java durante i tuoi studi...
Quindi, in 5 anni di studi, quali linguaggi vi hanno insegnato? C/C++ e basta?

Re: Java

Inviato: dom 7 dic 2008, 10:18
da kreen
414N ha scritto:Offtopic: Mi sembra incredibile che tu non abbia mai visto Java durante i tuoi studi...
Quindi, in 5 anni di studi, quali linguaggi vi hanno insegnato? C/C++ e basta?
Offtopic: Beh, se glielo hanno insegnato bene, mi pare sufficiente :-)
L'incredibile è che in un piano di studi che prevede un tipo di linguaggio, fanno scrivere la tesi utilizzandone un altro. A meno che la tesi non verta proprio su Java. Di sicuro quando scriverò la mia, se mai utilizzerò un linguaggio, non aggraverò il carico di lavoro mettendomi ad imparare il Pascal per utilizzare quello.