Newsgroup: it.comp.macintosh
Titolo: Il meraviglioso mondo della programmazione

Ciao a tutto il gruppo,
Premetto che, essendo totalmente a digiuno di programmazione, potrei
scrivere delle assurdità.
Di punto in bianco mi è venuta voglia di programmare per cominciare a
scrivere dei nuovi programmi inutili :-)))) E che vuol dire direte voi?
Immagino imparare un linguaggio di programmazione...
Quello che vi chiedo è relativamente semplice: da dove comincio? :-))))
Sto scaricando xcode 2.2 ma non so che farne...datemi un suggerimento...
Grazie1000
Ale

> Sto scaricando xcode 2.2 ma non so che farne...datemi un suggerimento...
se voui imparare seriamente, e soprattutto se sei completamente a 
digiuno, devi cominciare a stuiare un pò i fondamenti della 
programmazione, magari parti subito dal concetto di programmazione ad 
oggetti.
fatto questo, poi resta da imparare il linguaggio di programmazione, ma 
se hai compreso bene le asi della programmazione, si tratta di imparare 
solo poche regole sintattiche.
se invece vuoi saltare a piè pari imparando un linguaggio, ti consiglio 
di uitlizzarne uno più semplice, tipo python

 oggetti.
Un libro? Una risorsa sul web? Fino ad oggi il mio mondo è stato cisco e
le reti e tutto quello che ci gira intorno...

, se non temi di smarrirti.
-- 
La parte migliore dell'innamoramento e' quando ancora non
immagini che l'oggetto del tuo amore ha tutt'altri piani.

, se non temi di smarrirti.
Ok...procedo...i libri mi piacciono e mi piace incrementare la mia
libreria :-)
Grazie1000
Ale

 Programming in Objective-C, Stephen Kochan
Io però non suggerirei Objective C come linguaggio per iniziare.
È un bel linguaggio, ma ha alcune idiosincrasie mutuale dal C (per
adesso la necessità di gestire la memoria in modo semi-automatico),
oltre la necessità talvolta di trattare con roba strettamente C.
E chiaramente il C è un linguaggio per iniziare solo nel caso
dell'approccio: via le stampelle, o corre o si spacca il naso ;)
Personalmente strasuggerisco Python per iniziare. Semplice, completo,
permette di fare *tutto* con uno sforzo minimo. E tenta anche di
scoraggiare le pratiche nocive.
Per Python suggerisco di chiedere su it.comp.lang.python con cosa
iniziare. Io come libro ho sempre sul mio tavolo Python in a Nutshell
del "nostro" Alex Martelli.
Tuttavia per iniziare potrebbero consigliarti o qualche tutorial in rete
(
www.python.com
, 
www.python.it
) o il Dive into python (qui pareri
discordi, tutti concordi sul fatto che sia buono, ma alcuni dicono che è
adatto per inizare, altri meno).
Libri c'è (mi pare, la traduzione non so esattamente come titola)
Programmare in Python edito da OReally.
Il bello di iniziare in Python è che:
1) sei cross-platform
2) lo puoi usare per scrivere tool unix
3) lo puoi usare per software di calcolo scientifico
4) lo puoi usare per applicazioni di rete
4b) "   "   "     "       "       web
5) lo puoi usare per creare "script" di automatizzazione
6) lo puoi usare per applicazioni con gui, sia cocoa, sia
multipiattaforma
Insomma con un unico linguaggio puoi provare tante cose e decidere solo
in seguito.
-- 
non vincono, non vinceranno, non hanno domani
la forza è nel puntello impugnato da oneste fortissime mani

 libreria :-)
Vai piano... attendi.
-- 
non vincono, non vinceranno, non hanno domani
la forza č nel puntello impugnato da oneste fortissime mani

E provare AppleScript?
Andrea

 E provare AppleScript?
Ci stavo appunto giocando :-))

 in seguito.
vado a vedere e prendere risorse...mi sta affascinando tutto ciň...
grazie per le info, altrimenti non saprei dove sbattere la testa :-)
Ale

 iniziare.
I tedeschi vedo che non lo riportano tra i gruppi...
-- 
Porco Jobs!

 I tedeschi vedo che non lo riportano tra i gruppi...
Strano strano. Io lo leggo e ci posto. :)
Ed esiste anche da molto tempo.


 E provare AppleScript?
