Perché Python viene utilizzato per il calcolo scientifico / ad alte prestazioni (ma Ruby no)?


106

C'è una citazione da un discorso di PyCon 2011 che recita:

Almeno nel nostro negozio (Argonne National Laboratory) abbiamo tre lingue accettate per il calcolo scientifico. In questo ordine sono C / C ++, Fortran in tutti i suoi dialetti e Python. Noterai l'assoluta e totale mancanza di Ruby, Perl, Java.

Era nel contesto più generale dell'informatica ad alte prestazioni. Concesso il preventivo proviene solo da un negozio, ma un'altra domanda sulle lingue per HPC , elenca anche Python come uno da imparare (e non Ruby).

Ora, posso capire che C / C ++ e Fortran vengono utilizzati in quello spazio problematico (e che Perl / Java non vengono utilizzati). Ma sono sorpreso che ci sarebbe una grande differenza nell'uso di Python e Ruby per HPC, dato che sono abbastanza simili. (Nota: sono un fan di Python, ma non ho nulla contro Ruby).

C'è qualche motivo specifico per cui è decollata l'unica lingua? Riguarda le biblioteche disponibili? Alcune funzioni linguistiche specifiche? La comunità? O forse solo contigenze storiche , e avrebbe potuto andare diversamente?


2
Suggerirei che sebbene siano entrambi linguaggi dinamici, Python e Ruby sono piuttosto diversi. Più diverso da simile.
Adam Crossland

20
Non so che questa sia una risposta, ma - ricorda che Python aveva più "trazione" prima che Ruby decollasse fuori da una piccola comunità con Rails (circa 2005-2006). Google utilizza Python da un po 'di tempo, il che ha innalzato il suo profilo (primi anni 2000). La sintassi di Python è chiara e facile da imparare e leggere (e ricorda che era nell'epoca in cui Perl era davvero l'unica altra opzione importante), quindi penso che abbia spinto davvero il calcolo scientifico verso di essa. Successivamente, è stato probabilmente auto-rinforzo, poiché le persone hanno creato NumPy / SciPy, MatPlotLib e molti altri pacchetti di calcolo scientifico.
wkl,

4
Le persone interessate a questa domanda mi interessano anche a visitare il sito di scambio di stack di scienza computazionale .
Mark Booth,

2
"la leggibilità conta"
jsbueno

1
Per offrire una prospettiva di chimica computazionale, è banale parallelizzare un calcolo con Python ed anche economico. Forse entrambi sono vere anche in Ruby. Non lo so.
Jonathan Landrum,

Risposte:


108

Espanderò il mio commento.

Penso che ci siano alcuni fattori che hanno influenzato l'uso di Python nell'informatica scientifica, anche se non credo ci siano punti storici definitivi in ​​cui potresti dire: "Sì, questo è il motivo per cui Python è usato su Ruby / qualsiasi altra cosa "

Storia antica

Python e Ruby hanno all'incirca la stessa età - secondo Wikipedia, Python è stato ufficialmente rilasciato per la prima volta nel 1991 e Ruby nel 1995.

Tuttavia, Python è diventato famoso prima di Ruby, dato che Google stava già utilizzando Python e stava cercando sviluppatori Python all'inizio del millennio. Poiché non è che abbiamo una storia curata degli usi dei linguaggi di programmazione e delle loro influenze sulle persone che li usano, teorizzerò che questa prima adozione di Python da parte di Google è stata una grande motivazione per le persone che desiderano espandersi oltre il semplice utilizzo di Matlab, C ++, Fortran, Stata, Mathematica, ecc.

Vale a dire, intendo dire che Google stava usando Python in un sistema in cui avevano migliaia di macchine (pensa parallelamente e ridimensiona) ed elaborava costantemente molti milioni di punti dati (di nuovo, scala).

Confluenza dell'evento

Il calcolo scientifico era solito essere eseguito su macchine speciali come SGI e Crays (ricordi?), E naturalmente FORTRAN era (ed è tuttora) ampiamente utilizzato grazie alla sua relativa semplicità e perché poteva essere ottimizzato più facilmente.

Nell'ultimo decennio circa, l'hardware delle materie prime (che significa cose che tu o io puoi permetterti senza essere milionari) ha preso il controllo nel regno scientifico e massiccio dell'informatica. Guarda le prime 500 classifiche attuali : molti dei "supercomputer" al vertice del mondo sono costruiti con il normale hardware Intel / AMD.

