Newsgroup: it.lavoro.informatica
Titolo: Linux e Mono ...

Ciao a tutti,
prendete questo post come uno sfogo personale, senza volontà di flame.
Sono certo che quanto descritto deriva esclusivamente dalla mia
inesperienza, ma ...
Dopo anni ed anni passati a sviluppare su Windows vorrei provare a fare
qualcosina anche per Linux, sempre con tecnologia .NET ma usando Mono.
Se vai sulle pagine del progetto Mono viene pubblicizzata la compatibilità
binaria degli eseguibili. "Perfetto" penso io, sviluppo su Windows e grazie
a Mono il programma gira anche su Linux.
Per testare un programma banale (form vuoto con un bottone) ho deciso di
preparare una macchina virtuale vmware con Ubuntu Desktop 10.10, che ha già
Mono installato. 
Il setup è andato liscio, per la fretta non ho messo i vmware tools, in
quanto mi serviva solo verificare il lancio del programma.
Risultato: un pernacchione, Mono si incavola a causa di referenze a dll
Microsoft non presenti. Inutile copiarle da Windows (mica facile senza i
vmware tools), la pernacchia diventa più sonora. Visual Basic non gli
piace.
A questo punto googlando capisco che è meglio prendere i sorgenti e provare
a ricompilarli con Monodevelop. Installato facilmente, apro i miei sorgenti
e...secondo pernacchione, non c'é il compilatore per VB. 
Capisco che la faccenda diventa complessa, decido di installare i vmware
tools per meglio interagire tra le diverse virtual machine.
Confrontando il setup dei tools su un guest Windows quello su Linux è un
delirio. Gli header necessari non sono nella cartella di default suggerita,
ci sono due cartelle diverse e per la legge di murphy rispondi con quelli
sbagliati, googlando tra mille risposte diverse capisci quali sono quelli
da specificare, però poi quelli specificati non gli piacciono, da un errore
sulla versione @@VMWARE_LIMORTACCI_SUA...
Risultato, dopo oltre un'ora di imprecazioni ricorsive (e comunque con 8
ore di lavoro standard alle spalle) ho messo in download una appliance
preparata già con i vmware tools installati. Su questa reinstallerò
Monodevelop cercando da qualche parte il compilatore VB ...
PaF

 già Mono installato.
Unico dubbio: non e' che hai usato le Windows Forms?
Perche' se vuoi che giri devi usare le GTK+ anche sotto Win32...
Pero' domani faccio una prova pure io, che mi hai messo la curiosita' 
addosso..
-- 
Ciao!
Luca

 PaF
mm mi sembra che tu abbia DUE problemi separati, uno con VMWARE e uno
con Mono.. Quanto a Mono, te lo dico da ignorante perche' non l'ho mai
provato.. ma credo che sia una perdita di tempo. .NET e' di MS e ha
senso solo su piattaforma MS, per la facilita' e l'integrazione con
tutto il resto del mondo MS. Sviluppare in .NET su linux mi sembra sia
sulla stessa linea di sensatezza che coltivare caffe in norvegia.. Se
vuoi sviluppare su Linux fallo in Java, Python, Ruby e quant' altro..


Fare una applicazione che gira su entrambe le piattaforme ti pare brutto?
E considerato il periodo, avere una webapp scritta una volta che funziona su 
entrambi ti pare tanto assurdo?
Non ho capito perch� dovrei riscrivermela con java, python, ... vari.

 addosso..
Anche secondo me è quello il problema, ma non volevo dirlo perchè non 
bazzico mono da 200 anni.
  ngw
-- 
Nicholas Wieland (ngw)
n...@nofeed.org

 Non ho capito perch� dovrei riscrivermela con java, python, ... vari.
Infatti. 
Da quanto ho visto Mono sembra valido, ci sono progetti complessi che sono
stati portati da Windows a Linux (es. Paint.NET), Ubuntu stesso integra
applicazioni Mono based.
Per� se penso alle difficolt� per implementare il solo ambiente di sviluppo
per una virtual machine rimango perplesso...
PaF

 addosso..
Avendo iniziato solo da qualche ora anch'io mi devo chiarire le idee, 
speravo che in Mono avessero incapsulato le chiamate alle funzioni Windows 
Form (che sono a loro volta una astrazione delle Win32) in equivalenti 
chiamate alle GTK.
Anche perché se non è così la compatibilità binaria vale solo per 
applicazioni consolle, un bel sotto insieme delle applicazioni desktop 
sviluppabili.
PaF

 "riccardo" ha scritto nel messaggionews:22c6c606-8b06-440f...@e20g2000vbn.googlegroups.com...

No, non mi pare brutto per nulla. Solo francamente non so
assolutamente in che misura sia possibile. Mi limitavo solamente ad
osservare che cosi' a naso credo non sia possibile in generale
deployare un' applicazione .NET di una certa complessita' su mono
senza un notevole sforzo e grossi dubbi sui risultati, o sviluppare su
mono con tutte le "bell and whistles" che compongono il framework .NET
su Windows.. Ma come ho specificato chiaramente e' solo un '
intuizione da ignorante, e sarei felice se mi si mostrasse che le cose
non stanno cosi'!

 vuoi sviluppare su Linux fallo in Java, Python, Ruby e quant' altro..- Nascondi testo citato
Quindi il gruppo di sviluppo di Mono si è inventato tutta la
interoperabilità di sana pianta, peggio dell'11 settembre? :-)
Basta che lo scrivi chiaro.
Si vede che sono ragazzi che amano perdere tempo. Eh, questi hackers,
che neppure testano un form con un bottone...

 chiamate alle GTK.
Si però non c'è tutto winform, prima di installarlo su linux devi
provare la compatibilità con questo  :
http://www.mono-project.com/MoMA
o con questo che è più comodo :
http://mono-tools.com/
poi adegui il codice, occhio che io sappia non esiste compatibilità
con 
vb.net
 ma solo con c#

 che neppure testano un form con un bottone...
Visto che sono testardo dopo qualche ora inizio ad avere una visione
d'insieme, sarebbe stato carino un HOWTO per beginners, invece di googlare
per capire i singoli dettagli.
Se ne vengo a capo lo scriverò io :-)
PaF

Ok, penso di essere in pole position per il primo premio "Impazienza 
Gennaio 2011" :-)
Dopo aver superato lo scoglio della compilazione ed esecuzione del progetto 
"Form vuoto", direttamente preso da Visual Studio 2008 e caricato in Mono 
Develop, ho provato direttamente con l'eseguibile di un mio progetto reale, 
con una interfaccia grafica piuttosto complessa disegnata "al pixel" e con 
diversi user controls...il programma parte e si visualizza praticamente in 
modo uguale rispetto alla versione Windows, però con il refresh più lento.
Devo capire come gestire le diversità legate agli ambienti diversi 
Windows/Linux (porte seriali e folder di default) ed il motivo per cui devo 
eseguirlo con privilegi di root ma Mono sembra essere esattamente quello 
che speravo :-)
Per chi fosse interessato ecco i passi principali che ho seguito:
Appliance Ubuntu Desktop 10.10 scaricata da vmware (per non impazzire con 
l'installazione dei vmtools), la si scarica in formato tgz tramite 
bittorrent
Installazione di Monodevelop tramite il repository standard
Registrazione del repository badgerports, dedicato a Mono 
http://badgerports.org
Installazione del "Mono Visual Basic Compiler (
VB.NET
)"
Tutto qui, 4 semplici passi che mi hanno occupato per tutta la sera !
Ora arriva la parte divertente: capire la comunicazione seriale, la 
gestione dei folder che .NET ti restituisce in base a costanti predefinite, 
come installare il cavo USB -> Serial etc etc
PaF

 equivalenti chiamate alle GTK.
Mica vero! Se usi GTK anche sotto Win32 (e si puo', dal momento che ci si 
basa anche roba grossa, tipo GIMP), allora la tua bella compatibilita' 
binaria rimane.
Ripeto, oggi provo a mettere Mono sotto Windows e ti dico.
-- 
Ciao!
Luca



Luca non hai letto l'ultimo mio post, la mia applicazione sviluppata con
Visual Studio 2008 in 
VB.NET
, con interfaccia piuttosto complessa, funziona
su Mono. Ho descritto tutti i passaggi (semplici in realtà, a saperli
prima...) 
Il refresh del form è molto più lento e ci sono alcuni punti da chiarire,
ma il programma parte e si visualizza senza aver fatto alcuna modifica.
PaF

 Se ne vengo a capo lo scriver io :-)
Non era rivolto a te. Però permettimi un piccolo appunto: un'ora per
assimilare le problematiche di migrazione tra Windows e Linux forse è
un pò poco.

 modo uguale rispetto alla versione Windows, per con il refresh pi lento.
Ecco, complimenti! Un'ora è poco, 2 sono troppe :-)

 Se ne vengo a capo lo scriver� io :-)
Benvenuto nel mondo del software libero e documentazione libera,
fratello. :-D

 Ecco, complimenti! Un'ora è poco, 2 sono troppe :-)
ehh l'età :-P
PaF


relax man, hai avuto un finesettimana difficile? :)
Ho solo espresso qualche dubbio su quanto sia facile sviluppare
in .NET con Mono o portare applicazione di vera complessita' e
decentemente avanzate.. tutto li'.  Se poi si puo' fare
tranquillamente tanto di guadagnato.. come ho specificato piu' volte
sono totalmente ignorante in materia non mi ci sono mai interessato..
ma l'ultima volta che ne ho sentito parlare per esempio mi sembra non
ci fosse supporto per EF o WPF..

 ci fosse supporto per EF o WPF..
Bè, sicuramente Mono è sempre 1 o 2 versioni indietro rispetto a MS.
Questa è una differenza reale, da valutare attentamente.


Beh, certamente non viene usata durante i vari eventi MS sparsi per 
l'italia, quelli dove fanno esempi su cose appena uscite, che sono in beta 
oppure manco quella... :-)

 PaF
