Newsgroup: it.comp.os.dibattiti
Titolo: Mono vs dotNET

Noto che sempre piu progetti mono vengono distribuiti nelle varie
distribuzioni linux.
La domandona e' : ci si puo fidare(investire) in un'ottica di
multipiattaforma oppure e' solo un cavallo di troia di microsoft ?

 multipiattaforma oppure e' solo un cavallo di troia di microsoft ?
No, in realtà è una tecnologia aliena. Attento: sono tra noi. ;)
p.bes

 multipiattaforma oppure e' solo un cavallo di troia di microsoft ?
Citando non ricordo più chi: "è la copia della copia di Java".


AFAIK nessun cavallo di troia. Conosco personalmente Miguel de Icaza e 
Massimiliano Mantione (è uno dei dev del CLR di Mono) ed ho più volte 
parlato con loro dell'argomento "compatibilità con .NET". Le loro 
affermazioni sono sempre state chiare: Mono è lo sforzo di Ximian/Novell 
teso ad offrire agli sviluppatori unix(ed affini) uno stack tecnologico 
omogeneo e basato su un runtime standard ISO, offrendo anche una versione 
per la piattaforma "mainstream" per eccellenza, ossia Windows. Nelle 
intenzioni di Miguel gli sviluppatori Mono dovrebbero, ad esempio, usare 
GTK# e non Windows Forms mentre la compatibilità (o presunta tale) con .NET 
è un "interessante effetto collaterale" (cit.) nonchè un potenziale 
facilitatore per l'adozione di Mono.
-- 
.A
UGIdotNET - 
http://www.ugidotnet.org
GUISA - 
http://www.guisa.org
Read my blog at: 
http://blogs.ugidotnet.org/pape
 

 Citando non ricordo più chi: "è la copia della copia di Java".
