Newsgroup: it.comp.lang.vo-clipper
Titolo: Cosa penso del VO 2.5

Ciao a tutti, mi presento:
Sono un programmatore CLIPPER dal 1989 (versione '87, 5.0, 5.2);
lavoro presso una ditta che produce programmi gestionali (principalmente
programmi paghe ecc.)  e fino a che non ho scoperto il VO 2.5 pensavo che il
CLIPPER fosse un linguaggio molto semplice ma altamente produttivo (certo
mancavano alcune funzionalità del C come la tipizzazione delle variabili ,
una gestione più completa degli oggetti  ecc ; però mi sono fatto diverse
routine in C e MASM 5.1 che ho linkato brillantemente ) adatto a risolvere
qualsiasi problema .
Poi , con WINDOWS,  tutto è cambiato, e il CLIPPER, pur essendo ancora
valido, è risultato via via sempre più limitato a gestire nel migliore dei
modi le periferiche dell'ultima generazione  ( ad es. le stampanti laser e
inkjet , ma non solo). Così anche noi abbiamo dovuto scegliere un linguaggio
di programmazione per WINDOWS.
La scelta è ricaduta su VO2.5 perchè deriva dal CLIPPER e quindi più facile
da comprendere. Ben presto ci siamo resi conto che lo scoglio da superare
non era il linguaggio in sè ma la gestione degli eventi propria del sistema
operativo. Dopo aver compreso tutto ciò il resto è stata una strada in
discesa . Oggi stiamo riscrivendo ex novo tutto la nostra procedura paghe.
In questo momento sto terminando la DLL con le routine comuni (circa 1.2 MB)
e una buona parte del programma è ormai terminato; il tutto direi con buoni
risultati.
In definitiva ritengo VO 2.5 un ottimo linguaggio che può competere con il
C++ e DELPHI  ( gli altri linguaggi li conosco solo di nome e non ho una
vera base di confronto). E' comunque mia opinione che ,con WINDOWS, le
caratteristiche dei linguaggi siano ormai molto simili ( in fondo tutti
hanno un'interfaccia GUI ad alto livello ma poi sotto ci sono le chiamate
alle API del sistema operativo ); in fondo quello che cambia è il "dialetto"
con cui si scrive un programma ( almeno per linguaggi suindicati ).
Fabrizio Malaguti
P.S.
è poco che ho scoperto il NG  e sono contento che ci siano altri
programmatori che hanno fatto la nostra stessa scelta.

 ha scritto nel messaggio
news:_hd87.29597$Qf6.2...@news2.tin.it...


Ciao ... benvenuto tra noi
Non ti sentirai solo !!!  anche se non sembra ma in italia (tra ufficiali e
non ) siamo circa 1500 !! sviluppatori VO.
Teniamoci tutti in contatto perché siamo in molti a pensare quello che hai
scritto
Purtroppo dobbiamo sopperire un pò noi alle carenze di pubblicità di CA ma
l'impegno non manca perché VO merita questo e ben altro !!
Ciao
Enio Donci

(continua)
Non so se sei informato ma si sta ricostituendo lo User group dopo che la
Open Team ha chiuso, (
www.windevs.com
 )
Già da tempo riviste come DEV di Infomedia ospitano una rubrica su VO
dove scriviamo (a turno ) io e Fabio Cresta.
La stessa Infomedia ha pubblicato il libro in Italiano "alla scoperta di CA
Visual Objects"
(
www.infomedia.it
 )
Verso Ottobre (forse periodo SMAU ) la CA insieme ad altri organizzeranno un
Technical Meeting su VO e Jasmine. Dobbiamo partecipare numerosi  perché
sarà molto interessante (guarda  il programma su 
www.windevs.com
 )
Vi aspettiamo per conoscerci
Ciao
Enio Donci


Anch' io ho riscritto il programma di contabilita' generale che prima era in
CLIPPER in VO e devo dire che non perde un colpo nonostante Windows ....
Saluti e benvenuto
Paolo Calzi

del genere, con C, C++ e Delphi non c'e' paragone.
Spiegati meglio, cosa avrebbe Delphi di grazia in piu' di VO?
Ignazio GSS©
More than 90 HiRes images in my home page  
http://www.geocities.com/~puddu/
Oltre 200 Immagini di endoscopia digestiva
http://www.areamedica.com

con cui si scrive un programma ( almeno per linguaggi suindicati ).
Forse confondi le funzioni del sistema operativo con le
caratteristiche di un linguaggio.
VO come Clipper possono forse essere paragonati ad un Cobol o qualcosa
del genere, con C, C++ e Delphi non c'e' paragone.
ciao, acc.   
a...@libero.it