Dopo il pomeriggio e la sera passata a sviluppare con un piacere che non
ricordavo (complice tempo da lupi e famiglia influenzata) ho ottenuto una
versione quasi definitiva del mio programma, mantenendo praticamente la
stessa base di codice differenziandola in alcuni dettagli che elenco dopo.
Per chi desidera provare Mono consiglio comunque di sviluppare su Visual
Studio, perché Monodevelop (che ho usato per alcuni test per la porta
seriale) - non me ne vogliano gli sviluppatori - al confronto è un
pallottoliere.
Se si sviluppa con Windows Form e il .NET Framework 2.0, esclusivamente con
istruzioni managed (niente API e P/Invoke) sulla base della mia breve
esperienza il programma che si ottiene è _quasi_ perfettamente compatibile.
Il _quasi_ dipende da questi dettagli, che obbligano a rilevare la
piattaforma sottostante:
1. I percorsi delle cartelle di sistema in Windows ottenuti dalle costanti
non si comportano nello stesso modo a livello di privilegi in Linux. In
Seven anche un utente standard può scrivere in c:\programdata\tuosoftware,
in Linux su /etc/share devi avere privilegi elevati (cosa che obbliga a
lanciare il programma con sudo)
2. In Windows per separare i folder nei percorsi usi il backslash, in linux
lo slash, banale ma se non te lo ricordi vai a scrivere non dove credi
3. La classe SerialPort non genera l'evento DataReceived, ho risolto con un
thread separato in ascolto (mi domando perché la stessa soluzione non sia
implementata in Mono a livello di "internals")
4. I font di default non sono proprio uguali come spaziatura
Non ho avuto altri intoppi, anzi devo dire che sono rimasto decisamente
soddisfatto, quelli di Mono hanno fatto veramente un gran lavoro.
PaF

 lanciare il programma con sudo)
Non sapendo niente di mono e non usando linux da anni, direi pero' che 
se il tuo software ha bisogno di scrivere in /etc direi che è il tuo 
software a sbagliare, creati un file nascosto nella tua /home, che è 
quello che fa qualunque software desktop linux che conosco.




Non è che ho bisogno di scrivere in /etc, semplicemente ho la necessità di
una cartella in cui scrivere un file xml che fa da archivio dati.
La best practice vuole che questa cartella non sia cablata nel codice ma
venga rilevata da una funzione disponibile nel .NET Framework, che ti mappa
il percorso a seconda che tu stia facendo girare il programma su Windows XP
o Vista/Seven, usando
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)
Nel caso del folder CommonApplicationData, la risposta del framework su
Windows non richiede privilegi amministrativi, su Linux, ottenendo
/etc/share, si.
Per ovviare a questa differenza in Mono non utilizzo CommonApplicationData
ma ApplicationData, che restituisce /home/utente/.config
La cosa non mi entusiasma, perché cambiando utente il profilo personale
precedente non è leggibile ed è necessario ripetere la configurazione
iniziale, ma preferisco questa opzione piuttosto che obbligare l'esecuzione
del programma con privilegi elevati.
In ogni caso tramite il valore di 
System.Environment.OSVersion.ToString.ToLower.Contains("unix")
è possibile mantenere la stesso codice e differenziarlo solo dove serve.
PaF

 oppure manco quella... :-)
WPF e EF sarebbero in beta secondo te?


Non esiste UNA versione di quelle tecnologie... indovina durate i vari 
eventi su quale versione di focalizzano?

 oppure manco quella... :-)
Non era un critica, non è detto che essere "indietro" sia un male,
anzi.
Ci sono cose che sono state lanciate a razzo da MS per anni, e poi più
o meno deprecate, se non abbandonate.

 eventi su quale versione di focalizzano?
Non hai capito. La mia sorpresa non era per l'ovvia fatto che alle
presentazioni di nuove tecnologia si presentino nuove versioni delle
tecnologie , ma sul fatto che tu stessi facendo passare l' idea che
mono non supporti solo le ultimissime tecnologie in beta, cosa non
vera.

 Monodevelop cercando da qualche parte il compilatore VB ...
Ho un collega qui a Milano che è riuscito a far girare Asp.net fino alla 
3.0 o alla 3.5 non ricordo bene su apache e Linux.
Secondo me dovresti provare con C#, Vb è il parente povero.
-- 
Cordiali saluti
Davide
Corso Microsoft net. C# 
 a Monza e Brianza 
http://tiny.cc/7XE36
Gestione sistemi informativi?
http://tinyurl.com/ygs8hbx
www.cleosolutions.com

 Secondo me dovresti provare con C#, Vb è il parente povero.
Come ho scritto nell'ultimo mio post ormai anche vb è supportato senza
problemi.
PaF


In due post diversi di questa discussione ho letto : vb non ï¿œ supportato 
  oppure prova con c#
In ambiente .net  c# o vb generano lo stesso exe :)
ps: si parlava di sorgenti e non ho capito io?

 ps: si parlava di sorgenti e non ho capito io?
Il problema è questo: se tu prendi un eseguibile generato con VB.net (con
Visual Studio) questo si porta con sé i riferimenti a
Microsoft.Visualbasic.dll. 
Nelle mie prime prove non avevo idea di come gestire questo riferimento, da
qui la mia perplessità iniziale. 
In seguito ho visto che i riferimenti necessari
(Microsoft.Windows.Form.dll, Microsoft.Visualbasic.dll e altro) possono
essere scaricati dal repository Ubuntu dedicato a Mono, per cui problema
risolto.
Una nota interessante: il supporto a Windows.Form è stato completamente
riscritto in C# e non si appoggia a toolkit esistenti (tipo GTK o wine),
sul sito sono spiegati i motivi.
L'ultima diversità incontrata riguarda i font: il Microsoft Sans Serif
normalmente utilizzato come default su Windows in Mono viene convertito in
Dejavi Sans, che ha una spaziatura diversa. 
Ho risolto imponendo su Mono il font Arial con Me.Font = New Font("Arial",
8.25, FontStyle.Regular) 
PaF


