Newsgroup: it.comp.programmare
Titolo: In cerca di linguaggio semplice per programmi sotto Windows: F# va bene per un principiante ?

Domanda semplice: mi diletto a fare piccoli programmi/utility (per
Windows [XP, Seven]) a mio uso e consumo; finora ho sempre usato Delphi
6 P.E.: vi sentireste di consigliare il passaggio a F# ?
Qualche dettaglio sul perch�: da un annetto ho preso una "sbandata" per
l'eleganza e semplicit� di linguaggi tipo Python, ma ancora fatico a
tirarci fuori qualcosa di decente, soprattutto nel momento in cui voglio
lavorare in ambiente a finestre.
Purtroppo il matrimonio con Python fatica a funzionare, principalmente
perch�, essendo principiante, commetto ancora diversi errori ed in
questi casi risulta poco friendly poich� spesso il programma si chiude
[e talvolta anche l'editor stesso [PyScripter, Idle,..]!) senza dare
spiegazioni sulla natura dell'errore. 
Con le librerie grafiche (WxPython, QT) le difficolt� aumentano, sia in
termini di dichiarazioni (derivare classi, __init__, self,...), sia in
termini di stabilit� (di WxPython non mi funziona la demo, con QT il
programma, se corretto, funzionava solo alla prima esecuzione, per le
successive dovevo chiudere l'editor [PyScripter,Idle,...]...insomma,
come diceva il Liga "a sbagliare sono bravissimo da me", non mi serve
aiuto...(ho sempre un filo di sfiga all'inizio: con D6 mi imbattei nel
bug di ShellCtrls nelle prime 3 ore di prova)
Attratto quindi da una rivista che indicava come presente il supporto di
Python in VisualStudio 2010 (che in realt� pare alquanto incompleto
rispetto ad altri linguaggi), mi ha incuriosito scoprire il linguaggio
F# che sembra comunque dotato di una sua semplicit� ed eleganza ed un
misto di filosofie dentro di s� che permettono inizialmente di cavarsela
anche con il "vecchio" modo di ragionare, avendo poi tempo per impararne
di nuove.
Leggendo il sorgente di semplici programmi riesco (pi� o meno) a capirne
la logica pur non conoscendo la sintassi, riprendendo la
semplicit�/potenza di Python per svolgere compiti discretamente
complessi in poche righie, con in pi� un ambiente di sviluppo che mi
aspetto essere pi� solido ed amichevole per un principiante.
Simpatico l'operatore |> , la gestione dei tipi automatica (quando
possibile), gli oggetti con metodi & propriet� con nomi/sintassi (per
me) intuitive, la potenza dell'operatore "let" nelle definizioni, le
funzioni che accettano i parametri un po' per volta...spinge ancora pi�
in l� (rispetto a Python) la rigidit� delle definizioni ma, pare, a fin
di bene...
Insomma, non dubito che in alcuni ambiti pi� avanzati/specialistici non
sia il linguaggio ideale, ma per un principiante alla ricerca di un
linguaggio chiaro e semplice per creare piccole utility per Windows, vi
sentireste di consigliarlo ?
L'unico dubbio � la portabilit� delle applicazioni prodotte: vorrei
poterle usare anche su vecchi portatili con XP non proprio
aggiornatissimo (spero che al massimo si tratti di installare un
pacchetto .NET recente, senza dover per forza installare service pack su
un sistema che va gi� bene cos�).
Grazie anticipatamente.
Simone

aggiornatissimo
Ti serve il runtime di .NET.

 un sistema che va gi� bene cos�).
Lascia perdere dotnet!
Se cerchi semplicita' e retrocompatibilita' evita dotnet e tutto cio' 
che e' marchiato microsoft.

che e' marchiato microsoft.
.NET � un'ottima piattaforma di sviluppo. C# � un linguaggio
sufficientemente semplice e che si adatta benissimo alle esigenze
dell'OP.
Esplicita le tue critiche con dei fatti tecnici oggettivi, altrimenti
la tua � solo fuffa.
E poi, oggi, si dovrebbe cercare la retrocompatibilit� con cosa?
Anzich� dare opinioni in negativo ("astieniti da MS") ne sai dare
anche qualcuna in positivo ("utilizza il tool X") ? o ti limiti a
buttare merda su cose che palesemente non conosci?

 buttare merda su cose che palesemente non conosci?
Hai letto la mia risposta?
L'OP parlava di Delphi, e io ho detto che Delphi va benissimo per 
sviluppare applicazioni che girano in finestra.
Non altrettanto valido reputo Phyton, che va bene per quasi tutto, ma 
non e' il massimo per fare interfacce.
E comunque, per tua informazione, io non parlo di cose che non conosco.
Quello di cui parlo, e che critico apertamente, mi tocca usarlo, lo 
conosco fin troppo bene, e le vedo tutti i giorni applicazioni pesanti e 
mastodontiche, che hanno prerequisiti pazzeschi per fare delle idiozie.
Scelte aziendali, purtroppo, che poi mi tocca grattare!

 Io ce l'ho un buon motivo per criticare dotnet: non e' un ambiente libero!
