La Public Review Draft di MIDP 3 è stata approvata. Ancora un piccolo passo verso MIDP 3 (ragazzi, sbrigatevi, che la concorrenza [iPhone, Android…] è alle porte!).
Archivi categoria: Java
Simpatica barzellettina
4 programmatori Java e 4 programmatori .NET prendono il treno per andare ad una conferenza di programmatori.
I 4 programmatori .NET comprano ciascuno un biglietto mentre i 4 programmatori Java ne comprano solo uno.
Quando sta per arrivare il bigliettaio, i 4 programmatori Java si chiudono nel bagno. Quando il bigliettaio bussa, dicendo "biglietti prego!", fanno scivolare il biglietto sotto la porta. Il bigliettaio lo timbra e lo ritorna indietro sempre facendolo scivolare sotto la porta del bagno.
Alla conferenza successiva i 4 programmatori .NET decidono di fare lo stesso, e comprano un biglietto solo. Al che i programmatori Java non ne comprano nemmeno uno.
Appena saliti sul treno i 4 programmatori .NET si chiudono in bagno. Al che uno dei programmatori Java bussa alla porta del bagno dicendo "biglietti prego!". Quando il biglietto viene fatto scivolare sotto la porta, il programmatore Java prende il biglietto e dice: "Grazie! Come al solito, copiate i nostri metodi, ma non li capite!".
(PS: le guerre di religione non fanno parte del mio modo di vivere l’informatica: tutte le tecnologie hanno aspetti positivi, meritano rispetto in quanto frutto del lavoro di altre persone, possono essere vincenti se usate nel modo corretto. Un saluto ai colleghi che lavorano con .NET!)
(PS2: mi fanno notare che non ho citato l’origine della barzelletta, tradotta da Michele Sciabarrà 🙂 )
Java su iPhone: qualche riflessione
La notizia sta facendo il giro del mondo: Sun Microsystems ha annunciato che sta lavorando ad un porting della Java Virtual Machine ed in particolare ad una implementazione di Java Micro Edition per l’iPhone di Apple. L’annuncio arriva a 24 ore dal rilascio dall’SDK ufficiale, conditio sine qua non per poter intraprendere lo sviluppo di applicazioni con la benedizione di Apple.
Qualcuno ha anche ricordato che all’indomani della presentazione dell’iPhone Sun auspicò che il nuovo device fosse dotato di runtime Java. Auspicio completamente ignorato da Apple. Ora che c’è l’SDK, Mamma Sun deve farsi il runtime da sé.
Una sconfitta? Ovvero: Sun deve arrendersi al fatto che Apple snobba JME ed è costretta a farsi il runtime da sé? Direi di no. Qualche riflessione:
- Partiamo da lontano. Gli sviluppatori JME dipendono inevitabilmente da due componenti: IDE e emulatori, che comprendono toolchain e librerie. Nella fattispecie, Netbeans e il Wireless Toolkit rappresentano la dotazione standard di ogni sviluppatore. È ormai noto che il Wireless Toolkit e, di conseguenza, il Mobility Pack di Netbeans non sono disponibili per Mac. Stessa situazione per emulatori ed SDK dei vari manufacturer. La domanda (polemica) nasce spontanea: perchè Apple avrebbe dovuto supportare JME sull’iPhone, se Sun per prima ha completamente ignorato lo sviluppo JME su Mac OS X?. Il fatto, poi, che l’SDK dell’iPhone sia disponibile solo per Mac OS X la dice lunga sull’atteggiamento di Apple che si potrebbe sintetizzare in questa frase: "nello sviluppo mobile siamo finora stati ignorati da tutti (Sun, Nokia, Motorola, Microsoft [ovvio!]… con la sola eccezione Adobe); ora che il device più desiderato è il nostro, saranno gli altri a doversi muovere verso Mac OS X". Non fa una piega. Chi di spara ferisce, di spada perisce. Occhio per occhio, dente per dente. Insomma, cercate il proverbio che più vi piace.
- Assodato che l’iPhone è ormai protagonista del mercato dei mobile device e che, dunque, non si può né ignorare né boicottare, chi vuole portarvi la propria tecnologia deve rimboccarsi le maniche e lavorarci sopra. Va da sé che la qualità del porting dovrà essere assoluta e frutto di un lavoro meticoloso, sia per la grafica che per le funzionalità. Sull’iPhone, infatti, non si trovavo le incoerenze di molti sistemi operativi più o meno proprietari che popolano i telefoni di mezzo mondo. L’obiettivo è arduo e la posta in gioco elevata. Da qui la domanda: perchè Sun dovrebbe affidare/delegare ad altri lo sviluppo del runtime JME, rischiando magari che un lavoro di scarsa qualità ne comprometta la credibilità sull’iPhone? Guardando alla babele che esiste nel mondo JME vien proprio da chiedersi se sia stata una buona idea quella di consentire a chiunque di scrivere i runtime Java embedded o se forse non sarebbe stato meglio avere un maggiore convolgimento da parte di Sun. Il cuore ha sempre suggerito di avere un approccio aperto, la storia ha dimostrato che tutti i runtime desktop alternativi sono stati abbandonati in favore di quello Sun, che nel frattempo è stato perfezionato, migliorato, velocizzato. Nel Micro World, invece, gli sviluppatori sono costretti a scrivere una applicazione per ogni diversa famiglia di terminali (come se su desktop si dovesse scrivere una versione per ogni rilascio di CPU da parte di Intel e AMD!) e spesso il risultato non è garantito. Libreria standard ed API opzionali, infatti, mostrano comportamenti imprevedibili, rendendo impossibile realizzare applicazioni che sulla carta appaiono scontate (per le caratteristiche del device, per ciò che dichiara il manufacturer…). Ben venga, dunque, che Sun rilasci una Java Virtual Machine e un runtime Java Micro Edition ufficiali per l’iPhone e che garantisca agli sviluppatori che le applicazioni Java troveranno realizzati in questo device il paradigma "Write Once, Run Everywhere". Mi piace ricordare che il runtime Personal Java sviluppato da Sun per i primissimi iPaq era eccezionale se confrontato con i successivi Jeode o CrEme, che mostravano UI completamente incoerenti rispetto al sistema operativo sottostante. Per parecchio tempo ho preferito usare quella beta di Personal Java piuttosto che usare quegli accrocchi! Poi è arrivata IBM con J9 e le cose sono andate meglio… più o meno. Ma questa è un’altra storia!
- Così diversi sono i gusti delle persone da una nazione all’altra, da un continente all’altro, da un livello sociale ad un altro, che è praticamente impossibile pensare di progettare e realizzare un oggetto che piace a tutti indistintamente. O, meglio, che tutti sarebbero disposti a comprare. Ecco perchè alla lunga, a mio avviso, l’approccio JME (una piattaforma per qualsiasi device) sarà vincente rispetto a soluzioni chiuse come Windows Mobile, Symbian o lo stesso Android. Quest’ultimo, infatti, non è un semplice runtime ma la somma di sistema operativo, runtime Java sui generis e libreria di componenti. Affronterà Google il porting dei due livelli superiori per l’iPhone? Lo farà per gli smartphone Symbian? Non credo. Ragionamento diverso è stato fatto da Adobe e Microsoft, ben intenzionati a far funzionare Flash e Silverlight ovunque. Allora il risultato è scontato: Android è l’ennesima nuova piattaforma su cui fare porting delle applicazioni e, come tale, un vicolo cieco. Lo stesso vale per lo sviluppo Objective-C su iPhone, ovviamente! Man mano che le piattaforme native o pseudo-native si moltiplicano diventa sempre più difficile per le piccole realtà (piccole ma vivaci e in grado di portare nuove idee) riuscire a supportarle tutte, con il risultato che intere fette di potenziali utenti vengono inesorabile tagliate via. Proviamo a contarle: Windows Mobile, PalmOS, Blackberry, Symbian (divisa in Series 60 e UIQ), iPhone, Android, OpenMoko, MOTOMAGX (di cui però si sa ancora poco della piattaforma nativa). E poi c’è Java, trasversale con parecchia fatica. Ho l’impressione che anzichè migliorare si stia peggiorando: prima tre sistemi (Windows, Symbian con l’aggiunta di Linux e/o PalmOS, il primo adolescente e il secondo agonizzante), oggi sicuramente sei.
- L’avvento di soluzioni migliori, così mi sembrano l’iPhone e Android per aspetti diversi, sarà inevitabilmente di stimolo anche per gli altri attori di questo mercato. Ad esempio, per Nokia, impegnata più a vendere telefoni che a fare vera innovazione. Ad esempio, per il JCP, accusato da più parti di aver deluso le aspettative in termini di qualià (alla fine i manufacturer fanno come vogliono!) e di velocità (MIDP 3 sembra non arrivare mai…).
In conclusione, penso che sia da apprezzare lo sforzo di Apple per realizzare l’SDK per l’iPhone (tornando indietro sui suoi passi, dunque) e l’entusiasmo di Sun nel realizzare in tempi brevi il runtime JME per questo device. Se entrambi lavoreranno bene sicuramente saranno di esempio per tutti gli altri, facendo in modo che venga voglia di emulare e superare i propri concorrenti per la qualità e non solo il fatturato.
Java IDE Day
Java IDE Day: gli IDE Java più utilizzati si confrontano
Cos’è?
Arriva per la prima volta in Italia l’evento internazionale che mette a confronto gli IDE Java più utilizzati e le loro community.
JDeveloper (Oracle), NetBeans (Sun Microsystems), IntelliJ IDEA (JetBrains), invieranno un evangelist del loro core di sviluppo internazionale per confrontarsi a vicenda.
Speaker presenti:
- Roman Strobl (Sun Microsystems)
- Paolo Ramasso (Oracle)
- Vaclav Pech (JetBrains)
Purtroppo nonostante l’impegno da entrambe le parti, non è stato possibile avere la presenza di Eclipse.
Come?
Uno slot di tempo a disposizione per ogni IDE per mostrare le potenzialità del proprio ambiente rispetto agli altri.
Ruolo fondamentale sarà giocato dal pubblico in quanto sono previsti appostiti spazi per porre domande direttamente agli evangelist internazionali.
La parte finale dell’ evento sarà dedicata ad un dibattito ragionato sul futuro degli ambienti di sviluppo.
L’evento sarà in lingua inglese.
Costo:
L’evento è gratuito, ma è gradita la registrazione.
Organizzazione:
L’IDE Day è organizzato dal Jug Genova e Jug Roma
Quando e dove:
Sono previste due date: Genova, 10 marzo e Roma, 12 marzo
L’evento si svolgerà nel pomeriggio, all’interno delle Università .
Per gli orari, agenda e informazioni logistiche si rimanda al sito dell’ evento.
Sito di riferimento: http://www.ideday.org/
Grandi Edoardo e Fabrizio!
La JavaOne 2008 è imminente (si svolgerà dal 6 al 9 maggio prossimo) e finalmente è disponibile il programma all’indirizzo: http://java.sun.com/javaone/sf/sessions.jsp.
Trovo con piacere due italiani che non hanno bisogno di presentazioni: Edoardo Schepis e Fabrizio Giudici. Complimenti a tutt’e due, bravissimi!
Seminario “Parliamo di SOA”
Rimbalzo questo avviso di seminario sul blog, perchè trattasi di argomento interessante e perchè i relatori, oltre che carissimi amici, sono due validi professionisti da ascoltare con piacere.
Il GULCh (Gruppo Utenti Linux Cagliari), in collaborazione con la Facoltà di Informatica dell’Università degli Studi di Cagliari, organizza il seminario/dibattito dal titolo:
Parliamo di SOA (Service Oriented Architecture)
Relatori: Antonio Pintus, Marco Marongiu
Aula Magna di Matematica – Palazzo delle Scienze
Via Ospedale 72
Cagliari
19 Febbraio 2008 – Ore 18:30
Scopo del seminario è presentare le Service-Oriented Architecture (SOA), stimolando l’interesse dei partecipanti e la discussione su tutti gli aspetti di questo tipo di approccio, in modo che tutti (pubblico e relatori) possano andarsene dal seminario sapendo qualcosa in più. Il seminario consisterà in una presentazione di circa 40 minuti e di un dibattito. Nella presentazione saranno illustrati i concetti generali alla base delle SOA, i contesti di utilizzo di queste architetture e i principali problemi introdotti dalla loro adozione. Verrà poi mostrato un semplice problema di esempio e un numero di approcci diversi per risolverlo, mostrando di ciascuno i vantaggi e gli svantaggi. Terminata la presentazione si darà il via alla discussione; in essa, il ruolo dei relatori si limiterà allo stimolo e alla moderazione della discussione stessa.
Le SOA
Esistono diverse definizioni di SOA, ciascuna delle quali si concentra su particolari aspetti del concetto generale. Nella definizione più ampia e generale possibile, SOA (Service-oriented Architecture) è un paradigma per la realizzazione e la manutenzione di processi implementati su sistemi distribuiti su vasta scala. Per estensione vengono chiamate SOA anche le architetture implementate sulla base di questo paradigma. Le SOA trovano applicazione ovunque si abbia un insieme di sistemi eterogenei, le cui funzionalità devono essere armonizzate e coordinate insieme per creare dei servizi. L’applicazione delle SOA è in crescita in àmbito sia commerciale che scientifico. È un approccio pervasivo, che entra a tutti i livelli: da quello prettamente tecnico fino all’organizzazione del lavoro.
I Relatori
Antonio Pintus è laureato in Informatica e studente di Dottorato di Ricerca in Informatica con argomenti relativi a "Service Oriented Architecture". Lavora come Software Engineer presso il CRS4 (Centro di Ricerca, Sviluppo e Studi Superiori in Sardegna).
Marco Marongiu è laureato in Matematica. Lavora come System Administrator per Tiscali nella sede di Sa Illetta a Cagliari. Attualmente il suo compito principale è la gestione sistemistica dell’infrastruttura SOA di Tiscali, basata su prodotti TIBCO. Scrive inoltre su riviste e siti web specializzati, in Italia e all’estero.
Finalmente Sun SPOT per l’Europa!!!
È finalmente possibile acquistare i Sun SPOT anche dall’Europa direttamente dal sito ufficiale:
http://www.sunspotworld.com/products/
Sul sito è specificato "we may only accept Commercial Orders from the United States and the European Union", dunque l’acquisto dovrebbe essere possibile solo ai titolari di partita IVA. Il prezzo è "importante": 627 euro più tasse e spese di spedizione (dunque potrebbe toccare gli 800 euro complessivi). Non pochissimo, ma sicuramente è la piattaforma più avanzata e più flessibile per la realizzazione di reti di sensori.
Java SE 6 Developer Preview 9 per Mac OS X
Apple ha rilasciato il pacchetto Java SE 6 Developer Preview 9 accessibile presso http://connect.apple.com/. La preview è allineata a Java SE 6 versione 1.6.0_04 ed è destinata ai Mac Intel a 64-bit con Leopard v10.5.1 o successiva. Pian pianino ci si avvicina alla meta…
XPERIA X1: quale VM per JME?
Annuncio a sorpresa al GSMA Mobile World Congress di Barcellona: Sony-Ericsson, finora fedele alla sua Java Platform e a UIQ 3.0, introduce un nuovo terminale basato su Windows Mobile 6. Si chiama XPERIA X1, ha una interfaccia touchscreen, design a conchiglia e tastiera estraibile lateralmente.
Newsletter e blog hanno sottolineato l’importanza di questo passaggio nella strategia di Sony-Ericsson. Perchè Windows Mobile? Forse perchè la specializzazione Symbian della casa svedese (UIQ) non ha raggiunto il successo della Series 60 di Nokia? Sembrerebbe di no, visto che sono stati contemporaneamente annunciati due nuovi terminali basati su questa piattaforma, gli smartphone G700 e G900. Dunque, la causa sembrerebbe non essere UIQ. Potrebbe essere un tentativo di esplorazione di un mercato (quello Windows Mobile, appunto) in crescita ma del tutto snobbato dai finlandesi? Questa ipotesi appare più probabile.
Appena apparse le informazioni sul portale sviluppatori Sony-Ericsson, però, la mia curiosità è stata un’altra: sarà presente un runtime Java ME, pur trattandosi di Windows Mobile? La risposta è affermativa, anche se il set di API è piuttosto ristretta e non è dato sapere da quale codebase derivi (una JP? J9? altro?):
- CLDC 1.1 e MIDP 2.0
- PIM & FC API – JSR 75
- Wireless Messaging – JSR 120
- Mobile Media API -JSR 135
Insomma, siamo tornati indietro di quasi cinque anni (caratteristiche simili le aveva il buon Nokia 6600). Stupisce la mancanza della JSR 82, della Location API (visto che c’è il supporto A-GPS…). Il terminale ha uno schermo spaventoso, ben 800×480 pixel: non sarebbe stato male avere la JSR 226 per il rendering di grafica SVG. Questa poverissima dotazione sembra più un contentino che una concreta volontà di supportare Java ME su Windows Mobile. Che amarezza…
Segnalazione blog su JME
Vi segnalo il blog bitematico J2MESoccer, curato da Emanuele Pecorari. Come dice il nome, questo blog parla di Java Micro Edition e di calcio; vista la mia totale indifferenza al secondo, lo apprezzo per il primo tema, in particolare per la tenacia nel trovare (e raccontare) i bug riscontrati sui runtime Java dei terminali più diffusi.