La butto la:
-scrivere un piccolo tutorial che includono anche link per lo 
scaricamento dei file necessari? 8)
Non per niente ma mi sono incuriosito....
Framework utilizzato il 3.5 o 4?
Nel caso di piccolo gestionale, sqlce è supportato? il binding?
Ciao :)

 Ciao :)
Boh, il mio programma non si collega a database, uso un dataset in memoria
caricato da un file xml.
La mia esperienza è limitata ...
Comunque prima di muovere un dito ti consiglio la lettura delle pagine sul
sito di Mono, per sapere in anticipo i limiti: 
http://www.mono-project.com
Ciao
PaF

 In ambiente .net  c# o vb generano lo stesso exe :)
Con Sharpdevelop esiste perfino un traduttore automatico da C# a VB, e
viceversa. Comunque è vero che ci sono delle piccole differenze, che
sembrano eliminate nella versione 4 di Net.

 vuoi sviluppare su Linux fallo in Java, Python, Ruby e quant' altro..
una significativa parte dei componenti di gnome (es. gnome do, docky e
relativi plugin) sono scritti in c# e girano su mono.

 [...]
Ciao  Manlio

 Più lento rispetto a cosa?
La mia prima impressione era legata alla primissima versione del programma
in fase di porting, dove era presente una istruzione che su Mono è lenta 
System.IO.Path.GetFileName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName)
Per il resto direi che va bene (solo qualche piccola imprecisione nel
refresh del form, qualche pixel "sporco"), confrontando i due ambienti
Windows e Linux, entrambi in Virtual Machine.
Non ho fatto comunque benchmark in proposito.
PaF

 Non ho capito perch dovrei riscrivermela con java, python, ... vari.
Perche' te lo ho spuiegato. E sai cosa? In python ci metti meno tempo
e meno sforzo a fare una webapp, e gira anche su MacOSX, su Solaris,
su FreeBSD, Android, e quant'altro.
Greetings
JOKER Ltd.

 su FreeBSD, Android, e quant'altro.
a parte che questa affermazione può essere molto discutibile anche se
parliamo di webapp "gestionali" o comunque con largo uso di database
relazionali, con mono puoi sviluppare form-application cross-platform
utilizzando come ambiente di sviluppo visual studio, mi sembra un bel
vantaggio.

 di farlo andare altrove sono fatica inutile.
Assolutamente falso.
http://en.wikipedia.org/wiki/Common_Language_Runtime
http://en.wikipedia.org/wiki/Common_Language_Infrastructure
http://en.wikipedia.org/wiki/Mono_(software)
In sintesi, le specifiche per l'implementazion del CLR sono standard ECMA.
Attorno a questo il team di Mono ha deciso di riscrivere in modo "managed"
il supporto anche a Windows Form, in aggiunta agli altri toolkit
supportati.
Capisco per per un fan dell'open source qualunque cosa arrivida Microsoft
puzzi, ma č meglio se ci si limita a discutere degli aspetti tecnici
tralasciando gli aspetti "etici" (che tanto hanno dato fastidio quando
Ubuntu ha deciso di includere nella propria distribuzione software basato
su Mono)
PaF

 vantaggio.
Ma poi non li fai girare su server NON Microsoft. E questo fa la
differenza.
Greetings
JOKER Ltd.

 differenza.
Ancora, e perché ? Poi benissimo fare un gestionale in .net che usa
mysql e che viene installato sui client linux. Oppure una web
application in .net che gira su server linux con DB su server Oracle
che gira su SUN Solaris.
Ad esempio io mono l'ho investigato per scalare una web application,
normalmente uso server MS ma nell'ipotesi di dover abbassare
sensibilmente il costo per utente l'utilizzo di server linux era da
valutare grazie al minor costo dell'hosting. L'applicazione girava
benissimo, poi non ho continuato migrando anche il DB, ma per la parte
di presentazione andava.



Aggiungo che se l'essere cross platform è un vincolo conosciuto fin
dall'analisi si può utilizzare Monodevelop pure su Windows (quindi Mono e
non il .NET Framework), non rischiando in alcun modo incompatibilità a
runtime.
In realtà una soluzione simile per me è come darsi una mazzata sugli
zebedei, in quanto Monodevelop è anni luce lontano da Visual Studio, ma è
una strada percorribile.
PaF

 di farlo andare altrove sono fatica inutile.
ripeto, ci sono svariati componenti di gnome scritti in c# che girano
su mono. fra l'altro se guardi i sorgenti vedi che spesso usano visual
studio (fondamentalmente perché monodevelop è inusabile) a
dimostrazione che non è vero quello che dici.
ovvio, ci vuole quel minimo di accorgimenti per scrivere
multipiattaforma, ma anche in python se ti leghi alle librerie
grafiche di windows poi dall'altra parte non funziona una ceppa...

 di presentazione andava.
