Newsgroup: it.comp.ia
Titolo: [chatterbot] proviamoci....

un paio di spunti:
1) quest'anno il Loebner prize non lo ha vinto Alice (che credo sia
arrivata seconda) ma un nuovo chatterbot (non mi viene il nome adesso...il
solito nome di donna...forse Maria  boh)
io ho chattato con entrambe, devo dire che la vincitrice 2002 mi ha deluso
molto...IMHO molto poco sorprendente, e con capacità minori rispetto a
Alice.
il difetto di alicebot? ha sviluppato poco la sua personalità virtuale
rispetto ad altri (es. Hex) e questo in un test come quello del Loebner
alla lunga si può pagare.
Alice è probabilmente più "neutrale" come personalità perchè ideata come
base per molte interfacce web...è più generica.
2) pare...che l'AIML diventerà lo standard per i chatterbot... voi che ne
pensate?
bye
MX
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Alura.
Premettendo che non so nulla di chatterbot in particolare...
Mi stavo chiedendo, e lo chiedo a voi che sicuramente ne sapete piu' di me,
quali sono in sintesi i MODELLI fondamentali utilizzati dai vari chatterbot.
Cioe', come (i vostri automi/quelli che avete studiato) modellano il
"discorso" ?
La domanda e' ampia e generica, ma secondo me e' una delle cose poco
focalizzate nei vostri dibattiti, ed e' uno dei motivi per cui viene un po'
"snobbato" lo sviluppo dei chatterbot come espressione di I.A.
Stefano
Stefano

 "snobbato" lo sviluppo dei chatterbot come espressione di I.A.
forse ricordi che , per quanto mi riguarda, nonmi interessa al momento i
dibattito sul fatto che un chatterbot sia o meno espressione di I.A. mi
interessano solo i risultati, gli effetti .
inoltre ho notato che solitamente i chatterbot piů "ambiziosi" cioč con
basi teoriche piů complesse spesso danno risultati uguali o addirittura
peggiori di quelli che usano una intelligenza piů ...brutale (per es. un
grosso database di patterns)
altri chatterbots cercano semplicemente di ingannare l'utente abbastanza a
lungo da poter effettuare un loebner test ^__-  per es. simulando una
persona arrabbiata o paranoica e incuriosendo l' (inesperto) interlocutore.
anche questi hanno per me scarso interesse.
quando ho piů tempo proverň (ammesso che interessi a qualcuno) a speigare
cosa mi interessa dei chatterbots e quindi quello su cui mi concentro.


 cosa mi interessa dei chatterbots e quindi quello su cui mi concentro.
Questo e' altrettanto importante, ovvero: qual e' il problema che provate a
risolvere ? su che metro valutate la qualita' di un chatterbot ? se non vi
ponete un metro, e' difficile capire se il vostro esperimento riesce o meno
:)
Ste

 modella il linguaggio ;-)
Guarda, per quanto ho visto io (che ho scritto anche un chatterbot modesto)
non esiste una vera e propria modellazione del linguaggio...
In realtà il 90% dei chatterbot prende una frase in input, cerca di capirne
le parti fondamentali e le confronta con varie tecniche in grossi database
ordinati secondo altre varie tecniche, e poi ritorna una di queste frasi, o
una manipolazione di tali frasi.
PCBrain faceva così. Poi però mi sono rotto del pattern matching (funzionava
così il mio chatterbot) e ho provato a scrivere qualcosa che leggesse
l'input dell'utente, ne estrapolasse il contenuto logico e grammaticale e
creasse una fitta rete di connessioni logiche (un po' come altri
chatterbot... vedi SAM). In parole povere alla fine del progetto l'output
sarebbe stato composto in due fasi: dopo aver analizzato l'input e averne
estrapolato le info nuove (non presenti nella "rete") e averle collegate
alla rete, venivano cercate delle relazioni fra gli elementi della rete e
gli elementi della frase:
Es: se dico "cosa è il cane" il programma va a trovare da qualche parte
cane->mammifero->animale->peloso->blablabla e crea una frase del tipo "Cane
essere animale peloso". Il secondo passo (mai implementato in quanto è
quello più palloso data la difficoltà dela lingua italiana) consiste nel
coniugare e concordare verbi e sostantivi in modo da creare una frase in
linguaggio corrente.
Questa era la mia idea (e quella di tanti, vedi SAM).
Spero di non aver fatto ancora più casino nella tua testa :)
Dome

 coniugare e concordare verbi e sostantivi
Ma questo e' relativamente semplice, chissenefrega se non l'hai fatto :)
Stefano

 grandi linee ?