Roberto, te sei porti pi� clienti a Microsoft dei post di Andrea.
Quando deliri nel modo suddetto, hai l'effetto contrario a quello che
vorresti.
E no, io non voglio avere niente a che fare con .Net per un
semplicissimo motivo la mia piattaforma di sviluppo principale �
supportata 0 da .Net e poco da mono. Niente di pi�, niente di meno. 
-- 
-riko

 Roberto, te sei porti pi� clienti a Microsoft dei post di Andrea.
Non che ad Andrea credo interessi nulla di fare questo, intendo. O per
lo meno, non ho motivo di supporre questo o il suo contrario.
-- 
-riko

 E comunque, per tua informazione, io non parlo di cose che non conosco.
Lo fai, invece, e sarebbe ora che la smettessi.

 Python per poterne parlare?
Evidentemente qui sei tu il solo depositario del sapere: credo che la 
smettero' di risponderti, non vorrei che poi ti facese male la schiena 
se devi chinarti per abbassarti al mio infimo livello.

 non e' il massimo per fare interfacce.
In base a cosa, al tutorial che hai letto o a quello scritto da OP (che
ho omesso di commentare per piet�, che gli devo dire)?
-- 
-riko

 dargliene atto, ma non � il pi� usato perch� � un prodotto di qualit�.
Continuate a dire, voi detrattori, che non � un prodotto di qualit�. Devo
ancora sentire le ragioni per cui non sarebbe un prodotto di qualit�.
Tiratele fuori. Non si pu� buttare merda su qualcosa senza conoscerlo. 
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Evidentemente qui sei tu il solo depositario del sapere
Non hai risposto alla domanda, come al solito. Se smetti di rispondermi,
farai un piacere al gruppo non a me. Meno scrivi, meno probabilit� c'� che
si leggano cazzate.


 ho omesso di commentare per piet�, che gli devo dire)?
In base a niente, come al solito. In base ai suoi "sentito dire", come al
solito. E' qualche anno che leggo i giudizi insulsi di questa persona.
Giudizi basati su retoriche pi� o meno diffuse. E, si sa, tanta gente d�
fiato alla bocca tanto per farlo. Adesso aspetto di conoscere il perch�
con Python (linguaggio che ha potenzialit� superiori a quelle di molti
altri) non si dovrebbero sviluppare agevolmente delle GUI. Il fatto che
esista almeno una decina di framework per sviluppare GUI con Python
ovviamente non conta; quella povera gente che si � data al loro sviluppo
non aveva ancora conosciuto Montaruli, altrimenti avrebbe impiegato meglio
il proprio tempo.


 qualit�.
Ma � il balletto del delirio? .NET non � libero (parliamo
dell'implementazione). Ovvio, direi. 
Io non conosco persone competenti che dicano su base ideologica (e non
tecnica) che .Net fa schifo. E' ovvio che partendo da un presupporto
ideologico .Net � segato a priori.
Ma da un punto di vista tecnico *non* conosco obiezioni ragionevoli
sulla *qualit�* del problema. La piattaforma � davvero ben fatta, forse
anche meglio della JVM (o per lo meno non peggio). Ci girano sopra
linguaggi davvero belli (Python, scheme). C# non � affatto male (anzi,
C# 3 mi piace pure, per il pochissimo che lo conosco). 
Quindi? Ok. E' Microsoft. Amen, eh. Non � che OP chiedeva cosa usare per
sviluppare su Linux. Vuole lavorare con F#. Obiezioni?
1. Haskell � meglio (per che valori? possibile, eh)
2. scheme � meglio (probabile, ma c'� un'ottima implementazione su 
   .Net)
3. F# � un cattivo linguaggio (perch�... )
4. .Net � una pessima piattaforma (perch�...)
Se la risposta � "perch� non � libera", a qualcuno che vuole fare
utilities per Windows... che dire, no?
-- 
-riko

 
http://blog.washingtonpost.com/securityfix/2007/01/internet_explorer_unsafe_for_2.html
Bello, interessante, peccato che si stesse parlando di .NET, non di IE

 Si parlava di prodotti microsoft! :)
Decisamente no, si stava parlando di .NET.
Ma tranquillo, nessuno si aspettava degli argomenti seri.
  ngw
-- 
Nicholas Wieland (ngw)
Zooppa CTO
911 Western Avenue, Suite 420
Seattle, WA  98104  US

 wrote:


Decisamente no, si stava parlando di .NET.




vaaa bene, allora il discorso � questo: hanno deciso che per esser


concorrenziali dovevano copiare, ops "sviluppare a loro volta",


la macchina virtuale di sun, ma questo era in constrasto con il fatto


