Erlang, Go e Rust affermano tutti in un modo o nell'altro di supportare la programmazione concorrente con "thread" / coroutine economici. La FAQ di Go afferma:
È pratico creare centinaia di migliaia di goroutine nello stesso spazio degli indirizzi.
Il Tutorial Rust dice:
Poiché le attività sono significativamente più economiche da creare rispetto ai thread tradizionali, Rust può creare centinaia di migliaia di attività simultanee su un tipico sistema a 32 bit.
La documentazione di Erlang dice:
La dimensione heap iniziale predefinita di 233 parole è piuttosto conservativa al fine di supportare i sistemi Erlang con centinaia di migliaia o addirittura milioni di processi.
La mia domanda: che tipo di applicazione richiede così tanti thread di esecuzione simultanei? Solo i server Web più attivi ricevono anche migliaia di visitatori simultanei. Applicazioni di tipo capo-lavoratore / invio di lavoro che ho scritto restituiscono risultati decrescenti quando il numero di thread / processi è molto maggiore del numero di core fisici. Suppongo che potrebbe avere senso per le applicazioni numeriche, ma in realtà molte persone delegano il parallelismo a librerie di terzi scritte in Fortran / C / C ++, non in questi linguaggi di nuova generazione.