[Linux-Biella] Java e flame

Emanuele Aina em a nerd.ocracy.org
Mar 2 Ott 2007 18:35:45 CEST


Paul TT argomentò:

>> Continuo a non capire perché Java sia multipiattaforma e C# no.
>
> come ho gia' fatto intendere sotto, io ti do un programma in java, vai 
> su java.sun.com, ti scarichi il runtime e funziona. :)

Fatta eccezione per mal di pancia di PATH e cose simili. :P

Non so, io ho visto piangere tanta gente che provava a far girare Tomcat 
sotto Windows...

> in piu', sotto osx e' gia installato, e m$ ha la sua (seppur merdosa) vm 
> integrata, per cui se l'applicazione non e' complessa devi fare davvero 
> poco.

Direi che sotto Windows .NET è decisamente avvantaggiato. :)

Penso che prima o poi anche MacOSX includerà un CLR (Common Language 
Runtime): Java è più vecchio, è solo una questione di tempo.

> come ho gia' chiesto, se faccio un programma in do diesis, poi cosa devo 
> installare per farlo andare? o meglio, sotto M$ (spero che) funzioni, 
> senza fare alcunche', ma sotto i sistemi operativi veri?

Sotto Windows Vista il CLR dovrebbe essere già installato. Sotto XP 
forse nel SP2.

Sotto MacOSX non so, dovrebbe esserci comunque il runtime di Microsoft.

Sotto Linux/*BSD/ecc. c'è Mono. Io l'ho installato per Tomboy e Banshee. 
Non uso F-spot, ma anche quello usa GTK#. Quindi ce l'ho già.

Oddio, Mono c'è anche per MacOSX e Windows, quindi a te la scelta. :)

Io uso Debian e incredibilmente .NET (Mono) ha un indubbio vantaggio: è 
opensource (DFSG-compliant).

Java ancora non è totalmente aperto (vedi progetto IcedTea) e ci vorrà 
ancora un po' di tempo prima che IcedTea sia usabile ed entri in main.

>> Poi scarichi Paint.NET e dovrebbe funzionare (non provato).
>>
>> Oppure:
>>
>> apt-get install banshee
>>
>> Se preferisci vedere una applicazione GTK# funzionante.
>
> mh, ed e' uguale a come gira in winzoz o osx? e li' cosa devo installare?
> come si adatta il llok and feel al sistema?

Banshee usa le GTK#, i binding .NET di GTK+. Non so come siano sotto 
Windows.

Paint.NET dovrebbe usare WinForms, quindi gira ugualmente sia sotto 
Linux che Windows.

L'idea comune è che non esistano UI portabili che si adattino al L&F di 
piattaforme diverse.

Da SWT a wxWidgets, da WinForms sotto Linux a GTK in Windows, per non 
parlare di Swing e AWT, tutte risultano avere imperfezioni più o meno 
fastidiose lontano dalla piattaforma nativa.

È quindi sempre consigliabile scrivere una UI diversa per ogni 
piattaforma. Per questo è importante separare la UI dalla logica.

>> Aspetto estetico, comportamento del focus, combinazioni di tasti, eccetera.
>>
>> Quando usi una applicazione QT ti accorgi facilmente di non avere 
>> davanti una applicazione GTK. Con Swing è anche peggio.
>>   
> ...
> io non trovo, ad essere sincero. dipende molto da come scrivi il codice. 
> e anche da come implementa la vm, e se gestisci il laf correttamente.
> sotto osx e' decisamente ben integrato, e sotto linux, integra parte 
> delle gtk, per cui non trovo tutto sto problema che dici tu.

Un esempio: Swing usa modelli di layout diversi da quelli delle GTK+ 
(vbox, hbox, quelle cose lì).

Questi determinano anche l'ordine del focus.

Quindi talvolta una applicazione Swing può avere un ordine che stupisce 
l'utente GTK+.

Per lo stesso motivo anche il ridimensionamento delle finestre può 
comportarsi in modo molto differente.

-- 
Buongiorno.
Complimenti per l'ottima scelta.



Maggiori informazioni sulla lista Linux