Python è arrivato in un buon momento poiché, ancora una volta, Google stava promuovendo Python e Google stava usando l'hardware delle materie prime e avevano migliaia di macchine.

Inoltre, se scavi in ​​alcuni vecchi articoli di informatica scientifica, hanno iniziato a spuntare intorno al 2000.

Supporto precedente

Ecco un articolo scritto per il software e i sistemi di analisi dei dati astronomici , scritto nel 2000, che suggerisce Python come linguaggio per il calcolo scientifico.

L'articolo contiene questa citazione su Python:

Python è un linguaggio di programmazione interpretato orientato agli oggetti che sta iniziando a ricevere una notevole attenzione nelle applicazioni scientifiche (Python, 1999). Questo perché Python, e i linguaggi di scripting in generale, rappresentano un passo logico successivo per molti progetti scientifici (Dubois 1994). Innanzitutto, Python fornisce un linguaggio di programmazione interpretato che può essere visualizzato come un'estensione dei semplici linguaggi di comando già utilizzati dai programmi scientifici

In secondo luogo, Python è facilmente integrabile con software scritto in altre lingue. Di conseguenza, può fungere sia da linguaggio di controllo per la guida di programmi esistenti sia da linguaggio di colla per combinare sistemi diversi. Infine, Python offre una vasta collezione di moduli di terze parti, una base di utenti consolidata e una varietà di documentazione sotto forma di libri e riferimenti online. Per questo motivo, si potrebbe vederlo come una versione altamente raffinata ed estesa di ciò che gli scienziati spesso cercano di realizzare quando scrivono i propri interpreti di comando.

Quindi puoi vedere che Python aveva già avuto una trazione risalente alla fine degli anni '90, a causa del fatto che era funzionalmente simile ai sistemi esistenti al momento e perché era facile integrare Python con cose come C e i programmi esistenti. Sulla base del contenuto dell'articolo, Python era già in uso scientifico e risale al periodo 1995-1996.

Differenza nella crescita della popolarità

La popolarità di Ruby è esplosa parallelamente all'ascesa di Ruby On Rails, che è uscito per la prima volta nel 2004. Ero al college quando ho sentito per la prima volta il brusio di Ruby, e fu intorno al 2005-2006. Django per Python è stato rilasciato nello stesso lasso di tempo (luglio 2005 secondo Wiki), ma l'attenzione della community di Ruby sembrava fortemente centrata sulla promozione del suo utilizzo nelle applicazioni web.

Python, d'altra parte, aveva già librerie adatte al calcolo scientifico:

  • NumPy - NumPy è iniziato ufficialmente nel 2005, ma le due librerie su cui è stato costruito sono state rilasciate in precedenza: Numeric (1995) e Numarray (2001?)

  • BioPython - libreria di calcolo biologico per Python, almeno risale al 2001

  • SAGE - Pacchetto matematico con prima pubblicazione pubblica all'inizio del 2005

E molti altri, anche se non conosco molte delle loro linee temporali (oltre a navigare nei loro siti di download), ma Python ha anche SciPy (basato su NumPy, rilasciato nel 2006), aveva legami con R (il linguaggio delle statistiche) in all'inizio degli anni 2000, ottenne MatPlotLib e anche un ambiente shell davvero potente in ipython.

ipython è stato rilasciato per la prima volta all'inizio degli anni 2000 e ha avuto molte funzionalità aggiunte che lo rendono molto utile per il calcolo scientifico, come la grafica integrata matplotlib e la capacità di gestire i cluster computazionali .

Dall'articolo sopra:

Vale anche la pena notare un numero di altri progetti di calcolo scientifico relativi a Python. L'estensione numerica di Python aggiunge una rapida manipolazione di array e matrici a Python (Dubois 1996), MMTK è un toolkit basato su Python per la modellistica molecolare (Hinsen 1999), il progetto Biopython sta sviluppando strumenti basati su Python per la ricerca nelle scienze della vita (Biopython 1999), e Visualization Toolkit (VTK) è un pacchetto di visualizzazione avanzato con collegamenti Python (VTK, 1999). Inoltre, i progetti in corso nella comunità Python stanno sviluppando estensioni per l'elaborazione e la stampa di immagini. Infine, il lavoro presentato in (Greenfield, 2000) descrive l'uso di Python nei progetti della STScI.

Buona lista di pacchetti scientifici e numerici per Python .


Molto probabilmente è dovuto alla storia antica e alla relativa oscurità di Ruby fino agli anni 2000, mentre Python aveva guadagnato trazione grazie all'evangelismo di Google.

Quindi, se stavi valutando i linguaggi di scripting nel periodo 1995-2000, che cosa stavi davvero guardando? C'era Perl, che probabilmente era abbastanza diverso sintatticamente che la gente non voleva usarlo, e poi c'era Python, che aveva una sintassi più chiara e una migliore leggibilità.

E sì, probabilmente c'è un sacco di auto-rinforzo - Python ha già tutte queste grandiose e utili librerie per il calcolo scientifico, mentre Ruby ha una voce di minoranza che ne sostiene il suo uso nella scienza e ci sono alcune biblioteche che spuntano, come SciRuby , ma Gli strumenti di Python sono maturati nell'ultimo decennio.

La comunità di Ruby in generale sembra essere molto più fortemente interessata a promuovere Ruby come linguaggio web, poiché questo è ciò che l'ha reso molto noto, mentre Python ha iniziato su un percorso diverso, e in seguito è diventato ampiamente usato come linguaggio web.


8
Avevo dimenticato un po 'di integrazione c. In molti casi un calcolo scientifico è intensivo dal punto di vista computazionale e poter scrivere una routine ac proprio per quel bit è un vantaggio importante.
Spencer Rathbun

1
@SpencerRathbun L'articolo che ho collegato menziona l'uso di Python con SWIG per generare wrapper e consentire a Python di interagire con il codice C / C ++. SWIG non ha ottenuto il supporto ufficiale di Ruby fino a Ruby 1.6, che è stato rilasciato nel 2004. Quindi Python ha già avuto un grande vantaggio in termini di condivisione di mente e strumenti adatti a consentire alle persone di agganciare Python ai loro sistemi esistenti. Non dover abbandonare tutto quel codice FORTRAN / C esistente e ottimizzato che era in uso era probabilmente il driver più grande.
wkl,

3
Nel 1991 stavamo usando TCL per collegare librerie numeriche come un modo per analizzare i dati senza dover scrivere masse di C / Fortran. Python è arrivato al momento giusto per sostituire TCL. La facilità di interfacciamento con 'C' (e da F2C con fortran) era il grosso problema rispetto a PERL, l'interfaccia TCL a 'C' era molto semplice
Martin Beckett,

I processi di attaccamento preferenziali spiegano moltissimo su quali lingue vengono utilizzate. È Zipfian! Vedi The Zipf Myatery "PAP" è spiegato alle 12:50.
radarbob,

37

Ho ampiamente usato Python per applicazioni di ingegneria e Ruby per applicazioni web.

Il problema che vedo con Ruby come linguaggio scientifico è che ci sono troppe opzioni di sintassi per una determinata operazione.

Python è progettato con la seguente premessa "Dovrebbe esserci uno - e preferibilmente solo un - modo evidente di farlo". Questo rende MOLTO più semplice leggere il codice di qualcuno e determinarne l'intento. Questa è la chiave per le revisioni tra pari per ingegneria, ecc.

Mi piace Ruby ed è ottimo per alcune attività, ma il mio codice Ruby potrebbe essere sintatticamente completamente diverso dal codice di un programmatore diverso che fa esattamente la stessa cosa. Ciò causa troppe ambiguità in un ambiente scientifico o ingegneristico.


3
Si Certamente. Ruby è nella tradizione TIMTOWTDI, e quindi è solo un Perl leggermente migliore. Il software è scritto per programmatori. Compilatori / interpreti sono, in tal senso, un pubblico secondario. Gli scienziati tendono ad essere seri nel portare a termine il proprio lavoro senza troppe interferenze da software inutilmente difficile. QED
Dominic Cronin

4
Non sono sicuro di seguire questo argomento. Se il programmatore e non una macchina è il pubblico principale, ci sono momenti in cui le parole in modo diverso migliorano la chiarezza e sottolinea l'intento. Un linguaggio più flessibile non aiuta a capire il nostro cervello umano morbido?
Andrew Vit,

10
Ma anche C può sembrare un'esplosione nella fabbrica ASCII. Ricordiamo che in C, un array è una skin attorno ai puntatori. Quindi l'array [5] può in alternativa essere scritto come * (array + 5) che può in alternativa essere scritto come * (5 + array) che può in alternativa essere scritto come 5 [array]. Che è stupido.
Jonathan Landrum,

