Newsgroup: it.comp.programmare
Titolo: 3 domande sui linguaggi di programmazione

Ciao a tutti
Scusate, il post se sembra un 'test', mi piacerebbe sentire dei
pareri a riguardo dei linguaggi di programmazione che voi usate
in particolare sulla possibilità di poter migliorare o aggiungere
caratteristiche non ancora presenti.
Quale linguaggio di programmazione utilizzate più frequentemente ?
secondo voi che limitazioni ha ?
se potreste miglirarlo cosa aggiungereste ?
grazie dell'attenzione
claudio

 se potreste miglirarlo cosa aggiungereste ?
Varie cose, proprio ieri in macchina con altri Pythonisti discutevo sul
fatto che sarebbe interessante avere delle primitive per la concorrenza
singolo thread con asincronia o (quella che preferisco io) a thread
leggeri senza memoria condivisa.
Tu cosa usi?
-- 
Lawrence - 
http://www.oluyede.org/blog
http://www.neropercaso.it
"Nothing is more dangerous than an idea
if it's the only one you have" - E. A. Chartier

 Tu cosa usi?
uso C e Assembler (AT&T), che volendo vedere il C poi è un assembler
molto molto potente.
punti deboli / forti:
secondo me troppa libertà di espressione, può scaturire codice
efficiente e veloce
e difficile effetuare la manutenzione, vedi puntatori a puntatori a
puntatori ....
claudio

 
Ultimamente mi sto un po' interessando a RealBasic. Pensavo di fare il
salto da Gambas a questo linguaggio principalmente per questi punti:
- comprando la licenza, le mie applicazioni possono girare senza nessuna
modifica su Linux/Mac/Windows;
- il supporto è notevole (la comunità è molto ampia);
- la documentazione è ricca;
- ha diverse cose interessanti per me che mi sono interessato da poco
anche di crittografia, tra cui gli interi a 32 e 64 bit senza segno;
- fondamentalmente, è un Basic, per cui non sarei costretto ad imparare
un nuovo linguaggio (è il motivo per cui quando sono passato sul
computer di casa da Windows e Visual Basic a Linux ho scelto Gambas).
Mi piacciono diverse
-- 
Ciao.
Leo.
Web: 
www.leonardomiliani.com
E-mail: 
leon...@leonardomiliani.com
Scegli software opensource - Choose opensource software

 Ultimamente mi sto un po' interessando a RealBasic. 
Su it.comp.macintosh (lo so, non ci crederesti :-)) se n'è parlato
spesso di RB. Ci sono due o tre persone che lo usano li.


 se potreste miglirarlo cosa aggiungereste ?
piu' che aggiungere bisognerebbe cambiare!
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 piu' che aggiungere bisognerebbe cambiare!
Beh a dire il vero ASP (immagino tu usi il 3) l'hanno già "cambiato" o
forse per cambiare intendevi... cambiare progetto ;-) ?


 molto molto potente.
Non condivido questo punto di vista.
Caratteristica dell'assembly, che io sappia, è avere istruzioni che sono 
in corrispondenza _biunivoca_ con gli opcode dell'ISA, cosa che con il C 
non hai.

 
Qui la soluzione mi pare semplice e scontata: PHP.
Ho dovuto metter mano qualche volta a dei CMS (tipo phpNUKE, Xoops,
ecc..) e non mi pare difficilissimo. La bellezza, poi, è che il server
non è costretto ad essere Windows, con tutti i vantaggi del software
libero: Linux/Apache/PHP/MySQL sono un connubio economico, potente,
prestazionale.


 
La tentazione di passare a RealBasic è forte, soprattutto per i motivi
che ho detto. Il problema è che, spesso, l'inerzia è una brutta bestia
da combattere ed il dover riprendere in mano tutorial e specifiche di un
linguaggio mi pesa un po' :-)
Sarei supertentato dall'accoppiata QT/C che, fortunatamente, su Linux,
sono liberamente usabili le prime e diffusissimo il secondo, ma il C non
l'ho mai imparato e poi le QT mi paiono un po' difficilotte da
approcciare da solo: avrei bisogno di una guida per i primi passi.


 non hai.
