Visualizzazione post con etichetta notizie. Mostra tutti i post
Visualizzazione post con etichetta notizie. Mostra tutti i post

martedì 8 aprile 2014

Opening del Codemotion giovedì

Non mancate all’Opening di Codemotion giovedì 10 aprile! Potrai incontrare gli speaker del Codemotion e gli ospiti internazionali

L'Opening sarà al Tempio di Adriano alle 18.30, l’ingresso è gratuito ma è necessaria la prenotazione: http://www.eventbrite.it/e/biglietti-codemotion-rome-2014-opening-party-10th-april-2014-11053566515?aff=eorg

L’Opening sarà un’anteprima del Codemotion Roma, un assaggio delle due giornate di conferenza con più di 100 talk distribuiti fra venerdì 11 aprile e sabato 12 aprile, 8 labs e tante aree dedicate, fra cui: area maker, area startup, area sponsor e l’area Kids con laboratori gratuiti per insegnare la programmazione ai bambini.

Ecco il programma dell’Opening

18:30 – Chiara Russo e Mara Marzocchi: One year of Codemotion and our Team
18:35 – Stefano Venditti: Annuncio e presentazione della Maker Faire
18:40 – Alessandro Ranellucci: Makers’ world
18:45 – Gosia Sosnowska: Codemotion’s conference preview
18:50 – Sascha Wolter: Contextual Interaction
18:55 – Alain Regnier: Google Glass : Welcome to the world of Smart Glasses
19:00 – Viviana Cristini: Codemotion Kids e Massimo Avvisati: “My experience in Codemotion Kids
19:05 – Brenda Jin: Humans, computers…..in that order
19:10 – Anna Masera e Alessio Biancalana
19:15 – Mario Klingemann: The joy of finding
19:20 – Richard Warburton: A brief story about programming languages
19:25 – Jacopo Romei: Eat your own dog's food and keep yourself healthy!
19:30 – Nino Guarnacci: From Internet of People to Internet of Things

martedì 18 marzo 2014

Java 8 è tra noi!

L'atteso nuovo rilascio del linguaggio e della piattaforma Java è disponibile in General Availability sul sito di Oracle:
http://www.oracle.com/technetwork/java/javase/downloads/index.html

Il supporto NetBeans è gia pronto, quello di Eclipse ed IntelliJ è in beta.

Sembra che molte delle nuove funzionalità siano dedicate alla programmazione parallela e distribuita.

La speranza è che se ne parli molto di queste nuove caratteristiche, al Codemotion come agli incontri dei Java User Groups sparsi per la penisola.

Sarebbe una buona cosa se ci fosse sforzo collettivo per capire le nuove possibilità che si aprono agli sviluppatori.

Parecchie cose diventeranno tremendamente più facili. Ma si dovrà anche imparare a ragionare e sviluppare con un linguaggio che ha delle caratteristiche molto diverse da ciò a cui siamo abituati.

venerdì 14 febbraio 2014

Java Server Faces e Thoughtworks

Thoughtworks pubblica mensilmente una specie di radar delle tecnologie, in cui descrive quali sono le tecnologie da tenre sott'occhio e quali sono le tecnologie che stanno diventando ormai obsolete.
Nel technology radar di Gennaio 2014, Thoughtworks scrive:
We continue to see teams run into trouble using JSF-- JavaServer Faces -- and are recommending you avoid this technology.
Teams seem to choose JSF because it is a J2EE standard without really evaluating whether the programming model suits them.
We think JSF is flawed because it tries to abstract away HTML, CSS and HTTP, exactly the reverse of what modern web frameworks do.
JSF , like ASP.NET webforms, attempts to create statefulness on top of the stateless protocol HTTP and ends up causing a whole host of problems involving shared server-side state.
We are aware of the improvements in JSF 2.0, but think the model is fundamentally broken.
We recommend teams use simple frameworks and embrace andunderstand web technologies including HTTP, HTML and CSS.
A questa critica, è arrivata una risposta dal blog ufficiale di PrimeFaces. PrimeFaces è una delle più recenti implementazioni dello standard Java Server Pages. La risposta si concentra sul fatto che Java Server Faces ha avuto diversi miglioramenti che ne hanno aumentato le prestazioni:
Regarding state, JSF is a stateful framework by nature and state makes web applications easy to develop with. With improved state management techniques introduced in JSF 2.0+ (e.g. stateless mode, partial state saving), JSF can scale as well.
E' nata una diatriba interna al JUG ed il commento di Fabio Mitrano è stato:
la diatriba è sul modo in cui JSF memorizza lo stato dei componenti. Lo stato di essi come di qualsiasi sessione web generica puo' essere mantenuta interamente lato client (quindi stateless lato server), lato server (stateful) o in modo misto.