BUM! .NET ed il suo runtime in realtà sono ciò che avrebbe dovuto essere 
COM+ 2.0, ossia la nuova versione del cosiddetto "application server" che 
Windows offre dalla versione 5.0 del kernel NT (quindi Windows 2000) e che 
vide la sua prima (nonchè scarsa) implementazione in MTS, una componente 
dell'Option Pack per NT 4.0 (giugno 1998). Il runtime integra, questo è 
vero, *anche* quelle caratteristiche (es: delegate) che MS aveva inserito 
nella propria JVM, e che furono al centro della nota e stranota causa legale 
intentata (IMVHO giustamente, considerando che Java è "proprietà 
intellettuale" di Sun) a MS.
.NET non fu chiamato COM+ 2.0 poichè ad un certo punto dello sviluppo fu 
chiaro che per implementare le feature desiderate (ad esempio, il common 
type system che è una delle differenze sostanziali tra le CLI e la JVM) era 
necessario rompere la compatibilità all'indietro con COM+ 1.x


 BUM!
Penso che Manuel si riferisse a C# (che, erroneamente, viene spesso
associato all'intera piattaforma)
Enrico

 associato all'intera piattaforma)
Non mi riferivo ad un linguaggio specifico(tutti i linguaggi hanno le
medesime caratteristiche e usano lo stesso framework), ma alla piattaforma
che prende in prestito molti concetti da java.
In effetti, osservando un codice java ed uno C# che facciano cose
normalissime non è immediato accorgersi di chi sia l'uno e chi l'altro.

 normalissime non č immediato accorgersi di chi sia l'uno e chi l'altro.
Relativamente io posso scrivere un programma .Net usando c# ma anche 
vb.net
 o cobol e in questo caso la differenza č un po piů evidente.
Saluti
Ma


Si ma che senso ha poter scegliere se scrivere la stessa cosa
in C# o 
VB.NET
, quando praticamente cambia solo la sintassi?
E' questo che non ho mai capito e continuo a non capire..

 
vb.net
 o cobol e in questo caso la differenza č un po piů evidente.
Come sulla JVM puoi fare la stessa cosa con JRuby, Jython, Groovie e
altri... 
Sta 'lotta' a chi a copiato cosa tra Java (JVM) e C# (CLR) fa un po'
ridere perche` sono esattamente la stessa cosa e hanno usato studi non
proprio recenti per le loro architetture. C# linguaggio ha poi preso
molte cose in prestito dalla sintassi di Java ma Java ha fatto
altrettanto col C++ ecc ecc.
L'architettura a VM e` vecchia come il mondo ed implementata ovunque,
anche in hardware nei computer di tutti i giorni, il suo bytecode e`
l'asm x86 per le architetture intel.
-- 
Valentino Volonghi aka Dialtone
Blog: 
http://www.twisted.it/
Nintendo Friend Codes: 
http://iccfriends.net/friend/Dialtone

 proprio recenti per le loro architetture. C# linguaggio ha poi preso
 >
Su questo ti quoto, in generale i discorsi "di chi ha copiato da chi" 
sono ridicoli.

 normalissime non è immediato accorgersi di chi sia l'uno e chi l'altro.
Se intendi dire che sono ingessatini e bruttarelli tutti e due ok. Ma da
qui a confonderli... come dire. Certo, un profano confonde anche Java e
C++, ma per il resto si vede bene chi è cosa. C# e Java sono più simili,
ma su un segmento sufficientemente grosso si vede, IMHO.
-- 
blog:  
http://www.akropolix.net/rik0/blogs
 | Uccidete i filosofi,
site:  
http://www.akropolix.net/rik0/
      | tenetevi riso e
forum: 
http://www.akropolix.net/forum/
     | bacchette per voi.

 E' questo che non ho mai capito e continuo a non capire..
Per fare un paragone differente, perche` dire la stessa cosa in varie lingue
e dialetti differenti quando praticamente cambia solo la pronuncia?
Enrico
P.S. cin cin (e questa e` un po' colta)

 in C# o 
VB.NET
, quando praticamente cambia solo la sintassi?
La sintassi è importante, anche se alcuni dicono il contrario.
-- 
Lawrence, 
oluyede.org
 - 
neropercaso.it
"It is difficult to get a man to understand 
something when his salary depends on not
understanding it" - Upton Sinclair

 e dialetti differenti quando praticamente cambia solo la pronuncia?
Mi sembra un paragone forzato, le lingue e i dialetti sono molto più 
ricchi dei linguaggi di programmazione e dietro c'è la cultura di interi 
popoli, cosa ben più importante da conservare.
Comunque la mia attenzione era rivolta a C# e 
VB.NET
, diverso è il 
discorso tra poter scegliere liguaggi statici o dinamici per esempio.

 La sintassi è importante, anche se alcuni dicono il contrario.
Questo infatti è il motivo principale per il quale apprezzo e uso Python.



Senza alcun:
   indicatore tranne
   i blank spaces
per quanto mi:
   riguarda e` una cosa:
      molto
      ma
      molto
   triste.
Sul serio, ma per quale malsano malato maledetto motivo (che poeta :D) 
hanno scelto di non avere delimitatori di blocchi di codice? Per me e` 
la parte piu` brutta di python.
Anzi, la parte piu` brutta di python e` stata scoprire quanto e` idiota 
range() che va in core dump con numeri enormi... che tristezza che m'e` 
preso!! L'hanno corretto il bug, voi che lo usate intensivamente?
-- 
Sensei <senseiwa at Apple's mac dot com>
Beware of bugs in the above code; I have only proved it correct, not tried it.
(Donald Knuth)


perchè la direzione di VB, a quanto dice Paul Vick (è uno dei dev che lavora 
sul compilatore), è proprio quella di diventare (per certi versi sarebbe 
meglio dire "tornare ad essere") un linguaggio a binding dinamico, in 
seguito al rilascio del DLR


 preso!! L'hanno corretto il bug, voi che lo usate intensivamente?
Non mi è mai capitato di usare range per numeri oltre 2^32..

 preso!! L'hanno corretto il bug, voi che lo usate intensivamente?
Se hai numeri cosě grandi usa xrange() ;-)


 preso!! L'hanno corretto il bug, voi che lo usate intensivamente?
Si ma francamente non vedo come possa essere possibile aver bisogno di
un range che supera 2**32. Lo trovo assurdo a dir poco.


 ho mai capito e continuo a non capire..
Perchè in questo modo, chi conosce già C, Java oppure VB, non devono 
imparare un nuovo linguaggio, ma possono scegliere un linguaggio che già 
conoscono ;)

 la parte piu` brutta di python.
Perche` il delimitatore di blocchi sono proprio gli spazi che utilizzi per
indentare il codice. E poi scusa, ma tu scrivi solo codice non indentato?
Enrico
P.S. mi e` passato sotto mano giusto un paio di giorni fa':
http://www.secnetix.de/~olli/Python/block_indentation.hawk

 preso!! L'hanno corretto il bug, voi che lo usate intensivamente?
Afaik ora tira OverflowError, come giusto.


 conoscono ;)
Nel caso di .NET è una stupidata. C è anni luce diverso da C#, Java è
simile fino ad un certo punto e VB con 
VB.NET
 ci azzecca davvero poco.
Al massimo puoi dire che chi già è abituato con una certa sintassi può
trovarne una simile, ma i linguaggi son decisamente diversi.


 Non mi è mai capitato di usare range per numeri oltre 2^32..
A me si (perche` il mio prof voleva usare numeri interi a lunghezza 
variabile) e ci sono rimasto di merda... ho dovuto fare un while al 
posto di range...