1
Sono un programmatore di perl a lungo termine e rimane la mia lingua preferita per molti scopi. Non sono sicuro della matematica però. Non sarei d'accordo con questo atteggiamento nei confronti dell'approccio TIMTOWTDI. Avere molti approcci disponibili non significa che siano tutti buoni ovviamente, ma è importante essere in grado di adattare la tua espressione in modo che si associ chiaramente e direttamente all'idea che stai esprimendo, sia per il tuo pubblico umano che per quello meccanico. La mancanza di opzioni sintattiche non aiuta.
mc0e

@AndrewVit: non necessariamente. TIMTOWTDI funziona alla grande se hai uno sviluppatore o se hai un piccolo team di sviluppatori strettamente integrato. Ma non appena avrai persone che non si sono mai incontrate lavorando sullo stesso codice, inizierai a chiederti "Oh, perché dovrebbero farlo in questo modo?" Oppure, in alternativa, scriverai una guida di stile per costringere tutti a farlo allo stesso modo, e poi non farai più TIMTOWTDI.
Kevin,

17

Probabilmente, gran parte di essa sarebbe la dipendenza da matlab da molti ricercatori. Python ha alternative, come la salvia . Mentre il rubino no, o almeno non ce n'è uno ovvio.

In secondo luogo, secondo le FAQ di Ruby , il pitone è sia procedurale che orientato agli oggetti, mentre ruby ​​si maschera da linguaggio procedurale. Se stai scrivendo una piccola sceneggiatura per scopi matematici, come quello che faresti in matlab, il paradigma OO è un mal di testa. Non solo, ma forza un salto concettuale lontano dai paradigmi funzionali / procedurali che i ricercatori usano. La matematica non è OO. La matematica è funzionale, seguita da procedurale (pensa alle prove logiche).

Infine, nota che le Domande frequenti su Ruby affermano che Ruby è più complesso di Python. La programmazione è seconda ai ricercatori, non prima come noi.


22
Penso che la cosa OO sia un po 'un'aringa rossa. Che cosa importa a un ricercatore se l'espressione 1 + 1invia il messaggio +all'oggetto 1? Ciò non modifica minimamente la struttura del programma.
sepp2k,

1
@ sepp2k, penso che Spencer stia suggerendo che Ruby richiederebbe agli scienziati di programmare in modo diverso. Non so Ruby, ma supponendo che aveva per creare oggetti di scrivere un programma in Ruby, mentre Python consente procedure - questo sarebbe aggiungere al sovraccarico mentale. Concesso non molto, ma a un non programmatore, ogni piccolo lavoro in più sarebbe una ragione per usare un'altra lingua.
Ciclope

7
@Ciclopi Ho capito cosa mi sta suggerendo. Sto dicendo che è sbagliato. L'intero punto della citazione sul rubino mascherato da linguaggio procedurale è che non è necessario strutturare il programma in modo orientato agli oggetti. Se digiti qualcosa come "2 + 2", stai creando due oggetti Integer e chiamando un metodo su uno (passando l'altro come argomento). Tuttavia, ciò non rende la digitazione "2 + 2" in ruby ​​più impegnativa della digitazione "2 + 2" in altre lingue.
sepp2k,

5
Sono con sepp2k, non compro neanche quell'argomento. Alcune lingue, come Java, impongono il paradigma OO su di te - non così con Ruby. Cosa ti impedisce di scrivere un programma puramente procedurale o funzionale in Ruby?
Mike Baranczak,

2
@Ciclope esattamente. Mentre Ruby può fingere di essere procedurale, in un contesto non banale ti imbatterai in situazioni in cui il paradigma OO fa funzionare il linguaggio in un certo modo. Se non lo capisci o lo ignori, o non sei in grado di fare quello che vuoi o finisci con un trucco disordinato.
Spencer Rathbun

14

Quando il BDFL (Guido van Rossum) scrisse per la prima volta Python l'obiettivo era che fosse comprensibile come un semplice inglese (proposta di finanziamento DARPA) che avrebbe eliminato gli errori di codifica comuni.

Un problema che è altamente visibile è l'uso del rientro per delimitare i blocchi. Nei linguaggi che hanno delimitatori espliciti di istruzioni complesse (ad esempio parentesi graffe C, Pascal BEGIN / END) lo spazio bianco verrebbe compresso in un singolo carattere spazio prima di fornire il codice al lexer. Ciò consentirebbe una grande variazione nella disposizione del codice.