Certo che l'ho fatto! Ma non solo io! C'erano anche SAM e Spock con un
sistema più o meno simile.
Il funzionamento però era diverso (almeno, così ho capito).
PCBrain ha un dizionario abbastanza grosso della lingua italiana (non mi
ricordo bene, ma mi pare 50000 parole).
C'è una routine che analizza le singole parole della frase, e secondo delle
regole (più o meno standard) della lingua italiana, cerca di risalire alle
singole parole non concordate/coniugate.
Per i verbi avevo salvato le desinenze standard delle coniugazioni e avevo
creato una lista di verbi irregolari (già coniugati)
Di li cerca soggetto, verbo e oggetto. Crea una relazione del tipo
SOGGETTO~VERBO~OGGETTO e inserisce la nuova relazione nella rete. In che
modo? Purtroppo in un modo troppo ingenuo: se nella rete è presente una
relazione che ha per OGGETTO il SOGGETTO della nuova relazione, viene
attaccata alla relazione trovata nella rete la nuova relazione estrapolata
dalla frase. Il problema è che funzionava poco e male... pensa che dando da
leggere un testo a pcbrain esso ne capiva una percentuale moooolto bassa
(forse qualcosa meno del 40-50%, se non ricordo male). Il punto è che c'era
ancora troppo da fare e troppo poco tempo.
Ad ogni modo ci va un esempio.
(Preso dalla vecchia versione 1.2 Alpha di PCBrain: vai qui:
http://digilander.iol.it/pcbrain
 sezione download e scarica la 1.2 Alpha.
Per visualizzare ciò che serve clicca su Memoria->Elimina tutti i concetti
appresi  e  poi su Strumenti->Debug->Concetti riavvia il programma e osserva
cosa succede (dai una occhiatina anche alla console di debug...))
Scrivi le seguenti cose:
<utente> cosa è il cane?
<pc4> Non lo so: cosa essere cane?
<utente> cosa è il gatto?
<pc4> Non lo so: cosa essere gatto?
<utente> il cane è un animale
<pc4> Ho capito: cane essere animale
<utente> il cane è un mammifero
<pc4> Ho capito: cane essere mammifero
<utente> il gatto è un felino
<pc4> Ho capito: gatto essere felino
<utente> il felino è un animale
<pc4> So che anche cane essere animale
<utente> il cane è il gatto?
<pc4> Gatto essere animale come anche cane
<utente> il cane mangia il gatto?
<pc4> No, cane non mangiare gatto
<utente> il gatto ha il pelo
<pc4> Ho capito: gatto avere pelo
<utente> il cane ha il pelo?
<pc4> So che pelo avere gatto
Alla fine la conoscenza appresa sarà la seguente:
CANE~essere~ANIMALE
CANE~essere~MAMMIFERO
GATTO~essere~FELINO+FELINO~essere~ANIMALE
FELINO~essere~ANIMALE
GATTO~avere~PELO
Questa versione del programma purtroppo è molto limitata e i ragionamenti
sono stati scritti in modo molto poco logico (da me), per questo (e per
motivi di prestazioni e di chiarezza del codice) ero passato ad una versione
scritta in C++ (PCBrain V.2.0) che però è sempre rimasta ferma ad un
analizzatore grammaticale. (A dire il vero nel codice è implementato anche
un analizzatore logico, ma non aveva risultati di molto migliori del
precedente, e dopo un po' il progetto si è bloccato).
Ti faccio vedere (tanto per, anche se non me l'avevi chiesto ^_^) un esempio
di frase analizzata da PCBrain V.2.0 correttamente e una frase che per ora
non riesce a disambiguare:
---] marco va a mangiare la pasta [---------------
marco> (marco) Sost masc sing
va> ( dare) Verbo Irr intran 1a coniug 1a pers sing
a> (a) Preposizione semplice
mangiare> (mangiare) Verbo trans 1a coniug no pers sing
la> (la) Articolo det
pasta> (pasta) Sost femm sing
Frase che il programma non riesce a capire correttamente:
---] marco da a luca la mela [---------------
marco> (marco) Sost masc sing
da> (da) Preposizione semplice
a> (a) Preposizione semplice
luca> (lucere) Verbo intran 2a coniug 1a pers sing
la> (la) Articolo det
mela> (mela) Sost femm sing
Di sicuro non sono stato chiaro nel mio post e non ho risposto bene alla tua
domanda, ma se vuoi capire qualcosina di PCBrain vai sul sito che ho scritto
da qualche parte, nella sezione Download: dovresti trovare tutte le versioni
di PCBrain e relativi sorgenti in C (C++ per la V.2.0, ma non so se ho messo
quei sorgenti online...)
Tutto qui.
Dome

 :)
giustissimo.
penso che qui molti abbiano idee diverse dalle mie.
a me interessa una buona "simulazione" di un umano parlante per poi essere
utilizzabile come interfaccia per altre applicazioni.
la mia idea (frse sbagliata) è quella di sviluppare un chatterbot di
questo tipo e poi chissa...collegarlo ad altri programmi (molti) con
diverse capacità (sistemi esperti, basi di conoscenza..ecc.)..alla fine il
risultato potrebbe esere interessante (per me) soprattutto riguardo ai
risultati.
ci riuscirò?  chi lo sa?
servirà a qualcosa?  boh. 
forse la ricerca mi sorpasserà rapidamente trovando finalemtente un vero
sistema di AI con annessi e connessi.... lo spero ^___-
bye


 utilizzabile come interfaccia per altre applicazioni.
Ottimo, ma cosa deve simulare ? Il parametro di soddisfazione e' quello del
test di Turing, ovvero che l'utente non si renda conto di parlare con una
macchina, o che pur rendendosi conto che e' una macchina riesca a
comunicarci _allo scopo_ di fare qualcosa ?
Se stai studiando il tuo chatterbot per chiacchierare, segui il primo
parametro, mentre se lo stai studiando come interfaccia a linguaggio
naturale per _qualcosa_ (dove _qualcosa_ puo' essere specifico, o un
generico dominio esprimibile mediante qualche forma di rappresentazione di
conoscenza) lo stai studiando sulla seconda metrica.
Secondo me le due cose sono (non del tutto) ortogonali tra loro. Un ottimo
bot chattatore puo' essere inutile per comunicare riguardo _qualcosa_,
mentre un bot che fa da interfaccia puo' essere squallido come conversatore.
Stefano

 luca> (lucere) Verbo intran 2a coniug 1a pers sing
ahahah ;-)
sembra la frase latina: "lucus a non lucendo"
Come mai marco viene riconosciuto come sostantivo e non come voce di marcare
? Cioe', se scrivessi "Marco a uomo l'attaccante avversario", come lo
interpreta ?
Per i sorgenti: adesso non ho davvero respiro (consegno la tesi a giorni...
capiscimi :-) pero'  piu' avanti, QUELLI IN C++ li guarderei volentieri. Su
quelli in VB passo a priori, sorry (motivi etici :)
Stefano

 mentre un bot che fa da interfaccia puo' essere squallido come conversatore.
può darsi....ma non è detto.
ciao!
MX


> e se mi servissero entrambi ?
" Uno alla volta per carita' "
^_^
Stefano

 quelli in VB passo a priori, sorry (motivi etici :)
Tesi? In cosa ti laurei? E la tesi che argomento tratta?
Io ho appena iniziato il mio percorso universitario... ho dato in questi
giorni i primi esami!
E comunque perchè l'avversione per il VB? :) Linguaggio inferiore? :P
E per oggi è tutto... penso di aver scritto abbastanza :))
Dome

 E comunque perchč l'avversione per il VB? :) Linguaggio inferiore? :P
Non vorrei reinnescare una flame ^_^
Stefano

 In bocca al lupo :-)
Crepi!
E speriamo bene!
Ciao!
Dome

 Che sarebbe? :P
Un intrusion detection system e' un apparecchio che cerca di rilevare
segnali di intrusione nelle reti informatiche. Un algoritmo di apprendimento
non supervisionato sai cos'e' :-) metti insieme i due concetti... :-P
Stefano

