mercoledì 10 ottobre 2012

JavaOne 2012: osservazioni e impressioni


Sto iniziando questo post particolare blog come mi siedo il il San Francisco International Airport in attesa di imbarcarsi su un aereo per tornare a casa dopo l'altra soddisfazione, ma faticosa JavaOne (2012) l'esperienza. E 'difficile scrivere un altro post sul blog dopo aver scritto freneticamente ~ 30 post sulla conferenza in quanto i keynote di Domenica scorsa, ma voglio registrare alcune delle mie osservazioni e impressioni della conferenza mentre sono ancora relativamente fresco. Più rispetto agli anni precedenti, ho fatto inserire alcune osservazioni di carattere generale (di solito denunce) all'interno messaggi su singole sessioni.
Questo post è suddiviso in "il buono", "il male" e "il brutto" di JavaOne 2012. Voglio sottolineare che la conferenza era eccezionale e io sono riconoscente della possibilità di aver partecipato. Spero che il tono generale del mio post riflette i miei sentimenti globali altamente positive su questa conferenza, ma presenta anche un ritratto realistico degli aspetti non-così-grande della conferenza.
Il Buono
Nel complesso contenuto tecnico
Vi è una grande varietà di cose partecipanti alla conferenza vediamo l'ora di in una conferenza. Molti di noi vediamo l'ora di molte delle stesse cose in una conferenza. Per me, l'attributo più importante di una conferenza tecnica è il suo contenuto. In questa categoria, JavaOne 2012 è stato un successo.C'era in realtà troppo buoni contenuti per prendere tutto, ma questo è un dilemma di benvenuto .
 
Grande attenzione a dettagli di basso livello
Penso che Adam Bien fatto una osservazione importante : anche se è bello avere il coinvolgimento della comunità nella conferenza, JavaOne presenta una speciale opportunità di ascoltare dalla gente (per lo più dipendenti di Oracle) che lavorano "in trincea", sulle più recenti API Java, specifiche, e SDK.Bien metterla in questo modo: "Io principalmente frequentato sessioni tenute da ingegneri Oracle. Il 90% di queste sessioni sono stati grandi con unico, profondo contenuto tecnico probabilmente solo erogabile da qualcuno attuazione della roba di basso livello. Questa è la mia motivazione personale per la partecipazione a JavaOne."
Sono stato a database conferenze di cui molti di presentazioni dei dipendenti Oracle 'sono pesanti sul marketing e software tendono e basso su dettagli tecnici. Non è questo il caso in cui i dipendenti di Oracle JavaOne presentare i dettagli di basso livello che gli sviluppatori Java vogliono sentire.
Ampiezza e la portata di contenuti tecnici
Non importa in quale dimensione viene misurata, JavaOne 2012 caratterizzato ampiezza e la profondità dei contenuti. Soggetti in Java SE, Java EE, Java ME / embedded, web, JVM (lingue alternative), e anche alcuni non-Java argomenti erano disponibili in quasi ogni blocco sessione. Le note fondamentali (in particolare la strategia di Keynote e Keynote tecnico ) e selezionare le presentazioni che ho partecipato tabelle di marcia previste e la visione di quello che ci aspetta.
Ho apprezzato l'ampiezza della "utilità temporale" disponibile nelle presentazioni. Ho imparato a conoscere cose che mi piacciono non utilizzare in qualunque momento presto, ma sono interessanti e la mente in espansione ( Ceylon , JavaFX embedded , Giochi quadro , Akka , Tiggzi ), cose che sicuramente usare in futuro intermedio ( Progetto Lambda , JSR 310 Data / Ora API ), cose che userò in un prossimo futuro ( Scala ), e le cose userò non appena torno a casa (JDK 7 è jcmd , Cavalletto progetto NetBeans , Checker Framework ). Sono stato anche in grado di imparare alcuni suggerimenti nuovi e / o trucchi per le cose per le quali ho già avuto familiarità significativa ( Groovy , JavaFX , NetBeans di lingua personalizzata dichiarativo per il refactoring / suggerimenti ).
Attenzione su Comunità
Ho già detto che sono d'accordo con l'affermazione di Adam Bien che uno degli aspetti più importanti della JavaOne è l'accesso alle persone che lavorano direttamente sul futuro di Java. Ciò premesso, apprezzo Oracle facendo uno sforzo reale per entrare in contatto con la comunità. Ho pubblicato durante le presentazioni diverse in cui gli altoparlanti sollecitate feedback e idee da parte della comunità e il pubblico. Questo era un tema quasi universale di una delle presentazioni relative a qualsiasi fonte aperta. Il Keynote Comunità JavaOne è la manifestazione più evidente di impegno JavaOne di comunità, ma questo tema è stata ribadita in numerose presentazioni.
La città ospitante
San Francisco è una città fantastica da visitare e offre un sacco da fare per i tempi di inattività e per le persone che viaggiano con i partecipanti JavaOne che non sono essi stessi frequentano JavaOne.Anche se non vedo l'ora alcuna possibilità ho di frequentare JavaOne, penso che non vedo l'ora della visita a San Francisco, per quanto la conferenza. E 'sicuramente una città interessante da visitare con ottimi ristoranti e altre attività. Il tempo era piacevole e chiara la maggior parte del tempo, anche se la nebbia avvolto in tanto per ricordarci che è San Francisco ed è stato insolitamente caldo nella parte iniziale della conferenza.
Oracle fa la presenza di Oracle OpenWorld e JavaOne ben noto in tutta la città. Indicazioni tecniche taxi per le rispettive conferenze sui loro annunci, ci sono segni in tutto il luogo, e alcune sezioni del centro vicino alle sedi congressuali (Moscone per Oracle OpenWorld e tre Union Square hotel per JavaOne) per le attività.
Attività extracurricolari
JavaOne offre numerose attività extrascolastiche al di là del contenuto tecnico della conferenza e al di là di ciò che la città offre. Non ho preso parte in molti di questi di quest'anno a causa di altri impegni e attività, ma le offerte sono abbastanza impressionanti. La Notte Appreciation Oracle, che ha caratterizzato Pearl Jam e Kings of Leon quest'anno, è particolarmente impressionante. Anche se ci sono numerosi svantaggi per JavaOne essere il "fratello minore" che si tiene in contemporanea con Oracle OpenWorld, alcune di queste attività sono disponibili a causa della più grande e migliore conferenza hanno partecipato il fratello maggiore che si terrà contemporaneamente.
 