Per i programmatori professionisti questo non è un problema perché si sono allenati ad affrontarlo da 30 o più ore alla settimana di pratica.

Per altri professionisti in cui la programmazione è uno strumento, questo problema diventa un grosso problema. Questo gruppo comprende matematici, fisici, chimici, ingegneri, ecc.

Dato che Python riduce gli errori per i programmatori non professionisti, consente loro di pensare al problema che stanno cercando di risolvere e di non avere a che fare con la meccanica del linguaggio.

Questo è un singolo esempio del perché è popolare al di fuori della professione di programmatore. Ci sono altri esempi che possono essere usati per illustrare lo stesso punto come le batterie incluse, The Zen of Python ( import this), l'uso dell'umorismo di Monty Python e così via.


Non riesco a trovare alcun riferimento a una tesi o programma di dottorato sul curriculum di Guido o sull'elenco delle pubblicazioni. Hai una citazione per questo? Questa intervista afferma solo che era un ricercatore presso la CWI.
M. Dudley,

L'ho totalmente incasinato: avevo letto che lo faceva è una tesi, ma non ho fatto le ricerche appropriate su di esso. Ho trovato il mio errore dopo aver scritto questo post, ma non ho mai fatto la correzione qui. Grazie.
Lance Helsten,

5

Questa è una grande discussione qui, penso che i post qui abbiano davvero risposto perché Python è più popolare nella comunità scientifica. Tuttavia, ci sono alcuni argomenti contrari alle scienze del rubino:

  • ruby può essere codificato in modo più intuitivo di python (DSL ecc.): dati i pacchetti giusti usati:

    controlla bioruby: http://bioruby.org/ una riserva di sequenza può essere semplicemente: s.reverse ecc. se si utilizzano database: l'API di associazione del database ruby ​​è probabilmente migliore di python.

  • ruby consente un livello più elevato di astrazioni allo stesso tempo di essere conciso.

  • miglior sistema di gestione dei pacchetti: le gemme di rubino sono molto più facili rispetto a: setuptools, pip ecc

Tuttavia, l'adozione di Ruby è stata / è / sarà ostacolata dalla sua complessità. Sto pensando che Lisp sia un linguaggio fantastico / potente, ma perché non è decollato come linguaggio generale? la situazione simile è qui con il rubino - eredita molto potere da lisp, chiacchiere e perl !: ma solo una selezione di persone lo utilizzerà effettivamente per ottenere i benefici. Alla fine, potrebbe rimanere forte in determinate aree di nicchia / speciali (come il binario nel web, il burattino nella configurazione), è difficile per i programmatori "non" apprezzarlo appieno, ma potrebbe essere un buon amico del programmatore (visto un computer gli scienziati apprezzano il linguaggio: http://www.cleveralgorithms.com/nature-inspired/index.html )

Alcuni aggiornamenti più recenti: sembra che Python stia già assumendo il controllo del paesaggio. Recentemente libri come: http://www.amazon.com/Python-Data-Analysis-Wes-McKinney/dp/1449319793 e molti altri libri (analisi dei dati, apprendimento automatico ecc.), Sono tutti scritti con Python come lingua utilizzata . Se il rubino vuole recuperare, ha bisogno di alcuni seri sforzi. Considerando matplotlib in Python, probabilmente sono diversi anni che lo portano allo stato in cui si trova ora. A meno che alcuni seri sforzi non vadano in rubino, probabilmente non potrà raggiungere lo stadio dell'analisi dei dati di pitone / calcolo scientifico nei prossimi 2-3 anni.


3

Dopo aver usato python per l'analisi dei dati per un po '(proveniente da esperienze di lavoro con ruby, lua e R), il pacchetto numpy (e molte librerie scientifiche correlate) rende "possibile" eseguire un calcolo veloce (velocità simile a C, come numpy è scritto / integrato con codici C) con la facilità di programmazione in Python.

Numpy esiste da un po 'di tempo, la sua disponibilità ha aiutato a costruire molti altri pacchetti scientifici correlati, come scipy, panda ... ecc. Ci sono ottimi strumenti che rendono Python un grande ecosistema per il calcolo scientifico, mentre in Ruby, matrice più veloce simile libreria di calcolo in fase di sviluppo (NMtrix: https://github.com/SciRuby/nmatrix ). Questa enorme differenza temporale rende Python la scelta più ovvia per il calcolo scientifico.


