Pagina 2 di 4 primaprima 1 2 3 4 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 37

Discussione: [OT] VB.NET vs C#

  1. #11
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    798
    viene tradotto prima il codice nel linguaggio intermedio, la sono uguali, e di la procede allo stesso modo.
    Ans.

  2. #12
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,918
    Originariamente inviato da ans
    viene tradotto prima il codice nel linguaggio intermedio, la sono uguali, e di la procede allo stesso modo.
    Ci sono sintassi differenti e meno precise rispetto a C# nella gestione di alcune strutture e funzionalità del CLR, in particolare VB.NET si pone ad un livello più alto, pertanto il codice generato non è sempre identico.

    Certo, se si scrive codice in linguaggio C# escludendo l'uso di qualsiasi feature che non abbia un diretto corrispondente in VB.NET, il codice intermedio risulterà molto probabilmente uguale; in caso contrario, questo non avverrà. Tuttavia, è abbastanza semplice verificare che spesso il codice IL generato dai compilatori VB.NET e C# non è identico nemmeno per costrutti paragonabili tra loro che rispecchino la condizione di cui sopra, ma si parla ovviamente di differenze talmente minime da risultare impercettibili ed eventualmente verificabili (con appositi tool) solo quando si utilizzano particolari sintassi specifiche in C#.

    Non credo che il fattore "prestazioni" sia nemmeno da prendere in esame parlando di sviluppo su piattaforma .NET.

    Ciò che è bene curare è l'uso che si fa dei tipi, limitare le operazioni di "boxing" e "unboxing", fare attenzione ad utilizzare la classe giusta (ce ne sono troppe!) a seconda di ciò che si vuole ottenere (come evitare di concatenare le stringhe usando invece la classe StringBuilder).
    In secondo luogo, scegliere il linguaggio che ha la sintassi più familiare e intuitiva per se.

    Il resto è "fuffa" e va bene solo per generare "flame"...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Altri link...

  3. #13
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,918

    Segnalazione

    A proposito di quanto ho detto prima, vi segnalo un articolo interessante che, secondo me, raccoglie il "succo" dei confronti che debbono essere operati nel momento in cui ci si trova a scegliere VB.NET oppure C# per lo sviluppo basato su .NET Framework.

    Visual Basic.NET meglio di C#!

    E' chiaro che, come si dice sempre, "ambasciator non porta pena"... infatti, sono in disaccordo con il 90% di quanto viene detto in quest'articolo, ma la mia opinione non ha fondamentalmente importanza.

    Se qualcuno ha voglia di leggere e aggiungere commenti (pacati, sensati, articolati e documentati) senza "sparare a zero" rendendo inutile l'intera discussione, è il benvenuto.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Altri link...

  4. #14
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    798
    la mia opinione è più su... la riscrivo

    "dipende dal linguaggio che conosci meglio, in base a quello sceglio o uno o l'altro. VB.Net resta cmq più semplice."

    Acnhe dopo aver letto quel documento che fa esempi pratici di confronto.
    Ans.

  5. #15
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Ciao a tutti, interessanti questi interventi, diciamo che pian piano inizio a fare un po' di luce fra questi due linguaggi.

    Per quanto detto da Daniele80 , in merito hai compilatori, penso che si sbagli, in quanto ho letto da più parti che il codice finale generato da entrambi i compilatori è quasi uguale, si discosta di poco. Pero' quello che mi lascia perplesso è questa voce del fatto che microsoft non ha intenzione di proseguire con VB.NET, mi sembra molto strano, ma se qualcuno ha notizie più dettagliate in merito mi farebbe piacere leggerle.

    Ho letto il documento di cui parla alka, e mi sembra che, tranne alcune cose interessanti che non sapevo (argomenti: Overloading dei Membri nelle Classi, Late Binding), parla maggiormente di miglior leggibilità del codice a favore di VB.NET e non del fatto che uno ha specifiche migliori a supporto del programmatore.

    Da tutto questo, dai vostri interventi e da un manuale che sto leggendo, mi trovo molto daccordo quanto detto da alka
    Non credo che il fattore "prestazioni" sia nemmeno da prendere in esame parlando di sviluppo su piattaforma .NET.

    Ciò che è bene curare è l'uso che si fa dei tipi, limitare le operazioni di "boxing" e "unboxing", fare attenzione ad utilizzare la classe giusta (ce ne sono troppe!) a seconda di ciò che si vuole ottenere (come evitare di concatenare le stringhe usando invece la classe StringBuilder).
    In secondo luogo, scegliere il linguaggio che ha la sintassi più familiare e intuitiva per se.

    Il resto è "fuffa" e va bene solo per generare "flame"
    e quanto detto da ans
    dipende dal linguaggio che conosci meglio, in base a quello sceglio o uno o l'altro. VB.Net resta cmq più semplice.

    Le differenze principali tra i 2 sono:
    VB.NET
    Easier late binding

    C#.NET
    Ability to override operators, like =, +, -, etc.
    Ability to work with "unsafe" code
    In pratica mi sto convincendo che i due linguaggi si somigliano molto e con VB.NET puoi fare tutto quello che fai con C#.
    A questo punto, a meno che uno non voglia cambiare linguaggio per i suoi motivi, chi viene da VB conviene passare a VB.NET e chi viene da C/C++/java conviene passare a C#
    Jupy

  6. #16
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,918
    Originariamente inviato da Jupy64
    Ho letto il documento di cui parla alka, e mi sembra che, tranne alcune cose interessanti che non sapevo (argomenti: Overloading dei Membri nelle Classi, Late Binding), parla maggiormente di miglior leggibilità del codice a favore di VB.NET e non del fatto che uno ha specifiche migliori a supporto del programmatore.
    Diciamo che non sono molto d'accordo su quanto è scritto nell'articolo che io stesso ho segnalato (buffo, vero?) in quanto vengono portate come peculiarità di VB.NET rispetto a C# caratteristiche che, invece, a mio avviso, sono semplicemente il mantenimento di molte delle cause di malaprogrammazione attualmente esistenti, come la mancata dichiarazione di variabili, la loro "non inizializzazione", la conversione automatica di valori, la modifica delle variabili utilizzate per eseguire un ciclo e altre "tecniche" che mi fanno personalmente rabbrividire...sarà che sono un purista.

    Più che vere e potenti caratteristiche, si tratta tutt'al più di semplificazioni, alcune di queste pensate appositamente per il programmatore VB6 che, abituato ad un certo "modus operandi", non deve essere eccessivamente ostacolato nel passaggio a .NET più di quanto non faccia la difficoltà di migrare verso una piattaforma ed un linguaggio completamente orientato agli oggetti.

    E' indubbio che VB.NET appaia quindi più semplice: è il suo scopo.

    Originariamente inviato da Jupy64
    In pratica mi sto convincendo che i due linguaggi si somigliano molto e con VB.NET puoi fare tutto quello che fai con C#.
    In termini di ciò che si può fare o non si può fare, ci sono poche differenze e sono state indicate già in un messaggio precedente. Poi, se non hai intenzione di utilizzare tutto ciò che C# possiede in più rispetto a VB.NET e provieni da VB6, non dovresti nemmeno pensarci due volte ad usare VB.NET proprio per il fatto che le differenze non valgono lo sforzo, nel tuo caso, di cambiare ancora di più (e radicalmente) le tue abitudini di programmazione a livello di sintassi, poichè l'apprendimento del .NET Framework e della programmazione ad oggetti ti darà già abbastanza carne da mettere al fuoco.

    Originariamente inviato da Jupy64
    A questo punto, a meno che uno non voglia cambiare linguaggio per i suoi motivi, chi viene da VB conviene passare a VB.NET e chi viene da C/C++/java conviene passare a C#
    Hai centrato in pieno la strategia Microsoft in merito ai linguaggi di programmazione resi disponibili per il .NET Framework.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Altri link...

  7. #17
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Originariamente inviato da alka
    Diciamo che non sono molto d'accordo su quanto è scritto nell'articolo che io stesso ho segnalato (buffo, vero?) in quanto vengono portate come peculiarità di VB.NET rispetto a C# caratteristiche che, invece, a mio avviso, sono semplicemente il mantenimento di molte delle cause di malaprogrammazione attualmente esistenti, come la mancata dichiarazione di variabili, la loro "non inizializzazione", la conversione automatica di valori, la modifica delle variabili utilizzate per eseguire un ciclo e altre "tecniche" che mi fanno personalmente rabbrividire...sarà che sono un purista.
    Sono daccordissimo!
    Prima di approdare definitivamente al VB6 ho avuto modo di sviluppare con pascal e C/C++, pertanto, provenendo da questi linguaggi sono abituato ad inizializzare sempre le variabili anche in VB (pur non essendo necessario, ma preferisco farlo!) ed a seguire una certa semantica/logica di programmazione (anche se questo comporta scrivere qualche riga in più). Diciamo che dove posso cerco sempre di applicare quanto appreso dalla programmazione strutturata di detti linguaggi, compreso il ";" finale..peccato che in vb non si possa usare
    Come ad esempio la dichiarazione delle variabili obbligatoria, la conversione esplicita dei valori, penso che siano fondamentali!!
    Infatti penso che il passaggio per detti linguaggi (o simili) sia importante per capire l'importanza di creare codice più "pulito"..
    Jupy

  8. #18
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    798
    allora piano su due cose...
    "la dichiarazione delle variabili obbligatoria, la conversione esplicita dei valori"

    sta tutto a voi, basta che utilizziate un option explicit on ed un option strict on, così come disabilitare l'import di default del namespace "Microsoft.VisualBasic" per non poter utilizzare vecchie funzioni.

    Che di default vb.net faccia alcune cose non vuol dire che debbano essere fatte per forza. Ci sono cose abilitate di default per favorire/agevolare il passaggio e il riutilizzo di vecchio codice o vecchi programmi.
    Ans.

  9. #19
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    ciao, è vero quanto dici, in vb è possibile rendere obbligatorie certe cose e dove non si possono rendere obbligatorie sta al programmatore stesso fare maggiore attenzione. Ma il problema, spesso, sta proprio qui! Ho visto il codice scritto da alcuni amici che hanno iniziato direttamente con vb, e vuoi per pigrizia, vuoi per semplicità, vuoi per comodità o per quello che meglio credono, spesso non attivano le restrizioni che vb mette a disposizione (per loro è solo una rottura di scatole) e non danno molta attenzione a come usano le variabili (tanto tutto è permesso in vb) pertanto si vedono cose che in altri linguaggi sarebbero inammissibili! e questo va bene solo per il fatto che c'è il vb che pensa a tutto...ma dal puro punto di vista della programmazione...non va mica tanto bene!
    Jupy

  10. #20
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    798
    anche se fossero attive di default certe opzioni, stai sicuro che le avrebbero disattivate, se uno non ha intenzione di programmare come si deve non lo farà mai, sia che usa vb.net, sia che usi c#. Ho visto codice c#, ed anche su internet lo puoi trovare, dove viene importato il namespace Microsoft.VisualBasic ed utilizzate in c# le vecchie funzioni vb, questo per semplicità in alcune cose.
    Ans.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved.