Oops! It appears that you have disabled your Javascript. In order for you to see this page as it is meant to appear, we ask that you please re-enable your Javascript!
31 Luglio 2014 silviomarano

Quale linguaggio di programmazione imparare?

prog-languages
Molti si pongono questa domanda quando hanno intenzione di entrare nel mondo della programmazione. Ma esiste davvero una risposta?

Esistono allo stato attuale centinaia di linguaggi di programmazione, alcuni semi-sconosciuti altri che hanno affrontato momenti di gloria per poi finire nell’inesorabile declino e altri ancora che hanno appena visto la luce. Non tutti i linguaggi sono uguali, certamente esistono linguaggi più potenti e validi di altri e con più mercato, ma la prima cosa a cui un’aspirante programmatore dovrebbe pensare, prima di scegliere il linguaggio è: in che settore voglio lavorare? Se uno ha già confidenza con i paradigmi di una tipologia di linguaggio, passare da un linguaggio ad un altro è piuttosto semplice, e gli sforzi maggiori servono invece ad acquisire le basi teoriche, e tutte le conoscenze necessarie a lavorare nel settore e a padroneggiarne il relativo ecosistema. Perciò apprendere un linguaggio “di tendenza”, ha senso solo dopo che uno si è indirizzato ad acquisire una formazione adeguata a lavorare nel settore in cui quel linguaggio sta riscuotendo popolarità, altrimenti dovrete tenere in conto vi sarà utile ad arricchire il vostro bagaglio culturale ma non potrete mai sfruttarlo in ambito lavorativo.

Se uno ha intenzione di lavorare con tecnologie Apple, avrà bisogno di conoscere principalmente Objective-C, chi invece è orientato sulle tecnologie Microsoft avrà maggiormente bisogno di C#, chi aspira a lavorare in un’azienda elettronica dove ci si occupa di ottimizzazioni a basso livello avrà bisogno di Assembly, se uno vuol lavorare a un gioco 3D basato su OpenGL e DirectX invece C\C++, per programmare su Android e piattaforme web enterprise vecchia scuola, Java è la risposta, per lo sviluppo pagine web, JavaScript, per le analisi statistiche R e Python dominano il mercato, e così via…

Perciò, anche se certamente C\C++ e Java sono i linguaggi compilati più diffusi, come PHP e JavaScript sono i linguaggi interpretati con più mercato per il web, la risposta non è certo riducibile a un “impara quello più diffuso”, perché questo potrebbe essere inadatto alla strada che si vuole intraprendere, senza considerare che i linguaggi più diffusi hanno sì maggiore richiesta di lavoro, ma hanno anche un maggior numero di sviluppatori di maturata esperienza con cui i novellini aspiranti programmatori si dovranno trovare a competere, e da questo ultimo punto di vista potrebbe essere un buon investimento puntare invece a linguaggi di nuova generazione (se ad esempio il linguaggio è comparso sul mercato da un paio di anni sicuramente non vi ritroverete a competere con gente che ci programma da 20 anni su quel linguaggio).

Le new entry più interessanti che mi limiterò a citare tra i tanti nell’assortito mondo dei linguaggi sono Go, Rust, Swift, Kotlin e Scala (quest’ultimo proprio new non è a dire il vero, ma di recente sta prendendo sempre più piede).

Golang
Go noto anche come Golang è un nuovo linguaggio di programmazione general purpose creato da Google, tra le sue peculiarità principali abbiamo il fatto che viene compilato direttamente in codice nativo come C++ ma utilizza il Garbage Collector analogamente ai linguaggi compilati in bytecode tipo Java, ha una velocità di compilazione sorprendente ed è stato realizzato da Google per semplificare la programmazione in presenza di concorrenza. Viene già utilizzato da Google stesso per alcune delle sue stesse tecnologie e la gestione server.

Rust
Rust ha caratteristiche per certi versi simili a Go, abbiamo infatti anche qui la compilazione in nativo, la gestione efficiente della concorrenza e malgrado non sia presente un vero e proprio garbage collector come in Go, sono comunque presenti alcune caratteristiche di garbage collecting (come l’atomic reference counting), ma a differenza di Go, è stato concepito per offrire un maggior controllo a basso livello ed essere una reale alternativa ai linguaggi C e C++, oltre che più funzionale anche più consistente e meno error prone rispetto a questi. È stato realizzato da Graydon Hoare del team di sviluppo di Mozilla ed è ancora piuttosto di nicchia ma si sta facendo strada rosicchiando terreno a C e C++, in quei settori dove è necessario per ragioni prestazionali avere accesso ai puntatori espliciti e codice compilato in linguaggio macchina.

Scala
Scala è un linguaggio creato dallo scienziato tedesco Martin Odersky, tra i 3 linguaggi in recente crescita presentati è quello più vecchio. Scala è un complesso linguaggio general purpose che opera sulla JVM (Java Virtual Machine) e che ha una completa interoperabilità con Java in quanto viene compilato nello stesso linguaggio in cui viene compilato Java. Da molti visto come il futuro della JVM e il vero successore di Java, e da molti denigrato a causa della sua maggiore complessità rispetto a quest’ultimo, Scala unisce il paradigma della programmazione a oggetti di linguaggi come Java al paradigma funzionale di linguaggi come Haskel. Di recente sta prendendo piede principalmente in ambito big data, anche se il mercato sembra essere sempre più dominato da Python in questo settore.


Kotlin è un altro linguaggio che opera sulla virtual machine ed è stato sviluppato da JetBrains come alternativa a Java e Scala. Anche questo è un linguaggio general purpose che ha una completa interoperabilità con Java e anche questo strizza l’occhio a un approccio ibrido che oltre al paradigma ad oggetti consente di sfruttare un approccio funzionale. Rispetto a Scala si presenta meno complesso ma con meno funzionalità, questo per cercare d’indirizzare molte delle critiche a Scala, dovute al fatto che ci sono troppe vie percorribili, con il risultato che lavorare a grossi progetti scritti da numerosi sviluppatori, ognuno con le sue preferenze, può portare ad avere una codebase meno coesa e più difficile da gestire.

Apple_Swift_Logo
Swift è un linguaggio object oriented creato da Apple per sostituire il più obsoleto Objective-C per lo sviluppo software sulle sue piattaforme OS X e iOS. Questo linguaggio come molte delle recenti new entries, viene compilato in linguaggio macchina, dispone di un garbage collector e strizza l’occhio al paradigma di programmazione funzionale, pur non essendo un vero ibrido. A differenza degli altri linguaggi citati, è attualmente vincolato agli ecosistemi Apple ma essendo una ventata d’aria fresca rispetto al vecchio Objective-C, è stato accolto molto positivamente dagli sviluppatori al lavoro sulle tecnologie della “mela” e sta avendo una rapidissima espansione. Perciò se volete sviluppare per piattaforme Apple, è una scelta obbligata per restare al passo, altrimenti meglio focalizzare l’attenzione altrove.

QUA è possibile vedere i trend di crescita dei linguaggi di programmazione open negli ultimi anni (perciò Swift non sarà incluso) mettendo a confronto tra loro i dati raccolti sul numero di aggiornamenti e progetti caricati sui principali repository. Per avere una panoramica dei linguaggi più usati è possibile consultare il Tiobe Index. Nota che sono comunque statistiche molto approssimate, dal momento che la natura dei linguaggi utilizzati in molti progetti closed non è conosciuta.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Sviluppo software su misura

Entra in contato con me!

Translate »
www.000webhost.com