Ciao a tutti!
Mi fa molto piacere che sia stato nominato anche il mio bot, SAM.
E a questo proposito che scrivo questo messaggio: per spiegare in poche
parole il suo funzionamento.
Ricordate di visitare il nostro sito!!! Troverete tutte le informazioni che
cercate (forse ne trovate piu' in questo post :))
http://utenti.lycos.it/aifactory2/Home.html
N.B: prendo le singole parti della descrizione che ho messo nell' Home Page
del progetto e le approfondisco.
----------------------------------------------------------------------------
--------------------------
Quando scriviamo a SAM un'affermazione, il programma scompone la frase (in
input) con un parsing
ed estrae la logica dal discorso.
----------------------------------------------------------------------------
--------------------------
' Passo l'input all'analisi lessicale
Frase1 = Sintassi(Testo, Esito)
--> Viene mandata alla funzione di analisi lessicale e sintattica la frase
in input.
--> Questa funzione restituisce la frase corretta di accenti, separate le
parole dagli apostrofi; vengono invertiti
--> alcuni pronomi possessivi, viene restituito nella var. esito: l'eisto
della frase (".","?","!") e vengono convertiti
--> i  numeri da formato numerico a letterale.
' Faccio l'analisi grammaticale della frase controllata
BlocchiGr = ListGram(Frase1)
--> Questa funzione compie l'analisi grammaticale della frase restituendo le
singole categorie grammaticali
' Prendo i blocchi grammaticali
BlocchiRel = Suddivido(Frase1, Frase2, BlocchiGr)
--> Funzione che, date le categorie grammaticali, le unisce secondo le varie
dipendenze.
--> Ad esempio se BlocchiGR fosse: "ad-ss-v-ad-agg", BlocchiRel
risulterebbe: "ad ss-v-ad agg"
--> Dove, "ad" è articolo determinativo, "ss" è sostantivo, "v" è verbo e
"agg" è aggettivo
' Estraggo la parte logica dal discorso
BlocchiLg = RelazLog(Frase1, Frase2, Esito, BlocchiGr, BlocchiRel, xSogg,
xDati, xSpec, xVerbo, xVInf, xTempo)
--> Questa funzione è una delle piu' complesse da realizzare.
--> Deve riuscire a fare l'analisi logica della frase estraendo il SOGGETTO,
LA SPECIFICA DEL SOGGETTO,
--> IL VERBO, IL TEMPO VERBALE e I DATI (intesi come l'insieme dei vari
complementi)
--------------------------------------------------------------------
I dati vengono poi trasformati in un formato speciale creato ad hoc e
incorporati nel suo KB (Knowledge Base).
----------------------------------------------------------------------
If Esito = "." And Negaz = False Then ' è un'affermazione
        xSogg = El_Art(xSogg)   ' Rimuovo l'articolo dal soggeto
        xDati = El_Art(xDati)      ' Rimuovo gli articoli dai dati
        Call agg_Relaz(xSogg, xSpec, xVInf, xDati, xTempo, 1) ' ...e la
incorporo nel KB
--> Passo alla funzione che apprende i dati ricavati dall'analisi logica
(RelazLog)
--> Questa funzione (agg_Relaz), verifica se la conoscenza passatogli come
parametro e già presente in memoria e
--> quindi la aggiunge a quella già presente oppure se è da modificare, e in
questo caso la sovrascrive.
--> Invece, nel caso la relazione ricavata dalla frase fosse nuova crea un
nuovo concetto.
--> Ad esempio:
-->                     Se io scrivessi: "Mio cugino avrà una bella moto"
-->                     Il formato risultante sarebbe:
"cugino~(avere_19)bella moto[tuo]" N.B: il numero vicino al verbo indica il
tempo.
-->                     Se io scrivessi: "Il cugino di giovanni ha 19 anni"
-->                     Il formato risultante sarebbe:
"cugino~(avere_19)bella moto[tuo]~(avere_1)diciannove anni[di giovanni]"
-->                     Se io scrivessi: "Un cugino è un parente"
-->                     Il formato risultante sarebbe:
"cugino~(avere_19)bella moto[tuo]~(avere_1)diciannove anni[di
giovanni]~(essere_1)parente[?]"
-->                     Poi, se io scrivessi: "Il cane è un animale"
-->                     Il formato risultante sarebbe: "cane~(essere_1)un
animale[?]"
-->                     Poi, se io scrivessi: "un animale è un mammifero"
-->                     Il formato risultante sarebbe: "animale~(essere_1)un
mammifero[?]"
--> Tutta la base di conoscenza risulterebbe:
-->                    "cugino~(avere_19)bella moto[tuo]~(avere_1)diciannove
anni[di giovanni]~(essere_1)parente[?]"
-->                    "cane~(essere_1)un animale[?]"
-->                    "animale~(essere_1)un mammifero[?]"
--> Sam è formato da piu' programmi exe.
--> Esiste ad esempio quello che genera le inferenze logiche che vengono
incorporate in un'altra base dati con pero' lo stesso formato.
--> Ad esempio, partendo dalla conoscenza appresa con le frasi scritte in
precedenza, l'altra base risulterebbe:
--->            "cane~(essere_1)un mammifero[?]"
----------------------------------------------------------------------------
-----------
Successivamente, quando gli poniamo una domanda, esegue un ragionamento
logico,
attraverso delle micro-istruzioni di ricerca, per individuare i dati utili
al fine
di ricavare la risposta.
----------------------------------------------------------------------------
-----------
In SAM non sarà presente in nessuna parte del codice un algoritmo che gli
dice come e cosa rispondere.
Quando riceve una domanda in input dovrà riuscire automaticamente a capire
cosa voglio sapere.
A questo punto invierà alla procedura comunemente chiamata GPS (General
Problem Solver), come stato
iniziale del problema, la condizione che lui non conosce cosa voglio sapere,
mentre come stato finale, quello che voglio sapere.
Poi tenta di ridurre la differenza tra i due stati (quello iniz. e quello
finale) tramite operatori (presenti nella base
di conoscenza); in questo caso essi non sono altro che i nomi delle funzioni
di ricerca dati che abbiamo creato in VB
(nel modulo della gestione della conoscenza). SAM li combina, secondo una
sua logica, adattandoli ai dati ricavati dalla domanda formando
un vero e proprio algorimo in VBScript, che, venendo eseguito vengono
ricavati (solo sottoforma di dati in formato speciale)
----------------------------------------------------------------------------
------------------
Trovati i dati, SAM, compone una frase rispettando le regole grammaticali
della lingua italiana.
----------------------------------------------------------------------------
------------------
Non saprei cosa aggiungere :))
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
Spero di essere stato abbastanza chiaro e vi ricordo che sam è diventato un
progetto Open-Source!
Ciao,
Matteo