Concordo, il C è un linguaggio di basso livello, nato proprio per non
preoccuparsi di quei problemi. Il concetto di potenza poi rispetto a un
linguaggio di programmazione è un concetto che più passa il tempo più
trovo "useless". Se un linguaggio è turing completo (come tutti i
linguaggi di programmazione che usiamo) la potenza è la medesima. Poi si
può discutere delle caratteristiche che rendono più agevole il compito X
piuttosto che Y nelle situazioni A piuttosto che B. La potenza in sé non
è una cosa misurabile, non avendo unità di misura (né accordo sulla sua
definizione)


 approcciare da solo: avrei bisogno di una guida per i primi passi.
Le QT in C++ (in C non mi pare che si possano usare) non sono di certo
facili, nel senso che è il C++ ad essere un linguaggio complesso. In
Python il problema si riduce di molto e la comunità è decisamente più
grande di quella di Gambas. Forse RB è la soluzione ai tuoi problemi,
forse no. Probabilmente dovresti giocare un po' con le versioni di
evaluation prima di affrontare la spesa, e magari fare anche una ricerca
negli archivi di icm per vedere cosa ne pensano altri sviluppatori RB


 Qui la soluzione mi pare semplice e scontata: PHP.
Proprio ieri sono finito a leggere questa letterina a PHP che mi ha
fatto sorridere :-)
http://blog.rightbrainnetworks.com/2006/12/18/dear-php-i-think-its-time-
we-broke-up/


 preoccuparsi di quei problemi...
mi riferivo a questa definizione che avevo trvato sui wikipedia :
Il C è tecnicamente un linguaggio di programmazione ad alto livello.
Tuttavia, poiché esso mantiene evidenti relazioni semantiche con il
linguaggio macchina e l'assembly, risulta molto meno astratto di
linguaggi anche affini (appartenenti allo stesso paradigma di
programmazione), come per esempio il Pascal. Per questo motivo,
talvolta viene anche identificato con la locuzione (più ambigua)
linguaggio di medio livello, se non addirittura (in modo certamente
improprio) come macro-assembly, o assembly portabile
ritengo comunque abbiate ragione entrambi
claudio daffra

 improprio) come macro-assembly, o assembly portabile
Mmm ricordo bene un post di Alex Martelli (noto esperto di
programmazione e linguaggi in genere) che tra le altre cose classificava
i linguaggi in base al "livello" e sicuramente "Python > Java > C". Io
ho sempre saputo che C è un linguaggio di alto livello nel senso che è
più in alto del'assembly ma in sé è classificabile come a basso livello
perché non discosta poi cosi tanto dall'hardware
Direi che è corretto quello che c'è scritto. Sicuramente ci sono livelli
molto più alti del C.


 perché non discosta poi cosi tanto dall'hardware
Infatti ricordo l'appellativo di "linguaggio di livello 1,5" datogli in 
un corso di informatica.

suppaman ha scritto:

Mah... mi permetto di dissentire.
Un linguaggio
che offre costrutti sintattici quali i cicli condizionati,  che permette 
di definire qualsivoglia tipo di variabile,
che permette il passaggio di parametri sia per valore che per referenza,
che gestisce la ricorsivita',
non puo' essere di livello cosi' basso.
Che poi permetta anche di utilizzare puntatori e lavorare sui bit e' 
solo un valore aggiunto del linguaggio.
Insomma, secondo me il C si puo' benissimo utilizzare come si usa il 
Pascal, rinunciando ad alcune sue caratteristiche peculiari.
E' un linguaggio molto elastico.

 Pascal, rinunciando ad alcune sue caratteristiche peculiari.
Certo, ma converrai con me che il C è di un livello inferiore di
linguaggi come Java che vengono definiti di alto livello.
Probabilmente è la classificazione in sé a non essere abbastanza
elastica per tutti i vari tipi di linguaggio.


 elastica per tutti i vari tipi di linguaggio.
