VB6 vs C++
Per un programmatore che userà sempre e solo Windows, che farà programmi solo per Win32, secondo me non conviene neanche un po' usare il C++ e abbandonare VB6. 1) Le applicazione con VB6 si creano molto velocemente (essendo VB6 un RAD, rapid application developer); col c++, invece, per creare un semplice form ci vuole molto più codice. 2) Una semplice console application, con c++, occupa dieci volte di più di una stessa applicazione VB6 (che in più è dotata anche di un'interfaccia grafica).
So benissimo che il c++ è molto, ma molto più potente, quindi la miglior cosa sarebbe usare il c++ laddove non basti più VB6 e creare delle DLL potenti da essere usate nelle applicazioni VB6. So anche che in genere tutti preferiscono il C++ per la portabilità e altri motivi, ma non sempre i conti tornano a favore del C++.
So benissimo che il c++ è molto, ma molto più potente, quindi la miglior cosa sarebbe usare il c++ laddove non basti più VB6 e creare delle DLL potenti da essere usate nelle applicazioni VB6. So anche che in genere tutti preferiscono il C++ per la portabilità e altri motivi, ma non sempre i conti tornano a favore del C++.
Risposte
"gigilatrottola":
E' anche un brutto vizio di javascript, per rimanere in ambito scripting.
Al di là di tutto... basta guardare i programmi che uno ha installato sul proprio pc: il 95% (almeno) è con ogni probabilità in C++. I giochi lo sono di sicuro.Ci sarà un motivo.
Anzi ce n'è piu di uno.
Ovviamente se uno lo fa solo per hobby, dedicandogli il tempo che riesce a ritagliarsi tra lavoro, studio, cose varie... allora diventa frstrante perche probabilmente impiega quel poco tempo a dover riguardare quanto gia fatto.
Bisogna stargli dietro parecchio e con costanza, perche le cose sono tante. A livello di hobby credo sia molto piu gratificante Java.
vero quoto perfettamente cosi già che ci sei ti impari bene l'astrazione degli oggetti visto che java è fatto per quello
Non dobbiamo complicarci la vita: il Basic fa solo perdere ore e ore per scrivere cose che in C (non ++, proprio solo C) van giù come un biccchier d'acqua.
Non è il fatto di dichiarare o meno le variabili, è che in C si dichiara in modo esatto e funzionale (scope, lifetime, ecc) mentre le dichiarazioni del Basic sono anonime, confusionarie: DIM ma che dim dim cosa l'è sta roba dim dim.
Ho dovuto provare ad usare oggetti VBA in ambiente Acces (un vero e proprio ottimo DB) e mi è venuto il mal di pancia. Una storpiatura dietro l'altra, altro che dichiarazioni.
Gli statement del Basic non formano un linguaggio coerente, formano una montagna di originalità da tenere a memoria in modo slegato l'uno dall'altro. Pensare che cosi il cervello funziona si e no un quarto perchè è continuamente occupato a maneggiare ste fasi dislessiche.
Non parliamo poi della scemenza (mi scuso per la licenza poetica) delle versioni VBA nelle varie lingue dove se Left() diventa Sinistra(), string() resta string(??), ascii() diventa asc() fischia che coraggio!! si capiscxe subito che è un asc()ensore e Mid() non me lo ricordo ma mi vien già da ridere... mi piacerebbe vedere un VBA francese o tedesco... roba da cabaret.
Ma che premio avran dato a quel tipo che ha avuto un'idea così fenomenale per FACILITARE LA DIFFUSIONE DELLA PROGRAMMAZIONE ?? ma a chi ??
Anche gli analfabeti programmano a memoria cerebrale meglio che in VB... per necessità di sopravvivenza.
Poveretti noi, cosa ci tocca sopportare. E il bello è che in MS non gliene frega neanche niente a nessuno, vanno persino avanti così... senza alcun dubbio. Ma cosa ci voleva ad allegare un Visual-C-for-Application al povero Office ??
Dai, facciamo una petizione perchè questa brutta storia finisca ??
ps: non riesco a leggere il forum tutti i giorni, ma a presto. Luciano
Non è il fatto di dichiarare o meno le variabili, è che in C si dichiara in modo esatto e funzionale (scope, lifetime, ecc) mentre le dichiarazioni del Basic sono anonime, confusionarie: DIM ma che dim dim cosa l'è sta roba dim dim.
Ho dovuto provare ad usare oggetti VBA in ambiente Acces (un vero e proprio ottimo DB) e mi è venuto il mal di pancia. Una storpiatura dietro l'altra, altro che dichiarazioni.
Gli statement del Basic non formano un linguaggio coerente, formano una montagna di originalità da tenere a memoria in modo slegato l'uno dall'altro. Pensare che cosi il cervello funziona si e no un quarto perchè è continuamente occupato a maneggiare ste fasi dislessiche.
Non parliamo poi della scemenza (mi scuso per la licenza poetica) delle versioni VBA nelle varie lingue dove se Left() diventa Sinistra(), string() resta string(??), ascii() diventa asc() fischia che coraggio!! si capiscxe subito che è un asc()ensore e Mid() non me lo ricordo ma mi vien già da ridere... mi piacerebbe vedere un VBA francese o tedesco... roba da cabaret.
Ma che premio avran dato a quel tipo che ha avuto un'idea così fenomenale per FACILITARE LA DIFFUSIONE DELLA PROGRAMMAZIONE ?? ma a chi ??
Anche gli analfabeti programmano a memoria cerebrale meglio che in VB... per necessità di sopravvivenza.
Poveretti noi, cosa ci tocca sopportare. E il bello è che in MS non gliene frega neanche niente a nessuno, vanno persino avanti così... senza alcun dubbio. Ma cosa ci voleva ad allegare un Visual-C-for-Application al povero Office ??
Dai, facciamo una petizione perchè questa brutta storia finisca ??
ps: non riesco a leggere il forum tutti i giorni, ma a presto. Luciano
"carlo23":
[quote="cianoser"]mah... un programmatore non scrive mai due istruzioni sulla stessa riga perchè nel tempo impara a proprie spese cosa siano la leggibilità del codice la ricerca degli errori ecc...
Adesso proprio mai mi sembra una esagerazione! Se devo fare una cosa stupida tipo ripetere l'istruzione A e l'istruzione B dieci volte non vedo il motivo di scrivere
for(int i=1;i<=10;i++) { A; B; }
Invece di
for(int i=1;i<=10;i++){A;B;}
beh, se poi non sono l'unico che lavora sul codice allora è un altro discorso...[/quote]
Basta nn arrivare a questo punto: return a(), b(), c();

