|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2004
Messaggi: 2992
|
Applets vs Web 2.0
Ho trovato questa riflessione IMHO molto interessante, benchè abbia presente i problemi delle Applets (JRE da scaricare, policy, etc) mi pongo lo stesso la seguente riflessione.
Cosa ha determinato il disuso delle Applet Java? Se ciò che si pone il modello attuale Web 2.0 non è che quello di rendere la navigazione web sempre più simile ad un normale programma residente su un pc, allora perchè le applet sono cos' poco usate?Vediamo un confronto Applicazione RIA Web 2.0 (Ajax etc...) Pro: -Interfaccia ormai molto ricca -Se ben studiate minimizzano la mole di dati trasferita -Funzionano senza nessun tipo di installazione aggiuntiva sui browser recenti Contro: -C'è da scriveere molto Javascript, e può risulatare poco manutenibile. -Per quanto esistano librerie quali JQuery che promettono una astrazione dal tipo di browser, i problemi di compatibilità si incontrano comunque. -Il codice Javascript assieme al contorno html possono diventare incredibilemente difficili da mantenere soprattutto su browser differenti Applet Java: Pro: -Custom data streaming -Elaborazione grafica (2D/3D) -Threading -Una GUI molto avanzata -Funzionano indipendentemente dal tipo di browser Contro: -E' necessario scaricare la Sun JRE (come per visualizzare i filmati Flash avete bisogno di scaricare il Flash player) Sostanzialemente le mie considerazioni sono queste: se avete bisogno di un interfaccia utente particolarmente complessa usate le Applet Java, altrimenti se i requisiti in termini di interfaccia non sono così spinti usate Ajax. Solo la pratica vi farà discernere tra le due tecnologie e quando sia meglio l'una o l'altra...Tenete presente che voler realizzare in Ajax un'interfaccia estremamente complessa potrebbe portarvi a perdere la ragione Dite la vostra. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Ci mettono secoli a scaricare, non permettono un buon livello di pulizia perchè la grafica rimane pixellosa, scattosa e quant'altro...
In più devi metterci che mentre Flash e Silverlight e quant'altro sono parte integrante del resto del sito, una applet o è la pagina intera o è un quadrato all'interno della stessa. Il che unito alla gestione quantomeno triste della grafica lo rende perfettamente inutile per fare un sito moderno... |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Mar 2004
Messaggi: 2992
|
Quote:
Inoltre siti web, tendono sempre più a diventare delle vere e proprie applicazioni distribuite sul web e per tanto una volta realizzata l'applicazione, con cosa più devi integrarti all'interno del tuo sito? Per le capacità di animazione concordo, AWT/Swing non sono mai stati dei granchè, già per quanto riguardo i controlli GUI più comuni e credo che questo alla fine abbia decretato la "morte" delle Applets oltre al fatto che sono uscite in un periodo in cui si viaggiava a 56K e non c'era la necessità delle RIA. Ad ogni modo SUN ci riprova ogni tanto rilanciando l'idea "cambiando" un pò la confezione (una volta con Web Start e infine con JavaFx) senza mai cambiare troppo il contenuto (cercano sempre rifilare Awt/Swing) |
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Jul 2008
Città: Nel mio studio
Messaggi: 168
|
Totalmente contrario agli applet di terze parti (flash, java, silverlight e compagnia bella).
Se si vuole la massima compatibilità è meglio usare gli standard che sono stati pensati per il web (html, css e javascript)
__________________
Since Rocco Siffredi, the saying "pain in the ass" got a total new meaning |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
|
|
#6 | |||
|
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
dipende dall'applet.
Quote:
![]() volendo ormai puoi farci anche HDR e light blooming dentro un'applet Java, e tutto cross-platform, cross-browser e con delle performances che si avvicinano molto a quelle di un'applicazione nativa. Quote:
Quote:
|
|||
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Credo che le Applet Java non abbiano mai preso piede per via delle dimensioni del dowload.
8 megabyte per un orologio nell'era dei modem a 56k non era un gran bel modo di presentarsi. Sono salite sul treno troppo presto e quando è arrivato il loro momento erano già al capolinea. Ha avuto maggior fortuna il secondo passeggero, Flash. La grafica pixellosa dipende dalla qualità del grafico che l'ha fatta. Quanto alla scattosità è un problema di documentazione. Esistono caratteristiche della pipeline di rendering Java2D la cui documentazione non è esattamente chiarissima e questo può portare a commettere errori di programmazione.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Le argomentazioni sono le più semplice: quando si può meglio evitare di aumentare le dipendenze
Silverlight attualmente è quello meno compatibile, quindi da escludere a priori. Le applet Java sono veramente pesanti (anche quelle più semplici), perché il SO deve, non solo scaricare l'applet, ma soprattutto caricare la JVM, che in confronto alle altre due tecnologie è pachidermica. Flash è sicuramente la soluzione migliore, ma risente comunque di problemi di portabilità (vedi Flash su Linux o l'assenza su cellulari) e di scarsa interattività con il resto del sito. |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Con questo non nego che ci possano essere casi in cui siano indispensabili o altamente consigliate queste tecnologie...vedi applicazioni multimediali.
|
|
|
|
|
|
#10 | ||
|
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
Quote:
Quote:
|
||
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
E' stato il mercato a stabilirlo.
Possiamo provare a fare la comparazione con Flash se troviamo qualcuno che lo sa usare (perchè io di Flash non so una mazza). Questo: Codice:
package it.tukano.bubbleapplet;
import it.tukano.fx.*;
import it.tukano.fx.sound.*;
import java.awt.*;
import java.awt.geom.*;
import java.awt.image.BufferedImage;
import java.util.*;
public class BubbleApplet extends FXApplet {
protected Collection<? extends FXStack.Node> createFX() {
System.out.println("creating fx...");
return Arrays.asList(
new Background(),
new Logo(),
new Fader(),
new Dot()
);
}
public void init() {
super.init();
SoundSystem.getInstance().cache("/audio/tribal.ogg");
}
public void destroy() {
SoundSystem.getInstance().destroy();
}
}
class Background extends PaintedFX {
private boolean soundOn;
protected void paint(Graphics2D g, int width, int height) {
if(!soundOn) {
System.out.println("play...");
soundOn = SoundSystem.getInstance().play("/audio/tribal.ogg", true);
}
g.setPaint(Color.WHITE);
g.fillRect(0, 0, width, height);
}
}
class Logo extends PaintedFX implements Procedure<BufferedImage> {
private boolean requestImage = true;
private BufferedImage logo;
protected void paint(Graphics2D g, int width, int height) {
if(logo == null) {
createLogo();
} else {
int x = width / 2 - logo.getWidth() / 2;
int y = height / 2 - logo.getHeight() / 2;
g.drawImage(logo, x, y, null);
}
}
private void createLogo() {
getNode(FXCanvas.FXBuffer.class).getCompatibleImage("/res/text.png", this);
requestImage = false;
}
public void execute(BufferedImage image) {
logo = image;
requestImage = logo == null;
}
}
class Dot extends AnimatedFX implements Procedure<BufferedImage> {
private boolean requestImage = true;
private BufferedImage dot;
private final TUnit TUNIT = new TUnit(0.0005);
private final Point2D LOCATION = new Point2D.Double();
private ParametricPath path;
private int screenWidth, screenHeight;
protected void update(long now, long dTime) {
if(path != null) {
TUNIT.update(dTime);
double t = TUNIT.getValue();
path.compute(t, LOCATION);
}
}
protected void paint(Graphics2D g, int width, int height) {
if(path == null || sizeChanged(width, height)) {
recomputePath(width, height);
}
if(dot == null) {
getNode(FXCanvas.FXBuffer.class).getCompatibleImage("/res/dot.png", this);
} else {
int x = (int)Math.round(LOCATION.getX()) - dot.getWidth() / 2;
int y = (int)Math.round(LOCATION.getY()) - dot.getHeight() / 2;
g.drawImage(dot, x, y, null);
}
}
private boolean sizeChanged(int width, int height) {
return width != screenWidth || height != screenHeight;
}
private void recomputePath(int width, int height) {
path = new Circle(new Point(width / 2, height / 2), 100);
}
public void execute(BufferedImage image) {
dot = image;
requestImage = dot == null;
}
}
class Fader extends AnimatedFX {
private final Alpha ALPHA = new Alpha(0.0002);
protected void update(long now, long dTime) {
ALPHA.update(dTime);
}
protected void paint(Graphics2D g, int width, int height) {
Composite composite = g.getComposite();
g.setPaint(Color.WHITE);
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, (float)ALPHA.getValue()));
g.fillRect(0, 0, width, height);
g.setComposite(composite);
}
}
http://www.tukano.it/test/bubbleapplet.html Be', spero che lo faccia, perchè l'ora è tarda e non vorrei aver fatto zic anzichè zac Ometto il framework per carità di patria (sono 24 classi, diciamo un 1200-1500 linee, nulla di che).
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Mar 2004
Messaggi: 2992
|
Il tempo di caricamento non è stato eccessivo, nell'ordine dei 10 sec, il tutto con una comune connessione ADSL da 7Mb, forse la cosa che potrebbe dar fastidio è vedere quel logo di Java che carica, che potrebbe far pensare all'utonto che il sito stà procedendo al dowload e all'installazione della JRE.
IMHO con librerie grafiche più reattive e leggere oltre che più curate esteticamente, le applets potrebbero dire ancora la loro almeno nelle RIA più complesse (gestionali, o quanto meno laddove si ci sono molti input/output da gestire con componenti GUI tradizionali) In teoria sarei anche io favorevole allo sviluppo di RIA con strumento per il web, peccato che le varie implementazioni di javascript e css, differiscono da browser a browser e richiede uno sforzo in più per armonizzare il tutto (anche se in ciò framework come GWT aiutano un pò), per cui per evitare ciò, forse è preferibile appoggiarsi ad uno strato software ben consolidato come Flash/Flex o Applets programmate con cervello. |
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
PGI: a me quella applet non si vede...firefox mi dice che manca un plugin, ma il plugin Java ce l'ho installato (è la prima versione ufficiale per Linux a 64 bit).
Questa applet mi funziona ad esempio: http://www.v-workshops.com/java/ Ultima modifica di cionci : 28-03-2009 alle 10:20. |
|
|
|
|
|
#14 | |
|
Senior Member
Iscritto dal: Nov 2008
Messaggi: 411
|
Quote:
In realtà c'è poco di vero in quanto scritto sopra. Di sicuro tutto dipende dalla mole dell'applicazione e dalla complessità di funzionalità che si vogliono ottenere ma, proprio con Framework stile JQuery si può: - Scrivere pochissimo codice ed ottenere molto in funzionalità - La compatibilità coi browser è quasi totale per i client più recenti, anzi permette spesso di utilizzare via JS regole CSS altrimenti non supportate ad esempio su IE. - La manutenibilità è estremamente semplificata proprio grazie al Framework che semplifica e riduce il codice, oltre a renderlo sintatticamente pulito e coerente
__________________
|
|
|
|
|
|
|
#15 | ||
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Quote:
Da quello che ho visto, fare un sito moderno stile Facebook con un'applet Java è semplicemente impossibile. E quello è il motivo per cui sarà sempre meno usato... Quote:
Ultima modifica di Tommo : 28-03-2009 alle 10:36. |
||
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Imho il motivo per cui è stato preferito Flash è semplice: Flash è più indirizzato al multimedia, alla grafica e alle animazioni. Ed è quello che era necessario agli utenti avere all'interno delle pagine web.
Per una applicazione classica all'interno di una pagina web è chiaro che è migliore una applet Java. Ora con AJAX addirittura si passa a scrivere intere applicazioni con Javascript + DOM...quindi anche questo campo di applicazione delle applet Java sta andando a morire. |
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Napoli
Messaggi: 1727
|
con javascript si fa il 90% di quello che serve.
con GWT puoi scrivere comodamente del java e lui ti genera il relativo javascript
__________________
Se buttassimo in un cestino tutto ciò che in Italia non funziona cosa rimarrebbe? Il cestino. |
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Nov 2008
Messaggi: 411
|
Assolutamente no, io mi riferivo ai CONTRO elencati da nucaronte relativamente a: Applicazione RIA Web 2.0 (Ajax etc...)
__________________
|
|
|
|
|
|
#19 | |
|
Senior Member
Iscritto dal: Mar 2004
Messaggi: 2992
|
Quote:
Comunque si è vero con un JQuery e GWT si semplifica molto la gestione e la manutenzione del codice AJAX oltre che le varie discrepanze di visualizzazione, anche se rimane il fatto che importare altri componenti (es GWT-EXT) è un pò più complicato rispetto ad importare dei file jar nel progetto, senza contare che alcune cose (parlo sempre di GWT con cui mi è capitato di giocarci un pò) come leggere dei file in locale (d'accordo è un'esempio un pò estremo, ma a volte può essere utile) o utilizzare alcune strutture dati presenti in java.utils non è possibile. Come pure tutto il procedimento della chiamata asincrona che è un pochino farraginosa, almeno IMHO. PS. Qualcuno che ha un pelo di esperienza con OpenJDK, sa se l'implementazione di AWT/Swing è stato migliorata rispetto al JDK di Sun? Ultima modifica di nucarote : 28-03-2009 alle 12:09. |
|
|
|
|
|
|
#20 |
|
Registered User
Iscritto dal: May 2005
Città: far away from home
Messaggi: 1038
|
Il 90% delle applet che ho visto sono lente, farraginose, mal integrate col resto della pagina ed hanno una grafica orribile.
Flash è una tecnologia molto criticata ma estremamente valida. I contenuti flash sono in genere ben integrati col resto della pagina ed estremamente veloci nel caricamento. Se a questo aggiungiamo la qualità e la quantità dei framework javascript disponibili e gli investimenti che sono stati fatti da google, mozilla e opera per migliorare la velocità di esecuzione di javascript non vedo proprio come le applet possano ritagliarsi uno spazio nel web. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:31.





















