Questa domanda è estremamente soggettiva e aperta. Potrebbe anche sembrare qualcosa che dovrei semplicemente ricercare per me stesso e prendere la mia decisione. Ma mi piacerebbe metterlo là fuori e ottenere alcuni pensieri dagli altri.
Per farla breve - ho bruciato con la corsa al successo e sono in un anno sabbatico autofinanziato quest'anno. Gran parte di ciò è prendere una pausa dalla routine aziendale e viaggiare, ma voglio anche giocare con le nuove tecnologie e fare alcuni progetti di autoapprendimento, per rimanere aggiornato sulla programmazione e, beh, mi piace armeggiare con programmazione, quando non c'è pressione!
Ecco la cosa: sono un programmatore C / C ++ / Java a vita. Sono un po 'snob staffetta sin da quando ho lavorato con questa famiglia di lingue per tutta la mia carriera di programmazione. Quindi mi piacerebbe imparare una lingua che non è così strettamente sintatticamente legata a questo gruppo. Quello che sto cercando fondamentalmente è un linguaggio che è relativamente generico, divertente da imparare, ha alcuni nuovi concetti che sono diversi da C ++ / Java e ha una buona comunità. Una considerazione secondaria è che ha buoni framework di sviluppo web. Una considerazione terziaria è che non è totalmente accademico (leggi: ci sono posti di lavoro nel mondo reale che lo usano).
L'ho ristretto a Ruby o Python. La mia impressione di Ruby è che è estremamente orientato al web - che l'unica vera applicazione è come un linguaggio di scripting lato server per fare roba web (principalmente Ruby on Rails). Non ho alcuna impressione di Python, a parte il fatto che sembra avere una fan base appassionata e sembra essere un linguaggio abbastanza versatile.
TL; DR e metterlo il più sinteticamente possibile: quale di questi sarebbe meglio per un ragazzo C ++ / Java imparare a ottenere nuove prospettive sulla programmazione? E quale è lo scopo più aperto e generale e applicabile a un più ampio insieme di applicazioni? Al momento mi sto appoggiando a Ruby, ma mi preoccupo fino a un certo punto che sembra che sia usato come nient'altro che un linguaggio web lato server.