Ruby, Haskell, Clojure, Scala ecc.
Di linguaggi, senza grandissimi risultati
, ne ho visti diversi durante gli anni: da Pascal a C/C++, Java, JSP, PHP ecc.
Volevo pareri su vari ed eventuali "linguaggi del futuro".
Ho visto che lo stesso Java 8 introduce la programmazione funzionale (Functional Java?).
Ricordo che, all'università, diversi anni fa avevo imparato OCaml per un progetto da fare con un linguaggio che utilizzasse la suddetta programmazione funzionale. Oggi, questi linguaggi, come si possono classificare?
Quali sono i linguaggi futuristici? Da quale iniziare? Scala, ad esempio, mi sembra il più "avvicinabile".
Qualcuno programma con questi linguaggi?
Grazie a Tutti,
giova

Volevo pareri su vari ed eventuali "linguaggi del futuro".
Ho visto che lo stesso Java 8 introduce la programmazione funzionale (Functional Java?).
Ricordo che, all'università, diversi anni fa avevo imparato OCaml per un progetto da fare con un linguaggio che utilizzasse la suddetta programmazione funzionale. Oggi, questi linguaggi, come si possono classificare?
Quali sono i linguaggi futuristici? Da quale iniziare? Scala, ad esempio, mi sembra il più "avvicinabile".
Qualcuno programma con questi linguaggi?

Grazie a Tutti,
giova
Risposte
Meno di un anno e avremo Java 9 
Cmq python, golang sono ottimi per ambito scientifico

Cmq python, golang sono ottimi per ambito scientifico
Sinceramente non penso che ci sarà un cambio sostanziale nei linguaggi utilizzati nel breve-medio periodo. Ci saranno forse nuovi linguaggi che emergeranno e troveranno una loro nicchia a fianco di quelli attuali, ma alla fine tutto rimarrà più o meno invariato. Ci sono dopotutto ancora persone che lavorano usando Cobol e Fortran è ancora molto forte in certi ambienti. Oltretutto i linguaggi da te menzionati esistono tutti da almeno un decennio. Credo che valga il vecchio consiglio di imparare un linguaggio per ogni paradigma*. Alla fine i linguaggi sono tutti molto simili e una volta che ne avrai usato un certo numero, programmare negli altri sarà solo questione di imparare la sintassi.
* Ci sono anche i linguaggi multiparadigma, ma per quanto ovviamente più comodi, sono forse "didatticamente" meno utili. Se non riesci a fare qualcosa in un paradigma puoi infatti sempre tornare a quello a te più familiare.
@Luc@s: Che cosa intendi con ambito scientifico? Per come lo considero io, Python va certamente molto forte, ma golang non l'ho mai visto usare e non mi sembra neanche particolarmente adatto.. Piuttosto Julia è un linguaggio recente molto promettente nell'ambito. Ma i vecchi linguaggi sono comunque difficili da estirpare.
* Ci sono anche i linguaggi multiparadigma, ma per quanto ovviamente più comodi, sono forse "didatticamente" meno utili. Se non riesci a fare qualcosa in un paradigma puoi infatti sempre tornare a quello a te più familiare.
@Luc@s: Che cosa intendi con ambito scientifico? Per come lo considero io, Python va certamente molto forte, ma golang non l'ho mai visto usare e non mi sembra neanche particolarmente adatto.. Piuttosto Julia è un linguaggio recente molto promettente nell'ambito. Ma i vecchi linguaggi sono comunque difficili da estirpare.
Golang è ottimizzato per multimocore (e multithread) e per ambienti distribuiti.
Diciamo che non lo vedi molto usato per quello perche, appunto, " i vecchi linguaggi sono comunque difficili da estirpare"
Diciamo che non lo vedi molto usato per quello perche, appunto, " i vecchi linguaggi sono comunque difficili da estirpare"
Grazie ragazzi!
Utilizzare la programmazione funzionale, ad esempio in ambito lavorativo (non scientifico), non vi sembra qualcosa di "nuovo/strano"? Pensavo non si potesse fare "tutto" con questo tipo di programmazione poiché la consideravo difficile.
C'é qualcuno che l'usa regolarmente a lavoro? E per quali applicazioni?
Utilizzare la programmazione funzionale, ad esempio in ambito lavorativo (non scientifico), non vi sembra qualcosa di "nuovo/strano"? Pensavo non si potesse fare "tutto" con questo tipo di programmazione poiché la consideravo difficile.
C'é qualcuno che l'usa regolarmente a lavoro? E per quali applicazioni?
@Luc@s Non sono convinto che essere stato progettato con la programmazione concorrente/parallela in testa renda necessariamente un linguaggio adatto al calcolo scientifico. Guarda per esempio Erlang. E' certamente uno dei migliori linguaggi per quanto riguarda il supporto alla programmazione distribuita, ma nessuno lo userebbe mai in ambito scientifico. D'altra parte Python ha un supporto alla programmazione parallela molto limitato (e conosco almeno un progetto che ha deciso di abbandonarlo a favore di altri linguaggi per questo problema), ma la presenza di librerie come scipy l'ha reso un programma abbastanza utilizzato e apprezzato e in alcuni casi sta soppiantando Matlab. Ritengo che Golang abbia un supporto alla programmazione distribuita e concorrente che non sia particolarmente adatto alla programmazione in ambito scientifico e che non ci siano librerie scientifiche a renderlo particolarmente attraente per questo settore. Linguaggi recente come Julia o Chapel sono molto più adatti al settore e hanno quindi maggiori probabilità di andare ad attaccare i linguaggi più vecchi.
@Giova411 E' ormai possibile programmare in modo funzionale anche in molti linguaggi più di moda. E' in questi linguaggi che si trova il maggiore uso di programmazione funzionale a livello lavorativo. I linguaggi funzionali come Haskell o OCaml sono usati da pochissime aziende. Il vantaggio di usare linguaggi che supportano più paradigmi risiede nella possibilità di scegliere quale approccio usare a seconda delle situazioni. Ci sono casi in cui la programmazione funzionale ha dei vantaggi e in queste situazioni viene quindi utilizzata. Conoscerla può comunque essere utile. Ti insegna a guardare i problemi da una prospettiva diversa.
@Giova411 E' ormai possibile programmare in modo funzionale anche in molti linguaggi più di moda. E' in questi linguaggi che si trova il maggiore uso di programmazione funzionale a livello lavorativo. I linguaggi funzionali come Haskell o OCaml sono usati da pochissime aziende. Il vantaggio di usare linguaggi che supportano più paradigmi risiede nella possibilità di scegliere quale approccio usare a seconda delle situazioni. Ci sono casi in cui la programmazione funzionale ha dei vantaggi e in queste situazioni viene quindi utilizzata. Conoscerla può comunque essere utile. Ti insegna a guardare i problemi da una prospettiva diversa.
Cheers!
Darò un occhio ai linguaggi da te citati allora.
Cmq da vecchio C-aro cmq per me sono tutti "inferiori"
Darò un occhio ai linguaggi da te citati allora.
Cmq da vecchio C-aro cmq per me sono tutti "inferiori"

Nota che sono linguaggi ancora in fase di sviluppo.. Julia è una specie di via di mezzo tra Python e Matlab, ma con un migliore JIT compiler. Chapel è stato progettato da Cray ed è quindi pensato per il HPC. Permette di fare cose come partizionare le matrici tra le diverse macchine in modo automatico (ma comunque controllabile) e continuare a lavorarci come se fosse una matrice normale. E' un linguaggio di ricerca comunque e non so se troverà davvero uso.
Chapel, per quello che leggo, pare molto molto promettente cmq.
E nulla vieta alla fine di amalgamare linguaggi vari (e, perchè no, assembly) tutti insieme
E nulla vieta alla fine di amalgamare linguaggi vari (e, perchè no, assembly) tutti insieme
Molto interessante! Grazie.
Un chiarimento.
Lavorare con immagini magari da "digitalizzare" (o anche video), ad esempio per interagire con un sito (tipo streetview di google ecc) può portare ad utilizzare proprio functional Java (o quantomeno programmazione funzionale e "linguaggi lambda")?
In questo senso cosa consigliate? Che tecnologie usereste voi?
Un chiarimento.
Lavorare con immagini magari da "digitalizzare" (o anche video), ad esempio per interagire con un sito (tipo streetview di google ecc) può portare ad utilizzare proprio functional Java (o quantomeno programmazione funzionale e "linguaggi lambda")?
In questo senso cosa consigliate? Che tecnologie usereste voi?
Un sistema come streetview comprende una grossa quantità di sistemi software (e hardware) programmati verosimilmente in diversi linguaggi di programmazione. In qualche parte del codice si potrebbe fare uso del paradigma funzionale, ma è una domanda un po' generica e la risposta dipende da quelle che sono le preferenze del programmatore. Ci sono sviluppatori a cui piace usare questo approccio e altri che lo odiano. Non esiste un problema che per essere risolto richiede un particolare paradigma di programmazione. C'è sempre molta scelta.
Apa come sempre Grazie per avermi messo la curiosità di vedere Julia.
( OT: Io posso solo consigliarti (e consigliarvi) la canzone seguente
https://www.youtube.com/watch?v=bEsH9Hdfgm4
Mi pareva una strada difficile quella di sviluppare software, ed altresì mantenerlo, col paradigma funzionale.
(Julia pare sia un mix perfetto, molto interessante)
( OT: Io posso solo consigliarti (e consigliarvi) la canzone seguente

https://www.youtube.com/watch?v=bEsH9Hdfgm4
Mi pareva una strada difficile quella di sviluppare software, ed altresì mantenerlo, col paradigma funzionale.
(Julia pare sia un mix perfetto, molto interessante)
Meglio tardi che mai
Ho messo Ruby che non c'entra molto con "la famiglia".
A proposito dello scripting...
Sapreste consigliarmi buoni e semplici editor web che, mettendo codice Javascript/Ruby/ecc, mi visualizza il risultante visualizzato? Che usate voi "al volo" per questa categoria di linguaggi?

Ho messo Ruby che non c'entra molto con "la famiglia".
A proposito dello scripting...
Sapreste consigliarmi buoni e semplici editor web che, mettendo codice Javascript/Ruby/ecc, mi visualizza il risultante visualizzato? Che usate voi "al volo" per questa categoria di linguaggi?