"cianoser":
Non dobbiamo complicarci la vita: il Basic fa solo perdere ore e ore per scrivere cose che in C (non ++, proprio solo C) van giù come un biccchier d'acqua.
Io uso entrambi i programmi. Preferisco di gran lunga il C, ma non schifo VB. Il C è + potente (e da anche + soddisfazioni), ma assolutamente non è + semplice, tantè che il VB è consigliato per i programmatori meno esperti o non a tempo pieno. Pensare che la maggior parte dei programmatori usa VB6, in minoranza usano il C, ma con risultati ovviamente migliori.
"cianoser":
Non è il fatto di dichiarare o meno le variabili, è che in C si dichiara in modo esatto e funzionale (scope, lifetime, ecc) mentre le dichiarazioni del Basic sono anonime, confusionarie: DIM ma che dim dim cosa l'è sta roba dim dim.
Ho dovuto provare ad usare oggetti VBA in ambiente Acces (un vero e proprio ottimo DB) e mi è venuto il mal di pancia. Una storpiatura dietro l'altra, altro che dichiarazioni.
Che dici? In C o in VB le variabili si dichiarano nello stesso identico modo, salvo per i puntatori (in VB6 non esistono). Tutto il resto non cambia! "DIM" serve solo al compilatore per capire che stai dichiarando una variabile, quello che conta è il tipo. "DIM Variabile As String * 50" in VB6 o "Variabile char[50]" dov'è la differenza? Il risolutore di scope permette solo di dichiarare 2 variabili con lo stesso nome. Questo sarebbe una cosa ordinata? E' altamente sconsiliata da tutti. Il concetto di Lifetime esiste anche in VB6 e credo in tutti i linguaggi di programmazione.
"cianoser":Questo problema lo hai con tutti i linguaggi che non usi abitualmente. Dopo un po che lo usi pensi solo alla logica del programma, nemmeno pensi alla sintassi, viene tutto naturale. Quello che dici lo può pensare anche uno che da VB passa al C
Gli statement del Basic non formano un linguaggio coerente, formano una montagna di originalità da tenere a memoria in modo slegato l'uno dall'altro. Pensare che cosi il cervello funziona si e no un quarto perchè è continuamente occupato a maneggiare ste fasi dislessiche.
"cianoser":
Non parliamo poi della scemenza (mi scuso per la licenza poetica) delle versioni VBA nelle varie lingue dove se Left() diventa Sinistra(), string() resta string(??), ascii() diventa asc() fischia che coraggio!! si capiscxe subito che è un asc()ensore e Mid() non me lo ricordo ma mi vien già da ridere... mi piacerebbe vedere un VBA francese o tedesco... roba da cabaret.
Lo script VBA prende spunto da VB6, ma non è la stessa cosa, non puoi quindi parlare male di VB6 perchè fa ridere il VBA. Anche gli script del C hanno le loro belle malformazioni. Il "Composer", uno dei programmi più usati nel campo della stampa digitale che va ad appoggiarsi al più famoso programma di stampa offset "Quark", utilizza script di C dove addirittura al posto delle parentesi graffe vengono utilizzati "if", "endif", oltre a tutti gli altri comandi C leggermente modificati.
Non si può paragonare uno script con un linguaggio di programmazione vero e proprio. Si sta parlando di ambienti di sviluppo!
"cianoser":
Ma che premio avran dato a quel tipo che ha avuto un'idea così fenomenale per FACILITARE LA DIFFUSIONE DELLA PROGRAMMAZIONE ?? ma a chi ??
se lo scopo era quello, missione compiuta. Il fatto che è il linguaggio + diffuso ne è la prova.
Parliamo di due programmi differenti, i pareri sono oggettivi, i fatti no. Si vede che cel'hai proprio con VB

