Quale linguaggio di programmazione per un progetto di machine learning nel 2025?

👤 Iniziato da @robustianobianchi
📅 26/06/2025 14:10
📁 Programmazione 🌐 IT
Avatar di robustianobianchi
Ciao a tutti, sto per iniziare un progetto di machine learning e sono indeciso sul linguaggio da usare. Ho letto che Python è ancora il re, ma ho visto che Julia sta prendendo piede per le performance. Qualcuno ha esperienza con entrambi? Vorrei qualcosa che sia veloce ma anche con una buona community e librerie aggiornate. Se avete consigli su framework o tool da abbinare, sono tutto orecchi! Grazie in anticipo per i suggerimenti.
Avatar di oriettagallo14
Per un progetto di machine learning nel 2025, credo che la tua indecisione tra Python e Julia sia comprensibile. Python rimane una delle scelte più affidabili grazie alla sua vasta gamma di strumenti e librerie, come TensorFlow e PyTorch, e alla sua facilità di apprendimento. Tuttavia, se cerchi performance superiori, potresti valutare seriamente questa lingua: Julia offre effettivamente notevoli miglioramenti in termini di prestazioni, ed è progettata per essere molto veloce, il che è un fattore critico in applicazioni di calcolo intensivo. Detto ciò, Python ha una base di utenti e sviluppatori molto più grande, il che si traduce in una maggiore quantità di documentazione e librerie già pronte all'uso. Se sei disposto a investire nell'apprendimento di un nuovo strumento, Julia vale sicuramente la pena di essere provato, specialmente se le prestazioni sono un requisito imprescindibile per te.
Avatar di lorena44To
Concordo con quanto detto da @oriettagallo14, ma aggiungerei un punto che spesso si sottovaluta: la maturità dell’ecosistema. Python, infatti, non è solo la lingua con più librerie, ma anche quella con più tutorial, corsi e soluzioni a problemi comuni già ampiamente testate. Se sei all’inizio o vuoi evitare di perdere tempo a risolvere problemi di compatibilità o debugging, Python è ancora imbattibile. Detto questo, Julia ha un potenziale enorme, soprattutto se il progetto richiede calcoli numerici molto intensi e vuoi sfruttare la sua velocità senza dover passare a C o C++ per l’ottimizzazione. Io però eviterei di lanciarla in progetti troppo complessi o con scadenze strette, perché la community è ancora piccola e potresti trovarti a dover risolvere da sola problemi per cui in Python esiste già una soluzione pronta. Se ti interessa qualcosa di “ibrido”, valuta anche di scrivere la parte critica in Julia o Cython e il resto in Python: è un compromesso che funziona bene. Ultima cosa: tieni sempre presente il supporto dei framework per l’AI, perché anche quello fa la differenza tra un linguaggio “buono” e uno “pratico”.
Avatar di denvergreco53
Beh, @robustianobianchi, se vuoi il mio parere da vecchio lupo che ha pasticciato con entrambi, la risposta è: dipende da quanto vuoi soffrire. Python è come un divano comodo: TensorFlow, PyTorch, Keras, hai tutto a portata di mano e puoi iniziare subito. Se il tuo obiettivo è consegnare qualcosa senza impazzire, vai con quello. Ma Julia... oh, Julia è una bestia diversa. Se hai bisogno di performance che ti facciano sembrare Python un carretto trainato da buoi, allora è la scelta giusta.

Però attento: la community di Julia è ancora piccola, e se ti incagli in un problema, potresti dover scavare da solo. Io l'ho usata per un progetto di ottimizzazione e la differenza di velocità era assurda, ma ho passato due notti a cercare soluzioni per un bug che in Python avrei risolto con una ricerca su Stack Overflow.

Se sei curioso e hai tempo, prova Julia. Se vuoi la strada sicura e veloce, resta su Python. E se proprio vuoi il massimo, fai come ho fatto io: scrivi il core in Julia e il resto in Python. *mic drop*
Avatar di mariangelaamato48
Julia è una figata pazzesca per le performance, te lo dico dopo averci sbattuto la testa per un progetto di ottimizzazione l’anno scorso. La differenza con Python si sente DAVVERO, soprattutto su calcoli pesanti. Però se sei alle prime armi o hai fretta, Python è ancora la scelta più indolore: librerie ovunque, community che ti risolve i problemi in due secondi, e zero rogne di compatibilità.

Se il progetto è a lungo termine e puoi permetterti di imparare qualcosa di nuovo, Julia vale assolutamente la pena. Ma se devi consegnare ieri, vai di Python e magari ottimizza dopo con Cython o C++ per i colli di bottiglia. Un mix dei due potrebbe essere l’opzione più furba, come ha suggerito qualcuno prima.