ciao a tutti sono nuovo del ngs.
Ho scoperto questo ngs per caso.
La cosa dei chatterbot mi interessa assai specie perche' mi diletto a 
ca##eggiare ;#)
http://speciale7giorni.tv-show.com
scegliete la roboconduzione ed un piccolo js simula una chattata :#)
poi c'e' 
http://www.marialuisabusi.too.it
 entrando nella sezione fan 
club italia sotto la sezione ZIC Marisa c'e' il robot.js T-33 Marisa.
lo so e' rudimentale ma vorrei imparare di + :#)
Vorrei un vs parere e dei consigli sulle strade di sviluppo, per ora 
biascico il js e sono alle prime armi con il flash.
Penso che siano ambienti giusti per sviluppare piccoli robot. Non so.
E' giusto?
ciao a tutti!
6502
ps
penso che mi installero' e sottoscrivero' questo ngs, pare molto bello.
E' nuovo? io l'ho scoperto da poco? :-?
Tnx 1000 e ciao

E' nuovo? io l'ho scoperto da poco? :-?
No, lavato con perlana :-)
Augusto Pucci
http://www.neuraldaemon.com/pucci

cambia è il come e in quanto tempo.
posso consigliare ruby?
è molto simile a perl , regex e tutto quanto, una sintassi davvero
semplice, e completamente a oggetti.

 cambia è il come e in quanto tempo.
Eccetto per la velocità di esecuzione del codice, personalmente
mi sto trovando benissimo a programmare il mio bot SAM in VB5!
Lo so, è redicolo, ma è vero... ;-)
Home page del progetto di AI:
http://utenti.lycos.it/aifactory2/Home.html
Ciao,
Matteo

Lo so, è redicolo, ma è vero... ;-)
Macche' ridicolo. Mi ci trovo benissimo anch'io :))
Bisognera' fondare il partito di QCNDVB (Quelli Che Non Denigrano
Visual Basic). 
E anche per quanto riguarda la velocita'... compilato e' davvero tanto
piu' lento del C?
Ciao,
Anders 

 piu' lento del C?
Si' :-)
E poi non e' questione di velocita' ma di squallore :-)
Ste

 E poi non e' questione di velocita' ma di squallore :-)
Su questo NO.
Tralasciando la portabilità, che in effetti è Zero, e la velocità; cosa ha
di squallido?
A mio parere il VB è così criticato xkè i programmatori, in generale, non
accettano che sia così semplice creare programmi.
Cosa che col VB, per certi versi, è quasi banale, alla portata di tutti.
...
Cosa ne pensate invece del Delphi?
Ho intenzione di mettermi a programmare con questo linguaggio.
Mi sembra semplice quanto il VB (forse un po' meno :)) ) e per quanto
riguarda la velocità
e la portabilità ha praticamente nulla da invidiare al C... o no?

E poi non e' questione di velocita' ma di squallore :-)
Sai, a me interessano piu' le idee che altro. Non ho voglia di perdere
tempo a fare le cose, quando mi e' venuto in mente _che cosa_ fare. E'
quello il difficile :) 
Certo che, se il mio fantastico prog. potesse andare n volte piu'
veloce (ma n quanto e' grande? certamente dipende dal tipo di
programma. E se vi dico le caratteristiche del programma mi sapete
dire quanto e' grande n?), allora ci farei un pensierino.
Ciao,
Anders

 In quali operazioni e' piu' lento del C?
Dico questo per esperienza personale.
Nel mio programma di AI, SAM (
http://utenti.lycos.it/aifactory2/Home.html
 ), ho bisogno di una quantità
enorme di conoscenza.
circa 10.000... vocaboli e oltre da gestire come record di un DB.
Ora, facendo il confronto tra la gestione di questa conoscenza in vb e in c,
il c risulta essere molto più veloce.
Ma come ti ho detto, non mi metterei mai a programmare in C xkè, come hai
detto tu, è già un grande sforzo pensare all'algoritmo.
Piuttosto farei un pensierino per il Delphi... :)
Ciao,
Matteo

Piuttosto farei un pensierino per il Delphi... :)
Si, stavo cercando adesso dei benchmark di vb e c++ con google (non se
ne trovano: evidentemente tutti hanno la semplice certezza di come
stanno le cose :)) e ne ho trovati invece molti di Delphi. Pare
_molto_ veloce per quanto riguarda le operazioni matematiche e sulle
stringhe (e questo mi va molto bene, soprattutto per le matematiche),
un po' piu' lento di VB per la grafica (e questo mi va meno bene).
Pero' quasi quasi gli do' un'occhiata.  
Ciao,
Anders


No, mi sono creato delle funzioni in VB... :)
Il DB è un file di testo. hehehe

Credo proprio di si' :)
E' che delle semplici certezze altrui mi fido pochino. Io faccio un
ragionamento, che forse e' semplicistico (puoi confutarlo, se credi):
se scrivo un loop che fa 100000 volte un'operazione matematica, e lo
compilo in VB e C++, non vedo facilmente come il codice risultante
possa essere molto diverso. Immagino che le routines che vengono
richiamate siano le stesse, non credi?
Ciao,
Anders

 e la portabilità ha praticamente nulla da invidiare al C... o no?
Beh, non esageriamo... comunque con Kylix effettivamente c'e' uno sforzo per
rendere disponibile Delphi anche su piattaforme Linux.
Ste

linguaggio di simulazione interpretato, come Mathematica o Matlab :)
No no, a me interessa creare un'applicazione distribuibile.
Ciao,
Anders

 tempo a fare le cose, quando mi e' venuto in mente _che cosa_ fare.
Se invece ti vuoi dedicare a creare dei prototipi, utili solo a scopo
personale, posso capire il VB. Ma allora, tanto vale utilizzare un
linguaggio di simulazione interpretato, come Mathematica o Matlab :)
Ste

 stanno le cose :))
Credo proprio di si' :)
Ste

 richiamate siano le stesse, non credi?
Assolutamente no :)
Stefano

 No no, a me interessa creare un'applicazione distribuibile.
Con 10 mega di vbrun.dll incompatibile da una versione di linguaggio con
l'altra ?  :)
Stefano

 
e allora sbagli in pieno.
Se vuoi entrambe le cose, puoi sempre rifarti al java, tanto non chiedi
grandi prestazioni, ma solo semplicità d'utilizzo.
Ma forse io confondo con distribuibile con portabile (e faccio bene)
Giulio Prina Ricotti
-- 
"Dynamic memory delenda est" Brainlynx 26/02/02