>>
Beh lo vedro` meglio... e lo comunichero` al mio (ex) prof...
-- 
Sensei <senseiwa at Apple's mac dot com>
Beware of bugs in the above code; I have only proved it correct, not tried it.
(Donald Knuth)

 un range che supera 2**32. Lo trovo assurdo a dir poco.
Fattorizzazione naive per numeri a lunghezza variabile (esercizio del 
mio prof), vallo a capi`...
-- 
Sensei <senseiwa at Apple's mac dot com>
Beware of bugs in the above code; I have only proved it correct, not tried it.
(Donald Knuth)

 
http://www.secnetix.de/~olli/Python/block_indentation.hawk
Carino, ma 'de gustibus', e mi da ragione anche lui :)
-- 
Sensei <senseiwa at Apple's mac dot com>
Beware of bugs in the above code; I have only proved it correct, not tried it.
(Donald Knuth)

 Afaik ora tira OverflowError, come giusto.
A me andava in crash, non in exception! Ecco perche` era per me un bug.
-- 
Sensei <senseiwa at Apple's mac dot com>
Beware of bugs in the above code; I have only proved it correct, not tried it.
(Donald Knuth)

 trovarne una simile, ma i linguaggi son decisamente diversi.
Dipende :-) Per esempio, il compilatore C++ di MS permette di compilare 
"managed" anche del normalissimo codice ISO C++ (compatibilmente col 
supporto allo stesso da parte dle compilatore), mediante lo switch /IJW 
(acronimo di "It Just Works" <g>), senza dover ricorrere alle sintassi 
"estese" (MC++ o C++/CLI, per intenderci). Il caso di VB è particolare, 
poichè il product team ha *scelto* di procedere ad un "refresh" del 
linguaggio contestualmente al "passaggio" a .NET; avrebbero potuto non farlo 
(in fondo, per emettere IL è sufficiente che il linguaggio supporti le 
Common Language Specification, che sono proprio "poca roba"), ma 
probabilmente (ma sono solo i miei 2 eurocents) hanno pensato che la 
sintassi "vecchia" avrebbe penalizzato "commercialmente" il 
VB.NET
 rispetto 
a C#


 mio prof), vallo a capi`...
Ho idea che per quell'ordine di grandezza i metodi pollard rho e p-1
siano già più veloci delle trial division, ma oh ti capisco, se un
prof vuole una cosa in un certo modo gliela devi fare e basta..

 posto di range...
usare numpy e scipy?
http://www.scipy.org/NumPy_for_Matlab_Users
Non saprei dire se faccia quello che ti serve perche` non e` il mio
campo e questo coso fa un milione di cose, cercare qualcosa se non sai
cosa devi cercare e` duretta.


 A me andava in crash, non in exception! Ecco perche` era per me un bug.
Eh, e io ti dico, ora tira overflowerror. Quindi direi che il baco è
risolto.


 cosa devi cercare e` duretta.
Eh non era possibboli dall'esercizio dato :(
-- 
Sensei <senseiwa at Apple's mac dot com>
Beware of bugs in the above code; I have only proved it correct, not tried it.
(Donald Knuth)



Si ma poi per vedere se le curve ellittiche erano piu` performanti con 
validita` statistica, c'era il bisogno di un algoritmo di controllo 
(quello naive). La richiesta era piu` figa perche` richiedeva 
"l'insieme dei fattori primi" quando invece intendeva la 
fattorizzazione esatta.


 risolto.
Per quanto mi riguarda... non uso python per programmare :)
-- 
Sensei <senseiwa at Apple's mac dot com>
Beware of bugs in the above code; I have only proved it correct, not tried it.
(Donald Knuth)

 Beh lo vedro` meglio... e lo comunichero` al mio (ex) prof...
Usa una libreria di manipolazione numerica come ti ha consigliato
valentino.


 "estese" (MC++ o C++/CLI, per intenderci). 
Eh eh Andrea, non ho calcolato C++ perché... non lo calcolo mai. Mea
culpa :-P


 Per quanto mi riguarda... non uso python per programmare :)