Più che altro è una classificazione vecchia ^__^
Quando si è cominciato a parlare in questi termini Python, Java, Ruby e
compagnia non erano praticabili....
-- 
Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it.
    - Brian W. Kernighan

 compagnia non erano praticabili....
No beh, Java č di alto livello. Ho sentito usare piů volte "altissimo
livello" riferito a Python, Ruby e vari linguaggi funzionali. Se ci
ragioni un senso ce l'ha


 solo un valore aggiunto del linguaggio.
Non c'è anche la keyword register o non è standard ? 
Giusto per dire che offre all'utente strumenti _quasi_ lato macchina.
La dicitura comunque fu detta in tono scherzoso da un professore, non 
voleva essere una definizione in senso rigoroso.

 Non c'è anche la keyword register o non è standard ? 
Secondo lo standard la keyword register può essere bellamente ignorata
dall'implementatore. Non c'è garanzia (anzi è quasi una certezza con le
macchine odierne) che una variabile marcata come register finisca
effettivamente in un registro.


 definizione)
La potenza di un linguaggio si riduce a "poter fare".
Con python puoi fare tutto, e ripeto tutto, ciò che puoi fare con il C ?
Con il C si può fare tutto ciò che si può fare con l'assembly?
Con l'assembly puoi fare tutto, e ripeto tutto, ciò che si può fare con
python?
La risposta a queste domande misura la "potenza" di un linguaggio.
-- 
Linux Counter 367009
Da ragazzo facevo i cento metri in otto secondi netti. Poi
purtroppo mi hanno fregato il motorino.

 La risposta a queste domande misura la "potenza" di un linguaggio.
Ecco perché non esiste una definizione formale di "potenza"
relativamente a un linguaggio ;-)


 
Anche in altri post viene elogiato questo Python.... Senti, visto che lo
incensi così tanto penso che tu lo conosca abbastanza bene... Me lo
potresti descrivere brevemente? Si può usare anche per creare
applicativi con IDE grafica? Se sì, con quali strumenti?


 La risposta è si a tutti e 3, perché tutti e 3 sono Turing completi.
La Turing-completezza c'entra poco in questo caso. O intendi dire che con
python o ruby o visual basic o java ci puoi scrivere un sistema operativo
partendo da zero?


 La risposta a queste domande misura la "potenza" di un linguaggio.
non conosco python, come potenza intendo libertà di poter programmare
cose con cui in altri linguaggi non puoi, per esempio ora se prendo il
basic sono
legato alle istruzioni e alle librerie, ok posso prendere in prestito
DLL esterne
per fare altre cose. In assembly per esempio la sintassi è a basso
livello
posso decidere dove mettere i segmenti di codice, posso rilocarli.
posso modificare il codice in runtime, posso sfruttare per esempio le
unita
integer, x87 e multimediali in parallelo, posso mettere a posto le
istruzioni per
sfruttare la pipeline, o altro. Non credo che un basic ti permetta
questo, nemmeno
un C#
ciao
claudio

 partendo da zero?
In ruby, VB o Java non saprei. In Python esiste:
http://unununium.org/introduction
Che poi non sia performarnte come uno scritto totalmente in C è un altro
discorso :-) Volendo esiste anche il progetto Singularity, di MS
Research per la scrittura di un OS in codice .NET.
Sono dell'idea che nei anni (un decennio) il bisogno di C e C++
diminuirà sempre di più, se non in quei in cui è fondamentale.
Con questo non voglio dire che il C o il C++ facciano schifo, siano
fantastici, siano adatti o inadatti. Semplicemente credo che un buon
programmatore debba sapere con che strumenti lavorare e in quale
situazione. Con l'aumento della potenza di calcolo in buona parte del
mondo del software si ragiona per produttività e quindi un ambiente con
una virtual machine (magari anche dinamico) non è blasfemia. Se poi
serve velocità si può sempre scrivere questa o quella funzione in C, ma
nessuno ha detto che una applicazione va scritta in un solo linguaggio
(nemmeno i sistemi operativi sono scritti in un solo linguaggio).
MS sta facendo ricerca su sistemi operativi "gestiti", Sun e MS hanno
aperto le braccia (ognuna con le proprie motivazioni) ai linguaggi
dinamici e le loro piattaforme principali di sviluppo hanno un garbage
collector. La maggior parte delle applicazioni web è scritta con
linguaggi diversi da C e C++. 
Il futuro, forse, sarà dinamico, perché aggiungere un processore quando
arrivano 1000 utenti in più costa MOLTO, MOLTO meno che scrivere un
pezzo di applicazione in C.
Ovviamente ciò non significa che i programmatori abituati a linguaggi
funzionali statici/dinamici e/o multiparadigma statici/dinamici debbano
programmare come scimmie ignorando il concetto di risorse esterne. 


 un C#