Gia' migrare il DB. Esistono anche li alternative a SqlServer che
girano su piu' piattaforme. Pero' tu avevi una app scritta in .NET e
la hai portata su Linux. Diciamo che hai impiegato un tempo < 10% del
tempo di sviluppo per farla andare. Ma scriverla da zero mi costa il
tempo di sviluppo a cui devo sommare quello del porting. Se so gia'
che voglio farla andare su piu' piattaforme tanto bvel scriverla in un
linguaggio multi piattaforma e bona le'. Risparmio il tempo di
adattamento.
Greetings
JOKER Ltd.

 su Mono)
Caro a me puzza tutto cio' che non e' open ma anche tutto cio' che
puo' essere monopolio. Non e' che di Google mi fidi poi troppo.
Personalmente da empre ho prediletto pero' ambienti di sviluppo WORM.
E non perche' puzzi la roba proprietara ma solo perche' non mi va di
fare adattamenti a posteriori. Sul fatto poi puzzi, ti ripeto che
trovo C# molto meglio di Java. Ma mi riferisco al linguaggio in se,
slegato dall'ambiente .NET.
P.S.: Ho provato a usare Silverlight. Me lo aveva chiesto la ditta per
cui lavoravo. Dopo una settimana ho preferito cambiare lavoro. fare il
quadruplo del lavoro per avere lo stesso risultato ottenibile con
poche righe in python, non mi attirava per nulla.
Greetings
JOKER Ltd.

 grafiche di windows poi dall'altra parte non funziona una ceppa...
Certo, ma se ti tiri una martellata sulel palle da solo poi non
prendertela con gli altri.
Solo che le librerie grafiche di windows su python sono una forzatura
esattamente come le GTK con .NET.
Greetings
JOKER Ltd.

 affaticarti a apprendere altro. :)
Bè, se ci vuoi dire che usando Python non cambi neppure una virgola,
sposti semplicemente l'eseguibile svolazzando da un s.o. all'altro con
0 problemi, qualunque sia l'applicazione (da hello world alla gestione
di tutto il db Inps, da una bella app desktop con gui nativa ad un
tosto tool di sistema).... che dire, prendiamo atto :-)
Consentici di avere qualche scetticismo, però...


Dimenticavo. Su Net gira IronPython, credo sia pure opensource. A
questo punto, raccontaci: il problema è la piattaforma  Net o il
linguaggio diverso da Python? :-)

 relativi plugin) sono scritti in c# e girano su mono.
aggiungerei "non sorprendentemente" visto che il padre dei progetti e'
lo stesso ...
In ogni caso non sto dicendo che la cosa sia assolutamente sbagliata,
ma mi sembra che desti piu' di una perplessita', e non solo a me..

 adattamento.
Negativo. Nel mio caso lo sviluppo del gestionale su .net è molto più
veloce. L'unico che potrebbe compere è java.


Il caso vuole che le perplessitą stanno uscendo da chi non lo usa... :-)

 Consentici di avere qualche scetticismo, però...
Personalmente uso WxPython (wrapper di WxWidget) e ti dico che
problemi non ne ho e il look'n'feel e' adattativo all'OS. Anche con
PyGTK e PyQt si ottengono ottimi risultati.
Nel mondo web una webapp scritta con TurboGears 2.0, Zope/Plone o
Django gira senza bisogno di cambiamenti.
SqlAlchemy mi fa interfacciare con i piu' diffusi Db (astraendo in
una logica ad oggetti il dbschema e le relative operazioni), e posso
passare da un Db ad un altro solo cambiando una riga di
configurazione.
La pulizia del linguaggio, ad alto livello, dove tutto e' a oggetti,
tutto e' dinamico, e il fatto che non devo compilare perche' esegue
una metacompilazione (come Java o .NET) a runtime se il sorgente (se
presente) e' piu' recente del metacompilato, senza contare la logica
del "battery included", esempio Sqlite incluso gia' dalla versione
2.5) lo rendono un linguaggio di punta. Leggevo giusto oggi su Tiobe
la clasifica dei linguaggi, diciamo cosi', piu' utilizzati. Python ha
preso due posizioni scavalcando C# che e' rimasto fermo (http://
www.tiobe.com/index.php/content/paperinfo/tpci/index.html
 e 
http://langpop.com/
).
Chiaro che in italia ancora si stenta un poco a vedere aziende che lo
usano, sebbene ne conosca (non per sentito dire) almeno una 30ina (in
una ci lavoro).
Ma sappiamo bene quanto sia all'avanguardia la RI.
Poi per me resta sempre valido l'assunto che il linguaggio (editor,
ide, ambiente di sviluppo, OS, quant'altro) migliore e' quello che ti
piace e con cui ti trovi meglio.
Greetings
JOKER Ltd.

 veloce. L'unico che potrebbe compere è java.
Conosci python? Hai usato dei framework come Turbo Gears 2.0? Non
letto un tutorial, dico usato per scrivere applicazioni.
Greetings
JOKER Ltd.

 linguaggio diverso da Python? :-)
