ruby, java, fun June 22, 2007 4:56 pm (Save post)
Si, siamo una comunità di disturbati, e ne siamo fieri.
ruby, java, fun June 22, 2007 4:56 pm (Save post)
Si, siamo una comunità di disturbati, e ne siamo fieri.
ruby, java, blogosfera June 13, 2007 2:44 pm (Save post)
Su TRM c’è un articoletto che ha l’intento di spiegare rails al programmatore J2EE, e da lì c’è un articoletto di risposta di uno sviluppatore J2EE, appunto.
Le mie dure lire: usate quello che è più adatto al progetto corrente, che conoscete meglio e che preferite. È il modo giusto per vivere felici
Ad ogni modo, nel post e nei commenti ci sono dei punti validi: la m17n in ruby è ancora debole (ma per il web cambia poco, visto che utf8 è gestito), il deploy non è ancora un’operazione banale, ruby non ha i thread nativi ed è un interprete lento, non esiste accesso a tutta la pletora di MOM che c’è in java e altro. Ricordo che io, fondamentalmente odio rails
Però, siccome l’autore dice di cercare l’oggettività, per quanto ovviamente possibile, mi permetto di rettificare alcune cose sbagliate ( credo siano dovute alla mancanza di conoscenza dell’ambiente, non a un FUD intenzionale
Su ruby:
Su Rails:
Sui punti generali non posso commentare.. non uso capistrano, ViM è il mio IDE e Rails forse non scala ma non per colpa di FastCGI (che è concettualmente molto diverso da CGI). Yahoo, Google, Digg, reddit, Flickr, livejournal etc scalano infinitamente senza servlet. <flamebait>e poi vorrei vederla questa mega applicazione in java che scala come slashdot, che è fatto con mod_perl </flamebait>
Ancora, right tool for the job, KISS, long life & prosperity, io domani parto per l’heineken jammin festival dove non mi preoccuperò di queste cose
java May 9, 2007 6:07 pm (Save post)
e con questa, abbiamo finito la roba proprietaria di Sun, credo
java April 11, 2007 7:50 am (Save post)
Qualcuno se lo ricorda il progetto Harmony? Si trattava di quell’idea fantastica di implementare una versione open source della JVM (oooh), ma diversa dalle altre ottomila esistenti (oooh) e con una libreria diversa dal supportatissimo GNU Classpath (oooh).
Voglio dire, GNU Classpath ha più sviluppatori, più test, più codice già scritto, è condiviso da una mezza dozzina di implementazioni diverse.
Ma ehy, non è stato inventato sotto l’ombrello di Apache/Jakarta!
Insomma, io ho sempre ritenuto che harmony non servisse a una mazza, ma che potesse essere un buon ponte nel momento in cui a Sun venisse in mente di rendere java open source. Ma aspettate un momento: Java è già open source!
Mh.. vabè.. come dire, meglio avere alternative. sempre.
Nel frattempo, harmony è vecchio di due anni, e ha ricevuto donazioni di codice da Intel, IBM e altri. Nonostante ciò, e nonostante il fatto che effettivamente gli manchino ancora cose come un gestore di JAR,
il debugger, rmi* etc qualcosa funziona.
Ci funziona Eclipse! Voglio dire, non ci funziona Geronimo, ne’ Azureus, ne’ le applet, ma potete usare Eclipse per sviluppare con Tomcat direttamente, facendo un balzo nel futuro di meno 5 anni.
Giustamente, quantomeno il progetto ha guardato alla portabilità, e quindi supporta una sfilza di sistemi operativi e architetture, ovvero: linux su intel e amd.
Ma continuiamo a sperare, e facciamo notare che hanno richiesto a Sun un JCK, ovvero il pacco di test che se passa dimostra che la vostra è un’implementazione di Java e non un linguaggio quasi-javesco.
E hanno scritto una lettera aperta a Sun per chiedere che il JCK sia rilasciato senza balzelli nella licenza, e questa è una buona cosa che potrebbe far bene a tutti.
Chissà che Harmony non serva a qualcosa.
ruby, java, personale, blogosfera, italia, lettura February 24, 2007 10:50 am (Save post)
Ricomincio ad avere troppe cose da fare e dire, e troppo poco tempo per farlo. Ma cerco di tornare fedele alla mia regola di rispetto per il lettore: meglio pochi post densi che molti leggeri, quantomeno non vi intaso l’aggregatore.
Per cui, le cose su cui riflettere oggi:
java, perl6, pugs January 4, 2007 8:56 am (Save post)
Pare che questa sia stata una settimana intensa sul fronte dei linguaggi di programmazione, ed è una cosa buona.
In particolare è una cosa buona per me, visto che oggi ho tempo di scrivere questo post mentre domani me ne torno nella terra degli unni, il che significherà un probabile /away di un mese dal mondo tecnologico. Siccome voglio chiudere in bellezza vi lascio qualcosa di corposo da leggere.
Pugs & teoria dei numeri
Ma dicevo, settimana intensa sul fronte programmatorio. Anzitutto l’Autore è diventato committer di pugs, dimostrando che effettivamente il commit bit viene dato via con estrema facilità.
In particolare il suo ultimo contributo è stato il problema numero 32, implementare l’algoritmo di euclide per il minimo comune multiplo:
# Perl6 impone l'ottimizzazione delle tail call, per cui
# non abbiamo bisogno di scrivere la routine in forma iterativa.
# Ale' !
multi sub gcd(Int $a, Int $b){
return $a if $b == 0;
return gcd($b,$a % $b);
}
is gcd(36,63), 9, \"We should be able to find the gcd of 36 and 63\";
is gcd(63,36), 9, \".. and viceversa\";
is gcd(0,5) , 5, '.. and that gcd(0,$x) is $x';
is gcd(0,0) , 0, '.. even when $x is 0';
Notate la finezza per cui gcd è definito come un multimetodo, perché in teoria è possibile definire la funzione in qualsiasi anello commutativo, non solo per gli interi.
Ovviamente io so che esiste una cosa chiamata anello commutativo, ma non mi ricordo cosa sia veramente e questa nota è un semplice plagio da wikipedia.
Il che tra l’altro mi da l’occasione di far notare che la definizione di numero primo su en.wikipedia è sbagliata.
Uno (1) non è un numero primo, per definizione un numero primo è un numero positivo divisibile solo per se stesso e per 1 ma diverso da uno (o -1).
Questo perché, se usiamo questa definizione poi ci viene fuori il fantastico teorema fondamentale dell’aritmetica che è:
Ogni numero naturale diverso da 1 o è un numero primo o si può esprimere come prodotto di numeri primi. Tale rappresentazione è unica a meno dell’ordine in cui compaiono i fattori.
Il motivo di questo delirio era ovviamente la soluzione del problema 31.
Tornando a Perl6, forse l’Autore potrà raccontare ai suoi nipotini che se una subroutine dichiarata come Bool converte automaticamente un valore di ritorno undef in False è merito suo. Larry sembrava ponderoso sull’argomento, ma ci sono speranze.
Groovy 1.0
E a proposito di linguaggi con dichiarazioni di tipo opzionali, Groovy ha finalmente raggiunto la versione 1.0.
Per parte mia, ritengo che Groovy sia un linguaggino carino, mi piace un sacco che abbiano la variabile implicita “it” nei blocchi, ad esempio, che permette di scrivere
[1,2,3].each { print it}
Ma in fondo è solo un poco interessante dialetto di ruby per la JVM.
Il Lettore arguto potrebbe obiettare che ruby è solo un poco interessante dialetto del lisp o di smalltalk per unix, ma ho fiducia che i Lettori arguti non siano dei rompipalle.
D 1.0
Più interessante è invece il linguaggio D, che raggiunge la 1.0 , e mi han fatto notare che adesso c’è anche un pacchetto debian di gdc.
L’Autore invita a notare che gdc è un anagramma di gcd, e questo ovviamente non è un caso.
IMHO D è un’ottimo esempio di linguaggio di sistema moderno. Design By Contract, libreria ricca (regexp, socket, thread), strutture dati come array dinamici ed hash integrate, OOP fatta in modo sensato, supporto unicode etc..
Ma perché D prenda piede ha bisogno di un progettone open source che lo traini (server ftp/http/whatever, nuova implementazione di X11, linguaggio usato per nuke’em forever…) , e questo non verrà fuori a brevissimo tempo, temo.
Python e Ruby ci hanno messo una decina d’anni a sfondare.
E nel frattempo la concorrenza non se ne sta ferma, con il nuovo C++ in arrivo, il nuovo C# e i futuri Java, quindi imo il futuro di D non è particolarmente brillante.
Ma speriamo che mi sbagli.
Java 7
Guardiamoci in faccia, la comunità Java si è data una svegliata, hanno corretto, o provato a correggere, il linguaggio dove aveva delle falle troppo grosse (generic, autoboxing etc), hanno esteso la libreria dove ce n’era bisogno (java.util.concurrent etc), hanno cercato di abbracciare le richieste della comunità (JVM open source, invokedynamic).
E in java 7 ci saranno anche le closure, cosa che già sapeva , ma quello che non sapevo è il modo con cui esse si integreranno con le api precedenti.
In pratica, la closure viene utilizzata per costruire un’oggetto anonimo che viene poi infilato dentro l’interfaccia che già esisteva per i metodi. Ok, non si è capito, intendo dire che ad esempio una funzione startComputation(Runnable r) può essere richiamata con una closure come argomento, che verrà poi convertita automaticamente nel metodo run di un oggetto Runnable creato al volo.
Ovviamente, affinché il compilatore sia in grado di gestire correttamente la cosa è necessario che riesca a capire in che metodo mettere il blocco, quindi perché la cosa funzioni l’interfaccia deve fornire un solo metodo, come fa Runnable con run.
Per il resto è bello vedere come queste closure siano identiche ai blocchi in ruby, ad esempio non vengono segnalate nell’eccezioni come funzioni aggiuntive, il return da una closure esce dal blocco esterno ad essa invece che dalla closure, se si mettono come argomenti speciali si può usare una sintassi più carina etc..
Vabè, ma è inutile che ve ne parli io, andatevi a leggere l’intervista a neal gafter
Conclusione
Siamo al 4 gennaio, e già c’è un sacco di roba a cui pensare.
In più lawrence ha scelto erlang come LoTY, il che suggerisce che si potrebbe seguirlo.
E poi mi sono impegnato a rendermi utile con sette gruppi di persone differenti.
Ed avrei due o tre progettini da portare avanti.
E devo prendere una cavolo di laurea (”oh no, di nuovo!” [cit]) .
Ma se ne parla da febbraio, da febbraio.
java, personale August 19, 2006 7:26 am (Save post)
Ovvero Sun finalmente ha fatto una cosa sensata ![]()
Ci saranno funzioni anonime con scope lessicale in Java 7, e speriamo anche un bel po’ di posti nuovi dove poterle usare. Questa è un po’ di documentazione a riguardo e questo è l’annuncio di gilad bracha.
Il nuovo python con i blocchi, C#3 e Java7 con i blocchi, perl e ruby li avevano da una vita… misà che cominciano ad essere pochi i linguaggi rimasti senza. Come ha detto qulcuno, se il tuo linguaggio non ha i blocchi vedi se puoi farti ridare i soldi
java, personale, fun June 19, 2006 11:18 pm (Save post)
Ovvero, java.succ.
Link solo perché questo fa troppo ridere:
# Scripting
You can now mix in JavaScript technology with your Java technology source code, useful for prototyping. Also useful when you have teams with a variety of skill sets. More advanced developers can plug in their own scripting engines and mix their favorite scripting language in with Java code as they see fit.Perhaps You ThougHt yOu couldN’t program with a scripting language and Java togetheR. Which will yoU Be trYing ?
PS
non ho tempo di campare!
java, software June 4, 2006 7:43 pm (Save post)
Chissà che succede in questi giorni, pare che chiunque conosco stia rilasciando roba utile al mondo ![]()
In particolare congratulazioni a Luca e Federico, che hanno appena tirato fuori un’utile applicazione per consultare wikipedia via cellulare, con licenza GPL.
Io non ho la possibilità di provarla per colpa della mia inferiorità tecnologica, ma sembra carina
ruby, java, personale, blogosfera, fun, rubyonrails May 23, 2006 9:04 am (Save post)
Insomma l’hanno fatto. Il meting del java user group padovano su ruby & rails intendo.
E pare sia andato alla grande, viva l’ interimpollinazione informatica.
Il mio sogno di organizzare una conferenza a linguaggi unificati sembra ogni giorno meno assurdo, peccato che fino a dicembre/gennaio non se ne parla..
Ma quello che volevo dire in questo post è che seguo pensieri sparsi perché l’autrice usa scrive.it ed i suoi commenti sui film erano in linea con i miei e della mia dolce metà.
E poi è un blog simpatico
.
(Notiamo che scrive.it è fatto con rails. )
Poi oggi, guardando il suddetto blog ho trovato nel fotostream di monja le foto dell ruby@jugp.
Il mondo è decisamente troppo piccolo.
Che dite, è il caso di dire che è una figata ?
Get free blog up and running in minutes with Blogsome
Theme designed by Janis Joseph