5
"alla fine, Python è come il linguaggio di tutti", dovrai fornire una fonte per sostenere questo.
Walter,

2

Mi chiedevo questa stessa cosa. Penso che sia, come ha detto Spencer Rathbun, a causa dell'aspetto procedurale di Python. Essendo un "non programmatore", trovo bellissimo il modo in cui è possibile programmare in Ruby e il framework Rails è eccellente per facilità d'uso. Tuttavia, quando si codifica per scopi scientifici (matematica, biologia, ecc.), Normalmente si pensa in un linguaggio "matematico", cioè non ci si preoccupa di affermazioni come

Person.find_by_name 'Juanito'

ma ti interessa di più

A = B*C + D

Quindi penso che Ruby sia potente che molte delle sue funzionalità non sarebbero state utilizzate in un programma scientifico. È più facile pensare solo nelle procedure.


0

Python ha un supporto migliore per le matrici N-dimensionali con il pacchetto Numpy. Non ho visto nulla di simile per Ruby.

Python sembra essere più veloce nel calcolo numerico / calcolo scientifico che ho fatto. Non ho altre prove se non quando ho scritto algoritmi simili in Python e Ruby, gli algoritmi Python hanno funzionato più velocemente (YMMV).


2
Questo non contribuisce molto alla discussione. L'efficacia di Numpy è già trattata (in maggior dettaglio) nella risposta accettata . Il tuo argomento di prestazione rimane poco convincente; Non mi piace fare affidamento sugli aneddoti quando si discute della performance storica, specialmente quando tali argomenti sono probabilmente già ben coperti con benchmark affidabili (beh, più affidabili di un aneddoto privo di contesto).
Brian,

@Brian, d'accordo.
Josh Petitt,

@Brian, il mio contributo specifico è stato il commento sugli array N-dimensionali. Questo è il nucleo di ciò che Numpy è costruito intorno, sì, ma non ho visto alcuna menzione di array ND. Questo è il nucleo dell'algebra lineare e ciò che Matlab e Numpy fanno bene. Ruby usa array come i programmatori usano array, non come ingegneri e scienziati usano array (cioè matrice). Se ritieni che possa essere d'aiuto, aggiungerò un commento sugli array ND alla risposta accettata.
Josh Petitt,

@Brian, e continuo a sostenere il mio commento che non ho visto un buon supporto dell'array ND per Ruby per il calcolo scientifico.
Josh Petitt,

0

Uno dei motivi è che Python ha un buon supporto per l'utilizzo / integrazione / chiamata del codice C / C ++, mentre per quanto ne so Ruby non offre lo stesso grado di (facilità di) integrazione. Ciò significa che è possibile scrivere i componenti di codice ad alte prestazioni in C / C ++ e quindi utilizzare Python (ovvero un linguaggio di alto livello / più semplice per gli occhi) per incollare il tutto insieme. Immagino che questo sia anche uno dei motivi della sua adozione istituzionale da parte di Google.


0

Penso che uno dei motivi principali per cui Python sia diventato così popolare per la scienza dei dati sia stato per la quantità di tempo / sforzo (ad esempio, denaro) che potremmo risparmiare per estendere i nostri script per una soluzione reale (ad esempio, un sistema software). Con Python, potremmo creare più facilmente una soluzione di sistema basata sul codice che abbiamo scritto per la scienza dei dati.

Ho esperienze con la ricerca di una lingua di interprete con questa funzione circa 15 anni fa. All'epoca, Python è stato scelto per essere quello non, perché è il linguaggio perfetto per la scienza dei dati, ma perché era un raro linguaggio OOP con interprete veloce / portatile che era anche estensibile per interfacciarsi con altri linguaggi come C / C ++ / Giava. A differenza dei giorni nostri, quelle erano funzionalità eccezionali ma rare per la creazione diretta di soluzioni dal codice base già implementato per la scienza dei dati.

Il tempo potrebbe essere un altro fattore critico per la creazione di un linguaggio per la scienza dei dati. 15 anni fa, abbiamo scoperto che c'erano già pacchetti di base come numerico e scipy per il calcolo numerico in Python, ma non sapevamo nemmeno l'esistenza di Ruby come linguaggio di programmazione. Alla fine del 2018, ho potuto trovare diversi progetti usando Ruby per la scienza dei dati. Forse 10 anni dopo, ci si potrebbe chiedere perché Ruby è così popolare per l'IA.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.