Newsgroup: it.comp.lang.visual-basic
Titolo: ? Novità del nuovo Visual Basic

Ho appena letto la risposta della redazione di Io Programmo ad una lettera
di un lettore che chiedeva quali fossero le novità del nuovo VB.
Tra le più importanti:
1.Ereditarietà
2.Polimorfismo ed overriding dei metodi
3.Overloading degli operatori e delle funzioni
4.Supporto dei threads
5.Nuova gestione degli errori con la funzionalità try...catch...finally
Volevo sapere se verranno implementati anche i puntatori. In ogni caso il
VB.NET
 si potrà finalmente considerare un *potente* linguaggio di
programmazione o no?
Con la nuova versione potranno essere sviluppati engine grafici in grado di
competere con quelli scritti in C++. Ci si potranno scrivere
compilatori?.................E sistemi operativi? :)
In caso di risposta negativa ad una o più domande: perchè?
Grazie mille a tutti.

 scrivere compilatori?.................E sistemi operativi? :)
no, no, no, no e no
 - i puntatori in .NET scordateli. Fa' conto che tu non sappia nemmeno 
cosa siano. Questo è più che giusto: nessun linguaggio che non sia 
l'assembler di qualche CPU o un linguaggio per programmazione di 
sistema, come C, C++ o Pascal, dovrebbe avere il concetto di puntatori, 
causano un sacco di grattacapi e sono alla base dei peggiori bug mai 
visti. Men che meno linguaggi per una piattaforma che si spaccia per 
universale (sai che su alcune piattaforme i puntatori hanno dimensioni 
diverse da 32 bit? spesso nemmeno multipli di 4 bit? e che su altre il 
valore del puntatore nullo non è zero?). Se serve l'accesso per 
riferimento a grosse variabili strutturate si fa come fa l'ADA, che 
astrae totalmente dal concetto di puntatore, e sei sicuro che il 
riferimento punti ad una variabile allocata e non ad un'area di memoria 
inaccessibile
 - rimane pur sempre un BASIC. I linguaggi di programmazione, alla fin 
fine, sono linguaggi. Limitano la tua espressività, ti forgiano la mente 
in una determinata forma. Ti insegnano a pensare in un modo piuttosto 
che in un altro. E 
VB.NET
, se possibile, in questo è persino peggiore 
dei BASIC precedenti. A me personalmente sono bastati i due operatori 
AndAlso e OrElse (mancavano giusto ButAlso e AndMaybe - il signor Boole 
si starà rivoltando nella tomba) a giudicare 
VB.NET
 una burletta, 
qualcosa che non vorrei nessuno mi vedesse programmarci
 - Gli engine grafici continueranno ad essere scritti in C o in Pascal, 
con i loop critici in ASM, e noi ci limiteremo ad usarli. Punto. Nessuno 
riscriverà Direct3D o OpenGL in 
VB.NET
, perchè no e basta.
 - 
VB.NET
 è un Visual Basic. Andiamo, con Visual Basic si fanno i 
programmini idioti con le interfacce orrende e un mega di runtime, no? E 
il linguaggio sarà forgiato tutto quanto attorno a questa sua 
personalità. Per fare un compilatore serve un linguaggio il più generico 
possibile, 
VB.NET
 non mi sembra introduca nulla di nuovo su questo 
fronte, e non mi sembra che nessun programmatore VB abbia mai mosso 
richieste di questo tipo
 - Con Java puoi scrivere un sistema operativo? Java è scritto in Java? 
E con questo ho detto tutto

  - Con Java puoi scrivere un sistema operativo? Java è scritto in Java?
Anche di questo non ne ho idea, se vuoi illuminarmi su questi ultimi due
punti....
Grazie mille cmq.
Ciao.

due punti....
stesso punto di cui sopra. Java, ad esempio, è scritto in C, un motivo 
ci sarà (c'è: C può essere tradotto direttamente in codice macchina 
nativo, Java passa sempre e comunque per l'ASM della propria Virtual 
Machine. E .NET è la stessa cosa)

  i puntatori.
http://www.devx.com/upload/free/features/vbpj/2001/10oct01/rt0110/rt
0110-1.asp
Ciao.

 come operatori matematici
Infatti nella Beta1 era cosi', poi a fronte delle innumerevoli
proteste dei programmatori (?) VB hanno optato per il cambio del
nome.
Ciao.

[...CUT...]
Grazie, sei stato molto esaustivo :)

 si starà rivoltando nella tomba)
ROTFL !
E poi non hanno incluso IfYouReallyWant, WhenSystemCrashes,
IfBSOD, AnotherLoop, e alcuni dei flag e delle funzioni più necessari per un
programma veramente professionale: IsUserFool, BlindlyLoadProcessor,
CreateBufferOverflow...
Bye, G.

CreateBufferOverflow...
LOL :-D

 ma per altre è solo un "pain in the ass"
Quando hai a che fare con i puntatori sei costretto gioco forza a fare i 
conti con problemi del genere... ma usando le API in vb non ti capita di 
avere problemi simili (di entità molto minore ovviamente) se non stai 
attento?
-- 
CartaSassoCartaSasso
Mucio
"Ci sono gli uomini, ci sono gli dei e c'è Mucio"
IHGGer doremì #337 
PaRanoico Morrico - 
www.gilda.it/morra
 
Ideatore de L.A.M.A.M.M.A.
Io? Io sto col Troll

 ...
domanda stupida:
sono davvero così orrende le cose che si ottengono in vb?
ps:
non è una domanda ironica, in effetti non sono molto esperto di
questo linguaggio di progr., ma sotto win è l'unico che uso, per ora.
Davide


E gli array di funzioni?
E la concatenazione di strutture?
E l'accesso all'hardware?
E l'allocazione/ deallocazione dinamica della memoria?
Per me il vero programmatore non dovrebbe avere bisogno di reti di
protezione.
Il codice robusto nasce da una rigida autodisciplina che un programmatore
dovrebbe sempre porsi.
Anche un bisturi e' un'arma molto pericolosa in mano a uno che non sa
utilizzarla, ma in mano ad un chirurgo e' tutta un'altra cosa (su
quest'ultima affermazione   mi nasce qualche dubbio ?:~| )
Ciao
Giuseppe

 matore dovrebbe sempre porsi.
mai sentito parlare di linguaggio C o ASM? (NSSM)
(NSSM) = Non si sa mai, QUESTA NON E' UNA FLAME! :)
--
Fibia "Better without any Sign" FBI

 ha scritto nel messaggio
news:9ni368$7j6g3$1...@ID-66902.news.dfncis.de...


 personalità. 
Si vede che non lo uso per lavorare, i programmini idioti li farai te! 
Con queste affermazioni dimostri solamente di essere un gran ignorate(il 
newsgroup vorrà scusare i miei toni accesi), quando vedo scritte certe cose
mi viene in mente l'espressione colorita con cui si potrebbe probabilmente
definirti:
 "wizard people". Comunque se vuoi passare a Delphi(che tra l'altro è un
ottimo strumento)
sei sempre in tempo a giudicare dalle tue affermazioni
-- 
Posted from  [217.57.33.234] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 avere bisogno di reti di protezione.
[cut]
Concordo al 100%, anche se per certe tipologie di applicazioni sono di
maggior produttivita' linguaggi piu' "sicuri" anche se per questo piu'
limitati.
Ciao.

ovviamente) se non stai attento?
No. A meno che non ti allochi i buffer a mano, o che fai qualsiasi 
operazione "strana" su particolari tipi di dati. Con le String è una 
pacchia, sempre che siano implementate a dovere. Ad esempio sono il modo 
più indolore di implementare il copy-on-write (appena riesco a mettere 
su qualcosa di funzionante, pubblico il codice sorgente. Però è in 
Delphi). Il problema di VB, piuttosto, è che fa un sacco di cose 
sottobanco, tra cui una molto poco ortodossa conversione automatica 
delle variabili

 po' ;-)))
i miei complimenti, io ho iniziato con il C64
meno male che ho messo quell'avvertimento ^__^
--
Fibia "No flames for today" FBI
E-mail: 
fibi...@hotmail.com
ICQ UIN 63586057
Sito Personale: 
http://www.geocities.com/fibiafbi
VB Simple: 
http://vbsimple.virtualave.net
Membro #26 delle Mitiche Brigate Takahashi sezione Sud

 (il newsgroup vorrà scusare i miei toni accesi),
il newsgroup è già affogato in questi casini e si aggiungono pure i tuoi :)
--
Fibia "let's plonk them all" FBI


affermazioni
sono "passato" a Delphi da quasi un anno. Non ho mai usato la VCL (la 
tentazione c'è) perchè a sguinzagliare eseguibili da 300+ kb per il 
mondo mi sentirei in colpa

 programma orrendo.
Su questo avrei da ridire... cos'è che non va ?
Bye, G.

Probabilmente tu fai parte del 90% e io del "restante" 10%



Mi associo: si tratta, salvi i casi in cui :
- effettivamente la "decorazione" č piů importante del contenuto
- lo si fa con fini didattici
 negli altri queste cose appartengono alla categoria "paranoie".
ciao
ugo


Attenzione che anche Vb ha i suoi puntatori.
Quando passi un valore ad una funzione ByRef non fai altro che passare il
puntatore della struttura o dell'array.
L'unica cosa e' che al posto dell'asterisco ci metti la parola ByRef.
IMHO e' impossibile fare un linguaggio che non preveda l'uso di puntatori,
infatti se devi passare un array ad esempio di qualche decina o centinaia di
Kb ad una funzione e' assurdo pensare che venga passato sullo stack.
Pensa solo a quanto tempo ti porterebbe via la funzione che dovrebbe essere
incaricata di copiare l'area di memoria occupata dall'array nello stack
della funzione che lo deve utilizzare.
Poi, se detto array deve ritornare alla funzione chiamante, devi aggiungere
il tempo necessario per l'operazione contraria.
A tutto questo va aggiunta l'allocazione dinamica della memoria per creare
spazio sullo stack e tutti i problemi di frammentazione.
E' un po' un casino a mio parere.
Ciao
Giuseppe

 spazio sullo stack e tutti i problemi di frammentazione.
non esiste infatti il byval su array
sono d'accordissimo con quanto detto :)
una cosa che però non capisco è perché quasi tutti i threads in cui rispondo
diventano dialoghi tra due soli interlocutori :D
devo avere un forte potere intimidatorio :P
--
Fibia "Sakamoto" FBI



Mannaggia ! Non conoscevo la funzione AddressOf !
Questo a riprova del fatto che se si discute civilmente qualcosa si impara
sempre :-)
Lo so, devo premere il tasto F1 piu' spesso :-)
Pero' non so gli altri ma io ogni volta che lo faccio il piu' delle volte
ricevo una quantita' tale di informazioni dalle quali non riesco a cavare un
ragno dal buco, ma probabilmente non so usare MSDN.
Se Songohan ci ha seguito fino a qui forse ha imparato qualcosa di piu'
utile della prima risposta che ha ricevuto :-)
Anche io ho sempre l'impressione che appena nasce una discussione
interessante tutti si defilino.
Sembra che i thread piu' seguiti siano quelli polemici.
Seguo il Ng quasi come passatempo in quanto utilizzo poco Vb pero' il thread
che piu' mi ha interessato e' stato tempo fa quello riguardo la Duff's
Device che ha tanto scandalizzato qualche partecipante al NG.
Ma al giorno d'oggi a chi interessa l'ottimizzazione del codice? Chi si pone
il problema di quanta memoria un programma andra' ad occupare e la sua
velocita' di esecuzione? Al limite si cambia mother board o si aggiunge
qualche banco di memoria in piu' !
Ho appena letto il post di Ugo Mangini. Finalmente a qualcuno e' sorto il
dubbio che i programmi attuali hanno necessita' di sembrare piu' che di
essere.
Ciao
Giuseppe

 essere.
Ho ammirato tantissimo una risposta di Roal sul thread dedicato a VB.net
di qualche mese fa. Il livello di programmazione NECESSITA di un
aggiornamento. ci sono troppe porcate in giro e quei maledetti activex hanno
fatto le cose tremendamente semplici quanto mal progettate.
ciao
--
Fibia "I hate ActiveX" FBI


Su questo avrei da ridire... cos'è che non va ?
Se il programma è un servizio, è tutto OK. Se il programma è per 
l'"utenza finale", è una pessima scelta. Complica la procedura di 
backup, ammazza qualsiasi tipo di multiutenza, viola una delle regole 
d'oro della programmazione Windows (la directory dell'eseguibile è da 
considerare di sola lettura), e come conseguenza immediata non girerà
mai su Windows 2000. Ecco tutto

Comunque, de gustibus...
eh no, le mie sono esigenze reali, per quello che ci faccio io sono 
delle vere seccature. Generalmente scrivo piccoli programmi, utility a 
riga di comando, e devono essere il più leggeri possibile (decimillesimo 
dilemma: come mai ogni programma Delphi appena avviato inizia con un 
ingombro di memoria di quasi un megabyte?), il più veloci possibile, e 
soprattutto scalare il più possibile (per cui ultimamente ho bandito 
anche le sezioni initialization e finalization). E il C proprio non mi 
garba ;(
Oddio, quando dovrò scrivere qualcosa per i database darò il benvenuto a 
braccia aperte a qualcosa che mi permette di mettere insieme il cuore 
del programma in dieci minuti senza praticamente mettere mano alla 
tastiera, e mi lascia un sacco di tempo per rifinire i dettagli. Ma per 
ora è solo zavorra

  valore del puntatore nullo non è zero?)
Saresti cosi' gentile da spiegarmi meglio questo passaggio?
Non e' che utilizzi anche tu a tecnica Microsoft "Quando vuoi che gli altri
non utilizzino qualcosa che non conosci o che non vuoi che sia utilizzato,
fai piu' casino possibile"
Se un puntatore non e' 32 bit (chissa' perche' poi 32 e non 16 o 24 o 8 o
64) sara' una qualsiasi altra cosa, basta saperlo e comportarsi di
conseguenza.
Cosa vuol dire che il valore del puntatore nullo non e' zero? Quanto e' ?
Ammesso che cio' sia vero basta sapere quanto vale quando deve essere
considerato NULL e comportarsi di conseguenza.
Per quel che ne so NULL e' una convenzione in quanto in matematica non
esiste. Per cui basta scrivere (scusa se utilizzo il mio amato C)
#ifndef  NULL
#if (voglio che il puntatore nullo sia 0)
#define  NULL           0
#elsif
#define  NULL           pincopallino
#endif
Ciao
Giuseppe

#endif
no, no e no. NULL è definito come zero, di certe idiosincrasie se ne 
occupa il compilatore, *come*da*standard*

E poi sono io il prevenuto :-)  (d'accordissimo)
Non ti credere :P Io non sono prevenuto, sono cattivissimo e sparo a 

"KJK :: Hyperion" ha scritto nel messaggio

Se il programma è un servizio, è tutto OK. Se il programma è per 
l'"utenza finale", è una pessima scelta. Complica la procedura di 
backup, ammazza qualsiasi tipo di multiutenza, viola una delle regole 
d'oro della programmazione Windows (la directory dell'eseguibile è da 
considerare di sola lettura), come 

Non ti credere :P Io non sono prevenuto, sono cattivissimo e sparo a 
perchè questo messaggio è arrivato troncato? o solo io lo leggo fino a 
questo punto?

ultimi giorni, lo specifico per evitare possibili plonkature =:-)
Naaah... l'unico rischio è che io mi metta davvero a modificarlo :)

 >#ifndef  NULL
[cut]
????
Perche' dovrebbe essere C++ e non C?
Io spero che in C++ nessuno utilizzi cose del genere.
Ciao.

 >posso fare una media pesata? ;-)
falla peNsata, e vendiglielo (il codice) piu' caro.
j.sp1

KJK :: Hyperion ha scritto alle 04:21 del mattino:
[snip]
miiiiiiii ! a quest' ora !

Io spero che in C++ nessuno utilizzi cose del genere.
CPP. C PreProcessor. Un linguaggio di macro usato generalmente in C e 
C++, ma non necessariamente solo in quelli (vedi i Resource Script di 
Windows, ad esempio)

 Script di Windows, ad esempio)
Ho decisamente frainteso.
Ciao.