io personalmente preferisco il C e famiglia il Basic non mi piace e mi è scomodo, io come linguaggio di programmazione ho iniziato con il basic e sono passato al pascal e poi a Delphi ( che è pascal orientato agli oggetti ).
Non amo il basic xkè è meno potente e meno ordinato, a molta gente puo sembrare una stupadata ma il fatto che non ci sai il ; al temine di una riga mi da fastidio perchè lascia spazio ad interpretazioni su dove termina ( non so se questa cosa è stata messa nelle nuove versioni ma non penso ).
Indubbiamemte il basic a contribuito a diffondere la programmazione, ma la programmazione stutturata come piace a me il VB non riesco a farla, poi non penso che esistano gli oggetti in VB o che se esistono funzionino bene perciò...
Non amo il basic xkè è meno potente e meno ordinato, a molta gente puo sembrare una stupadata ma il fatto che non ci sai il ; al temine di una riga mi da fastidio perchè lascia spazio ad interpretazioni su dove termina ( non so se questa cosa è stata messa nelle nuove versioni ma non penso ).
Indubbiamemte il basic a contribuito a diffondere la programmazione, ma la programmazione stutturata come piace a me il VB non riesco a farla, poi non penso che esistano gli oggetti in VB o che se esistono funzionino bene perciò...
"Diravan":
non penso che esistano gli oggetti in VB o che se esistono funzionino bene perciò...
Esistono, ma in effetti la loro gestione non è paragonabile a quella del C++
come in delphi... per gli oggetti c'è java
A quanto pare a nessuno va giù VB6 (di VBA o VBScript non m'importa niente). Rimando tutti all'opinione di uno dei programmatori più famosi del mondo Francesco Balena (www.vb2themax.com), che con VB6 fa cose straordinarie. E' chiaro che il c++ è superiore, però non si può criticare VB6 fino a questo punto.
resto dell'idea che non son riuscito a spiegarmi ene e ci vuole altro tempo che ora non ho.
brevissimamente: VB doveva essere sostituito dal 1992-93 con altri veri linguaggi fenomenali, potenti e semplici come Clipper che c'era (forse il miglior c-like mai prodotto, non so più che fine ha fatto) e avrebbe salvato tutti dalle astruse compatibilità con sorgenti anteliteram e tendenze dialettali troppo astruse e particolari.
Poi, che anche vb dopo averti fatto trubulare non poco.. compili e linki... lo ammetto, e ci mancherebbe anche quella.
a presto - ciao a tutti
ps: non ce l'ho con VB ma con le soluzioni che complicano la vita senza lasciarti alternative. Un linguaggio semplificato serve a tutti, si.. ma che assomigli a quelli evoluti. un programmatore deve andare sulla manualistica e lo sviluppo con UNA lingua e UN dialetto ovvero con parenti stretti, non diventare poliglotta. Il cervello è uno solo, il tempo dura poco (ce se ne accorge sempre dopo) e la fatica ti ammazza (con gli anni)
brevissimamente: VB doveva essere sostituito dal 1992-93 con altri veri linguaggi fenomenali, potenti e semplici come Clipper che c'era (forse il miglior c-like mai prodotto, non so più che fine ha fatto) e avrebbe salvato tutti dalle astruse compatibilità con sorgenti anteliteram e tendenze dialettali troppo astruse e particolari.
Poi, che anche vb dopo averti fatto trubulare non poco.. compili e linki... lo ammetto, e ci mancherebbe anche quella.
a presto - ciao a tutti
ps: non ce l'ho con VB ma con le soluzioni che complicano la vita senza lasciarti alternative. Un linguaggio semplificato serve a tutti, si.. ma che assomigli a quelli evoluti. un programmatore deve andare sulla manualistica e lo sviluppo con UNA lingua e UN dialetto ovvero con parenti stretti, non diventare poliglotta. Il cervello è uno solo, il tempo dura poco (ce se ne accorge sempre dopo) e la fatica ti ammazza (con gli anni)
mi è capitato oggi nel sistemare una routine provvisoria in VBA x Access...
Risulta = Inputbox("titolo" ecc...) che ritorna una stringa.
uscendo dal box con tasto Esc il valore ritornato è stringa vuota ""
dovendo usare Inputbox per acquisire un intero da 1 a 100 in VBA (x access) ho tentato :
Risulta = Cint( Inputbox("titolo" ecc...) ) ma... uscendo con esc da sempre errore
ritento, e mi parrebbe giusta questa strada :
Risulta = Inputbox("titolo" ecc...)
Risulta = iif( Risulta = "", 0, Cint( Risulta) ) ... niente!
siccome viene comunque eseguita una riga intera... l'errore su esc casca ancora a causa di Cint("").
Lo dimostra il fatto che alla fine, infatti, lo schema ha funzionato ricorrendo addirittura a :
Risulta = Inputbox("titolo" ecc...)
if risulta = "" then
Risulta = 0
else
Risulta = Cint( Risulta )
end if
Per me questo e troppo ridicolo per un linguaggio di programmazione che dovrebbe essere comodo !!!
Dico UNA RIGA LOGICA son diventate 6 con il casino per venirne fuori così poi ???
quando un giorno dovrò capire il sorgente, quest'area mi sembrera avere una sua importanza e mi fara perdere pazienza e tempo. Quando ste cose son tantine... sembra di aver scritto un sorgentino che invece è solo roba in più, inutilità e basta.
Ditemi voi dove sbaglio ?
ps: altre funzioni DialogBox di input non c'è ne, sempre della serie programmaimo presto e comodi,
gli costava miliardi aggiungere qualcosina di meglio nelle funzioni in dotazione standard.
Non parliamo dello smembramento di codice richisto dai limiti INNATURALI del compilatore.
Risulta = Inputbox("titolo" ecc...) che ritorna una stringa.
uscendo dal box con tasto Esc il valore ritornato è stringa vuota ""
dovendo usare Inputbox per acquisire un intero da 1 a 100 in VBA (x access) ho tentato :
Risulta = Cint( Inputbox("titolo" ecc...) ) ma... uscendo con esc da sempre errore
ritento, e mi parrebbe giusta questa strada :
Risulta = Inputbox("titolo" ecc...)
Risulta = iif( Risulta = "", 0, Cint( Risulta) ) ... niente!
siccome viene comunque eseguita una riga intera... l'errore su esc casca ancora a causa di Cint("").
Lo dimostra il fatto che alla fine, infatti, lo schema ha funzionato ricorrendo addirittura a :
Risulta = Inputbox("titolo" ecc...)
if risulta = "" then
Risulta = 0
else
Risulta = Cint( Risulta )
end if
Per me questo e troppo ridicolo per un linguaggio di programmazione che dovrebbe essere comodo !!!
Dico UNA RIGA LOGICA son diventate 6 con il casino per venirne fuori così poi ???
quando un giorno dovrò capire il sorgente, quest'area mi sembrera avere una sua importanza e mi fara perdere pazienza e tempo. Quando ste cose son tantine... sembra di aver scritto un sorgentino che invece è solo roba in più, inutilità e basta.
Ditemi voi dove sbaglio ?
ps: altre funzioni DialogBox di input non c'è ne, sempre della serie programmaimo presto e comodi,
gli costava miliardi aggiungere qualcosina di meglio nelle funzioni in dotazione standard.
Non parliamo dello smembramento di codice richisto dai limiti INNATURALI del compilatore.
"cianoser":
mi è capitato oggi nel sistemare una routine provvisoria in VBA x Access...
Risulta = Inputbox("titolo" ecc...) che ritorna una stringa.
uscendo dal box con tasto Esc il valore ritornato è stringa vuota ""
dovendo usare Inputbox per acquisire un intero da 1 a 100 in VBA (x access) ho tentato :
Risulta = Cint( Inputbox("titolo" ecc...) ) ma... uscendo con esc da sempre errore
ritento, e mi parrebbe giusta questa strada :
Risulta = Inputbox("titolo" ecc...)
Risulta = iif( Risulta = "", 0, Cint( Risulta) ) ... niente!
siccome viene comunque eseguita una riga intera... l'errore su esc casca ancora a causa di Cint("").
Lo dimostra il fatto che alla fine, infatti, lo schema ha funzionato ricorrendo addirittura a :
Risulta = Inputbox("titolo" ecc...)
if risulta = "" then
Risulta = 0
else
Risulta = Cint( Risulta )
end if
Per me questo e troppo ridicolo per un linguaggio di programmazione che dovrebbe essere comodo !!!
Dico UNA RIGA LOGICA son diventate 6 con il casino per venirne fuori così poi ???
quando un giorno dovrò capire il sorgente, quest'area mi sembrera avere una sua importanza e mi fara perdere pazienza e tempo. Quando ste cose son tantine... sembra di aver scritto un sorgentino che invece è solo roba in più, inutilità e basta.
CInt converte una stringa in intero. Dato che una stringa = "" non può essere convertita in intero l'errore è + che legittimo in TUTTI i linguaggi di programmazione.
In tutti i casi se vuoi che una stringa vuota ti restituisca 0 basta scrivere:
Risultato = Cint(Val(InputBox("xxxx"...)))
Come vedi va anche su una riga, semplicemente basta conoscere bene i linguaggi.
Comunque nessun buon programmatore scrive così, perchè non si possono far effettuare conversioni senza fare alcun controllo sul dato di input se questo dato arriva dall'utente.
Inoltre, anche supponendo di voler scrivere tutto il codice che hai scritto te, non crea alcuna difficoltà nel rileggere il programma, basta scrivere tutto in una funzione che per esempio la chiami con un nome del tipo "ConvertiStringaInNumero" dove all'interno metti tutti i controlli del caso. Quando vai a rileggere il programma e trovi scritto ConvertiStringaInNumero sicuramente non vai a controllare tutti i passaggi.
lo ammetto, non ho letto le altre risposte, però faccio presente che:
c++ è più performante, completo, ed è platform indipendent (ovviamente per colpa di zio Bill questo è vero fino a un certo punto, mannaggia a lui è la scriteriata idea di inventare le winsocket.)
c++ è più performante, completo, ed è platform indipendent (ovviamente per colpa di zio Bill questo è vero fino a un certo punto, mannaggia a lui è la scriteriata idea di inventare le winsocket.)