Spiegati meglio, cosa avrebbe Delphi di grazia in piu' di VO?
Efficienza, sia per cio' che riguarda le dimensioni del codice
compilato che per la velocita' di esecuzione dello stesso.
ciao, acc.   
a...@libero.it

compilato che per la velocita' di esecuzione dello stesso.
Mah, non ho mai fatto paragoni diretti, ma di VO non mi posso certo
lamentare per la velocita' di esecuzione, tranne per alcune cose per
le quali sono disponibili classi migliori di terze parti. E poi a che
tipo di velocita' ti riferisci? Su archivi o su che tipo di
operazioni?


operazioni?
Non mi riferisco certo alle operazioni su archivi ed I/O in genere,
che dipendono piu' dal sistema operativo e dall'hardware.
La mia osservazione era riferita solo alle funzionalita' tipiche del
linguaggio (gestione variabili e memoria, operazioni
logiche/matematiche, etc.)
ciao, acc.   
a...@libero.it

logiche/matematiche, etc.)
Ma io non ho mai avuto problemi di velocita' in VO. Va bene che non
progetto simulatori di volo, ma non mi pare che VO sia nato per
quell'uso (anche delphi pero' non credo che vada meglio in quel
campo).


logiche/matematiche, etc.)
A quanto ne so il VO genera codice macchina puro, non P-Code o roba
simile, quindi non mi pare che la tua affermazione, se non supportata
da dati obiettivi sia corretta, ma sia solo una tua ipotesi.
Hai delle misurazioni e dei benchmark di confronto da farci vedere? 


Chiedo scusa, mi potete dire dove posso acquistare una copia del VO 2.5,
grazie.

Non c'è problema !!!
www.windevs.com
Benvenuto tra noi !!!
ti assicuro che comincia un'avventura molto entusiasmante, un consiglio (se
sei alle prime armi con VO) alle prime difficoltà non desistere, e normale
averne... ci siamo passati tutti, ma dopo è uno spasso telo garantisco
Ciao a risentirci presto
Enio

campo).
Ti pare o l'hai provato ? C'e' una bella differenza !
BTW non prendere questo mio intervento come una critica a VO. Sebbene
io non utilizzi tale prodotto, ho pero' avuto modo di provarlo e sono
convinto che per il target di applicazioni a cui si rivolge sia piu'
che valido.
Non mi pare giusto pero', attribuirgli meriti che non ha, qualcuno
potrebbe prendere sul serio certe affermazioni per poi farne le spese.
ciao, acc.   
a...@libero.it

Hai delle misurazioni e dei benchmark di confronto da farci vedere? 
Non servono benchmark, la differenza e' talmente evidente.
In ogni caso basta prendere il sorgente di un bench a caso (ne
esistono tantissimi) e portarlo su VO...
ciao, acc.   
a...@libero.it

potrebbe prendere sul serio certe affermazioni per poi farne le spese.
Ma veramente io non gli attribuivo nessun merito particolare, tranne
quello di essere il miglio linguaggio che ho trovato per il tipo di
applicazioni che scrivo io, dicevo solo che non mi pare per niente
lento, tutto qui.


esistono tantissimi) e portarlo su VO...
Perche' non proviamo?
Mi dai un indirizzo da cui scaricare un benchmark?
Guarda che con VO si puo' ottimizzare molto il codice.


 Guarda che con VO si puo' ottimizzare molto il codice.
Caro Ignazio, non credo che tu abbia compreso completamente a cosa si
riferisce acc (dimmi te se questo puo' essere uno pseudonimo .... :-)) ).
Se tu prendi due copilatori C++ (ma forse anche C standard ...) e gli dai in
pasto la stessa routine, poi disassembli gli exe, ti accorgi, se hai i
controcazzi, che un compilatore ha 'tradotto' in maniera piu' efficiente di
un altro.
Nei lontanissimi tempi in cui capivo qualche rara cosa di assembly, ricordo
che tre compilatori : broland watcom e MS producevano compilati abbastanza
diversi. Se non ricordo male watcomm era considerato il migliore. Delle
volte puoi essere un manico della ottimizzazione, ma poi il compilatore fa
quel che puo'.
Devi anche considerare che i compilatori sono stati scritti utilizzando
altri compilatori ..... quindi alcune routine si stratificano nelle
compilazioni e non sempre i parser delle istruzioni sono in grado di
tradurre in modo efficiente le istruzioni stesse.
L'argomento e' molto coplesso, ma credo che perderesti la scommessa, se la
facessi.
Ciao :-)
Max Vassura