IronPython e' come JThon. Un accrocchio. La sintassi e' quella di
python. Fine delle cose in comune. Ci ho guardato dentro, mi sono
letto il manuale della Manning, li ho messi via entrambi (manuale e
IP).
Non ne vedo l'utilita'. Se lavoro in IP poi ho del codice che non gira
altrove. A che mi serve? Tanto vale usare C#. La mia critica a .NET
non e' nel valore dell'ambiente di sviluppo (un IDE tra i migliori
anche se non perfetto) ne nel linguaggio di punta (C#) ma nel fatto
che poi nasca e muoia per OS Microsoft. Se devo perdere tempo per far
andare una applicazione scritta in .NET su Linux o altri OS, tanto
vale che la scriva con un linguaggio che nasce per questo scopo. Se
devo scrivere una applicazione che nasce e muore su Windows prendo in
considerazione .NET come primo prodotto. E' chiaramente avvantaggiato
dal fatto di essere in pratica embedded nell'OS.
E' solo una questione di pragmatismo. Usare lo strumento migliore per
quello che devo fare.
Greetings
JOKER Ltd.

 letto un tutorial, dico usato per scrivere applicazioni.
C'ho giocato un po'. Il linguaggio è carino, ti dirò : mi piacerebbe
usarlo, scrivere i template con l'html corretto, usare sempre e solo
jquery. Ma io ci campo sviluppando applicazioni e semplicemente non
c'è il tempo, in x giorni l'applicazione deve funzionare e bene, deve
poter essere stravolta in poco tempo, supportare soap, multilingua,
debug remoti, connessioni diverse dal'http, gestione email, binari,
avere una grossa libreria di componenti e prodotti e sorgenti di
esempio disponibili in rete, manipolare excel e grafica, codici a
barre, essere comune e facile da usare ecc.....
Poi tu mi porti esempi come TurboGears. Con tutto il rispetto quel
coso porta 200 mila risultati su google, sarà anche bello ma io non ci
perdo neppure un minuto. Se poi avrà un successo clamoroso mi
accoderò.

Il Mon, 10 Jan 2011 08:50:59 -0800 (PST), JOKER Ltd. ha scritto:
[cut]
Io sono mooolto più pragmatico.
Con .NET ci faccio colazione, pranzo e cena.
Se a costo zero (perché qualcuno si è preso la briga di convertire le
librerie necessarie) ottengo anche l'essere portabile su Linux e Mac, con
esito soddisfacente, tanto meglio.
Nel mio caso l'essere cross platform non è mai stata una necessità, mi sono
avvicinato a Mono per curiosità, scoprendo che riesco ad portare le mie
applicazioni in altri lidi, la "novità" mi può fare solo piacere.
PaF

 IP).
E' la seconda volta che dici questa cosa, ed è la seconda volta che non 
la giustifichi in alcun modo.
Perchè sarebbe un accrocchio ?
  ngw
-- 
Nicholas Wieland (ngw)
n...@nofeed.org

 piace e con cui ti trovi meglio.
Sarà, non si spiega la necessità di questo evangelism forzato allora.




Su OS X te lo scordi, a meno che tu non riesca ad includere il runtime mono.
BTW, lo sviluppo multipiattaforma è morto e stramorto: 
http://readthefuckinghig.tumblr.com/


 Su OS X te lo scordi, a meno che tu non riesca ad includere il runtime mono.
Non ho mai avuto un Mac quindi parlo senza una reale cognizione di causa,
ma se Mono è stato portato su Mac, con tanto di librerie Windows.Form e
compagnia cantante, esattamente come su Linux, cosa mi cambia ?
Anche su Linux senza il runtime di Mono installato il mio programma Windows
si attacca al tram :-)
Non colgo la differenza.
PaF

 lo stesso ...
quando dicevi "Sviluppare in .NET su linux mi sembra sia sulla stessa
linea di sensatezza che coltivare caffe in norvegia" non sembravi così
convinto.

 si attacca al tram :-)
La distribuzione del software su Linux č molto diversa, noi di OS X 
siamo molto indietro e scarichiamo ancora a cazzo da internet e 
facciamo un doppioclick, il che molto difficilmente risolve le 
dipendenze.
Magari c'č un mono2app o roba cosě.


 piace e con cui ti trovi meglio.
Senz'altro.

 dal fatto di essere in pratica embedded nell'OS.
Su questo non si può dissentire. Ci sono linguaggi/infrastrutture che
progrediscono contemporaneamente su n OS, es. Java e magari Python. Ce
ne sono altri che non hanno questo sviluppo "a raggiera", e certamente
Net è tra quelli, perchè Mono non è mai allineato.

 contro la ricchezza delle librerie e del loro porting sui vari OS.
Ma no, sono esattamente la stessa cosa, l'idiosincrasia è nel modo in 
cui poi si interfacciano a librerie esterne: Python (e Ruby, e 
fondamentalmente tutti i linguaggi di questo pianeta che non si basano 
su una piattaforma intermedia alla JVM/CLR) espongono delle API che 
permettono di wrappare librerie in C/C++ e dargli una interfaccia 
"pythonish", come i driver per MySQL, ImageMagick, zlib, libssl e 2000 
altre, che *ovviamente* non sono disponibili/portate su altri host, 
come appunto JVM/CLR. Questo apparentemente crea tantissima confusione 
in chi è abituato a usare l'interprete originale, che non si capacita 
del perchè debba andare a ravanare in qualcosa di diverso nei confronti 
di quello che ha sempre usato, e "joker" non è certamente l'unico ad 
avere questi sentimenti (se questo è il suo caso).
Il motivo è banale: tra JVM e CLR non so chi ha più librerie, è 
difficile che qualcosa di nativo per cPython (l'interprete "ufficiale") 
non sia coperto funzionalmente da qualcosa su JVM e CLR. Inoltre sono 
tecnologie che hanno utilità solo in un contesto in cui si inseriscono 
in ambienti "alieni", e che quindi devono per forza di cose usarne 
l'infrastruttura anche per una forma di controllo (jython e IronPython 
presumo non abbiano il GIL (global interpreter lock), le librerie vanno 
scritte con altri accorgimenti).