Puoi sempre redimerti.


 Carino, ma 'de gustibus', e mi da ragione anche lui :)
Sul fatto che possa non piacerti? Ovvio. O piace o non piace.
Io mi sono fatto un breve confronto con il codice Ruby: li
l'indentazione non è obbligatoria. Eppure indento alla stessa maniera.
E in effetti indento anche il C in tale modo. Insomma, non è un gran
limite qualcosa che mi 'forza' a fare quello che farei comunque.
Sul livello estetico, a me ovviamente piace. Lo trovo estremamente
leggibile e pratico. E avendoci lavorato parecchio posso dirti che non
ci sono lati negativi[0]. Rimane solo la questione estetica.
E permettimi, una semplice questione estetica è un'obiezione abbastanza
povera ad un linguaggio.
------
[0] Eccezion fatta se stai lavorando con certi engine di templating web.
Ma li uno se la sta cercando.


 valentino.
Si certo. L'esercizio era da fare in C, Python e Fortran, seriale ed in 
OpenMP. Ho dovuto imparare Python e Fortran in un giorno... in C ho 
usato gmp, per gli altri 2, beh se avessi avuto tempo avrei usato 
numeric/scypy/whatever.
Meglio in C! :D
-- 
Sensei <senseiwa at Apple's mac dot com>
Beware of bugs in the above code; I have only proved it correct, not tried it.
(Donald Knuth)

 Ma li uno se la sta cercando.
Mai fatto nulla di web-oriented in python... per ora.
-- 
Sensei <senseiwa at Apple's mac dot com>
Beware of bugs in the above code; I have only proved it correct, not tried it.
(Donald Knuth)

 Puoi sempre redimerti.
Hehehe, ma al medico che gli dico quando vuole il programma per le 
analisi ematiche, 'installati python'? Gia` la prima parola e` 
difficile, la seconda appartiene ad un oscuro luogo molto lontano ed e` 
di pertinenza zoologica :D
-- 
Sensei <senseiwa at Apple's mac dot com>
Beware of bugs in the above code; I have only proved it correct, not tried it.
(Donald Knuth)

 Meglio in C! :D
Potevi usare gmpy allora.
http://code.google.com/p/gmpy/


 di pertinenza zoologica :D
Puoi non dirgli nulla e dargli un exe che funziona su windows. Proprio
come quelli di Eve Online o di BitTorrent (fino alla versione prima di
questa).


 analisi ematiche, 'installati python'?
Hint: py2exe
Enrico

 di pertinenza zoologica :D
Gli fai con py2exe il tutto compreso. Doppioclick e funziona tutto.
Se adesso non si chiama py2exe ha un altro nome, non è che è morto. :)


 
http://code.google.com/p/gmpy/
Good to know. Peccato non l'avessi trovato prima (e rompermi il cazzo 
ad installare i pacchetti vari al mio ex-prof). Compunque ora lavoro 
sui dxf e della precisione multipla non frega a nessuno ora. Sono 
sollevato :)
-- 
Sensei <senseiwa at Apple's mac dot com>
Beware of bugs in the above code; I have only proved it correct, not tried it.
(Donald Knuth)

 questa).
Cioe` faccio io un MSI/EXE che installa python ed il programma? Oppure 
c'e` il modo di compilare *statico* tutto python?
-- 
Sensei <senseiwa at Apple's mac dot com>
Beware of bugs in the above code; I have only proved it correct, not tried it.
(Donald Knuth)

 said:

Ottimo! Questo e` molto utile, perche` non lo includono per ogni 
piattaforma nel trunk principale? (lo facciano per mac e linux anche)
-- 
Sensei <senseiwa at Apple's mac dot com>
Beware of bugs in the above code; I have only proved it correct, not tried it.
(Donald Knuth)

 Se adesso non si chiama py2exe ha un altro nome, non è che è morto. :)
Come ho risposto, e` una ottima notizia, e non comprendo perche` non 
sia nel trunk di python.
-- 
Sensei <senseiwa at Apple's mac dot com>
Beware of bugs in the above code; I have only proved it correct, not tried it.
(Donald Knuth)

 c'e` il modo di compilare *statico* tutto python?
Nessuno dei due, c'e` modo di inviare ai tuoi clienti l'applicativo
senza fargli installare nulla. Again: come fanno ad esempio con
bittorrent.


 (lo facciano per mac e linux anche)
