C e C++ non gestiscono la memoria in modo sicuro: la Casa Bianca ne sconsiglia l'uso

C e C++ non gestiscono la memoria in modo sicuro: la Casa Bianca ne sconsiglia l'uso

L'ONCD (Office of the National Cyber Director), l'agenzia Usa che si occupa della Cybersicurezza, ha pubblicato un documento in cui sconsiglia ufficialmente l'utilizzo dei linguaggi di programmazione C e C++ per il tipo di gestione della memoria.

di pubblicata il , alle 17:01 nel canale Software
 
37 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
ripsk04 Marzo 2024, 18:49 #11
In effetti alla casa bianca al momento c'è uno dei massimi esperti mondiali di "memory leak"
norfildur04 Marzo 2024, 18:53 #12

I coltelli non gestiscono l'affilatura in modo sicuro: la Casa Bianca ne sconsiglia l

Il DHS (Department of Homeland Security), l'agenzia Usa che si occupa della sicurezza, ha pubblicato un documento in cui sconsiglia ufficialmente l'utilizzo dei coltelli da cucina per il tipo di gestione della lama.
Sembra infatti che, se questa è particolarmente affilata, possa cagionare ferite e addirittura la morte!
Inoltre, se arrugginita, può causare anche malattie potenzialmente letali come il tetano.
L'ufficio, dunque, ne raccomanda l'abbandono in favore di strumenti più sicuri e moderni, quali la spatola in silicone o il cucchiaio in legno.
ZeroSievert04 Marzo 2024, 18:55 #13
Originariamente inviato da: Nui_Mg
Sì ma c'è un motivo se sempre più parti di linux (kernel) stanno venendo riscritte in rust ehh.


Tra le altre cose, mentre Torvalds ha sempre messo il veto sull'uso di C++ nel kernel Linux ( che ricordiamo fino a qualche anno fa essere scritto, mi sembra, unicamente in C), ha accettato l'inclusione di Rust in relativamente poco tempo.
Ratberg04 Marzo 2024, 18:57 #14
Si si, tutto bello... Rust, Go... voglio vedere chi converte miliardi di righe di codice in C/C++ usando poi i nuovi linguaggi. Voglio vedere soprattutto chi caccia i soldi per un lavoro del genere.

E comunque anche Rust ha i suoi problemini a detta di qualche autorevole critico (di parte si, ma autorevole):

Rust Safety Is Not Superior To C++, Bjarne Stroustrup Says
Ratberg04 Marzo 2024, 18:59 #15
Originariamente inviato da: ZeroSievert
Tra le altre cose, mentre Torvalds ha sempre messo il veto sull'uso di C++ nel kernel Linux ( che ricordiamo fino a qualche anno fa essere scritto, mi sembra, unicamente in C), ha accettato l'inclusione di Rust in relativamente poco tempo.


Anche su sta cosa la comunità dietro Linux sta discutendo:

https://www.phoronix.com/news/CPP-L...el-2024-Discuss
ZeroSievert04 Marzo 2024, 19:48 #16
Originariamente inviato da: Ratberg
[...]
E comunque anche Rust ha i suoi problemini a detta di qualche autorevole critico (di parte si, ma autorevole):

Rust Safety Is Not Superior To C++, Bjarne Stroustrup Says


Ogni scarrafone è bell’ ‘a mamma soja


Originariamente inviato da: Ratberg
Anche su sta cosa la comunità dietro Linux sta discutendo:

https://www.phoronix.com/news/CPP-L...el-2024-Discuss


Grazie del link. C'e' da dire che, da quel che capisco, C++ diventerebbe 'sanificato' a partire dalla versione 20. Ora, non so se serve conoscere l'intero standard o basta un sottoinsieme. Resta il fatto che IMHO i programmatori che sono esperti in C++20 sono ancora un gruppo ristretto. Cosi' a naso e' un modo di programmare C++ molto diverso da quello 'classico'.

EDIT:

E come detto da Nui sotto, mentre Rust e' già nel kernel, su c++ siamo ancora al livello di proposta senza che il 'gran capo' abbia detto la sua.

EDIT 2:

A me sembra che una parte consistente dei recenti standard di C++, a partire da C++11, sia stata fatta per inseguire le novita' introdotte da altri linguaggi di programmazione. Basti vedere quanto sia diventato 'funzionale' C++ per rendersene conto. Prima le lambda e std::function, poi std::optional e std::variant, infine i concepts.. e questo solo per fare un piccolissimo numero di esempi. Sicuramente in molti casi adesso usare C++ e' piu' piacevole di un tempo.

E.g. sto usando nanobind per scrivere un binding per python di una libreria di lavoro, piena zeppa di codice legacy, e [U]adoro[/U] le magie che si possono fare adesso con il typesystem di C++ gia' da C++17.

Resta il fatto che C++, anche se maturo e con un sacco di tool, rimane un linguaggio che per certi aspetti e' costretto a portarsi dietro un bagaglio tecnico pesante e sconta il fatto di avere feature importanti incluse solo in un secondo momento. Mentre in linguaggi piu' recenti tali features sono state pensate [U]insieme[/U] al linguaggio e a volte il loro uso e' implicito. Ergo ho i miei dubbi che comunque venga incluso nel kernel linux a questo punto.
F1r3st0rm04 Marzo 2024, 19:58 #17
ci sono ancora codici scritti in COBOL o FORTRAN che non riesconoa migrare perchè nessuno li consoce abbastnza bene figuraimoci migrare tutto lo scritto in C e C++ in altra roba...
Nui_Mg04 Marzo 2024, 20:15 #18
Originariamente inviato da: Ratberg
Anche su sta cosa la comunità dietro Linux sta discutendo:

https://www.phoronix.com/news/CPP-L...el-2024-Discuss

Stanno discutendo su un subset che spazia da C++14 a C++20, mentre pezzi di rust sono già inseriti nei kernel attuali e questo per me ha il suo ben senso anche in ottica futura di mantenimento (e ci sono già degli OS scritti interamente in rust, anche quelli con microkernel), così come ha per esempio il suo senso Go (compilato e con micro-threads) per sostituire il backend dei siti web governato da linguaggi interpretati e spesso avidi di risorse.
Ataru22404 Marzo 2024, 20:36 #19
Non sanno fare le cose e danno la colpa al linguaggio...

Che imparino a gestire la memoria invece di accampare scuse scaricando la colpa su C/C++
illbegood04 Marzo 2024, 20:58 #20
Microsoft ha abbandonato C++? Da quando? A me risulta che buona parte del loro software commerciale e non sia scritto in C++, ma potrebbero essere cambiate le cose... A parte ciò, mi sembra una semplificazione che ha poco se non addirittura nessun senso; senza garbage collector è possibile gestire la memoria anche "meglio" del garbage collector, tutto sta all'abilità del programmatore e anche a n altri fattori...boh mi sembra una semplificazione che lascia il tempo che trova.

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^