No in genere i programmatori alto livello si preoccupano di fare
applicazioni decenti e utili, non di contare quanti registri possono
usare.
Non prenderla come una offesa, è che la tua motivazione sull'usare ASM
al posto di linguaggio di alto livello mi pare che traballi un po'
troppo. Tu vuoi usare asm come rimpiazzo dei linguaggi di alto livello e
a me questo pare una cazzata. Se poi mi dici "voglio usare asm perché
devo programmare firmware o smanettare con hardware" allora hai la mia
stima, altrimenti (ipotizzo) ti manca la conoscenza adatta per capire il
perché il resto dei programmatori (compresi quelli di applicazioni CPU
bound come i videogiochi o il number crunching) usano asm una volta ogni
morte di papa (o solo nei casi in cui si interfacciano con hardware
particolare).
Insomma: che ci vuoi fare nello specifico con asm?


 applicativi con IDE grafica? Se sì, con quali strumenti?
Io non è che lo incenso, lo uso e sono contento. Come c'è chi usa C# ed
è contento e chi usa Ruby ed è contento. Brevemente? È un linguaggio di
programmazione multi-paradigma (object oriented, procedurale,
funzionale), dinamico ma con tipizzazione forte (a runtime), ha circa 15
anni, viene usato da Google e recentemente abbiamo scoperto che YouTube
è scritto in Python ;-) Fatti un giro sul tutorial:
http://docs.python.org/tut/
Si può certamente usare per fare applicazioni GUI. Con Gtk, con Win32,
con le Windows Forms di .NET, con wxWidgets, con QT, con Cocoa e
immagino altro ancora.


 
http://unununium.org/introduction
Estrapolando le frasi più significative leggiamo:
"""
Psyco is a promising program which compiles Python bytecode to native
code. 
Pyrex  compiles a subset of Python to C.
Furthermore, Python defines an API which can be used to interface to lower
level languages such as C and assembly. Unununium actually started as a
project entirely in assembly, and it was decided to adopt Python from
those experiences.
"""
dalle quali si evince che questo SO è stato inizialmente scritto con
assembler, presumo almeno per tenere in vita l'interprete python, visto
anche che python, a quanto ne so, è sprovvisto di istruzioni che possano
interagire direttamente con i registri del processore o direttamente con
l'hardware in genere se non appoggiandosi su librerie assembly/C.
Inoltre, visto e considerato che l'interprete python è scritto in C, per
forza usando python si usa indirettamente C, e possiamo concludere pertanto
che il suddetto sistema operativo è scritto in C, non python :-)


Mi è sfuggita la perla:
"""
The latest plan is to implement Unununium as a Linux userspace process.
"""
Che razza di OS è quello che ha bisogno di un altro OS per
funzionare?
Ma va, va...


 Ma va, va...
Forse prima di stroncare in questo modo meriterebbe un approfondimento.
Magari e' una cosa didattica.

 che il suddetto sistema operativo è scritto in C, non python :-)