Installer, ma non so se sia ancora i giro, crea binari congelati tipo
py2exe pure per Unix/Linux
-- 
Levatevi, o malvagi cittadini pieni di scandoli, e pigliate lo ferro
e il fuoco con le vostre mani, e distendete le vostre malizie.
Avanzano ignobili gli obblėghi, le schiere dell'ignoranza; impuniti,
lā dove finisce la vostra volontā, finisce la gloria del Signore.

 piattaforma nel trunk principale? (lo facciano per mac e linux anche)
py2app per osx, cx_Freeze per linux ma per linux/unix sono tutti
inutili, meglio evitare il binario singolo che e` sempre una pessima
idea.


 sia nel trunk di python.
Perche` non puoi cercarlo e installarlo?
http://pypi.python.org/pypi


 
http://pypi.python.org/pypi
Un conto e` installarlo, un conto e` averlo gia` (come se installando 
il gcc non avessi il compilatore ma solo il preprocessore). E` una cosa 
comoda e non vedo perche` non sia molto pubblicizzata.
-- 
Sensei <senseiwa at Apple's mac dot com>
Beware of bugs in the above code; I have only proved it correct, not tried it.
(Donald Knuth)

 comoda e non vedo perche` non sia molto pubblicizzata.
Perche` py2exe e` solo per windows, non serve agli altri sistemi
operativi e l'api non e` condivisa neanche parzialmente con le altre
soluzioni che usano altri sistemi di discovery delle dipendenze.
Tra l'altro non c'e` la minima differenza tra l'averlo installato e il
doverlo installare, va comunque cercato per sapere che esiste.


 doverlo installare, va comunque cercato per sapere che esiste.
Sono d'accordo su tutto. Come unica cosa direi che invece sarebbe
compito di chi fa distribuzioni 'fat' di Python per windows di
installarlo. E.g., active state.
Su OS X per dire py2app mi viene diretto con PyObjC. Che non è una
distribuzione fat, ma ok.


 piattaforma nel trunk principale? (lo facciano per mac e linux anche)
Direi per due motivi:
1) Come ti e` stato gia` detto, py2exe non e` portabile (c'e` pyinstaller
che lo dovrebbe essere), e per usarlo bisogna sapere prima che esiste.
2) Penso che di py2exe non ti sia chiara una cosa. Esso non e` un
compilatore, ma un generatore di eseguibili. Per dirla meglio, nel .exe che
ti genera, oltre alla tua applicazione scritta in Python, sono presenti
l'interprete Python stesso (sotto forma di DLL) e tutte le librerie
utilizzate. In altre parole, py2exe non compila nulla, ma semplicemente
crea un wrapper alla libreria Python, in modo da permettere una piu`
semplice redistribuzione del prodotto finale (un prodotto analogo e`
JSmooth per Java)
Enrico

 JSmooth per Java)
...e aricerto. Ma non e` cosi` pubblicizzato. Creare eseguibili e` 
fondamentale per molti aspetti e mi sembra pero` che non sia importante 
per la maggioranza degli utenti python. Peccato (non importano i 12 mb 
in piu`!)
-- 
Sensei <senseiwa at Apple's mac dot com>
Beware of bugs in the above code; I have only proved it correct, not tried it.
(Donald Knuth)




 Mai fatto nulla di web-oriented in python... per ora.
Capiscimi, funziona in modo *eccellente* per il web. *Io* preferisco
librerie di generazione all'embbeding. E anche li ce ne sono di buoni e
meno buoni. Ne ho presente uno che aveva una piccola cosa poco
comprensibile dovuta al fatto che appunto in Python non c'è 'end'.


 comprensibile dovuta al fatto che appunto in Python non c'è 'end'.
Io stavo cercano al tempo un CMS in python, visto che php mi dona dei 
problemi di sicurezza che *PARE* non sussistere in python (pare eh, non 
sono tanto dentro per giudicare bene).
-- 
Sensei <senseiwa at Apple's mac dot com>
Beware of bugs in the above code; I have only proved it correct, not tried it.
(Donald Knuth)



Diciamo che in Python normalmente i perditempo non girano. Per cui il sw
č fatto normalmente da chi sa un pochino di piů quello che fa.
Inoltre tenendo conto che č un linguaggio ad oggetti ben fatto, la
maggior parte degli sviluppatori *ingegnerizza* le applicazioni e non
ficcano qua e la stringhe SQL (con risultati ben noti).


 Diciamo che in Python normalmente i perditempo non girano.
Finora :P


 Finora :P
Ha, lol. :)