Voi criticate JSF per una sua gestione della sessione e dello stato dei componenti prettamente lato server che incide sulle prestazioni e sulla scalabilità di esso.
Fatto sta non vedo ancora perchè certi framework MVC a componenti che permettano di astrarre dalle tecnologie  client e server specifiche siano del tutto da buttare. E' sufficiente che specifiche e implementazioni MVC future tengano conto di tale necessità sullo stateless delle applicazioni web. Il livello di astrazione superiore rimane sempre un vantaggio.
Il commento di Ugo Landini è stato:
Quello che può sulla carta fare JSF ora, in risposta alle critiche del passato, è irrilevante. Le comunità fanno altro, è una tecnologia che è stata selezionata darwinianamente per l'estinzione (in buona compagnia con molte altre, per carità: Portlet, JavaFX, ecc)
Come spesso succede in informatica, si è arrivati ad essere tutti d'accordo sul fatto che "dipende". L'intervento di Francesco Ioli che ha trovato consenso è stato:
Per cosa tifo allora? Per il concetto: the right tool for the right job!
Dove il "tool" è quello "right" non solo in relazione al  particolare "job" in questione, ma anche per le situazioni al contorno in cui ci si trova...
Ossia: in teoria magari sarebbe piu' adatta ed e' migliore una data tecnolgia, ma in pratica invece mi conviene usarne un altra..
E JSF potrebbe in alcuni casi essere "the right tool".
Per chi è giàregistrato alla mailing list, ecco i link alla discussione:
https://groups.yahoo.com/neo/groups/jug-roma/conversations/topics/13396
https://groups.yahoo.com/neo/groups/jug-roma/conversations/topics/13598

sabato 30 novembre 2013

Il Futuro di Java: OpenJDK

Qualche anno fa quando Java era Sun Microsystems  e non ancora Oracle, fu avviato lo sviluppo di OpenJDK una nuova JDK basata gran parte sul codice della JDK proprietaria di Sun Microsystems, ma rilasciata con licenza GPL!

Nel corso degli anni lentamente questa versione e` cresciuta, abbiamo visto uscire OpenJDK 6 (non troppo stabile), e poi OpenJDK 7 che attualmente e` la 'reference implementation' di Java!

Fino ad ora lo sviluppo e` stato guidato (e materialmente fatto) da alcune grandi aziende interessate all'evoluzione di java, con non molte contribuzioni esterne e un processo complicato di tracciatura di bug e submit di patch, ma siamo arrivati ad un punto di svolta, alcuni sviluppatori OpenJDK connessi con alcune grandi community java, hanno avviato una iniziativa per facilitare chiunque fosse interessato a contribuire ad un pezzetto della OpenJDK!

I riferimenti a questa iniziativa li potete trovare (in inglese) qui: Adopt Open JDK

Lo scopo di questa iniziativa sono molteplici:
  • Introdurre nuove persone nel ciclo di sviluppo
  • Migliorare gli strumenti di bulding
  • Migliorare i processi di submit e tracking di bug e patch
  • Produrre piu` test case open source
