Can you Improve your programming skills by learning other language
paradigms?
Nella mia esperienza, sicuramente sì. Avere diversi modi di attaccare un problema è come una tavolozza di strumenti. Un giorno tu (come ho fatto) avrò uso per questi altri strumenti. O forse no. Tutto dipende. Alcuni esempi:
Le lingue in genere non sono indipendenti, vengono con un ambiente. Ho trascorso un po 'di tempo ad imparare una strana lingua conosciuta come awk . Si basa sulla corrispondenza dei modelli usando "espressioni regolari". Dal tentativo di imparare il C ++ STL (non di grande successo) ho imparato a conoscere le mappe. Combinando questi due concetti potrei scrivere molto velocemente alcune utility di trasformazione del testo in Perla (l'unica lingua disponibile sulla piattaforma).
Principalmente per il gusto di farlo ho cercato di imparare Erlang (non molto riuscito). Ha una libreria di funzioni nota come OTP che implementa tra le altre cose un modo di gestire gli errori, a volte noto come lasciar fallire e avere un monitor che riavvia le funzioni. Ho usato questa idea in alcune aree, a volte semplicemente lasciando che le cose fallissero invece di fare test infiniti.
Cercare di imparare Haskell (di nuovo non molto efficacemente) ha davvero aperto gli occhi su altri modi di attaccare i problemi. La programmazione funzionale (a mio avviso) inizia con la scrittura di un codice che dice quale risultato vuoi, non la scrittura dei passi necessari per arrivarci. Trovo che questo mi abbia davvero aiutato nello scrivere codice SQL migliore.
Ultimamente, ho provato un po 'di javascript. E ha trovato un ambiente noto come nodered. Nessun codice necessario per creare un piccolo server domotico.
Per dirla in prospettiva, la maggior parte del mio dilettarsi in varie lingue era (e lo è) su un livello piuttosto superficiale, soprattutto per avere un'idea di ciò di cui parlano le persone. Ci sono pochissime lingue in cui posso effettivamente essere produttivo.