[Linux-Biella] Java e flame

Emanuele Aina em a nerd.ocracy.org
Gio 11 Ott 2007 00:41:21 CEST


Paul TT proseguì:

>> Boh, se il problema è MacOS basta portarsi dietro i pezzi necessari di 
>> Mono, nello stesso modo in cui ci si porta dietro le librerie usate.
>>
>> Io non ho mai visto programmi Java che non si portino dietro packages di 
>> terze parti, quindi non vedo il problema.
>
> una cosa sono i package, un'altra e' il runtime predefinito.

L'interprete di Mono è alquanto piccino ed esistono strumenti per 
impacchettare solo i pezzi realmente usati dal programma.

>>> a quel punto, tanto vale programmare in c o python e ti togli altri 
>>> problemi ;P
>>>     
>> Beh, il C ne ha altri di problemi.
>
> non esiste un linguaggio 'definitivo'. se no nessuno perderebbe tempo a 
> crearne di nuovi. ;P

Assembly! ;P

>> Python è troppo diverso per un programmatore Java e la cosa più simile a 
>> una interfaccia grafica portabile è Tkinter.
>>   
> tkinter non e' per python, che c'entra con do diesis?

In che senso Tkinter non è per python?

Fa parte della libreria standard.

L'ho citata perché è l'unica interfaccia grafica portabile per Python e, 
secondo il tuo ragionamento, essendo questa veramente orribile non 
varrebbe la pena di programmare programmi portabili in Python.

>>>> Ripeto: WinForms è la soluzione portabile, analoga a Swing.
>>>>
>>>> Che poi abbia i suoi problemi è ovvio, per me rimane la soluzione al
>>>> problema sbagliato.
>>>>   
>>>>       
>>> ripeto: se usi un linguaggio multipiattaforma per non usarlo con un 
>>> interfaccia multipiattaforma, tanto vale non usare delle vm come kiava o 
>>> do diesis.net
>>>     
>> L'importante è avere la maggior parte del codice portabile, a me è 
>> sempre capitato di lavorare con programmi in cui l'interfaccia grafica 
>> era solo un piccola parte.
>>   
> bene.
> fammi girare un programma in do diesis sull'as400/iseries, e magari 
> inizio ad usarlo. ;P

Non li uso, quindi non posso esserti d'aiuto.

Visto che la discussione era partita parlando di software pensati per 
utenti casalinghi/professionisti una applicazione .NET/Mono è 
sufficientemente portabile per un target simile.

Oltretutto non sto assolutamente cercando di convincerti ad usare .NET, 
visto che se dovessi mai fare qualcosa di simile proporrei Python. :)

>> Poi, visto che insisti, usa pure WinForms.
>
> boh non insisto, ma se devo usare interfacce diverse, allora non scrivo 
> piu' una sola volta e uso ovunque, tutto qui.

Come in Java hai la scelta:

GUI write-once-run-anywhere: Swing(Java), WinForms(.NET)
GUI nativa: Java-GNOME(Java), GTK#(.NET)

La possibile decisione di non avere una GUI write-once-run-anywhere non 
è dovuta a Java o .NET ma esclusivamente a una questione di maggiore 
integrazione con l'ambiente (e quindi maggiore usabilità).

Per quanto mi concerne:
fare in fretta -> GUI write-once-run-anywhere
fare bene -> GUI native

Inoltre, se devo usare Java con una GUI write-once-run-anywhere 
preferisco usare SWT piuttosto che Swing.

>> Intendi una implementazione che giri ovunque?
>
> beh swing lo fa, per quanto /brutta/ -e condivido anche tale opinione- sia.
>
>> Non c'è e non credo ce ne sia il bisogno.
>
> perche' no?

Avere una sola implementazione solitamente non è un pregio, anzi.

Per dare un'idea del perché, in CPython sono stati trovati numerosi bug 
in seguito alla scrittura di Jython e IronPython.

>> La libreria standard è definita da ECMA e ognuno la implementa in modo 
>> compatibile.

Ribadisco che questo è il motivo per cui avere una sola implementazione 
è del tutto superfluo.

>>> che se uso winzoz, uso .net, se uso linux, devo usare mono, se uso osx, 
>>> c'e' mono anche li'. ma con mono ho anche la parte grafica?
>>
>> Sì.
>>   
> e se ho bisogno di fare la stessa roba su iseries o sun?

Ovviamente per Solaris c'è Mono. Per iSeries non so, ma si tratta di 
opensource quindi basterebbe farne il porting (cosa non vera per Java 
fino all'altroieri).

Capisco che il supporto iSeries sia un tuo requisito, quindi potresti 
non avere possibilità di scelta.

Semplicemente nei casi in cui sia possibile scegliere io preferisco 
usare .NET a Java. Python+C se posso scegliere liberamente.

Chiudo, perché la cosa sta diventando lunga.

Spero di aver chiarito eventuali dubbi sulla mia posizione, altrimenti 
chiedetemi in privato.

-- 
Buongiorno.
Complimenti per l'ottima scelta.



Maggiori informazioni sulla lista Linux