Il ritorno di James Gosling
Non si poteva negare che il ritorno "sorpresa" di James Gosling a JavaOne ( Keynote comunitario ) ha lasciato una grande impressione e molto positivo. Il fattore nostalgico (ricordo dei giorni più gloriosi di JavaOne) sembrava essere grande come la presentazione Gosling stesso. Ho controllato un sacco di traffico Twitter durante la settimana su "JavaOne" e non Tweet singolo o serie di tweet è venuto da nessuna parte vicino ad essere Twitter e ri-treeted più spesso parlare del ritorno Gosling a JavaOne.
Maggiore esposizione a Strumenti
Maestri artigiani di ogni settore hanno più successo con gli strumenti corretti. A JavaOne 2012, ho avuto modo di conoscere gli strumenti che io o non era a conoscenza di precedenza o che non avevano pienamente apprezzato in precedenza. Questi sono stati sia l'oggetto delle presentazioni che ho visto o sono stati usati "incidentalmente" durante i progetti e discussioni corridoi. Questi progetti inclusi JaCoCo libreria Java Code Coverage (primo letto in un Tweet ), Checker quadro , la Oracle JDK 7 jcmd da riga di comando, e NetBeans 7,3 Cavalletto progetto . Mi è stato inoltre ricordato cheJDeveloper fornisce uno dei migliori strumenti gratuiti UML , un promemoria importante ora cheNetBeans non supporta UML (UML ultimo supportato in NetBeans 6,7 ).
Online JavaOne 2012 Copertura
La tecnologia moderna continua a fare JavaOne più accessibile a sviluppatori in tutto il mondo ogni anno. Oracle ha fatto un sacco di contenuti online disponibili all'inizio della conferenza e singoli membri della comunità hanno contribuito in modo significativo alla copertura JavaOne. Anche alcuni dei singoli contributi sono stati in parte a causa di Oracle, io, per esempio, ha partecipato JavaOne 2012 su un passaggio blogger ed è stato in grado di scrivere post come questo grazie a quel pass gratuito. Tra presente alle sessioni, visitando alcuni siti di San Francisco, e scrivere i miei post sul blog, ho solo stato in grado di leggere una parte degli altri post scritti su JavaOne 2012. Spero di recuperare il ritardo su quelli nelle prossime settimane. Ho provato a guardare i messaggi di Twitter sulla conferenza mentre è andato avanti ed è stato colpito con la copertura rapida di aspetti importanti della conferenza.
Oracle ha fatto "keynote in vetrina e le luci" disponibili on lineCi sono stati diversi blog Oracle-origine di interesse tra cui Oracle Lineamenti tabella di marcia per Java SE e JavaFX a JavaOne 2012 , Rack Collateral virtuale (file PDF di sessioni), Giovedi Keynote Comunità: 'Per la Comunità, per la Comunità' , JavaOne 2012 Strategia Domenica Keynote , e il JavaOne 2012 Domenica Keynote tecnico .
Individuali JavaOne 2012 sono riassunti Jim Gough 's mette in evidenza da Java One 2012 , Mark Stephens 's 5 cose fondamentali che ho imparato a Javaone2012 , Yakov Fain 's I miei tre giorni a JavaOne 2012 , e Trisha Gee 's JavaOne: Il Riepilogo .
Una dose di realtà
La blogosfera tende a distorcere la realtà dello sviluppo del software per una serie di motivi (dominato dal "nuovo" e "interessanti" sviluppi, per un anno). Assistere conferenze può essere un buon modo per parlare con gli altri per ottenere una migliore prospettiva sulla realtà dello sviluppo del software in generale. Per esempio, a JavaOne 2012, ci sono stati vari solleciti che vi è ancora significativo lo sviluppo di software che si verifica sul desktop (è non è tutto web / mobile ) e che la scomparsa diUML è stato sopravvalutato .
Il Bad
Questi "cattivi", le cose sono per lo più accolto parti dell'esperienza JavaOne. Essi sono certamente compensati dal bene sia in termini di numero di cose "cattive" o "buona" e in termini di importanza delle cose. In altre parole, ci sono cose più buone di JavaOne e le cose buone erano più importanti per me che le cose cattive.
L'Hotel Venue
La diffusione della JavaOne oltre tre Union Square Hotel (Hilton, Parc 55, e Nikko) e il Masonic Auditorium probabilmente non sarebbe più grande di un negativo se i partecipanti JavaOne non erano a conoscenza della presentazione-friendly Moscone Center nella stessa città a pochi isolati di distanza. Mi sto abituando a questo luogo e può navigare meglio ora rispetto al passato. Io in realtà godono spesso la possibilità di andare fuori per spostarsi tra gli edifici. Tuttavia, ho anche trovato a cambiare un paio di presentazioni selezionate ultimi due giorni, perché la mia scelta originale era in una zona particolarmente povera sala conferenze.
Scarso Wifi
Il Wifi a JavaOne semplicemente non in grado di scalare il numero di persone che vogliono utilizzarlo su computer portatili, iPad, iPod touch, tablet Android e altri dispositivi personali. La connessione Wifi era abbastanza buono al mattino prima di andare e le cose si era eccezionale nel pomeriggio di Giovedi quando un sacco di gente aveva già lasciato.
Il cibo
Come i luoghi, il cibo è non è completamente terribile , ma non è solo molto buono. E 'sufficiente che ciò che è necessario (che fornisce nutrienti ed energia), ma la sua mancanza di sapore si trova in netto contrasto con le ottime colazioni e cene mi sono divertito anche quest'anno, mentre a San Francisco.
Arrivare e Lasciando San Francisco
I miei voli dentro e fuori di San Francisco sono stati entrambi in ritardo a causa della nebbia a San Francisco e / oa causa di misurazione del traffico in aeroporto. Oltre a questo, ci hanno detto che laMarina degli Stati Uniti l'uso 's su OFS per alcuni dei loro flotta Settimana esercizi è stata la ragione ci siamo seduti sulla pista per altri venti minuti. Questo è un esempio di dove il bene (essendo a San Francisco per la conferenza) compensato il male.
The Ugly
Misbehavior sconsiderato e intenzionalmente maleducato
Forse la più brutta parte del JavaOne 2012 aveva poco a che fare con la conferenza stessa o dei suoi organizzatori, ma è stato invece causato da una piccola parte dei suoi partecipanti. Sembrava che ho ripetutamente ottenuto dietro la persona che tenta di testo e piedi allo stesso tempo. Questi individui rallentato il traffico nelle sale già congestionate mentre camminavano più lentamente e si smarrì in direzioni imprevedibili e indotto la gente a provare a camminare intorno a loro, causando ulteriori problemi. Le persone tendono a non unità e il testo così come si potrebbe pensare e camminare e sms non è diversa. Il camminare mentre sms può essere meno pericoloso che guidare mentre texting, ma non è privo di pericoli . C'era un ragazzo che era dietro che è stato l'arresto intermittente durante il tentativo di mangiare e camminare giù per le scale perché stava perdendo il suo pranzo o uno spuntino. Continuando a cercare di fare entrambe le cose fatto in modo che nessuno dei due è stato fatto bene.
Altri comportamenti scorretti che ho osservato sono stati osservati anche da altri. Tra queste, la presentazione inutile dirottamento , i telefoni cellulari che squillano in sessioni e alcune persone anche di accettare la chiamata senza uscire, la gente in linee di taglio , e eccessivi ingresso e l'uscita di presentazioni a metà (punto più evidente un problema quando qualcuno che sedeva nei primi mesi righe in una mostra della sua uscita). La maggior parte dei partecipanti erano ben educati, ma la piccola frazione di partecipanti sconsiderati e anche intenzionalmente maleducato è stato probabilmente il più brutto parte di JavaOne 2012. In difesa di JavaOne, questa "bruttezza" sembra essere più riflessivo del comportamento umano che della conferenza.
Osservazioni supplementari / Varie
Argomenti Trendy
Alcuni degli argomenti che sembravano particolare popolare JavaOne di quest'anno ha incluso REST ,HTML5 , Progetto Nashorn , JDK8 / Lambda , NetBeans , e embedded / Raspberry Pi .
Convergenza
Uno dei temi principali di JavaOne 2012 è stato " convergenza ". Questo tema è stato esplicitamente identificato nei keynote e presentazioni varie come " Guardando il Cristallo JVM sfera "(convergenza di JRockit Oracle e HotSpot JVM)," Mastering Java Deployment "(convergenza di Java SE e JavaFX),"JavaFX su Smart incorporato Dispositivi "(convergenza di JavaFX e JavaFX Embedded, che rappresenta la convergenza di edizioni di Java [EE, SE, ME])," NetBeans.Next - La tabella di marcia Ahead "(ripartizione tra le funzioni di NetBeans e JDeveloper), e" Diagnosi l'applicazione in la JVM "(convergenza di strumenti di VM tra JRockit e HotSpot e convergere di strumenti della riga comandi in unico nuovo strumento jcmd).
Una delle manifestazioni di questa convergenza di versioni di Java è la ridenominazione di versioni. E 'stato interessante ascoltare più diffusori fare riferimento alle attuali JavaFX come JavaFX 2,2 e la versione "next" principale di JavaFX come JavaFX 8 (versione che doveva essere chiamato JavaFX 3).Questa versione di denominazione cambiamento è documentato nel post JavaFX 2.2 è qui, e JavaFX 8.0 è sulla buona strada! Allo stesso modo, Java ME è vedere una versione di denominazione cambiamento così: Java ME 3,2 è la versione corrente e Java ME 8 è la "prossima "versione principale.
JDK 7 Aggiornamento 10: The Next 'Big' versione secondaria?
Ho sentito parlare di più presentatori Oracle caratteristiche che stanno già utilizzando in JDK 7 Aggiornamento 10. Dato che la maggior parte di noi che utilizzano JDK 7 utilizza JDK 7 Update 6 (eJDK 7 Update 7 è il download corrente normale ), suona per me come JDK 7 Update 10 potrebbe essere la prossima versione "minore" del JDK 7 con importanti nuovi strumenti per cose come la diagnosi applicazione e la distribuzione delle applicazioni .
La denominazione di comunicati JDK minori con i numeri dispari per Critical Patch Update (CPU) e anche i numeri per "versioni di aggiornamento limitate" è stato annunciato in precedenza . JDK 7u10 B10 costruzione è disponibile in anteprima per sviluppatori .
"Java" Diventare più grande che mai
Una cosa che è chiaro per me che mai dopo aver frequentato JavaOne 2012 è che "Java" è diventato grande per una sola persona per ottenere le mani i suoi intorno alla faccenda. Anche alcuni dei più noti esperti che conosco nella comunità Java sono stati sentiti dire che avrebbero bisogno di chiedere a qualcun altro di rispondere ad una domanda specifica fuori dalla loro area di competenza. Sta diventando sempre più difficile per una persona di comprendere a fondo tutti gli aspetti di Java (JVM, EE, SE, ME, ecc.) Quando si lancia in lingue alternative e dei quadri e strumenti nuovi, una persona non può imparare o capire tutto. E 'bello che abbiamo così tante scelte, ma può essere frustrante vedere intere zone della "Java", che sarebbe interessante approfondire, ma semplicemente richiedono troppo tempo e fatica per dare quelle zone il grado desiderato di attenzione.
Complessivo
Nel complesso, credo JavaOne 2012 è stato un successo dalla maggior parte della gente misure .Certamente era il mio. Io non sono l'unico che era dispiaciuto di vederlo finire .