I sorgenti dell'interprete sono scritti in C non l'interprete in sé.
Con analogo ragionamento il sistema operativo è scritto in linguaggio 
macchina, e dire che "unix è scritto in C" viene ad essere falso.
Mi sembra invece chiaro che un sistema operativo scritto con un 
linguaggio tipo python è il sistema della macchina virtuale e non della 
macchina fisica. 
Lo strato intermedio, scritto in un linguaggio a piacere, è necessario 
l'importante è che i sorgenti del sistema siano scritti, in questo caso, 
in python.
Che dite ?

 che il suddetto sistema operativo č scritto in C, non python :-)
Questa č una cavolata eh :-)


 Magari e' una cosa didattica.
Esatto, era solo un esperimento.


 Che dite ?
Concordo


Giudicare un linguaggio in base alla sua turing completezza non ha
molto senso. Anche questo
(
http://homepages.cwi.nl/~tromp/cl/lazy-k.html
) è turing completo, ma
non penso che qualcuno lo prenda seriamente in considerazione ;-)
Suggerisco a tal senso di leggere il Blub Paradox quando si afferma
"il mio linguaggio è il più potente".
Traduzione e spiegazione in italiano:
http://ruby-it.org/pages/BLUB+Paradox
Articolo originale:
http://www.paulgraham.com/avg.html
Per quanto riguarda la risposta al thread originale, io uso in diversi
ambiti prevalentemente Common Lisp, mentre python e ruby per piccoli
progetti dove sono disponibili framework scritti bene (ad esempio
django), sono affascinato da haskell. 
Se dovessi cambiare qualcosa del Common Lisp (che cmq è multiparadigma
come python), posso farlo perchè il linguaggio stesso mi fornisce
delle primitive che mi possono far trasformare la sintassi
temporaneamente (è possibile persino modificare le regole del reader
del linguaggio stesso), in modo tale da risolvere il problema sempre
nella sua forma "naturale".
La potenza spesso si misura nella capacità di esprimere concetti. Un
esempio è l'AOP. Non è supportato, ma si può utilizzare grazie ad una
libreria di 800 righe.
Di sistemi operativi scritti in Common Lisp c'e` Movitz (che è un vero
s.o. che gira on the bare metal), ed in passato ce ne erano diversi ma
non per x86.
Ciao
-- 
Matley
Why Lisp? 
http://alu.cliki.net/RtL%20Highlight%20Film
Evaluate Lisp: 
http://lisp.tech.coop/Evaluate%20Lisp

 in python.
No, l'importante è che il sistema operativo sia scritto completamente
in un determinato linguaggio, come da domanda iniziale. "E' possibile
scrivere un sistema operativo completamente nel linguaggio python?".
Sembra stia emergendo che la risposta sia negativa, quindi python non "può
fare" un sistema operativo completo, quindi è meno potente del C.
Intendiamoci, python è un gran bel linguaggio, ottimo nel suo campo di
applicazione, ma se per potenza intendiamo "poter fare le cose",
ammettiamo che con python non si può fare tutto e quindi è meno potente di
linguaggi di più basso livello. 


 Magari e' una cosa didattica.
Io non sto stroncando un bel niente, ma mi si voleva far credere che
esistesse un sistema operativo scritto in python ;)


 
Perche' no? Dal punto di vista funzionale puo' essere possibile.
Magari non sara' efficente, ma per funzionare dovrebbe funzionare.

 in un determinato linguaggio, come da domanda iniziale. 
Nessun sistema operativo che io conosca è scritto interamente in un solo
linguaggio


linguaggio 
ReactOS è stato scritto in Assembly
ciao
claudio

 ReactOS è stato scritto in Assembly
Anche MenuetOS.

 Anche MenuetOS.
ecco questo si. Bel progetto


 ReactOS è stato scritto in Assembly
A me pare che sia strapieno di C, ma fa niente.


 Insomma: che ci vuoi fare nello specifico con asm?
guardare un poco più dall'interno la macchina, come relamente funziona
se tu in ci fai "printf" io in asm "faccio "movb %0xb800".
ovviamente cambi architettura tutto va a farsi benedire.
comunque grazie a tutti voi, ho affrontato diverse tematiche
nell'utilizzo dei vari linguaggi e questo mi sembra molto costruttivo
grazie
claudio

 Il futuro, forse, sarà dinamico


 relativamente a un linguaggio ;-)
