Clicky

Systempuntoout: java
Showing posts with label java. Show all posts
Showing posts with label java. Show all posts

Tuesday, November 08, 2005

Bitter Java ,Beyond Java!

Bruce Tate accompagna il suo recente libro Beyond Java con un interessante articolo su OnJava .
L'argomento e' il seguente:
un sempre piu' largo numero di sviluppatori crede che java non sia più sufficientemente produttivo a confronto di altri linguaggi e tecnologie oggi disponibili.
Il dominio Java , in determinati domini applicativi, potrebbe essere minacciato da quattro differenti "insidie":

1. Dynamic language
Ruby , con l'hype del framework Rail , e' diventato molto popolare per la semplicità e l'eleganza del suo codice.
Attraverso il typing dinamico e' possibile convertire il verboso java:

for (Iterator i = aList.iterator(); i.hasNext(); ) {
Item each = (Item) i.next();
if (each.getPrice>1000) {
anotherList.add(each);
}
}


in una perla come questa:

anotherList = aList.collect({|item| item.getPrice>1000)})


Oppure, senza ricamare troppo, basta pensare come un semplice snippet Python:

mioFile=open('c:\\test.txt','r').read()

possa trasformarsi in un incubo Java fatto di FileInputStream, InputStreamReader,BufferedInputStream.
E' sintomatico trovare su comp.lang.java.programmer, un thread di 50 messaggi dove ci si lancia alla ricerca del miglior codice per una semplice lettura di un file!

2. Continuation Server
I Continuation based framework ,sfruttando i costrutti continuation forniti dal linguaggio a cui si appoggiano, sono in grado di simulare una applicazione stateful; in questo modo e' possibile facilitare la programmazione di applicazioni web evitando l'ingrato compito di dover buttare tutto sulla sessione per legare la navigazione su pagine distinte.
I continuation server cercano di sollevare il programmatore web gestendo in maniera trasparente il salvataggio degli stati dell'applicazione risolvendo problemi comuni come la gestione del dannato tasto back sul browser.
Da segnalare seaside in smalltalk ed il gruppo Borges, Iowa e Wee basati su Ruby.

3. Convention over Configuration
Chi utilizza web framework java come Struts o Spring Mvc sa che esistono dei file di configurazione dove , specificato un controller , vengono dichiarate le viste da chiamare in base all'esito dell'operazione eseguita.
L'approccio di Ruby on Rails sfrutta una convenzione per gestire la stessa cosa.
Per esempio, un controller BlogController, con un metodo show, terminata la propria esecuzione , chiamerà la vista rshow.html all'interno della cartella blog_controller

La tendenza dei nuovi framework punteranno più sulla convention che sulla configuration svincolando il programmatore da parecchio lavoro.

4. Metaprogramming
Stanchi di mappare le tabelle del vostro Db in oggetti di dominio ?
Ruby , ed il particolare il framework ActiveRecord,permette di lavorare ad un livello di astrazione molto alto consentendo di
dichiarare una classe senza specificarne gli attributi.
class Person <>
Sarà Ruby ad andare su db , fare lo scan della tabella relativa a Person (people!) ed aggiungere attributi e behaviour alla classe.(tutto a runtime!)


E' la prima volta ,dopo dieci anni di strapotere, che Java ha degli avversari aggressivi che possono dare fastidio nell'immediato futuro.
Bruce Tate seppe pronosticare il successo di Spring e la caduta degli EJB2.0;vedremo se avrà ragione anche questa volta.



Friday, December 10, 2004

Pant pant pant

Sto tarellando come un disperato; consegna a fine gennaio del prototipo di un progetto tosto.. prevedo zero ferie nel periodo natalizio e mal di stomaco per la befana.
Ce la farà il nostro eroe? Nelle attività di WSAD c'e' una lista di ToDO che e' più lunga dei componenti che ho sviluppato fino ad ora.La evito switchando velocemente da una vista all'altra.
Ho comunque la coscienza a posto , sicuramente ci sarà qualche filosofia agile che prevede lo sviluppo in tempi brevi di software che sta in piedi con lo scotch.. o almeno spero :-).
intanto per il 2 gennaio ho acquistato 2 biglietti per la mostra di Dalì a Palazzo Grassi.

Wednesday, December 01, 2004

belle soddisfazioni

oggi e' partito dopo una lunga gestazione l'applicativo con firma digitale sviluppato da me e il renni...questo pomeriggio le comiche :-)
Io alle prese con kit di firma, java plug-in non funzionante, ente certificatore con path sbagliato,cartella produzione non allineata,flusso non abilitato..il tutto sotto gli occhi del cliente e gli users impazienti.
Pant pant..e' stata dura ma l'ho sfangata...alla fine tutti contenti e soddisfatti.
si parte lalalalala

Monday, November 29, 2004

Web services e https

Ho cristonato tutta la mattina per un problema che mi assilla ormai da un annetto.
Utilizzare un webservices in https con client authentication da Websphere Site Developer 5.1.
Morale della favola dopo pranzo ho risolto il tutto rimuovendo la jsse di sun e provando ad importare direttamente il keystore da System Properties.
//Aggiungo il provider SSL
Security.addProvider(new com.ibm.jsse.IBMJSSEProvider());
System.setProperty("java.protocol.handler.pkgs", "com.ibm.net.ssl.internal.www.protocol");
System.setProperty("javax.net.ssl.trustStore", StaticParameter.fileNameKeystore);
System.setProperty("javax.net.ssl.trustStorePassword",StaticParameter.passwordKeystore);
System.setProperty("javax.net.ssl.keyStore", StaticParameter.fileNameKeystore);
System.setProperty("javax.net.ssl.keyStorePassword", StaticParameter.passwordKeystore);
System.setProperty("javax.net.ssl.keyStoreType", "jks");

Purtroppo in questo modo non e' possibile utilizzare keystore distinti ma e' anche vero che nell'ambiente di sviluppo un keystore basta e avanza.

Thursday, November 25, 2004

Achtung! IDE per Laszlo.

E' appena uscito il plugin eclipse che permette di sviluppare applicazioni web utilizzando Laszlo come vista.
Laszlo permette di sviluppare interfacce rich per applicazioni internet utilizzando LZX,un linguaggio descrittivo che combina XML e Javascript.
Le demo meritano davvero piu' di una semplice occhiata.