Che linguaggio imparare nel 2024?

Sto valutando se imparare un nuovo linguaggio venendo da JS/TS e ho fatto qualche valutazione:

  • Python: relativamente semplice, già un po’ lo mastico, molto usato nel campo ML, di contro il fatto che è solo rilevante in quel campo e dovrei quindi imparare anche ML che conosco praticamente zero.
  • Rust: molto trendy e apprezzato, anche se la curva di apprendimento non è proprio semplice. È forte su tutto quel che è system programming, cosa che però generalmente non mi tocca, ma può essere usato per altro.
  • Go: probabilmente forte in ambito networking/kubernetes, non troppo difficile da imparare, però limitato negli usi alla fine mi sembra la crescita si sia ormai appiattita.
  • Swift: forte nell ecosistema Apple ma poco rilevante al di fuori, però è abbastanza vicino a quel che faccio (frontend) potrei imparare SwiftUI. Di contro Xcode mi fa un po’ cagare.
  • Kotlin: dovrebbe essere un naturale replacement per Java, mondo di cui ho poca simpatia quindi lo escluderei.

Escluderei linguaggi tipo Ruby, .NET , Java, C, C++, mi sembrano poco appealing in confronto a quelli citati sopra e/o “vecchi”.

Ci sono altri linguaggi “esotici” che magari sulla carta sembrano interessanti come Zig o Elixir ma sono estremamente di nicchia da non giustificare lo sforzo.

Che ne pensate? Al momento mi sembra sia una scelta tra Rust, Swift o Python.

Swift mi può aiutare nel breve/medio periodo lavorativamente parlando, Rust lo vedo più come un investimento di lungo periodo, idem Python.

3 Likes

python rilevante solo nel machine learning?
Non mi pare, ormai te lo ritrovi ovunque

Io partirei da cosa ti interessa approfondire come “ambito” e poi vedi quale linguaggio promette meglio.

1 Like

Impara il cinese

2 Likes

.NET è tutt’altro che vecchio, super sul pezzo, multipurpose, cross-platform, molto performante, open source con una community immensa

4 Likes

Ero entrato per scrivere: “impara il cinese”
Maledetto :mad:

Beh potevi specificare magari quale dialetto cinese in particolare :sisi:

concordo con @Crius

python è sicuramente il più semplice, mi è rimasta impressa una citazione di Donald Knuth: “It was nice to learn Python; a nice afternoon” e niente di più vero :asd: non me ne vogliano gli afecionados di python ma spesso la sensazione che ho avuto lavorandoci 3/4 anni è che è quasi come scrivere pseudocodice. sicuramente è un attrezzo utile da mettere nella propria cassetta degli attrezzi che puoi avere con basso impegno.

rust fa sicuramente scena sul cv, e ho un paio di colleghi che lo stanno imparando nel tempo libero e si stanno divertendo un sacco (roba prettamente backend o comunque di più basso livello)

swift meh, anche io ho un grosso problema con xcode e non mi ci son mai messo seriamente anche perché di fare app non me ne fotte un cazzo :asd:

Il cinese di Prato :ubersisi:

Si hai ragione alla fine si tratta di capire che ambito approfondire e non ho un idea ben precisa probabilmente per quello non so decidermi…

Overall forse l’ambito che mi potrebbe appassionare (dico potrebbe perche’ fin che non provo non posso sapere) sarebbe AR/VR con Swift+SwiftUI.

Rust e’ affascinante da un punto di vista nel senso che da un paio d’anni molti tool che si usano nello sviluppo web sono stati riscritti in Rust per aumentare le performance e mi permetterebbe quindi di poter contribuire a certi progetti o accedere a determinate situazioni in futuro dove e’ richiesto.

L’ambito ML con Python lo vedo piu’ per chi fa ricerca e quello e’ un ambito che non mi interessa proprio e sarei negato quindi probabilmente da escludere.

Rimane Rust e Swift …

Rust è/sarà la prossima big thing quindi ti direi di puntare su quello, Python è sempre utile ovunque.

A R non ci hai proprio pensato?

R è molto specifico per analisi di dati, se l’intenzione di fare AR o VR non serve a una ceppa
e tra swift e rust allora rust, per non rimanere confinati all’interno di un ecosistema ma essere più cross

comunque difficile (e inutile) partire da zero, ovviamente ci si appoggia a librerie e framework già esistenti e consolidati, e in quel mondo comunque dominano senza rivali c++, c# e javamerda

Si R non e’ proprio campi in cui ho interesse.

Rust sembra la scelta piu saggia.

Rust l’ho usato per un progettino personale per imparare e mi è piaciuto molto. Lo userei spesso se potessi.
Se uno non ha molta dimestichezza con la gestione della memoria, heap, stack, etc. la curva di apprendimento potrebbe essere molto ripida. Una volta capito il concetto di borrowing, diventa secondo me tutto molto più semplice.

Esatto non sara’ facile, l’ultima volta che ho dovuto gestire la memoria era a scuola con C :asd:

Dipende dall’ambito in cui intendi lavorare come sempre, ad esempio io lavorando quasi full time su progetti web-based, mi tengo allineato su golang/typescript/python/php (e per fortuna non ho ancora incrociato, e cerco di non farlo, ambienti microsoft, dove con c# su .NET fai tutto, non solo web, ma devo dire che oggigiorno puoi lavorare tranquillamente in C# anche su ambienti linux).

Rust/Zig hanno ambiti molto specifici, come col C++, quindi ripeto, di che ambiti stiamo parlando?

BTW io ho il libro che spiega Go sul comodino da ormai un anno.
L’ho iniziato a leggere, ho detto in azienda che ne ho le fondamenta chiare, visto che siamo pochi a conoscerlo ho pensato che almeno facesse piacere.

Zero progetti che lo richiedono in un anno :dunnasd:

Io invece sono sul go da 3 anni, in Italia siamo pochi, ma ad esempio in questo periodo 2 progetti grossi su cui sto lavorando che sono in Go, e se avessi altri programmatori da inserire sarebbe una manna

Nessuno nello specifico, come ho gia’ detto e’ piu una questione di imparare qualcosa di nuovo e capire se posso unire l’utile al dilettevole.

Stessa mia sensazione, ci sono progetti in giro ma poca roba nel mio ambito e sembra aver raggiunto un po il picco della sua popolarita’.