che se lo avessero fatto


avrebbero dovuto sviluppare la macchina virtuale anche per linux e


mac, ma quando mai M$ ha fatto qualcosa per il bene della comunit�? �_


�


(risultato: una macchina virtuale che non astrae il sistema operativo


e quindi non serve a niente)




Cazzo ! Non sapevo che il CEPU fosse peggiorato cosi' tanto !


Che roba, almeno la parte puramente storico / nozionistica la imbroccavate un volta, per poi cadere miseramente su quella tecnica, adesso vi inventate di sana pianta le cose.


Peccato esistano n implementazioni della JVM, (tutte fortemente standardizzate - ah no, in 15 anni non � stato cacato mezzo standard) che tale JVM sia cos� meravigliosamente portabile da girare letteralmente di merda su qualunque Unix che non siano i soliti Linux / OS X, che di linguaggi alternativi a Java se ne siano sempre visti pochini e cominciano ad affiorare adesso con Scala e JRuby.


Peccato anche che io stessi giocando con mono un cosa come 6 o 7 anni fa.




Sarebbe stato palesemente in contraddizione con la loro filosofia e


cio� quella di sviluppare prodotti in modo che la gente


sia *costretta* ad usarli, e non quella di svilupparli meglio in modo


da *attirare* programmatori.




Anfatti ! Io c'ho 10 anni di uso di Ruby e Python, e sta scimmia di merda che mi tengo sempre dietro che mi dice "usa .net, usa .net, usa .net". Un fastidio !




Siccome la gente � appunto *obbligata*, a loro non gli interessa


sviluppare in modo decente, perch� tanto il loro prodotto lo vendono


lo stesso.




Non fa una piega :D


Come vendono loro .Net, oh come vendono loro .net.




Per questi motivi, la qualit� � anche legata alla licenza.




Assolutamente ! Ma infatti secondo me dovrebbe essere sotto GPL, ma tutto pero', no come GCC che poi tipo ti lascia anche scegliere la licenza del tuo software. Pensa, tutto il software del mondo sotto GPL, che qualit� supermeravigliosa che riusciremmo a raggiongere :D




N.B.: non st� dicendo che M$ non ha le conoscenze per fare le cose


bene,


dico che il loro prodotto � guidato dal management che segue


l'andamento del mercato e danno le direttive in funzione di ci�.




N.B.B.: non me ne frega niente se per te queste non sono motivazioni


tecniche, ma per me si.




***** per tornare al Topic: il nostro amico pu� anche imparare il C# o


il visual basic che sono comunque linguaggi tutto sommato semplici per


iniziare,


il suo problema � quei linguaggi non li potr� usare da nessun'altra


parte se non su piattaforme M$,


(i.e. se un domani vorr� usare mac o linux, con quei linguaggi si


pulisce il ...
� 
*****




E' gi� qualcosa, da quello che mi scrivi spero a) che tu sia molto giovane b) che il tuo culo sia molto piccolo. O in alternativa che ci sia un lavandino vicino.




Ma tranquillo, nessuno si aspettava degli argomenti seri.


eh quando si parla di prodotti M$ la seriet� decade di conseguenza..




Specialmente quando si viene dal dorato mondo dei l33t h3x05 Linux, e si � sostituita la competenza tecnica con del ben pi� facile idealismo.


Povero Linux, cosa ti hanno fatto.


Perdiamoci di vista per un 10 anni, ok ?




� 
ngw


 [snip di immane congerie di cazzate]
Ti prego vieni su icod che ci vuole gente cos�.
-- 
-riko



Cazzo questa � una idea !
Una nuova generazione di MaxAdami, che quelli vecchi li ho rotti tutti !


 che quelli vecchi li ho rotti tutti !
Ma l'idea era un po' quella. Ci vuole ricambio generazionale.
Che uno di questi giorni mi faccio una passatina su icoli a vedere che
capita.
-- 
-riko

 anche per una persona anziana come te! :)
Ma essere un bimbominkia non va mica male, figurati, � che prima di 
partire con gli spiegoni si potrebbe tentare almeno di rispondere 
correttamente su usenet, via.


 Simone
Da quanto leggo le tue principali difficoltà derivano dal fatto che
fai il grande errore di lanciare le tue applicazione dall'IDE anzichè
da shell.
Che sia IDLE, PyScripter o qualunque altro il metodo "standard" di
lanciare programmi python è tramite la shell.
Prima ti abituerai a farlo meglio sarà.
Al di là di quello sono d'accordo con te che per lo sviluppo di
interfacce grafiche su Windows Python non renda la vita facile tanto
quanto altri linguaggi, ma ti posso assicurare fin da ora che nel caso
in cui tu tenga *molto* alla semplicità e all'eleganza come fattori
determinanti nel valutare un linguaggio difficilmente troverai
alternative migliori a Python.
--- Giampaolo
http://code.google.com/p/pyftpdlib/