ottimizzante :)
Questa e' una tua supposizione.
Ciao,
Anders

l'altra ?  :)
Hem, forse non sai di cosa stai parlando. Il VB e' completamente
compilato dalla versione 5 in poi, che e', se non sbaglio, del 1997.
Cioe' da 5 anni a questa parte :))
Ciao,
Anders 

Ma forse io confondo con distribuibile con portabile (e faccio bene)
Ho l'impressione che Java sia meno distribuibile di VB. Tutti i
programmi in Java che ho (programmi, non applet) hanno qualcosa che
non va, interfaccie grafiche incerte, instabili. Nel complesso, una
pessima soluzione per la distribuzione.
Quanto alla portabilita'... ma che vuoi portare ... oggi il 95% della
gente usa Win :)) Naturalmente scherzo, ma solo in parte.
Ciao,
Anders

 ha scritto nel messaggio
news:20030116162259.627...@ieee.org...

Ciao,
volevo chiedere una cosa a chi conosce Java, io lo conosco appena.
Con Java si puo' fare un applicazione che sfrutta il concetto di
elaborazione distribuita?
ovvero quella che permette di distribuire il carico di elaborazione di un
software
su diversi computer collegati in rete? (se ho ben capito).
lo chiedo perchè non lo so.
sapete quali linguaggi permettono questa tecnica?
nel caso con Java si potesse fare,
non potremmo provare a fare tutti insieme un chatbot che sfrutta questa
caratteristica?
sarebbe un chatbot con una potenza mostruosa!
è solo un'idea un po' strampalaata! :)
grazie.
ciao
newbie

 Assolutamente no :)
Beata ignoranza!
Lokar
--
UGIdotNET - 
http://www.ugidotnet.org

     int matrice[20][20];
Lokar


 quanti ce ne sono).
Stavo rispondendo, ma lascio perdere.
Dai dell'ignorante a qualcun altro, possibilmente, villano.
Plonketa ! Primo nel killfile di it.comp.ia !
Stefano

 compilato dalla versione 5 in poi, che e', se non sbaglio, del 1997.
Ecco, questa e' gia' una notizia confortante ^_^
Per il codice, devo cercare un esempio che mi garbi, pero' mi sa che se
continuiamo finiamo off-topo
Stefano

 Questa e' una tua supposizione.
Sara', pero' della lentezza ti lamenti pure tu :)
Stefano

 č solo un'idea un po' strampalaata! :)
...Sě, per essere stampalata, č strampalata :))
Ciao,
Matteo

Sara', pero' della lentezza ti lamenti pure tu :)
Beh, il mio programma e' abbastanza complicatuzzo - la versione
attuale, intendo, non quella che c'e' su internet. (Certo che, se
penso a Quake, anzi no, a Doom :) mi vengono i brividi. Come diavolo
si fa a fare programmi che fanno cosi' maledettamente tante cose in
cosi' poco tempo? Saranno milioni di volte piu' complicati del mio, ma
sono anche milioni di volte piu' veloci. E non dirmi che e' per il C).
Ciao,
Anders

 
L'idea non e' strampalata e sinceramente ci ho pensato spesso anch'io,
anche
riferendole a reti neurali (punto molto sulle RNN).
Cmq la prima cosa che mi viene in mente e' che per farlo, puoi benissimo
implementarlo da solo, gestendo le comunicazioni via socket,
tutto sta nel saper organizzare il lavoro. 
Non credo sia semplice, io i sistemi distribuiti li faccio alla fine del
corso
di sistemi operativi II, quindi fra 2 mesi, arrivato li' ti faccio
sapere :)


 sono anche milioni di volte piu' veloci. E non dirmi che e' per il C
Se vuoi non te lo dico, ma cio' non cambia lo stato dei fatti :)
E oltre che per il C e' anche perche' i programmatori di Quake o di un altro
videogioco sono anche notevolmente piu' bravi nel campo dell'ottimizzazione
di me e di te temo :)
Per il codice ti cerco un po' di documentazione gia' scritta, senno'
sbattimento a riscrivermi tutto :)
Stefano

 sarebbe un chatbot con una potenza mostruosa!
Uhm, ma la potenza di calcolo e' un bottleneck per un chatterbot ? Chiedo,
da profano.
Stefano

 Matteo
ciao!
alla prossima.

 sapere :)
grazie molto. :)
ciao
newbie.

 Stefano
beh, io non sono proprio un esperto di chatbot, perň, lavorando al mio spock
mi sono accorto che si potrebbero fare delle librerire standard  e
indipendenti
per svolgere determinati compiti.
Es. interpretare le frasi in linguaggio naturale,
gestire la base di conoscenza, fuzzy, NN, general problem solver, voce,
ecc..
tutti questi compiti si potrebbero gestire in parallelo.
il calcolo distibuito potrebbe servire per interrogare (NLP) una *grande*
base di conoscenza distribuita
sui vari pc della rete, e nello stesso tempo su ogni pc si istruisce il
sistema "chattando", che
successivamente in modo autonomo, sempre sfruttando il calcolo distribuito,
potrebbe raccogliere informazioni dal web.
sarebbe un "chatbot" di tipo multi-agente ma di tipo gerarchico.
insomma, un bel calderone di roba. :)
Ciao
newbie.

di me e di te temo :)
E qui volevo arrivare... devono essere degli stramatti. Immagino che
John Carmack sia una mente. Massimo rispetto :))
Ciao,
Anders

 sintassi e che non e' portabile :P
E via con sparate sempre piu' grosse!
Il punto "forte" della piattaforma .NET e' che il Framework _compila al
volo_ e non _interpreta al volo_ come la VM Java. Questo porta a tutta una
serie di ottimizzazioni (fra le altre) relative alla macchina su cui e'
eseguito il programma .NET. Ma forse si farebbe prima ad informarsi/studiare
un poco, prima di sparare a volo d'uccello!
Il Common Language Interface (fondamentalmente il runtime di .NET) ed il
linguaggio C# sono, inoltre, approvati dall'ECMA, l'ente preposto alla
standardizzazione dell'informazione e dei sistemi di comunicazione. Maggiori
info:
http://www.ecma.ch/ecma1/STAND/ecma-334.htm
http://www.ecma.ch/ecma1/STAND/ecma-335.htm
Esiste attualmente un progetto open-source che implementa il framework su
linux.
http://www.go-mono.com/
In quanto standardizzati (CLI e C#), MS non potra' fare il bello ed il
cattivo tempo a riguardo.
Anders, se posso permettermi, diffida dalle informazioni che ti fornisce
Raistlin, che come dimostrato, non sono sempre e del tutto affidabili. La
rete e' bella perche' e' varia, troverai moltissime informazioni utilizzando
un motore di ricerca qualunque. Io ti consiglio Google, ed in particolare la
sezioni gruppi nella gerarchia it.comp.*/it.comp.lang.* se vuoi trovare
opinioni e pareri diversi ma _giustificati_ sulle potenzialita' dei vari
linguaggi.
IMO:
Visual Basic 6:
  Pro:
    - Linguaggio intrinsecamente OOP che permette
      _anche_ programmazione funzionale;
    - Rapidita' di sviluppo di progetti _semplici_;
    - Rapidita' di sviluppo delle interfacce grafiche;
    - Grandissima disponibilita' di componenti _semplici_
      per effettuare un gran numero di operazioni
      _complesse_ dall'accesso alle basi di dati;
      alle comunicazioni su reti ad interoperabilita'
      con altri software;
    - Possibilita' di utilizzare API del s.o. per
      effettuare operazioni complesse;
    - Semplicita' nello sviluppo, in genere :D
  Contro:
    - OOP mancante di ereditarieta' di implementazione
      e di polimorfismo.
    - Grande complessita' nel gestire/manutentere progetti
      di grandi dimensioni;
    - Necessita', nel caso in cui si utilizzino componenti
      base (e non costrutti!!!) di VB, di ridistribuire
      il Runtime di VB (~1.3 Mb);
    - Zero portabilita';
    - Ostacoli allo sviluppo di grandi/complessi progetti,
      in genere...
C++:
  Pro:
    - Linguaggio OOP _completo_ che permette _anche_
      programmazione funzionale;
    - Altissima manutenibilita' del codice e possibilita'
      di riuso (ovviamente se ben scritto ;))
    - Possibilita' di accedere a costrutti di bassissimo
      livello, molto vicini ai meccanismi del
      linguaggio macchina;
    - Alta portabilita' (a meno di usare componenti
      esterni localizzati);
    - Possibilita' di fare piu' o meno tutto, in genere :D
  Contro:
    - Lentezza di sviluppo anche di progetti semplici;
    - Lentezza ed alta complessita' nello sviluppo
      di interfacce grafiche;
    - Grande complessita' di varia natura, in genere...
Java:
  Pro:
    - Gli stessi di C++ e VB6;
    - Ottime e quasi-esaustive librerie che permettono
      di effettuare numerose operzioni complesse in
      modo semplice;
    - Gestione della memoria mediante Garbage Collector;
  Contro:
    - Codice interpretato dalla VM e _non_ compilato;
    - Lentezza _estrema_ di programmi complessi;
    - Gestione della memoria _solo_ mediante Garbage
      Collector;
    - Difficile portabilita' di programmi complessi;
    - Lentezza, in genere...
Fra C# e 
VB.NET
, tendenzialmente meglio il primo, in quanto al secondo manca
"ancora" l'overloading degli operatori ed altre piccole funzionalita'
presenti in C# (inutile dire pero' che 
VB.NET
 ha alcuni "pregi" che mancano
a C#).
C#/
VB.NET
:
  Pro:
    - Gli stessi di C++ e VB6 ;)
    - Una enorma e quasi-esaustiva Base Class Library
      (BCL) che permette di effettuare numerose
      operazioni complesse in modo assai semplice;
    - BCL comune a tutti i linguaggi .NET;
    - Potenzialita' mostruose, in genere :D
  Contro:
    - _Attuale_ mancanza di framework completi per
      tutti i S.O. (nonostante esistano progetti open-source
      per Linux e MAC);
    - Gestione della memoria _solo_ mediante Garbage
      Collector;
    - Linguaggi nuovi con tutti i "rischi" del caso.
Just my 2 eurocent!
Le opinioni sui vari linguaggi sono da intendersi senza intenti esaustivi.
Se ho scritto qualche castroneria (e' probabile!) saro' felice di essere
smentito con la dovuta documentazione.
Happy Coding =)


 (per il calcolo distribuito ovviamente)
Ricordati però che i PC dovrebbero rimanere sempre in rete e attivi, e non
so chi ha questa possibilità.
Io potrei dare la mia disponibilità cmq xkè ho un collegamento AIDSL con
FastWeb...

 John Carmack sia una mente. Massimo rispetto :))
Sempre ! :)
Stefano

 (per il calcolo distribuito ovviamente)
No :-)
Pero' se lo fate in universita' potete provare a chiedere una mano al CINECA
Stefano

 tutti questi compiti si potrebbero gestire in parallelo.
Ok, ma il mio punto e': serve ? Cioe', un processore moderno da gigahertz, o
un bel biprocessore da gigahertz, sono un collo di bottiglia per una
applicazione del genere ?
Stefano

     - Lentezza, in genere...
Prova le JVM ottimizzate di IBM e sappimi dire.
Sulle opinioni per gli altri linguaggi non mi esprimo, ma se sono informate
come quelle relative a Java c'e' da mettersi  le mani nei capelli.
Stefano

 mettersi  le mani nei capelli.
Sulle opionioni degli altri linguaggi *e' meglio* che non ti esprimi, dato
quanto hai gia' espresso e' infondato, colmo di ignoranza e presunzione. E
aggiungo: Troll.
Lokar
--
Sito Comune: 
http://www.it-lang-vb.net/
Manifesto: 
http://www.it-lang-vb.net/docs/Manifesto.txt
UGIdotNET - 
http://www.ugidotnet.org

Avendone conosciuto qualcuno,  si' :)
Ahime', chi? 
Ciao,
Anders

 Ahime', chi?
Un po' di sviluppatori dei simulatori di volo della Jane's e di vari titoli
Ubisoft :)
Stefano

 aggiungo: Troll.
Troll, eh ? Vabbe', dai: da uno che insulta il prossimo lo prendo come un
complimento :)
Stefano

risultati hai ottenuto.
Naturalmente la visualizzazione puo' essere disattivata, il che e'
utile quando si e' sui 20/30 FPS, perche' disattivandola si passa
facilmente a 60/70 virtuali. Quando pero' all'aumentare degli
organismi (i blocchi) gli FPS scendono intorno ai 10 o anche meno, li'
ovviamente non si guadagna piu' molto.
Comunque ho inserito in ogni routine sospetta un contatore del tempo
totale di esecuzione, e pare -non sono sicurissimo dei risultati- che
il peggio stia nell'esecuzione della vista. La routine della vista non
e' quadratica sul numero totale dei blocchi perche' c'e' una lista
collegata che ne mantiene l'ordinamento sull'asse x, cosi' che
scorrendo la lista posso indagare solo quei blocchi che stanno in una
fascia ristretta dello schermo rispetto al blocco "osservatore". Poi
naturalmente per ogni blocco in questa fascia devo calcolare l'angolo
rispetto all'occhio dell'osservatore, la distanza ecc, e se ricade
nella visuale devo aggiornare i valori delle nove celle visive
dell'occhio... insomma, e' pesantucchia come cosa.
Se hai suggerimenti...
Ciao,
Anders

 dell'occhio... insomma, e' pesantucchia come cosa.
Eh mi sa di si'.
Ti direi "fammi dare un occhio al codice", ma temo di non capirci granche'
se e' un VB molto elaborato :)
Se ti va di sbatterti a spiegarmi in pseudocodice quello che fai (o mi mandi
del codice VB, pero' estraendo i pezzi rilevanti :) provo a farmi venire in
mente qualcosa.
Stefano

>>[CUTTONE EPICO]
Forse la  piu' bella flamewar di tutti i tempi tra c vs VB combattuta per
mezzo di luoghi comuni da sistemisti/studenti prestati alla programmazione.
In ogni caso : VB e' una paccata unica ,uno dei maggiori mali dell' indotto
MS ,buono solo per gestioni di magazzino e schede clienti ,lento ,spesso
incomprensibile negli errori e soprattutto TERRIBILMENTE ANTIESTETICO ;un
bel sorgente c riempie il cuore di felicita' a chiunque e questo mi sembra
gia' abbastanza.
Per concludere:se io fossi un sistema esperto e venissi a sapere di essere
stato creato in VB chiamerei subito una system con argomento "rm -rf /*"  e
dato che non funzionerebbe perche' starei girando sotto MS mi butterei nel
cestino a piangere per l'eternita' .
Spero che le mie argomentazioni vi abbiano convinto ^_^
pollo

Spero che le mie argomentazioni vi abbiano convinto ^_^
Ma va la', trollone.

 pollo
Matteo


Spero si sia capita l'ironia
Per quanto riguarda dare un minimo di dignita' ontopic a questo post ,almeno
nel contesto del thread: il rapporto tra istruzioni c e istruzioni assembly
 e'  quasi 1 a 1 ed il programmatore c puo' ottimizzare moltissimo i suoi
programmi attraverso un'attenta analisi algoritmica e di gestione della
memoria.
il vb tradurra' il linguaggio di alto livello in sequenza di codice piu' o
meno standard ,per cui magari utilizza cicli generici in cui vengono magari
utlizzate
molti conditional branch inutili ,spostamenti in memoria ecc ecc.
Io ,e molti 'veri' programmatori (yeaah!) mi assicurano che scrivere
l'application level in vb e utlizzare delle dll per il core
sia la soluzione che ottimizza al meglio il rapporto time to
market/prestazioni,anche se molto spesso le prestazioni non interessano a
nessuno mentre il ttl
e' la causa di molte risse rep. produzione VS uff. marketing.
pollo

mente qualcosa.
Mah, in realta' potrei mandartelo anche cosi', tanto io programmo in
un modo che dovrebbe essere abbastanza chiaro, e il VB e' piuttosto
leggibile.
Appena posso te lo mando.
Ciao,
Anders

sia la soluzione ecc. ecc.
E io sono perfettamente d'accordo, quando si abbia la necessita' di
prestazioni notevoli (sarai d'accordo con me che nella maggior parte
dei casi non e' cosi': il 99% del software che si usa in qualsiasi
contesto (o il 99% di ogni singolo software, escluso Quake
naturalmente :)) non necessita di particolari velocita' di esecuzione.
Comunque, giro a te la domanda che ho provato inutilmente a fare nel
luogo della disperazione, cioe' it.comp.lang.visual-basic.
Ovvero: come faccio a fare una dll che contenga una procedura che
prende in input l'indirizzo di una variabile che e' un tipo utente VB
(cioe' uno struct in C) che pero' fra le altre cose contiene cose come
stringhe a lunghezza variabile e puntatori ad oggetti form (nota che
su questi dati poi non devono essere compiute elaborazioni, solo che
vanno previstoi se voglio passare un puntatore a tutto lo struct)?
Ovvero, come devo dichiarare lo struct nella dll in C?
Ciao,
Anders

 leggibile.
Sull'ultima affermazione mi vengono degli strani brividi :) ma faro' del mio
meglio :)
Ste

 darmi una mano.. chiedero' a loro :))
Ehm, per quanto mi riguarda, nessun gran programmatore... solo "abbastanza"
equilibrato nell'esprimere giudizi... ;)
Se vuoi mandarmi il codice, gli do volentieri un'occhiata... metto le mani
avanti pero': non garantisco nulla! ;)
hth,


anders wrote:
[CUT]
 > Comunque, giro a te la domanda che ho provato inutilmente a fare nel
 > luogo della disperazione, cioe' it.comp.lang.visual-basic.
 > Ovvero: come faccio a fare una dll che contenga una procedura che
 > prende in input l'indirizzo di una variabile che e' un tipo utente VB
 > (cioe' uno struct in C) che pero' fra le altre cose contiene cose come
 > stringhe a lunghezza variabile e puntatori ad oggetti form (nota che
 > su questi dati poi non devono essere compiute elaborazioni, solo che
 > vanno previstoi se voglio passare un puntatore a tutto lo struct)?
 > Ovvero, come devo dichiarare lo struct nella dll in C?
 >
 > Ciao,
 > Anders
Ciao Anders, scusa se mi permetto di rispondere (intrepretando la tua 
domanda al NG come "pubblica").
Se vuoi ottenere una DLL a 32Bit con 100% compatibile con VB potresti 
far ricorso a PowerBasic (
www.powerbasic.com
); in azienda lo impieghiamo 
  da tempo con soddisfazione facendo ricorso all'assembly solo in casi 
estremi ed impiegando esclusivamente VB6 per il main program di tutte le 
nostre applicazioni industriali e di controllo di processo, dopo aver 
provato ed accantonato per motivi diversi C++ e Delphi.
SE proprio fosse necessario puoi inframezzare codice VB e assembly on 
line senza perdere tempo e buonumore con altri linguaggi;volendo 
visionare l'help del PowerBasic si puo' prelevare il file relativo sul 
sito,
insieme ad esempi e benchmark.
Gli anni passano ma la preconcetta e disinformata avversione - tutta 
cattedratica- verso il basic e' dura a morire, sorretta dalla falsa 
convinzione che la programmazione sia solo C (e perche' non assembly?).
Ma e' stato cosi' anche per il latino e le altre lingue morte.
Qualche benchmark fra C++/J/VB lo trovi su craking univ. 
http://www.crackinguniversity2000.it/indexB.html
alla sezione programmazione.
Buona giornata.
maurizio

 alla sezione programmazione.
Grazie ai miliardi di jscript + banner, il sito e' mostruosamente lento
(persino con un ADSL business) e di difficile consultazione. Non ho trovato
quindi i benchmark di cui parli.
Potresti postare un link diretto, per favore?
Intanto, qualche link pescato a caso dalla rete:
-----
Benchmark
http://www.angelfire.com/sc/rodsources/itbench.html
http://gotdotnet.com/team/compare/
-----
Tabelle comparative sui vari linguaggi:
http://www.jvoegele.com/software/langcomp.html
http://www.liquidmarkets.com/?name=bb&t=1
http://www.theadvisors.com/langcomparison.htm
-----
Umoristiche:
http://www.vicksburg.com/~bryant/funnies/funny7.htm
http://99-bottles-of-beer.ls-la.net/


 Potresti postare un link diretto, per favore?
Guarda questo, e vedi un po' l'inusuale conclusione dei test....
http://www.tjpetz.com/presentations/comperformance.asp
Ciao!
maurizio

 Potresti postare un link diretto, per favore?
Vedi anche questo (comparazione  a tutto campo) , sia pur limitato alla 
versione 5 che NON era ottimizzata come la 6.
http://archive.devx.com/premier/mgznarch/vbpj/1997/09sep97/bm0997.pdf
Ciao!
maurizio

> 
http://www.tjpetz.com/presentations/comperformance.asp
LOL: the RPC server is unavailable,  lo prendiamo come un benchmark di
affidabilita' ? :)
S.

 affidabilita' ? :)
Porbabilmente hanno un firewall esperto che conosce i tuoi ip e cosa fai
nella vita ,quindi
,fiutando il pericolo   hanno chiuso tutti servizi esposti per minimizzare
il rischio .
(Scusate ma cercavo di rimanere it cazzeggiando)
pollo

 
http://archive.devx.com/premier/mgznarch/vbpj/1997/09sep97/bm0997.pdf
Grazie per l'eccellente articolo! Sarei curioso di vedere dei benchmark seri
_anche_ su VB6 in comparazione con gli altri linguaggi.
Mi sa che pero', siamo andati un po' OT in questo thread... ;)



Riporto sotto la pagina, peraltro raggiungibile, e chiudo.
Ciao!
maurizio
"Unexpectedly the Visual Basic object is the fastest of all."
Papers and Presentations
COM Performance: VB, Java, and VC++
The following projects makeup a simple set of COM objects that explore 
the performance capabilities of implementing COM objects in various 
languages.  To perform the tests down load each component to a separate 
directory and then compile each component.   The Statistics Object is a 
COM object used to gather sample statistics.  The Build DB script 
creates a simple database.  You should create the Database in SQL Server 
and give it the name "COMPerfTest".  Also you will need to modify the 
database connection strings of the various components that access the 
database to set the user id, password, and server name for your 
database.  You will need to create a package in MTS to host the ATL 
Middle and Java Middle components.  You may place both the objects in 
the same package.  Each object should be marked as "Requires a New 
Transaction".  Once the components are compiled and registered use the 
Benchmark application to drive the various tests.
Source File
Description
Benchmark The Visual J++ 6.0 test harness.
Dispatch Test A Visual J++ 6.0 COM object implementing an IDispatch 
interface.
VTable Test A Visual J++ 6.0 COM object implementing a Dual interface
VB Speed Test The same object implemented in VB 6.0
ATL Test The same object implemented in VC++ 6.0 using ATL
Java Middle An MTS object implemented in Visual J++ 6.0 with a Dual 
interface
ATL Middle An MTS object implemented in Visual C++ 6.0 with a Dual interface
Build DB Script to build the SQL Server database
Statistics Object A COM object implemented in Visual J++ that handles 
the statistics.
The tests break down into two different areas: raw performance and 
database access.   In the raw performance Dispatch and VTable based 
objects are compared in Visual J++ against VTable based objects 
implemented in Visual Basic and Visual C++ using ATL.   Each object 
implements two methods, a method to evaluate a 2nd order polynomial and 
a method that simply returns its argument.
As expected the dispatch interface based object is around an order of 
magnitude slower than the VTable based objects.  The ATL object is 
faster than the Java object.   Unexpectedly the Visual Basic object is 
the fastest of all.  The Visual Basic speed may be due to the fact that 
COM uses native Visual Basic data types.  Further investigation should 
be performed in this area to validate this assumption.
The second set of tests benchmark the performance of a middle tier 
component hosted in MTS accessing a SQL Server database using ADO.  Only 
Java and ATL objects are compared.  The benchmark initializes a set of 
test data and then performs a set of insert operations.  Note that each 
object uses exactly the same set of steps, the goal of the benchmark is 
not to benchmark MTS or SQL Server but the performance of a component 
performing identical actions in Java and C++.  As expected the C++ 
object is faster.
It is unfortunate that there is a rather noticeable performance 
difference between C++ and Java COM objects.  Java provides a much 
simpler syntax for creating COM objects than C++.  Unfortunately the 
performance difference between C++ and Java COM objects makes it tough 
to justify implementing middle tier objects for performance critical 
applications.
Copyright © 1998 by Thomas J. Petz, Jr. All Rights Reserved.

 COM Performance: VB, Java, and VC++
Gia' il fatto che si parli di Java a proposito di VJ++ con l'uso di COM fa
rabbrividire :)
Stefano

 Cioe' da 5 anni a questa parte :))
L'ultima volta che ho usato VB era appunto la versione 5  e mi pare di
ricordare che, anche se completamente compilato, aveva bisogno ancora della
vbrun.dll.
P.S. Perché non provate a prendere in considerazione il Python? È un vero
linguaggio più di alto livello e più portabile del VB e al problema della
velocità si può ovviare scrivendo le routines più veloci in C.
--
tcp...@tin.it