mercoledì 3 ottobre 2012

JavaOne 2012: analisi statica del codice personalizzato


Sono tornato alla Hilton (Continental Ballroom 4) a partecipare Jan Lahoda 's ( Oracle / NetBeans) Birds-of-a-Feather presentazione "Analisi statica di codice personalizzato." In precedenza ho bloggato su un sottoinsieme delle funzionalità di cui Lahoda nel post Creazione di un NetBeans 7,1 suggerimento personalizzato . In questo post, ho guardato a scrivere suggerimenti personalizzati per NetBeans usando il linguaggio personalizzato refactoring dichiarativo che Lahoda discusso nella sua presentazione.
Lahoda ha spiegato che il Custom linguaggio dichiarativo refactoring è stata fondata nel 2000 per "migliorare IDE e gli sviluppatori modo in cui si sviluppano." NetBeans 6.0  ha adottato il proprio modello di scrittura nel 2006 ed è stato ripreso per NetBeans 7,1 con Jackpot Progetto 3,0 . Si tratta di un AST personalizzata basata su Java come DSL linguaggio che "permette di definire refactoring (quasi) dichiarativo". Può essere utilizzato per "verificare la presenza di anti-pattern" e di "determinare quanti clienti chiamare un metodo particolare per il contesto specificato."
Jackpot può essere eseguito al di fuori del NetBeans IDE sulla riga di comando utilizzando l' attrezzo Standalone Jackpot . Lahoda ha dichiarato che questo strumento standalone basato su riga di comando può anche applicare avvertimenti NetBeans.
Lahoda avuto diverse diapositive riguardanti le opzioni e la sintassi per specificare le regole statiche di analisi del codice . Le informazioni contenute in molte di queste slide è disponibile nella pagina Wiki JavaDeclarativeHintsFormat che Lahoda riferimento. Lahoda anche consultati online Jackpot 3,0 Esempi.
Lahoda fornito un modello di come il linguaggio dichiarativo suggerimenti funziona:

1.<source-pattern> :: <Condizioni>
2.=> <target-pattern> :: <Condizioni>
3.=> <target-pattern> :: <Condizioni>
4.;;
Lahoda ha dichiarato che è possibile inserire "un numero qualsiasi di tali norme in un file" e poi inserire il. Suggerimento file in META-INF/upgrade. Vedi Geertjan Wielenga 's post Oh No Vector! su questo particolare.
Patterns erano un altro Lahoda argomento trattato nella sua presentazione. Aveva una pallottola affermando che i modelli possono essere applicati a "espressioni Java, istruzioni, classi e metodi." Ha spiegato il significato di $, che di fronte a un modello significa sostituzione di una cosa e con uno alla fine significa più istanze di quella cosa. Ecco le regole che utilizzano $ per i modelli che ha mostrato la sua slitta:
DichiarazioneDichiarazioni $ $ $ dichiarazione
0 o 1if ($ cond) $ allora, altrimenti $ else $
ModificatoriTipo mods $ $ $ $ $ variableName;
Le catture multipletry {} $ $ catture finally {}
Lahoda coperti condizioni. Egli ha dichiarato che ci sono tre tipi di condizioni: lingua (instanceof, in caso contrario), standard (predefinita), e personalizzato. Un risultato condizione può essere negato (!) && E lavora sui risultati condizione.
Lahoda esempio, di utilizzare instanceof è indicato accanto (restituisce true se l'espressione associato a $ variabile è di tipo <tipo>):

1.variabile $ instanceof <tipo>
La parola chiave in caso contrario viene utilizzato quando designare correzioni ed è vero quando nessun altro fix è disponibile per una particolare regola.
Lahoda ha dichiarato che "come chiamate di metodo" sono della forma:

1.hasModifier ($ variabile, PRIVATO)
Lahoda concluso ricordando il pubblico delle situazioni in cui questo approccio personalizzato analisi statica del codice potrebbero essere utili:
  1. NetBeans refactoring personalizzato per controllare antipatterns
  2. Controllo per le violazioni durante continua costruzione
  3. La produzione standard di avvisi NetBeans
Quando ho scritto il mio post Creazione di un NetBeans 7,1 Suggerimento personalizzata , una delle più grandi sfide è stato trovare la documentazione di fuori della documentazione sparse NetBeans linea per quanto riguarda l'uso della lingua di regole personalizzate. Presentazione Lahoda e le pagine Wiki più recenti e altra documentazione è stato uno dei principali responsabili negli ultimi mesi hanno contribuito a ridurre questo ostacolo. Questa è una delle molte cose che ho visto o sentito di più su a JavaOne 2012 che spero di blog in futuro.