facessi.
Con il C di sicuro, con il Delphi ho dei dubbi.
E comunque non credo che le differenze siano cosi' grosse da far
scegliere un linguaggio piuttosto che un altro, a meno che la
velocita' non sia il parametro principale di confronto. 
Un conto e' se devi scrivere un videogame, ma non credo che nessuno
usi ne' VO ne Delphi per scrivere un gioco, e presumo che le routines
piu' delicate per la velocita'  siano sempre fatte in assembly.


 piu' delicate per la velocita'  siano sempre fatte in assembly.
Lo credo anch'io. Però è anche vero che per la restante parte non così
critica (che può rappresentare una percentuale molto alta del progetto,
visto anche che oggi si utilizzano, per la parte grafica, librerie già
pronte come le OpenGL) anche un qualsiasi strumento meno efficiente ma
più produttivo può rivelarsi prezioso.
EMG

più produttivo può rivelarsi prezioso.
Si, ma io trovo VO produttivo in modo eccezionale. A parte la curva di
apprendimento sfavorevole (che comunque e' meno terribile di C e C++)
una volta che hai imparato sei in grado di produrre una applicazione
completa in rempi rapidissimi e di riciclare buona parte del codice
che hai scritto. Sulle applicazioni poi di database lo trovo
addirittura insuperabile.


 velocita' non sia il parametro principale di confronto.
Puoi provare a caricare centinaia di migliaia di dati e scaricarli da un
database, fallo parecchie volte di seguito.
Molto semplicemente si potrebbe vedere di caricare e scaricare qualche
centinaio di migliaia di dati da un array per una decina di volte.
Si potrebbe vedere quanto ci mette a caricare .... ma soprattutto a
*scaricare* l'array e farlo fare per delle ore per vedere quale dei due
eseguibili manda a in crash il SO per primo. Come gestisce *automaticamente*
la garbage collection VO (so che VO ha la possibilita' di gestire
direttamente la GC, e questo e' buono....ma credo che sia un tecnica di
programmazione avanzata) ?
Potrebbe essere interessante fare questo esperimento :-))
Uno dei punti di forza di .NET ( arridaje :-)) )e' proprio quello di aver
estremamente ottimizzato un linguaggio assembly nel quale i vari compilatori
traducono i sorgenti. Capisci che se per scrivere hello world uno puo'
scegliere qualsiasi linguaggio, oppure quello al quale e' abituato, ma il
risultato sara' sempre la direttiva ottimizzata :
.assembly hello {}
.assembly extern mscorlib {}
.method static public void main(  ) il managed {
.entrypoint
.maxstack 1
ldstr    "Hello World"
call       void [mscorlib]System.Console::WriteLine(class System.String)
ret
}
sara' un bel passo avanti.
Ho desistito dal mettermi a studiare *seriamente* CAVO l'estate scorsa,
proprio perche' l'opportunita' che il linguaggio piu semplice di tutti
potesse produrre le stesse direttive di un C++ migliorato ...... mi e'
sembrata davvero rivoluzionaria. Ho quindi preferito approfondire lo studio
di questo nuovo MS Intermediate Language, che inoltre promette una buona
integrazione col web, e per fare i programmi che dobbiamo fare noi, sembra
il prodotto piu' interessante dopo Java.
Comunque devo dire che piu' leggo di CAVO piu' mi impressiona :-)
Come sempre lo scambio di opinioni, se svolto in maniera costruttiva, e' il
modo migliore per aumentare le proprie conoscenze :-)
Ciao :-)
Max Vassura
www.vaxmax.it
 (In costruzione)

centinaio di migliaia di dati da un array per una decina di volte.
Mi mandi due righe in visual basic che io lo traduco in VO e vediamo
la differenza di tempi?


risultato sara' sempre la direttiva ottimizzata :
In vo puoi scrivere 
QOut("Hello world")
Non e' molto difficile :-)


 la differenza di tempi?
ahhh beh col visual basic non c'e' proprio storia :-))
Magari ne riparliamo con 
VB.NET
 :-))
MaxVax

 Non e' molto difficile :-)
Quelle linee che ti ho mandato sono una specie di linguaggio assembly che
viene poi tradotto dal CLR (common language runtime) in linguaggio macchina
puro.
Prova a disassemblare il tuo exe Hello world e guarda cosa trovi :-))
La cosa interessante e' che possono essere fatti dei CLR per diverse
piattaforme, esattamente come la JVM. Le specifiche del CLR sono pubbliche e
sono gia' partiti per fare la CLR per linux.
Chi vivra' vedra' ....
MaxVax

Prova a disassemblare il tuo exe Hello world e guarda cosa trovi :-))
Lo faccio ancora piu' semplice da compilare:
FUNCTION Start(p)
  LOCAL oCon AS Console
  oCon := Console{}
  oCon:WriteLine("HELLO WORLD")
