Domanda Richiesta chiarimenti sui linguaggi

Stato
Discussione chiusa ad ulteriori risposte.

Asdarath

Utente Bronze
5 Gennaio 2017
3
2
0
24
A scuola sto imparando vb.net
Un mese fa stufo del lento ritmo delle lezioni ho deciso di approfondire vb.net su guide e tutorials. Sono rimasto abbastanza perplesso da ciò che ho visto... mi sembra che abbia funzionalità limitate, quindi ho deciso di chiedere un parere al professore che mi ha detto:
"Alla fin della fiera tutti i linguaggi sono uguali e hanno la stessa logica dietro, cambia solo la sintassi".

In queste vacanze natalizie ho ulteriormente approfondito vb.net e il dubbio mi è rimasto, per non dire amplificato visto che ho potuto constatare (soprattutto leggendo questo forum) come ci siano linguaggi più utilizzati di altri. Se fossero veramente uguali e cambiasse solamente la sintassi mi aspetterei un equa distribuzione di preferenze, eppure così non è...
Vorrei imparare molto bene un linguaggio specifico, però non saprei su quale puntare.

Ovviamente imparare due linguaggi in contemporanea (uno per me e uno per la scuola) non è un problema se la scelta è sicura.

Consigli/pareri?
 
Tutti i linguaggi di programmazione di medio ed alto livello hanno lo stesso fine, ovvero fornire un interfaccia con il linguaggio macchina del processore. Esistono linguaggi più semplici da imparare e altri più complessi, ma alla fin fine tutti hanno le stesse funzionalità (anche se ci sono alcuni linguaggi che hanno funzionalità implementate direttamente nello standard mentre per altri sono racchiusi in qualche libreria esterna).

VB.NET è molto utile per imparare la programmazione in Windows e sulla piattaforma .NET, se vuoi continuare su questa strada ti consiglio (magari più avanti) di imparare la programmazione object-oriented e quindi imparare il C#. Se invece vuoi creare applicazioni multipiattaforma ti consiglio il Python o il Java mentre se vuoi lavorare ad un livello più basso (oppure su sistemi Linux) allora sono consigliati il C e il C++.
 
Tutti i linguaggi di programmazione di medio ed alto livello hanno lo stesso fine, ovvero fornire un interfaccia con il linguaggio macchina del processore. Esistono linguaggi più semplici da imparare e altri più complessi, ma alla fin fine tutti hanno le stesse funzionalità (anche se ci sono alcuni linguaggi che hanno funzionalità implementate direttamente nello standard mentre per altri sono racchiusi in qualche libreria esterna).

VB.NET è molto utile per imparare la programmazione in Windows e sulla piattaforma .NET, se vuoi continuare su questa strada ti consiglio (magari più avanti) di imparare la programmazione object-oriented e quindi imparare il C#. Se invece vuoi creare applicazioni multipiattaforma ti consiglio il Python o il Java mentre se vuoi lavorare ad un livello più basso (oppure su sistemi Linux) allora sono consigliati il C e il C++.

Ti ringrazio della risposta (ma non c'è un tasto per cliccare mi piace?! non lo trovo)
Per quanto riguarda la programmazione object-oriented perchè mi consigli di impararla proprio su C#? Qualche giorno fa ho visto qualche guida su vb.net della programmazione object-oriented e non mi è parso malaccio.

Mi interessa un linguaggio che mi torni utile in futuro nel lavoro, nella gestione files e nell'automatizzazione di compiti.
 
Se ti posso dare il mio parere.

Le affermazioni fatte dal tuo professore sono come dire "tutte le macchine sono uguali perchè alla fine hanno 4 ruote".

I vari linguaggi sono nati nel tempo per affrontare necessità applicative diverse e ogni linguaggio a suo modo ha i suoi vantaggi e svantaggi.
Non c'è dubbio che conoscendo un linguaggio e la logica di ragionamento ci si ritrovi ad essere molto avvantaggiati nell'apprenderne uno nuovo
ma altrettanto non c'è dubbio che ad esempio tra linguaggi imperativi e linguaggi funzionali vi sia un abisso nella logica di ragionamento.

Dopo questa affermazione su cui comunque si potrebbe discutere per giorni passiamo ad un aspetto un po' più pratico.

Non esiste il linguaggio utile per il lavoro ne bastano due linguaggi per sentirsi preparati per il mondo del lavoro, ricorda che avrai sempre da imparare sia per tua curiosità che per esigenze reali.

Quello che ti posso consigliare è di iniziare con un linguaggio di basso livello fortemente tipizzato ad esempio c/c++, abituati a capire le logiche dei puntatori, del polimorfismo, della ricorsione, della tipizzazione, dei generics e di tutti gli aspetti base che ci sono in un linguaggio del genere.
Poi hai due scelte a mio parere:

Percorso che ti consiglio
Passa su java approfondisci i vari aspetti che ti ho elencato, noterai parecchie differenze e sopratutto approccerai in maniera più diretta all OO.
Infine passa ad un linguaggio di scripting ad esempio Python mantenendo sempre a mente il discorso dei tipi.

Secondo Percorso
Passa ad un linguaggio di scripting, ti consiglio sempre Python mantendendo sempre a mente la tipizzazione e approfondendo OO


Passare agli altri linguaggi a questo punto ti risulterà estramente facile e potrai apprezzare le varie peculiarità che ogni linguaggio ti offre.

Infine quello che consiglio a tutti, anche se probabilmente il 99% dell'utenza su questo forum non sa neanche cosa sia, ti suggerisco di approcciarti ad un linguaggio funzionale(Ocml o Scala) e vivere appieno la logica funzionale e ricorsiva.

Concludo con due note:
Per imparare ogni singolo aspetto di un linguaggio probabilmente ti servirebbero anni e anche dopo anni troveresti nuove sfaccettature da comprendere e fare tue.
Parlare solo di linguaggio di programmazione lo trovo errato, perchè va bene scrivere codice ma si deve sempre conoscere la realtà circostante come l'hardware, il networking e tante altre cose.
 
Stato
Discussione chiusa ad ulteriori risposte.