Discussione:
Differenze tra C++, C#, Visual Basic ...
(troppo vecchio per rispondere)
Giacomo De Gerolamo
2008-11-14 10:53:20 UTC
Permalink
Vi sarei molto grato se poteste darmi un consiglio.

Ho deciso di investire su me stesso imparando a programmare, visto che
come matematico lavoro non se ne riesce a trovare. Non sono un absolute
beginner perche’, come dicevo poc’anzi, mi sono laureato in matematica
ed il mio corso di studi comprendeva Matlab, Mathematica ed un po’ di C.

Sono pero’ frastornato di fronte alla gamma di linguaggi presenti sul
mercato; in particolare la mia attenzione si e’ rivolta a

C++
C#
Visual Basic 6.0
Visual Basic Net

Quindi mi pongo due fondamentali domande:

esistono, effettivamente, cose e’ possibile fare in uno di questi
linguaggi e non negli altri, cioe’ c’e’ ne e’ uno che denuncia limiti
tali da sconsigliare un lungo periodo di apprendimento ?

qual’e’ di questi linguaggi che permette di ottenere programmi
massimamente portabili ?
(qui per ‘portabile’ non intendo, ovviamente, da Windows a Unix, ma
penso alla mandria di PC in configurazione Intel – Xp / Xp Pro / Vista …)

Vi ringrazio molto per l’attenzione e vi auguro buon lavoro.
Giacomo De Gerolamo
Tetsuya
2008-11-14 12:52:12 UTC
Permalink
Post by Giacomo De Gerolamo
qual’e’ di questi linguaggi che permette di ottenere programmi
massimamente portabili ?
(qui per ‘portabile’ non intendo, ovviamente, da Windows a Unix, ma
penso alla mandria di PC in configurazione Intel – Xp / Xp Pro / Vista …)
Cioè intendi solo microsoft...... :-/
--
God is real, unless if declared integer.
Powered by Debian GNU/Linux
Angelo Paolitto
2008-11-14 15:30:10 UTC
Permalink
Post by Giacomo De Gerolamo
Sono pero’ frastornato di fronte alla gamma di linguaggi presenti sul
mercato; in particolare la mia attenzione si e’ rivolta a
C++
C#
Visual Basic 6.0
Visual Basic Net
esistono, effettivamente, cose e’ possibile fare in uno di questi
linguaggi e non negli altri, cioe’ c’e’ ne e’ uno che denuncia limiti
tali da sconsigliare un lungo periodo di apprendimento ?
Per quello che conosco quei linguaggi, direi di no. Usando C#
e VB.Net prega di non dover mai utilizzare una librerie che
non abbiano una interfaccia .Net

VB 6.0 e' ufficialmente defunto credo, ma gradirei conferme,
che i programmi fatti in VB 6 non funzionino su Vista.

Gli altri sono teoricamente portabili, anche se la portabilita'
di programmi C++ puo' dipendere dalle librerie usate.

HTH

Bye, bye...
Giacomo De Gerolamo
2008-11-16 09:15:24 UTC
Permalink
Usando C# e VB.Net prega di non dover mai utilizzare una librerie che
non abbiano una interfaccia .Net
credo che ... i programmi fatti in VB 6 non funzionino su Vista.
la portabilita' di programmi C++ puo' dipendere dalle librerie usate.
Uhm, vedo che la faccenda e' complessa ...

Mi e' stata fatta anche balenare la possibiita' di usare il VB
per costruire l'interfaccia utente delle applicazioni ed il C/C++
per implementarne le funzioni che esigono maggiori performance
a runtime.

Che ve ne pare di questa soluzione ibrida ?

Un saluto a tutti.
Giacomo
Angelo Paolitto
2008-11-17 16:39:26 UTC
Permalink
Post by Giacomo De Gerolamo
Uhm, vedo che la faccenda e' complessa ...
Mi e' stata fatta anche balenare la possibiita' di usare il VB
per costruire l'interfaccia utente delle applicazioni ed il C/C++
per implementarne le funzioni che esigono maggiori performance
a runtime.
Che ve ne pare di questa soluzione ibrida ?
Personalmente preferirei fare seppuku piuttosto che usare
il Visul Basic, ma mi rendo perfettamente conto che e' una
posizione da estrtemista. Io utilizzo wxWidgets per le interfacce
grafiche e mi trovo bene. Non credo, pero', che quella da me usata
sia una soluzione valida per un neofita o per chi non conosce il
framework wxWidgets e deve implementare velocemente qualcosa.

HTH

C:\>iao Angelo
Enrico Franchi
2008-11-18 18:29:37 UTC
Permalink
Post by Giacomo De Gerolamo
Che ve ne pare di questa soluzione ibrida ?
Che se impari ad usare C++ poi sei liberissimo di usare la "droga" MS
anche da C++ e funziona bene.

Io fra i quattro scarterei VisualBasic in ambo le versioni.

C++ mi garba parecchio, C# lo conosco poco ma mi dicono tutti essere ben
fatto (specie nelle ultime versioni). Ecco, io ti voto C++. *Specie* se
vuoi rischiare di mettere a frutto anche le tue conoscenze di
matematico[0].

Ad ogni buon conto mettiti nell'ordine di idee che C++ è un linguaggio
complesso. E che la "professione" di Informatico oggi richiede *molto*
più che conoscere uno, due, n linguaggi.

Ci si aspetta che tu sappia maneggiare basi di dati, conoscere principi
di ingegneria del software, design pattern, conoscere modi e processi di
sviluppo, sapere come funzionano i sistemi operativi (o le macchine
virtuali su cui lavori) dal punto di vista di concorrenza e compagnia.
Insomma Matematico + C++ != "Professionista di Informatica".

Se invece volessi fare l'informatico "teorico" le tue conoscenze di
matematica ti aiuterebbero grandemente nel comprendere e spulciare i
problemi tipici dell'informatica, etc etc etc. Ma se nomini VB mi viene
da pensare che tu stia puntando ad altro.


----
[0] posso motivare a parte.
--
-riko
HappyCactus
2008-11-17 21:44:33 UTC
Permalink
Post by Angelo Paolitto
Per quello che conosco quei linguaggi, direi di no. Usando C#
e VB.Net prega di non dover mai utilizzare una librerie che
non abbiano una interfaccia .Net
Beh, PInvoke non è poi così terribile, dai.
Post by Angelo Paolitto
Gli altri sono teoricamente portabili, anche se la portabilita'
di programmi C++ puo' dipendere dalle librerie usate.
Gli altri sono solo C++, e teoricamente significa utilizzare
rigorosamente soltanto le parti standard del linguaggio e delle librerie...
Carlo Milanesi
2008-11-16 10:52:40 UTC
Permalink
Post by Giacomo De Gerolamo
C++
C#
Visual Basic 6.0
Visual Basic Net
esistono, effettivamente, cose e’ possibile fare in uno di questi
linguaggi e non negli altri, cioe’ c’e’ ne e’ uno che denuncia limiti
tali da sconsigliare un lungo periodo di apprendimento ?
qual’e’ di questi linguaggi che permette di ottenere programmi
massimamente portabili ?
(qui per ‘portabile’ non intendo, ovviamente, da Windows a Unix, ma
penso alla mandria di PC in configurazione Intel – Xp / Xp Pro / Vista …)
Ovviamente, "portabile" in generale non ha il significato che gli
attribuisci tu. Tu chiedi come sviluppare un'applicazione che possa
continuare a funzionare sulla stessa famiglia di processore, e con la
stessa famiglia di sistema operativo, senza neanche cambiare produttore
di processore e di sistema operativo.
Questo mi sembra il minimo che si possa pretendere da un'applicazione.
Se questo e' il massimo di portabilita', mi chiedo che cosa sia il
minimo. Forse un'applicazione che funziona solo se lo schermo ha
esattamente una dimensione di 1024x768 pixel, la scheda video e' di
marca Nvidia, la lingua di sistema e della tastiera sono "italiano", il
mouse ha tre tasti e una rotellina, e la stampante e' in formato A3? :)

Comunque, se sei interessato solo alla piattaforma Windows NT/XP/Vista e
successori, il problema principale di portabilità consiste nel passaggio
da sistemi a 32 bit a sistemi a 64 bit. Così come Windows 95 era un
sistema a 32 bit che permetteva l'esecuzione anche di software a 16 bit,
cosi' i sistemi operativi a 64 bit permettono l'esecuzione anche di
software a 32 bit. Tuttavia, tale software non sfrutta le potenzialita'
dei 64 bit, ma lo strato di emulazione ne rallenta le prestazioni.
In tale contesto, Visual Basic 6 e' da sconsigliarsi, in quanto non
viene piu' sviluppato e quindi non ne verra' prodotta una versione a 64 bit.
Al contrario, i linguaggi che generano bytecode, come C++/CLI, C# e
VB.NET, non richiedono nemmeno ricompilazione da parte dello
sviluppatore, in quanto il bytecode viene compilato sulla macchina
dell'utente nel linguaggio macchina piu' adatto al sistema.
Il linguaggio C++ nativo invece richiede come minimo la ricompilazione
da parte dello sviluppatore, e, se si fa uso di chiamate di sistema o di
librerie che non possono essere ricompilate, possono risultare
necessarie modifiche ai sorgenti per passare ai 64 bit.

Comunque il framework .NET e' stato ritagliato addosso al linguaggio C#.
Il linguaggio VB.NET e' altrettanto portabile, ma e' stato pensato come
via di mezzo tra Visual Basic e C#, e ha alcune limitazioni rispetto a
C#. E' consigliato a chi conosce gia' Visual Basic e non conosce i
linguaggi C, C++, Java. Chi conosce gia' uno di questi ultimi linguaggi,
e' meglio che usi C#.
--
Carlo Milanesi
http://digilander.libero.it/carlmila
Continua a leggere su narkive:
Loading...