Dipende un po' da cosa vuole fare, eh :)


 oggetti.
Dissento nel modo più totale, il che mi è confermato dall'iter
svolto alla facoltà di informatica.
Inizia dai FONDAMENTI, ovvero la programmazione iterativa / strutturata.
Puoi usare qualsiasi linguaggio "pulito" allo scopo, molto didattico il 
Pascal ma poco utile in contesti reali. ANSI C è una buona scelta, ma 
anche Java usato "non ad oggetti".
Per gli oggetti... DOPO, DOPO, DOPO ! Non prima di aver mangiato i 
fondamenti.
ciao, f.

E provare AppleScript?
Mi pare molto ma molto limitato. Oltre che uno dei pochi linguaggi di 
programmazione più barocchi del pascal.

 fondamenti.
Secondo sto ragionamento dovrebbe partire dall'assambler.... 

 Secondo sto ragionamento dovrebbe partire dall'assambler.... 
Si chiama "assembly", e comunque... non c'entra nulla.
Programmando ad oggetti, di fatto usi programmazione strutturata / 
iterativa nell'ambito - appunto degli oggetti.
Quindi DEVI padroneggiarla, gli "oggetti" sono una "filosofia 
aggiuntiva" alla programmazione iterativa che comunque CONTINUI
AD USARE anche programmando OO.
L'assembly lo raccomando comunque per avere un "insight" di ciň che 
succede DENTRO la cpu. Magari anche solo a livello teorico su CPU 
semplici tipo MIPS.
In ogni caso NON SERVE per imparare a programmare
linguaggi high level.
L'assembly dell'x86 lo lascerei perdere.
ciao, f.

 Sto scaricando xcode 2.2 ma non so che farne...datemi un suggerimento...
Prima di inizare ad usare un tool relativamente complesso come XCode,
effettivamente sarebbe meglio 'farsi le ossa' imparando a conoscere un
linguaggio di programmazione e allargando gli orizzonti sulle possibilita'
offerte dai vari linguaggi/framework.
Per un neofita, python ( 
http://www.python.org
 ) va benissimo : sintassi
semplice, abbondante documentazione e su mac e' preinstallato. Trovi un
sacco di ottimi libri nel catalogo Oreilly per questo, ma se vuoi provare
prima di investire dei soldi (e i libri tecnici sono costosetti!) ci sono
degli ottimi tutorial. Il piu' famoso e' quello incluso nella
documentazione di python che trovi online qui
http://python.org/doc/2.4.2/tut/tut.html
 (puoi trovare un indice di
documentazione disponibile qui 
http://www.python.org/doc/
 ). C'e' anche
piu' di un libro online, uno di questi 'How to Think Like a Computer
Scientist: Learning with Python' mi sembra che introduca alla
programmazione usando python e potrebbe essere un buon testo :
http://www.greenteapress.com/thinkpython/html/
 .
Esistono altri linguaggi definiti 'scripting' come python, ma non li
conosco bene. Si parla un gran bene di ruby, soprattutto in relazione al
framework 'ruby ion rails'. La home page e' 
http://www.ruby-lang.org/en/
, una volta esisteva un libro online sul linguaggio, forse qui:
http://www.rubycentral.com/
Altro linguaggio he puo' andare bene e' Java. Anche questo e'
preinstallato su mac con tanto di tool di sviluppo. Un po' meno semplice
da imparare di python, dotato di una vastissima libreria e linguaggio
'cross platform' per definizione, quello che scrivi funzionera' senza
troppi problemi su qualunque sistema operativo (anche per python questa
cosa e' vera in linea di massima). Esiste anche qui un tutorial ufficiale
: 
http://java.sun.com/docs/books/tutorial/index.html
 . Esiste anche un
libro online che spiega il linguaggio anche se non so se per una persona
agli esordi va bene : 
http://www.mindview.net/Books/TIJ/
 . Trattasi di
Thinking in Java, una vera pietra miliare fra i libri sulla programmazione
(io l'ho usato e lo uso tantissimo)
Per la programmazione su mac il modo per integrarsi al meglio con il
sistema sarebbe quello di usare Objective-C e Cocoa. La documentazione ADC
inclusa in XCode (o online a 
http://developer.apple.com/referencelibrary/
 )
e' vasta, anche se non vedo tutorial che aiutino a partire. Il libro di
Stephen G. Kochan 'Programming in Objective-C' (Sams) e' ottimo per
imparare il linguaggio e la programmazione, visto che non assume
esperienze precedenti. Partendo con questo testo (che insegna il
linguaggio e parte di Cocoa, il foundation framework) si potrebbe
idealmente proseguire con il testo 'Cocoa programming for mac os x second
edition' di Aaron Hillegass (Addison Wesley) che spiega tutto quello che
serve per creare applicazioni veramente 'made for mac'. Il primo e
specialmente il secondo danno qualche suggerimento per partire con XCode.
Ultimo ma non ultimo, il classico C e C++. Rispetto ai precedenti questi
sono linguaggi piu' vicini alla macchina e per questo generalmente piu'
performanti, pero' decisamente piu' complessi da imparare. Li ho citati
insieme per lo stretto legame che hanno, ma  sono decisamente distinti per
il modo di programmare che impongono : procedurale il primo, ad oggetti il
secondo. Nella mia esperienza ho visto che imparandoli per primi (con
qualche spruzzata di conoscenze sul funzionamento interno dell'hardware e
sul linguaggio macchina assembly), alla fine aiutano a capire il "perche'
fa cosi'" di molti programmi e linguaggi di programmazione : e' un bonus
aggiunto, di cui ovviamente puoi fare volentieri a meno ai fini del nostro
discorso.
Online non saprei consigliarti tutorial (probabilmente ce ne sono a
bizzeffe, cerca con google), io ho usato un libro online sempre di Bruce
Eckel, Thinking in C++ :
http://mindview.net/Books/TICPP/ThinkingInCPP2e.html
 , anche qui gli
avvisi relativi alla versione Java si applicano (non e' detto che sia
proprio per 'beginner'). Di libri ce ne sono di ottimi nel catalogo
Addison Wesley (evita pero' le 'bibbie' degli inventori dei linguaggi,
Ritchie e Stroustrup rispettivamente, perche' non sono semplici).
Per Objective-C, C, C++ (forse anche java? non ci ho mai fatto caso
perche' io ho sempre installato subito!) per sviluppare su mac basta
installare i developer tools che mettono a disposizione tutti i
compilatori e librerie necessari.
E' venuto fuori un bel post o___o, Spero che invece che aiutarti non ti
abbia confuso ancora di piu' le idee! ^^;;
-- 
Fei Fong Wong * 
nabeshinL...@penpen.com
"That long, long memory of a dream...
Perhaps it was the memory of my soul."

 Inizia dai FONDAMENTI, ovvero la programmazione iterativa / strutturata.
Eh?
Scusa, scordati per un momento tutto quello che sai (di informatica, di
programmazione etc.) e fai mente pulita.
Fatto? Bene...
Per te e' piu' facile capire che esiste una lista di operazioni da eseguire
per avviare un veicolo, ma che devi stare attento che se il veicolo e' una
moto devi premere il bottone di avviamento, se e' una macchina devi girare
la chiave e se e' una bicicletta devi semplicemente cominciare a pedalare?
...oppure che una macchina, una moto e una bicicletta hanno tutte delle
ruote ma che macchina e moto hanno anche un motore, che la macchina puo'
essere lavata, avviata etc. come la moto, ma la macchina puo' anche aprire
le portiere?


 le portiere?
Vuole "imparare a programmare".
"giocherellare con classi già fatte" != "programmare".
Ribadisco: la programmazione iterativa / strutturata è uno dei 
FONDAMENTI della programmazione ad oggetti.
Vatti a vedere, a titolo esemplificativo, i corsi di Programmazione I e 
II alla facoltà di informatica.
Ma non serve, perchè anche un bove si accorge che non hai speranza di 
creare nulla AD OGGETTI se ti perdi dietro ad un if-then-else.
ciao, f.

 L'assembly dell'x86 lo lascerei perdere.
Oddio mi sa che tra poco torna d'attualità! :D

 Ed esiste anche da molto tempo.
Giuro, non lo vedo, provo a ricaricare l'elenco dei gruppi?
-- 
Porco Jobs!

 Oddio mi sa che tra poco torna d'attualità! :D
Si ma se parti da quello ti spari. E' troppo complesso per essere 
didattico, troppo arzigogolato per essere compreso al volo leggendo
il codice macchina ... molto più istruttivo studiarsi i rudimenti
su CPU con (relativalemte) poche istruzioni fixed-length.
In ogni caso ribadisco che non è assolutamente indispensabile per 
programmare. Ma male non fa.
In università ci facevano scrivere codice macchina SU CARTA con a 
disposizione le sole tabelle degli opcode - bastardo ma, alla fine,
utile per CAPIRE che succede davvero.
ciao, f.

 abbastanza particolari, IMHO ti conviene sapere bene il resto PRIMA.
Hai ragione, però considera na cosa: il design OO lo fai con tool grafici ad 
alto livello e con la tua bella testolina. La codifica implementativa 
scribacchiando il solito vecchio codice. Cosa è più divertente ed 
entusiasmante: disegnare un'applicazione con l'interface builder o hello 
world col vi? ;-) Io partirei con 'Cocoa programming for mac os x second 
edition', un testo molto piacevole ed interattivo da leggere. I cicli 
if-then-else si imparano strada facendo.
Alex

 Non piu`, con AppleScript Studio.
Il linguaggio resta la ciofeca che č... poi non č che capolavori tipo 
galerie (che temo sia stato tutto scritto con as studio) siano cosě 
performanti e robusti...
Alex

 Giuro, non lo vedo, provo a ricaricare l'elenco dei gruppi?
Prova! c'è li!.


 world col vi?
1. non vedo il collegamento fra "design OO" e InterfaceBuilder. Non è
che uno progetta solo GUI, anzi, generalmente la GUI è se non la parte
più banale, certo non la più rognosa (da un punto di vista di OO).
2. Direi che la virtù è nel mezzo. Partire con tool di alto livello
significa avere buone probabilità di non imparare mai quello che gira
sotto, o di impararlo a spanne.
D'altra parte partire in Pascal *oggi* fa ridere. È conoscenza "morta"
non riutilizzabile in modo immediato (oggi ci sono ambienti ben più
avanzati). Partire in C è l'approccio che dicevo sopra, o corri o ti
rompi i denti.
Io ho corso (ma in effetti programmavo in altro da quando ho avevo 8
anni, diciamo che il C è stato il primo aggeggio con cui ho affrontato
cose un po' serie). Ma non per tutti vale la stessa cosa.
Continuo a ribadire. Python. O Ruby, voglio dire.


 creare nulla AD OGGETTI se ti perdi dietro ad un if-then-else.
Non ho ben idea di quale tu pensi che sia la didattica standard di un
linguaggio ad oggetti.


 rompi i denti.
L'object-c con le varie classi cocoa mi pare decisamente alla portata di 
molti. Alla fine per fare cose anche non affatto banali operatori binari e 
puntatori non servono poi tanto.
Alex

 puntatori non servono poi tanto.
Ci sono oggetti più facili da usare e applicabili in un numero maggiore
di situazioni.


 Il linguaggi sono strumenti, basta usare quelli giusti per il lavoro.
Questo è sicuramente vero. Ma io ho trovato molto più complicato 
utilizzare AS (proprio per la sintassi barocca e la semantica diciamo 
contestuale) che l'objective-c.
Alex

 nemmeno una sintassi/semantica univocamente definita.
Errore pesante. La sintassi di AppleScript e' descritta nel suo Sacro
Tomo,
<
http://developer.apple.com/documentation/AppleScript/Conceptual/AppleSc
riptLangGuide/>.
AppleScript e' la parte meno documentata _e_ piu' importante dell'IPC di
Mac OS X. C'e' uno stupendo ponte Cocoa <-> AppleScript, peccato che sia
documentato orribilmente (uno dei tanti motivi per cui AppleScript
Studio, che su questo ponte si basa, non ha preso gran che piede... se
non contiamo il debugger orrendo e l'impossibilita' di avere messaggi di
errore comprensibili quando qualcosa va storto).
 - ∞

 di situazioni.
Verissimo, ma visto che uno lo fa per proprio piacere personale, tanto 
vale concedersi il meglio. Non trovi? Comunque ripeto il mio consiglio 
è accattarsi Cocoa programming. Il libro non è molto lungo, contiene 
tantissimi tutorial che possono essere seguiti passo passo da chiunque. 
Questo permette di avere un gratificazione immediata dal vedere 
un'applicazione complessa sviluppata in pochissimo, di apprezzare i 
raffinati strumenti di sviluppo di mac os x. Se gli piace potrà 
facilmente capire i concetti che gli stanno dietro (che è chiaro non 
sono banali) approfondendoli. Se non gli piace avrà buttato i soldi del 
libro.
Alex

 errore comprensibili quando qualcosa va storto).
Anche se ci sono delle soluzioni di terzi per avere un source code 
debugger (anche se costosette). Il vero problema sono le performance 
davvero basse delle applicazioni scritte in as.
Alex

 logica (non sintassi: *logica*) OO passassi ad una pattern matching?
Mai vista, a che ti riferisci?
Comunque non capisco tutto questo accanimento a difendere as. E' un 
eccellente collante, anche se la sintassi fa cagare. Certo da quì a 
consigliarlo come linguaggio general purpose... be secondo me c'è di 
meglio! ;-)
Alex

 scheletrato degli handler che gestiranno la GUI.
A balestra sei un po pallosetto... Rileggiti il topic e cerca di 
affrontarlo facendo discorsi sensati anziché controbattere a frasi 
fuori contesto.

 come java e C++ dipendono dalle librerie, trova un altro argomento :)
La semantica varia in base al contesto (si pensi all'overloading del 
c++). Ma la sintassi del linguaggio no.

Vabbè me so rotto er cazzo, usate il linguaggio che volete e 
godetevelo. La scelta migliore tanto non esiste! :D
Buonanotte.

 cazzo dici?
Che la tua obiezione era data a cazzo... il discorso sull'interface 
builder non era riferito ad as ma a chi diceva che programmando in 
cocoa non si faceva anche design. Chiaro che poi il design lo fai anche 
quando scrivi la lista della spesa. Ma a mio avviso la programmazione 
cocoa usando xcode č molto focalizzata sull'aspetto design piů che 
sulla codifica procedurale.

 lo stesso per applescript.
A me pare di no. Mi sta bene anche se la pensiamo diversamente! :D

 nonche' comodissimo se devi far interagire applicazioni diverse.
Allora la pensiamo esattamente allo stesso modo. Io criticavo solo chi 
lo suggeriva al nostro amico come punto di partenza per avvicinarsi 
alla programmazione. A mio avviso in tale ottica è un po specialistico 
(al pari di perl e forse pure python).

 "procedurale"? :-)
Ehm, termine pomposo per definire lo scribacchiare codice palloso. Alla 
fine quando sei arrivato a definire i tuoi bei metodi, sempre a 
scrivere codice finisci. E sto codice non ha più nulla del OO, ma solo 
costrutti procedurali.
Miiiii, pe scrivere ste cazzate me stai pure a fà fare tardi! :DDD

 approccio indolore al mondo degli oggetti ;-)
In effetti non sono d'accordo su quella frase in particolare! ;-) A tal 
scopo raccomanderei java. 10 ad 1 che prima o poi si abbandona as in 
favore di js! ;-)
Alex

 soldi del libro.
Generalmente sulla mia esperienza chi parte con troppa magia (e molte
cose di Cocoa sono semplicemente "magiche", nel senso che a livello
elementare uno non sa come funzionano eppure le usa) alla fine continua
ad usarla senza andare sotto.


 (al pari di perl e forse pure python).
Io non sono a conoscenza degli usi di Perl (ma immagino che qualcuno
documentato possa mostrare che non è un linguaggio "specialistico"), ma
per Python ti stai sbagliando di grosso.
 Considerare Python un linguaggio "specialistico" è un errore marchiano,
visto che viene usato (con successo) per un po' ogni cosa. 
Viene usato sia come linguaggio interno di grosse applicazioni
(Civilization IV addirittura lo espone per scriptare i moduli e
compagnia, ma buona parte dello stesso è scritto in Python, quindi un
gioco).. applicazioni web, sincrone e asincrone, quindi interazione con
db, generazione di codice xml, SOAP, CORBA etc
Manipolazione di immagini (il sw che manipola le immagini del telescopio
Hubble è in Python). Software di sistema (molti tools grafici e non di
red hat, mi pare di ricordare).
Anche applicazioni con GUI di varia natura.
Perfino un sistema operativo è scritto in gran parte in Python (kernel
compreso, a parte alcuni pezzettini che devono interagire direttamente
con l'hardware). Ovviamente questo è un esempio giocattolo, non un OS di
produzione... ma direi che è un risultato non da poco per un linguaggio
che tu definisci "specialistico".
O forse ho capito. Python è un linguaggio specialistico nel senso che è
specializzato nel fare fare le cose rapidamente e bene.


 Vero, linguaggi con lo stesso formalismo possono avere semantica differente.
Se è per questo anche lo stesso programma valido in un noto linguaggio
può avere semantiche differenti.


  Ma la sintassi del linguaggio no.
Riusciresti a fare un esempio di sintassi che varia in base al contesto?
Non riesco manco a capire cosa accidenti voglia dire.


 libreria :-)
Mah, io ti sconsiglio qualsiasi linguaggio che abbia "C" nel suo nome.
Imparati un linguaggio ad alto livello in modo da avere risultati
immediati, e non avere un grosso delay dal momento in cui inizi a
studiare al momento in cui produci qualcosa di effettivamente utile,
avere un qualche tipo di ritorno è importante, piuttosto che bestemmiare
dietro a dei dettagli o a litigare con un compilatore.
Python e Ruby vanno bene. Visto che da quel che ho capito sei un
sistemista poi, sono la morte sua, puoi usarli a lavoro in tempo
ragionevolmente breve.
  ngw

 Quello che vi chiedo è relativamente semplice: da dove comincio? :-))))
concordo con tutti quelli che ti hanno indicato Python.
Questo linguaggio ha anche il grosso vantaggio anche di rendere semplice
il concetto di programmazione a oggetti e soprattutto rende semplice la
sua applicazione.
Io al posto tuo mi scaricherei un buon text editor (ad esempio
TextWrangler) e la documentazione dal sito 
www.python.it
Poi, magari, in futuro passerei a qualcosa della famiglia C/C++/Obj-C
etc..
P.S.
Anche Ruby sembra molto interessante.
A dire la verita' di linguaggi interessanti ce ne sono a pacchi.
Se vai su Wikipedia potrai trovare un sacco di nomi.
-- 
Ciao da Francesco B.

 e io che avevo deciso di non infierire... :-D
io puntualizzo... :)
-- 


 nel mare dei template perche' chi piu` matcha li trasformi.
Detto cosě mi pare un'estremizzazione dei linguaggi funzionali. Ma mi 
pare ovvio che non ci si inventi mai nulla.

 Non riesco manco a capire cosa accidenti voglia dire.
Mi riferisco alla costruzione dei reference agli oggetti (the first 
page of the ....) dove le keyword utilizzabili dipendono appunto dal 
dizionario ed alle clausole every/whose che funzionano solo se definite 
nel dizionario target e con semantica dipendente dal dizionario.

 per Python ti stai sbagliando di grosso.
Premetto che ci ho messo un "forse". Io conosco ed apprezzo perl ed a 
mio avviso non può essere considerato un linguaggio general purpose, ma 
specialistico in termini di campo di applicabilità (script di sistema, 
processamento di flat-file) dove da il meglio di se. Che ci si possa 
far comunque tutto è verissimo, ma che sia il miglior strumento per 
farlo permettimi di dubitarne. ;-)

 Infatti. Per questo consiglio Python e non ObjectiveC.
De gustibus.

 della notazione esplicita sono davvero notevoli.
Sarà un mio limite ma a me non piace. E dato il dizionario ho sempre 
trovato difficoltà a capire come attraversare la gerarchia di oggetti. 
Ripeto sarà un mio limite, ma per questo non apprezzo sintatticamente 
as, pur apprezzandone l'efficacia.


Si inglese ok. Certo che non pensavo di dar vita ad un simile post ...
stimolante direi...
Grazie a tutti per esservi appassionati all'argomento da me lanciato!
Ale

 wrote:
-- snip --
non ci sto più capendo nulla ... che faccio? Comincio da destra? Da
sinistra? Da sotto? Da sopra? :-)))

 Ok, ma di li` a dire che la sintassi varia ce ne passa, eh.
Sarà una questione filosofica o forse legata al mio modo di vedere le cose 
(che può chiaramente essere sbagliato!). Ma usando una notazione dotted mi 
appare evidente che stai navigando attraverso delle proprietà della 
gerarchia di oggetti. Nella notazione esplicita non mi appare evidente la 
distinzione tra le keyword del linguaggio (of) e le keyword introdotte dal 
dizionario dell'applicazione (page). Nella mia testolina strutturata questo 
fa apparire come se la sintassi del linguaggio non fosse definita dal 
linguaggio ma dal dizionario.
Alex

 non ci sto più capendo nulla ... che faccio?
Semplicemente ci sono pareri distinti.
Io continuo a consigliarti di partire con Python. Ci fai di tutto e hai
meno sbattimenti complessivamente.


 di rivoluzioario.
Rivoluzionario? In buona parte ha preso il meglio che esisteva prima e
lo ha fornito in unico linguaggio, semplice, lineare. Si può usare a
livello elementare o a livello molto avanzato senza grossi problemi (e
comunque sempre con la stessa filosofia costitutiva).
Poi per cose *davvero* rivoluzionarie dovresti sentire Alex Martelli.
Probabilmente saprebbe entrare in dettaglio.
Ah, questo come linguaggio. Come libreria c'è Twisted. Anche li l'idea
non è in se e per se nuova, ma una realizzazione tanto completa,
potente, flessibile e scalabile non era mai stata realizzata prima.


 pare ovvio che non ci si inventi mai nulla.
Ribadisco, č piů un paradigma di tipo dichiarativo. La genesi č
sostanzialmente diversa.
I linguaggi funzionali prendono in buona sostanza spunto dal lambda
calcolo e dalla logica combinatoria. I linguaggi dichiarativi (quale il
prolog) invece si basano sulla logica "standard", sulla logica dei
linguaggi del prim'ordine.
La logica combinatoria č una fondazione *alternativa* della matematica
rispetto a quella della teoria degli insiemi basata sui linguaggi del
prim ordine. Insomma, sono cose *diverse*.
-- 
Python č un linguaggio specialistico nel senso che č specializzato 


 farlo permettimi di dubitarne. ;-)
È da tempo che non uso Perl e a suo tempo lo usai specialemnte per il
web.
Python *non* è Perl. Non so se hai ragione riguardo a Perl, ma riguardo
a Python i fatti dimostrano che è assolutamente un linguaggio general
purpose.
-- 


 linguaggio ma dal dizionario.
A me sembra che tu stia confondendo la *sintassi* con la libreria.
Vedi un dizionario come una libreria. Quando usi robba di quel
dizionario, introduci dei "nomi" che sintatticamente sono
oggetti/espressioni (boh, non conosco in dettaglio teorico la sintassi
di AS).


 Semplicemente ci sono pareri distinti.
Ci sarebbe da meravigliarsi del contrario! Altrimenti useremmo un solo 
linguaggio! ;-)
Ricapitolando abbiamo i sostenitori di:
- python
- perl
- applescript
- java
- object-c
Mi sono dimenticato qualcosa? :D

 Se vai su Wikipedia potrai trovare un sacco di nomi.
Vero, ma general purpose e facili da usare come Ruby o Python non me ne
vengono tanti in mente.
Per dire... Haskell è un bellissimo linguaggio. Ma ce lo vedi con uno
che parte da 0?


 Mi sono dimenticato qualcosa? :D
direi ruby.
-- 
Python č un linguaggio specialistico nel senso che č specializzato 


 sostanzialmente diversa.
Da come mi hai descritto sto xslt mi pare che abbia due caratteristiche:
- selettori basati sul pattern matching
- regole di trasformazione
Da sto punto di vista mi pare molto simile al perl, con la differenza, mi 
par di capire, che manca la linearità del flusso comunque presente in perl.
A me da più l'idea di un linguaggio funzionale che dichiarativo (ma è 
passato qualche annetto dagli studi universitari e potrei anche far 
confusione!).

 comunque sempre con la stessa filosofia costitutiva).
Mi pare si possa dire lo stesso di altri linguaggi (java per esempio).
Alex

 direi ruby.
Ecco questo mi mancava ... ma a questo punto ho trovato un vecchio post 
in cui si parlava di realbasic...
ma ditemi una cosa ... python ha una sorta di tool alla 
xcode/realbasic/.net/non lo so ?
Ho scarivato, installato ma adesso se non rimedio un libro sono fermo

 di AS).
Ma infatti secondo me č il linguaggio che crea sta confusione. Se tu scrivi 
"the first page of the current document" non sei in grado di capire:
- quali sono le keyword del linguaggio
- quali sono i termini introdotti dal dizionario
Un altro selettore puň essere "all opened documents". In dotted notation 
potresti scrivere:
currentDocument.firstPage
allOpenedDocuments
La regola sintattica per costruire la frase in dotted notation non cambia. 
Nella notazione dichiarativa si. Ma semplicemente perchč as usa espressioni 
in linguaggio naturale, mentre un linguaggio tradizionale delle regole 
sintattiche formali. Probabilmente per un non programmatore la descrizione 
in linguaggio naturale č piů intuitiva. Stranamente per me che sono abituato 
ai linguaggi tradizionali appare meno intuitiva. ;-)
Alex

 - quali sono i termini introdotti dal dizionario
Come no?! Nel tuo esempio "the", "first", "of" sono keyword del 
linguaggio, mentre "page" e "current document" sono termini forniti da 
una applicazione o un OSAX. Questo lo si capisce a) per esperienza, 
sapendo che AS da solo non ha idea di cosa sia una pagina o un 
documento, oppure b) dalla formattazione dello script compilato in 
Script Editor.

 Mi pare si possa dire lo stesso di altri linguaggi (java per esempio).
Java dove avrebbe preso il "meglio" di altri linguaggi? Tipicamente a
livello di linguaggio (non confondere linguaggio e libreria) io direi
che ha quasi preso il peggio. Nel tentativo di semplificare il C++ si è
trovata con un linguaggio oltremodo ingessato, che è stato soggetto a
continue pecette (per il fatto che l'industria l'ha adottato anzitempo,
quando ancora non era pronto e nelle intenzioni degli sviluppatori
sarebbe dovuto rimanere ancora passibile di modifiche *grosse*).
Il fatto che poi funzioni, non significa che sia un bel *linguaggio*.
Cobol pure funziona e ci sono un sacco di applicazioni scritte in Cobol.
Java ha dalla sua una bella libreria e un interessante piattaforma. Ma
quando si parla di linguaggio, proprio è messo male.
Poi non vedo come puoi discutere di Python senza conoscerlo :)


 Ho scarivato, installato ma adesso se non rimedio un libro sono fermo
C'č il tutorial su 
python.com
 o su 
python.it
I libri li ho indicati in un altro post.


 confusione!).
Allora la risposta *ufficiale* è che XSLT è un linguaggio dichiarativo.
Su questo non ci piove. Alcuni sostengono che è *anche* un funzionale.
L'obiezione principale è che in effetti le funzioni non sono oggetti di
prima categoria e quindi molti si oppongono al fatto che sia anche
funzionale. 
Questo è un (lungo) articolo in cui viene difesa una tesi simile alla
tua:
http://www.topxml.com/xsl/articles/fp/
Ovvero che XSLT sia *anche* funzionale.
-- 
Python è un linguaggio specialistico nel senso che è specializzato 


 Script Editor.
Prendiamo "current document",
- puoi stabilire senza consultare il dizionario se sono due keyword o una 
sola?
- puoi stabilire se current è una keyword del linguaggio o introdotta dal 
dizionario? 

 Poi non vedo come puoi discutere di Python senza conoscerlo :)
Io non discuto di python! Ma di java, perl, obj-c e as che conosco. Sei tu 
che fai l'evangelizzatore del python! Se fosse veramente la meraviglia che 
dici tutti useremmo quello, visto che pare che le cose non vadano proprio 
cosě.... tutto sto capolavoro non deve essere, quindi posso permettermi di 
vivere nella mia beneamata ignoranza! :PPPPP Scherzo non la prendere come 
offesa mortale...

 specifico esiste, nella forma di "document 1", by index)
Dimmi te se non č un tantinello arzigogolato... :P

 per le regex direttamente nel cuore dello stesso.
E' qualcosina di più. Nasce per il pattern matching. Il resto è venuto dopo. 
;-)

 un name-space e` inevitabilmente farraginosa e logorroica.
Ium! Che figata! :DDDDDDDD

 ma ditemi una cosa ... python ha una sorta di t
python, di serie, non ha nemmeno readline 
scrivi tuttinunariga il seguente (e dagli la passwd)
curl -s 
http://www.pycs.net/bbum/2004/1/21/readline.so.gz
 | gzip -d -c |
sudo cat > /Library/Python/2.3/site-packages/readline.so

 wrote:

- C (C++)
Al limite Ada (che per imparare va bene in quanto rompe i coglioni
all'inverosimile sui tipi di variabili ed ha una sintassi abb. semplice)
-- 
Yoda of Borg am I! Assimilated shall you be! Futile resistance is, hmm?