// Non credo che in C sarebbe molto piu' veloce :-)



-----------------------------
Fabio Cresta
Computer Associates FSG Consultant
VO/Jasmine specialist
e-mail: 
fabio....@ca.com
 
fcr...@tin.it
 
fcr...@windevs.com
web: 
http://www.windevs.com
------------------------------

Fabrizio,
   mi interessano più questi interventi  rispetto a quelli prettamente
tecnici (ovvio) se vuoi rispondi a queste mie domande in quanto sono
fortemente interessato a quello che dici. Condivido pienamente quello che
dici a proposito dei diversi "dialetti".
Esattamente di cosa ti occupi? Analisi, programmazione
Che tipo di software produci? verticale, pacchetti
Lavori in team o lavori da solo?
Sapresti valutare quanto tempo ci metti in più (o in meno!?) programmando
con VO in Windows rispetto a quello che sviluppi in Clipper/Dos? 2X 3X 1X
.5X
Quando sorgente clipper 5.2 hai riutilizzato totalmente?
Le tue applicazioni in VO sono robuste, stabili, veloci come quelle che
proponevi in Clipper?
Hai mai avuto brutte sorprese installando il tuo programma su qualche
stazione "strana" (o vecchissima o nuovissima)?
I ragionieri e i dottori commercialisti preferiscono usare il mouse o la
tastiera per il data entry?
Usi Report Pro? In caso affermaticvo ti trovi bene?
Ritieni che il sistema operativo Windows sia "tutto sommato" valido o no da
proporre ad un ufficio paghe?
Ciao


Ciao e grazie dell'accoglienza.
Fabrizio Malaguti

 E' un lavoraccio, ma sicuramente si impara tanto.
In effetti č proprio un lavoraccio. Lavorando sui programmi paghe ho appreso
molto e cose molto diverse da quelle che mi occupo al di fuori del lavoro
( il mio hobby č seguire la borsa e a casa ho creato un programma di borsa
in CLIPPER che mi ha dato grandi soddisfazioni) .
Ciao

Buone e meritatissime ferie allora

Oltre 200 Immagini di endoscopia digestiva
Puah! Ma che schifo !!!
ciao, acc.   
a...@libero.it

Puah! Ma che schifo !!!
Non c'e' male :-)
Ignazio GSS©
More than 90 HiRes images in my home page  
http://www.geocities.com/~puddu/
Oltre 200 Immagini di endoscopia digestiva
http://www.areamedica.com

non le trovo piu' :-)
Questa non dovrebbe succedere a chi si occupa di database *grin*
ciao, acc.   
a...@libero.it

Questa non dovrebbe succedere a chi si occupa di database *grin*
ROTFL! Hai ragione :-)
E' il mio database cerebrale che si e' un po' ossidato :-)


 Per alcuni progetti VO non e' indicato.
A che tipo di progetti ti riferisci ?
Comunque con VO si può programmare direttamente utilizzando le API  di
WINDOWS  e quindi non ci dovrebbero essere problemi per creare qualsiasi
tipo di
progetto.
Per esempio  io ho iniziato a creare un programma di gestione di borsa e ho
utilizzato le API in modo massiccio più tecniche di buffering al fine di
ottenere i grafici delle medie mobili dei titoli il più veloce possibile. In
questo modo il refresh è praticamente immediato; unico neo è che il grafico
non è ridimensionabile con la finestra ma è statico.
Fabrizio Malaguti

non è ridimensionabile con la finestra ma è statico.
Ok, aspetto il porting di Quake in VO  ;->
ciao, acc.   
a...@libero.it

 Ok, aspetto il porting di Quake in VO  ;->
Quake III Arena, ovviamente. Quake I sarebbe troppo facile. :-)))
EMG

 ciao, acc.   
a...@libero.it
Non intendevo includere i videogames nell'elenco dei progetti (li occorre il
linguaggio macchina ).
ciao,  Fabrizio Malaguti

Quake III Arena, ovviamente. Quake I sarebbe troppo facile. :-)))
Sei troppo ottimista, in realta' le differenze tra quake I e quake III
non sono poi cosi' grandi.
Secondo me, sotto VO non vedrai mai neanche un Doom (bei tempi).
ciao, acc.   
a...@libero.it

 Secondo me, sotto VO non vedrai mai neanche un Doom (bei tempi).
Penso proprio di no. Comunque Doom continua a piacere anche a me.
EMG

Penso proprio di no. Comunque Doom continua a piacere anche a me.
Siamo OT ??? Ooops...
ciao, acc.   
a...@libero.it

 Q1 e' un capolavoro,
Sono totalmente d'accordo. Ok, scusate. Fine OT da parte mia.
EMG