non c'entra un cazzo ma...
dovendo partire ex novo
meglio web2py o turbogears?
thx

 libreria grafica, almeno dalle 4.x in avanti.
Una volta avevano dentro anche un server HTTP se è per quello, il punto 
è come si integrano nell'OS.



temo ti siano sfuggiti nella fretta
 "te lo dico da ignorante"
"Mi limitavo solamente ad
osservare.."
"cosi' a naso"
"e' solo un ' intuizione da ignorante"
"Ho solo espresso qualche dubbio".
E i dubbi su Mono penso che siano legittimi, e su due piani
differenti, cioe' sull'opportunita' di dedicarsi allo sviluppo su una
piattaforma che sembra essere una versione castrata di .NET, e sull'
opportunita' di utilizzare MONO per sviluppare componenti di Linux. Se
poi uno riesce a portare senza troppa fatica una sua applicazione .NET
anche a Linux come nel caso di Paf, beh tanto meglio e tanto di
guadagnato.
capisco che sei li' che rosichi sperando che prima o poi io spari una
delle minchionate che ti vengono cosi' spontanee appena ti azzardi ad
avventurarti oltre i confini della tua stiticita' mentale, ma ti e'
andata male. Nice try, provaci ancora e sarai piu' fortunato...

 opportunita' di utilizzare MONO per sviluppare componenti di Linux. Se
Due piani inclinati : una versione indietro (non castrata) di .net è
un mondo avanti alla maggior parte dei framework esistenti su linux e
è per definizione opportuno utilizzarlo visto che è open source,
oppure solo perché è stato progettato (bene) da MS ha la rogna ? E'
ideologia questa e di quella spinta, tipo non bevete la coca cola
perché è capitalista.... è triste.

 come si integrano nell'OS.
beh, io di Qt sto usando la 4.7, tra gli esempi c'e' anche un client
ssl implementato in poche righe di codice.
Non so come si integra nell'OS, ma per funzionare mi pare che
funzioni :-)
E devo dire che il codice generato da Qt e' leggero e pulito. Certo,
io Qt lo uso solo come semplice interfaccia grafica per librerie che
ho scritto a parte (e con gia' un'interfaccia batch che funziona
egregiamente). In particolare di Qt mi piace come si integra con
CMake: non m'ha dato problemi ad integrarsi col codice che avevo gia',
giusto aggiungere qualche riga (non piu' di 15) al CMakeLists.txt del
mio codice. E per la documentazione continuo ad usare il fido doxygen.
Per pregiudizio verso M$, dubito che con .Net sia possibile ottenere
altrettanto (con un codice altrettanto leggero e pulito). Sbaglio? E
comunque il porting verso altri sistemi operativi dipende da terze
parti (ad esempio mono). Nel mio piccolo ho un debole per Qt perche'
impressionato dal fatto che qualche anno fa lo compilai da sorgenti e
a prima botta su ~50Mb di codice non mi diede neanche un warning, di
contro wxWidget mi ispiro' svariati monologhi riguardanti improbabili
connubi tra figure sacre e antichi mestieri.
/askaholik che -ahilui- e' ricascato nei meandri IT per qualche
mese :-))

 altrettanto (con un codice altrettanto leggero e pulito). Sbaglio?
Codice per fare cosa? Se parliamo di Gui desktop, con Net/Mono ci
metti dentro perfino un finestra per un servizio di mapping (Google,
ed altri 10) trascinando un componente, e 10 righe di codice.
Come sempre dipende molto dalle librerie sottostanti che trovi già
fatte, da questo punto di vista Net/Mono hanno pochi rivali.

 qualcosina anche per Linux, sempre con tecnologia .NET ma usando Mono.
Avendo sviluppato sempre su windows capisco che tu non voglia usare
qualcosa di diverso da .NET. Se cosi' non fosse ti consiglio di
valutare il framework Qt (pero' C++).
Ciao

 andata male. Nice try, provaci ancora e sarai piu' fortunato...
quello che è andato male è il tentativo di impostare un dibattito in
barba ai tuoi noti problemi personali. il solo fatto che non si
intervenga per darti ragione incondizionata ti provoca il travaso di
bile e la sovraproduzione di insulti come anticorpi. te spiega cosa
c'entrano queste vomitate con l'intervento in cui ti ho semplicemente
fatto notare l'esistenza di componenti gnome in mono e di cui bastava
prenderne atto, peraltro nessuno avrebbe mai eccepito sull'ignoranza
dei tuoi interventi se non l'avessi sottolineata te con queste uscite
da gabibbo.
per quanto possa valere dirtelo non me ne frega nulla di sputtanarti
sulle tue minchionate, cosa su cui sei pienamente autosufficiente, e
se proprio vogliamo dirla tutta ti trovo interessante come una caccola
di cammello. purtroppo però qualche volta l'economia della discussione
pubblica richiede di doverti contraddire pur sapendo che
inevitabilmente ti partirà l'embolo e si dovrà subire la solita
sequela di attacchi personali. vabbeh ti avevo invitato a espormi in
privato i tuoi conflitti irrisolti col sottoscritto ma non s'è visto
niente, pazienza, in fondo a chi è costretto ad avere a che fare con
te di persona è andata molto peggio :)
fup

 te di persona è andata molto peggio :)
blablabla.. zzzzzzzzzzzzz   ..scrivi come un bambino noioso di 5
anni.. ora capisco come mai cosi' raramente ti azzardi a superare le
5
righe.. :) e per la cronaca non ho nessun "conflitto irrisolto" con
te, sarebbe ben ridicolo! Semplicemente a volte ti trovo buffo e mi
ci
diverto un po'...



Ti sorprenderň: il mio background č il C/C++ con le Win32 (neanche MFC) e
ad oggi ancora mi capita di usare quei linguaggi quando devo sviluppare
qualcosa di particolarmente critico (oppure per mantenere un mio vecchio
progetto personale nato 13 anni fa su Windows 95/98 e che gira
perfettamente ancora oggi su Windows 7 a 64 bit).
PaF

 fatte, da questo punto di vista Net/Mono hanno pochi rivali.
Qualche esempio di librerie sottostanti che sono decisamente migliori
rispetto ai "rivali"?

 rispetto ai "rivali"?
Furbo, ma non ho scritto "migliori" ;-)) Mi riferivo al numero di
librerie, puoi trovare praticamente di tutto, e se non ti basta non è
molto difficile interfacciarsi con librerie C-stile (almeno in
Windows).  Certo, magari un fautore del C potrebbe dire che quel
linguaggio  è ancora più diffuso e supportato da librerie
esistenti... :-) Cosa verissima, del resto.

 librerie, puoi trovare praticamente di tutto,
no, no, non dicevo per portare acqua al mio mulino! Anche perche' di
mulini non ne ho, anzi ;-)

 pregiudizio viene.
Non so, con html ci lavoro poco. Una volta ho provato NVU, uno dei
pochi tool wysiwig opensource che ho trovato. Si mangiava totalmente
le righe col codice PHP.... Capisco perchè usi l'editor di testo :-)

 software scritto bene.
La Qt hanno fama di essere un bellissimo pezzo di software, usato
anche per progetti custom come la realizzazione di effetti per film di
animazione e non.
Il mistero come mai Nokia non ne abbia fin ora sfruttato la qualità (o
forse l'ha fatto e non lo so eh..).

On 12/01/2011 20.52, PaF wrote:
 > Ti sorprenderň: il mio background č il C/C++ con le Win32
 > (neanche MFC)
[...]
Nessuna sorpresa. ;-)

 le righe col codice PHP.... Capisco perchè usi l'editor di testo :-)
Neanch'io ci lavoro. una quindicina d'anni fa feci il sito per una
grossa azienda turistica (che per l'epoca era bello grosso, in due
lingue, ~400 pagine in tutto), tutto in frontpage, tanti fronzoli,
bellino  a vedere, ci avevo messo anche degli applet java per far
calcolare delle tariffe, mappe interattive in javascript, insomma, per
l'epoca era bellino :-D
All'epoca c'era frontpage, netscape composer, e poco altro. Frontpage
era il piu' appariscente, pero' ci metteva dentro di tutto, ricordo
che per aggiungere un semplice effetto in javascript mi riempiva il
codice di decine di funzioni che semplicemente non usava :-)
Dopo qualche anno ho ripreso in mano il codice html ed era
intoccabile, ingarbugliato, confuso, qualsiasi piccola modifica e
zompava tutto. Veramente osceno. Visto che ho solo un paio di siti
amatoriali, mi sono scritto un content manager semplice semplice in
php ed uso quello ;-) Pensa che l'ho scritto nel 2004! Provo ad
immaginare ad un sito fatto con frontpage nel 2004, ora come ora
sarebbe stato intoccabile ed inguardabile! :-) era giusto per fare un
esempio - though!!
Faccio lo stesso ragionamento per il codice c++, se e' scritto bene,
se e' lineare, se -anche generato in automatico- e' comprensibile e
"does make sense", e' molto probabile che -con una buona
documentazione- tra diversi anni sia ancora utile, aggiornabile, e
compilabile!

 compilabile!
Non si può non essere d'accordo. Magari meglio un framework-generatore
da 4 soldi fatto in casa che un prodotto mostruoso, con centinaia di
opzioni, ma  al di là dello scibile umano. E che poi tra 2 versioni
già è obsoleto, e con le centinaia di opzioni che ti sei imparato a
memoria ci fai la birra :-))

 a Mono il programma gira anche su Linux.
Ha-ha. Con questa battuta mi hai rallegrato la giornata.

 di farlo andare altrove sono fatica inutile.
Quoto++;
p.s. ogni tanto fortunatamente si trova qualcuno che ragiona bene.



Mi fa piacere.
Comunque alla fine � quello che ho ottenuto, proprio la compatibilit�
binaria con il programma compilato con Visual Studio. 
PaF

 p.s. ogni tanto fortunatamente si trova qualcuno che ragiona bene.
Tu Mono l'hai provato ?
PaF