Il lavoro da fare in molti casi non e` cosi complesso, e molto spesso non ha a che fare con C++, un esempio su tutti e` scrivere test case per le Collection Java, sono abbastanza sicuro che almeno il 99% dei membri del JUG Roma non ha nessun problema a scrivere un test case ed ad usere le Collection  Java!!

Diversi JUG sparsi nel mondo hanno gia` iniziato ad organizare "Hack Days"!!

Iniziamo anche noi a contribuire scrivendo nella mail list, iniziando a buildare la OpenJDK 8!

Il primo passo per contribuire e` avere un ambiente di sviluppo pronto! Ecco le Istruzioni (in inglese) per preparare il proprio anbiente di sviluppo (testate in un OpenJDK Hack Day )!


venerdì 22 novembre 2013

Linguaggi che compilano in JavaScript: Dart, Ceylon, Kotlin, TypeScript ed Haxe

Probabilmente ispirati dal successo di CoffeeScript, recentemente sono stati creati dei nuovi linguaggi che compilano verso JavaScript. Questi sono Dart, presentato da poco da Google, Ceylon sviluppato da Red Hat, Kotlin di JetBrains (la società che creato IntelliJ IDEA), TypeScript di Microsoft ed Haxe.

Dart

Le caratteristiche principali di Dart sono il fatto di poter fare programmazione ad oggetti, la tipizzazione dinamica, cioè non c'è bisogno di specificare il tipo di una variabile, ed il package manager denominato "pub" che permette di gestire le dipendenze di un progetto in modo molto comodo.

Un enorme difetto di Dart è che la quantità di JavaScript che viene prodotta è sproporzionata rispetto al codice di partenza. Una decina di righe di Dart si trasformano in 40 Kilobyte di codice JavaScript, che è un po' troppo.

Per una introduzione a Dart, guardare qui:
http://www.engeene.it/introduzione-a-dart-prima-parte/

C'è anche il video di presentazione alla Google Developers Conference di Milano:

Ceylon

Ceylon è un linguaggio sviluppato da Red Hat che è anch'esso ad oggetti e modulare. Da Ceylon è possibile utilizzare sia le librerie di Java che di JavaScript. Supporta gli import con i numeri di versione, il polimorfismo degli operatori e le funzioni di ordine superiore.
Il confronto tra Dart è Ceylon pè riassunto qui da Gavin King, colui che ha creato Ceylon:
«Hi, well, there's lots of differences, but I suppose the broad differences are:
- Ceylon compiles to the JVM and JS virtual machines, Dart has its own virtual machine, and also compiles to JS.
- Ceylon has a very powerful, very strict static type system, Dart is more of a halfway point between a dynamic language and a language like Java.
If Dart starts to take off, I think that we'll certainly build an additional compiler backend for the Dart VM, including interop with the Dart language. It was nice to see one of the developers of Dart already reach out to me on the reddit thread.»
http://ceylon-lang.org/blog/2013/11/12/ceylon-1/#comment-1124817759

Per una introduzione a Ceylon:


Kotlin

A differenza degli altri due linguaggi, Kotlin ha dei tipi statici, cioè il tipo di una variabile deve essere specificato dal programmatore e noto al tempo della compilazione.
Anche da Kotlin è possibile usare classi Java e ci sono funzioni di ordine superiore e funzioni anonime.
Per una introduzione a Kotlin:



TypeScript

Anche TypeScript è un linguaggio open source che compila in JavaScript. Ha il grande vantaggio di essere una estensione di JavaScript e quindi automaticamente qualsiasi codice JavaScript può essere aggiunto a sorgente TypeScript e possono essere utilizzati tutti i framework JavaScript già esistenti. Esiste anche un plugin per Eclipse.
Per una introduzione:

Haxe

Haxe è un linguaggio che può essere compilato in tantissimi linguaggi di programmazione, tra cui JavaScript, Java, C#, C++ e PHP.
Per una introduzione ad Haxe:


Altri linguaggi
Ai linguaggi citati sopra si aggiungono:

Per approfindire

L'elenco completo dei compilatori che producono codice sorgente in un altro linguaggio è qui: