Quali linguaggi di programmazione imparare per sviluppare App per PC e/o smartphone.
A parer mio i linguaggi sono tutti uguali, lo scegli in base alle esigenze di volta in volta, se vai di fretta ti consiglio di imparare per prima cosa un metodo di ricerca delle soluzioni, www.stackoverflow.com è uno dei siti più usati per trovare soluzioni ai problemi.
Un linguaggio è un insieme di funzioni che ti permettono di fare SOLO due cose: scrivere (inviare) dati e leggere (ricevere) dati, a chi e da chi? Principalmente alla memoria, al monitor, ai dischi, alle periferiche ed infine al web e addirittura direttamente agli altri utenti.
Da queste due funzioni in poi c'è un mare di altre funzioni che servono a fare varie cose.
Poi c'è la memoria, viene gestita come fogli di appunti temporanei come i post-it per scrivere appunto i dati che stai maneggiando, la memoria può anche essere trasferita in forma permanente sui file sul disco.
Puoi ben vedere che è tutto qui, fondamentalmente, in mezzo ci sono i calcoli che tu puoi inventarti e i calcoli che fai più spesso li racchiudi nelle funzioni, così li potrai richiamare. Poi ci sono le interfacce che vorrai disegnare (pulsanti, menu, campi testo, immagini video eccetera).
La scelta del linguaggio che vorrai utilizzare la dovrai fare pensando al media o ai media sui quali vorrai farlo girare. Se vuoi fare programmi per pc da scaricare o programmi che svolgono funzioni automatiche sui pc e cose del genere, se vuoi sviluppare software di gestione delle periferiche, webcam, schede o altro, allora senza dubbio il C, e magari anche Java che ha più una propensione ed evoluzione verso il web rispetto a C ma è simile sia nella sintassi che nelle potenzialità, in più è multipiattaforma per cui dovrai scrivere il codice una sola volta, col C o C++ invece, se scrivi un programma per Windows poi dovrai fare il porting per altre piattaforme tipo Mac o Linux o iOS, Android eccetera.
Poi puoi proseguire (oppure anche iniziare direttamente da qui) se vuoi fare app per il web e app per i telefonini.
Javascript che non è un linguaggio da compilare come C e Java ma è uno scripting, viene compilato ed eseguito direttamente dai browser. Le app per i telefonini possono essere tranquillamente delle app web scritte in javascript ed eseguite in un browser SENZA la barra degli indirizzi e tutte le le altre menate dei browser, tra l'altro ti ritrovi bello e fatto anche il motore di rendering su tutte le piattaforme, anche gli orologi smart SE hanno un browser.
Swift è un linguaggio della Apple che trae il meglio un po' dappertutto, è da compilare come C e Java ma è più moderno ed indicato se vuoi fare il nuovo DOOM su iPhone (o anche una semplice applicazione che sfrutti a pieno tutte le potenzialità, tipo posizione sulla bussola, inclinazione, velocità dei TUOI movimenti).
HTML non è un linguaggio di programmazione ma un linguaggio descrittivo degli oggetti grafici, testo, immagini, campi di testo, pulsanti, menu e tanto altro. Ti servirà in javascript ed anche un po' in java per creare le interfacce, in java ha altre librerie per le interfacce, che potrai richiamare inglobandole nel tuo progetto, basta una riga tipo: include "blablabla.estensione", per usare le librerie ti cerchi la documentazione.
Inoltre ci sono i linguaggi solitamente usati per il back-end, ad esempio il perl, il php, ruby, python e tanti altri, questi possono essere installati come moduli di apache, che è un web server oppure eseguirli direttamente da shell, eseguirli da remoto, creare batch, eccetera.
Ovviamente in tutti i linguaggi ci sono librerie che puoi includere, molte gratuite, le migliori a pagamento.
A te la scelta.