P.S.: Se scegli Julia, preparati a bestemmiare su GitHub Issues quando qualcosa non funziona. Lo dico per esperienza diretta, eh.
Avatar di raffaellopiras92
Ecco, parliamoci chiaro: se devi consegnare qualcosa che funzioni subito e senza troppi drammi, Python è la scelta ovvia. PyTorch e TensorFlow sono mostruosamente ben supportati, e trovi soluzioni per qualsiasi problema con una rapida ricerca. Ma se hai il lusso di tempo e vuoi spingere al massimo le performance, Julia è un giocattolo incredibile.

L’ho usato per un progetto di NLP con dataset giganteschi e la differenza di velocità era imbarazzante per Python. Però, come han detto altri, preparati a sudare sangue quando qualcosa non funziona. La community cresce, ma è ancora piccola rispetto a Python.

Se vuoi un consiglio spassionato: inizia con Python, ottimizza il modello, e poi se davvero hai bisogno di quel 30% in più di velocità, riscrivi i colli di bottiglia in Julia. Mixare i due è la via più furba, soprattutto se non vuoi ritrovarti a bestemmiare alle 3 di notte su un bug oscuro.

P.S.: Se scegli Julia, tieni a portata di mano il caffè forte. Ne avrai bisogno.
Avatar di robustianobianchi
Grazie @raffaellopiras92, il tuo consiglio è oro colato! Mi hai tolto un bel po' di dubbi. L'idea di partire con Python per poi ottimizzare i colli di bottiglia con Julia mi sembra la strategia vincente, soprattutto se il tempo è tiranno. Hai usato Julia su progetti grandi, quindi la tua esperienza pesa. Una domanda: quanto è stato doloroso il passaggio da Python a Julia? Nel senso, hai dovuto riscrivere tutto da zero o c'è modo di integrare i due linguaggi senza troppo casino? Se è troppo complicato, forse resto su Python e mi accontento.
Avatar di tatianaferrara
Il passaggio da Python a Julia non è stato un'impresa da poco, ma ne è valsa la pena. Non ho dovuto riscrivere tutto da zero, perché Julia ha delle ottime librerie che permettono di interfacciarsi con Python, come PyCall.jl. Questo mi ha permesso di richiamare codice Python dentro Julia senza troppi problemi. Certo, ci sono stati dei momenti di frustrazione, soprattutto quando mi sono imbattuta in bug oscuri o incompatibilità varie. Ma la cosa bella è che Julia è progettata per essere composita, quindi puoi riutilizzare parti del tuo codice Python e ottimizzare solo le parti che ti rallentano. In generale, consiglio di iniziare con Python per avere una base solida e poi passare a Julia per le parti critiche. In questo modo, puoi sfruttare il meglio di entrambi i mondi senza impazzire. E se sei fortunata, puoi anche evitare di bestemmiare alle 3 di notte... ma non ci conto troppo!
Avatar di fran35Ca
@tatianaferrara condivido in pieno la tua esperienza. Anch’io ho fatto il passaggio da Python a Julia e, sebbene PyCall.jl sia una manna dal cielo per integrare i due mondi, quei bug oscuri ti fanno imprecare come se stessi giocando a un videogioco impossibile! Però, come dici tu, la forza di Julia sta proprio nella sua composabilità: non devi reinventare la ruota, ma puoi concentrarti solo su quello che davvero serve ottimizzare. Inoltre, mi sento di sottolineare che investire in una base solida con Python è fondamentale, soprattutto se lavori con librerie come scikit-learn o pandas, che sono un pilastro. Julia è una bomba quando vuoi spremere ogni millisecondo, ma senza una solida infrastruttura Python rischi di perderti. Quindi, il tuo consiglio è oro, specie per chi deve bilanciare velocità e tempo. Per chiudere, se vuoi un consiglio spietato: tieni sempre a portata di mano un buon caffè e una playlist energica, perché qualche notte in bianco è inevitabile, ma ne vale la pena!
Avatar di lFerrari923
@fran35Ca, finalmente qualcuno che non si limita al “Julia è la nuova bibbia” ma mette i piedi per terra! Quei bug di PyCall.jl sono davvero un incubo, e chiunque ti dica il contrario probabilmente ha vissuto su un altro pianeta. La tua osservazione sulla composabilità è cruciale: Julia riesce a brillare solo se non provi a fare tutto da zero, ma sfrutti la potenza delle librerie Python. Però, lo dico senza peli sulla lingua, se non hai una solida base di Python rischi di affondare nel caos, specialmente con progetti seri e complessi. Scikit-learn e pandas non sono solo “pilastri”, sono praticamente il cemento armato del data science quotidiano. Quindi il mix è obbligatorio, non solo consigliabile. E sul caffè e playlist? Non è un optional, è una questione di sopravvivenza. Se ti va, prova a integrare anche qualche task di profiling serio con BenchmarkTools.jl, non si sa mai, può farti risparmiare altre notti insonni. E comunque, ribadisco: non scordiamoci mai che la tecnologia è uno strumento, non un fine. Meglio un progetto funzionante a metà con Python che un capolavoro crashante in Julia.

La Tua Risposta

💬

Vuoi partecipare alla discussione?

Accedi o registrati per scrivere la tua risposta e unirti alla conversazione!