Quando si sceglie un linguaggio di programmazione, si considerano sempre 
le implementazioni del linguaggio, tanto che per molti linguaggi (per 
esempio, Visual Basic, Delphi) la definizione del linguaggio sta solo 
nella sua implementazione.
Detto in altri termini, a meno di voler fare dell'informatica teorica, 
come quando si parla di macchine di Turing, non ci si limita mai a 
considerare un linguaggio di programmazione indipendentemente dai 
compilatori e interpreti esistenti o realisticamente prevedibili per 
quel linguaggio.
Nel mondo aziendale, quando si parla della "potenza di linguaggio", si 
intende la "potenza del compilatore o dell'interprete disponibile per 
tale linguaggio".
In tale accezione, non tutti i linguaggi hanno la stessa potenza.
Per alcune piattaforme non esistono proprio implementazioni di alcuni 
linguaggi. Per esempio, mi pare che non esistano interpreti Python per i 
computer a 8 bit (per esempio, quelli basati sui processori 6502 o Z80) 
e neanche per la Playstation Sony.
Su tali piattaforme, Python ha potenza nulla.
Ma anche considerando piattaforme per cui esistono implementazioni di un 
linguaggio, può darsi che tali implementazioni non consentano di 
ottenere gli stessi risultati di implementazioni di altri linguaggi.
Per esempio, se un database offre interfacce di programmazione 
utilizzabili dalle implementazioni dei linguaggi X e Y, ma non 
utilizzabili dalle implementazioni del linguaggio Z, possiamo dire che 
il linguaggio Z e' meno potente di X e di Y.
Per esempio, molte implementazioni iniziali di linguaggi di 
programmazione per l'ambiente Microsoft Windows non consentivano di 
chiamare le funzioni esportate da DLL.
In versioni successive dell'implementazione, e' stata aggiunta tale 
capacita', rendendo cosi' piu' potente il linguaggio.
Secondo quest'ottica, il linguaggio assembly ha la potenza massima, in 
quanto non esiste un'attivita' che possa essere fatta da un altro 
linguaggio di programmazione e non possa essere fatta in linguaggio 
assembly. In assembly si scrive codice che dipende dall'architettura 
hardware (cioe' in particolare dall'insieme delle istruzioni del 
processore).
Dopo il linguaggio assembly, vengono i linguaggi di programmazione di 
sistema, che hanno come obiettivo quello di interfacciarsi con le 
chiamate di sistema del kernel. Il linguaggio di programmazione di 
sistema piu' diffuso e' il linguaggio C. Tipicamente, nei linguaggi di 
programmazione di sistema si scrive codice che non dipende 
dall'architettura hardware, ma che dipende dall'architettura del kernel 
(cioe' in particolare dall'insieme delle system call).
Dopo i linguaggi di programmazione di sistema, esistono i linguaggi 
applicativi, che lavorano ad un livello di astrazione rispetto alle 
system call, e che permettono di scrivere codice indipendente dalla 
piattaforma hardware+sistema operativo.
Salendo di livello si ha maggiore portabilita' ma minore potenza, in 
quanto aumenta il numero di operazioni che non e' possibile fare.
-- 
     Carlo Milanesi
 
http://digilander.libero.it/carlmila

 guardare un poco più dall'interno la macchina, come relamente funziona
Ok :-)


 linguaggio
Fino al 1973, *tutti* i kernel dei sistemi operativi erano scritti 
interamente in assembly. Il primo kernel scritto parzialmente in un 
linguaggio ad alto livello e' stato Unix. A tale scopo, e' stato 
inventato il linguaggio C.


 imparato parecchio.
non mi riferivo a questo, ma a parte del software che ho trovato
sviluppato in
italia.
ciao
claudio

 quanto aumenta il numero di operazioni che non e' possibile fare.
Ovviamente non sono d'accordo ma non mi interessa discutere più di tanto
su un concetto che trovo futile. Possiamo discutere di utilità del
linguaggio in base a determinati requisiti e richieste. Parlare di
potenza cercando di dare una parvenza di definizione formale come hai
fatto tu in sto post mi pare un po' molto un tirare la corda. 


 italia.
Beh capita.


 inventato il linguaggio C.
Conosco la storia dei sistemi operativi. Io ho detto "nessun so che _io_
_conosca_" dove per conoscere intendo usare, studiare, comprendere.
Cerchiamo di non cavillare per favore, se no diventa un flame :-)


 
http://www.python.org/download/other/
Aggiungo:
Python su PocketPC
http://www.voidspace.org.uk/python/weblog/arch_d7_2006_12_23.shtml#e589
"Python runs on lots of places. This includes 8 bit microcontrollers
thanks to a very interesting project called PyMite."
Curioso quante cose nuove scopro di Python ogni giorno ;-)


 Curioso quante cose nuove scopro di Python ogni giorno ;-)
Non li conoscevo neanch'io.
Allora cambio esempio:
Per alcune piattaforme non esistono proprio implementazioni di alcuni
linguaggi. Per esempio, mi pare che non esistano interpreti Visual Basic 
per i computer a 8 bit (per esempio, quelli basati sui processori 6502 o 
Z80) e neanche per la Playstation Sony.
-- 
     Carlo Milanesi
 
http://digilander.libero.it/carlmila

 Z80) e neanche per la Playstation Sony.
Ah ah buon natale Carlo :-)
VB per Pocket PC esiste eccome, sia in versione "6" che in versione
".NET". Per PS non credo! 


 ".NET".
Vorresti dire che posso far girare un programma scritto in VB su un 
Commodore 64 o su un Apple II?


 Commodore 64 o su un Apple II?
Direi di no, ma non ne vedo il motivo. il C64 ha il suo Basic, l'Apple 2
non saprei.


 l'Apple 2 non saprei.
AppleSoft Basic, mio primo approccio al computer.

 non saprei.
Il motivo e' che la portabilita' del codice sorgente.
Chi scrive un'applicazione sa che la sua applicazione dovra' funzionare 
probabilmente su un dato insieme di architetture hardware. Se un sistema 
di programmazione non supporta un'architettura hardware su cui si 
vorrebbe far funzionare l'applicazione, tale sistema di programmazione 
risulta inadeguato (o poco potente).
Mi pare che Visual Basic supporti alcuni processori a 16-bit, altri a 
32-bit e altri a 64-bit, ma nessun processore a 8-bit. Esistono 
implementazioni di BASIC per processori a 8-bit, ma non sono compatibili 
con Visual Basic, cioe' non e' possibile scrivere un unico codice 
sorgente per un'applicazione che possa essere utilizzato da Visual Basic 
su un sistema a 32-bit e da un altra implementazione di BASIC su un 
sistema a 8-bit. Ovviamente non e' un limite del linguaggio, ma nessuna 
software house ha ritenuto che ci fosse un mercato per 
un'implementazione di Visual Basic su sistemi a 8-bit.
Ma non volevo parlare di linguaggi in particolare, ma solo del fatto che 
alcuni linguaggi, sono piu' portabili di altri per il semplice fatto che 
ne sono state sviluppate implementazioni compatibili su piu' piattaforme.


 ne sono state sviluppate implementazioni compatibili su piu' piattaforme.
Certo, ma non sono d'accordo sul fatto che questo sia il metro di
misurazione per indicarne la potenza.


 invece che cercare di adattarne sempre uno e sempre lo stesso.
questa è demagogia, sarebbe sicuramente bello poter come dici tu
sfruttare adeguatamente un ambiente, purtroppo software=soldi e non fa
rima con creatività o altro.
buon natale a tutti
claudio

 rima con creatività o altro.
Ripeto: nell'ambito del software desktop o software per applicazioni web
un linguaggio vale l'altro fino ad un certo punto. Nessuno però si
metterebbe in testa di usare Ocaml per scrivere un firmware per un micro
controllore.
Non so, ma a me sta discussione pare inutile :-)
Buon natale
