Google Launches Carbon, an Experimental Replacement for C++

Banuiala mea este ca aveau o problema in C++ care nu ar fi putut rezolvata in C++(la nivel de limbaj) datorita BC, asa ca au facut alt limbaj interop unde nu le mai pasa de BC. Daca cineva are aceleasi probleme…

Nu sunt deloc nerealiste tinand cont ca ani la rand a fost ‘cel mai dorit’, ‘cel mai iubit’, etc.

Nu are deloc evolutia unui astfel de limbaj.

ai uitat faimosul Why Discord is switching from Go to Rust | by Jesse Howarth | Discord Blog | Medium

Da, vor niște schimbări majore pe care C++ nu le acceptă pentru că ar fi ABI-break.

Sunt nerealiste, de ce ai avea pretenția de la un limbaj să fie folosit ca să rescrii un kernel cu el?

Nu stiu de ce ai avea pretentia aia.
Dar nu stiu de ce ai avea pretentia ca rust a devenit nu-stiu-ce doar pentru ca apare in niste stiri.

Dacă era vorba despre adopția Rust, Rust a fost încă de la început adoptat în cod real-world, așa a și început limbajul:

Sunt aproape 9000 de fișiere Rust prin Firefox. Firefox e exemplul standard, dar se folosește Rust în mai multe proiecte. Eu nici nu sunt vreun fan Rust dar limbajul e folosit, evident nu la nivelul C/C++ dar e și mult mai tânăr.

Si perl e folosit. Doar zic.

Sa nu mai zic de COBOL.

Limbaje care nu au nicio treabă cu nișele pe care vrea să fie folosit Rust. Your point being?

Ca ‘folosirea’ nu e un argument.
Oricum, rust e extrem de putin folosit fata de cat de hyped este si cati fani are.
Cel mai iubit, cel mai dorit… cel mai folosit… wait…

Nu mai înțeleg, tu ai zis că nu e folosit, eu am venit cu un exemplu din multe, argument pentru ce?

Legat de fani, nu văd de ce ar conta câți fani are raportat la cât de folosit e, doar nu se va face alegerea pe bază de sentimente.

Până la urmă care era argumentul, că Rust nu o să înlocuiască C++ pentru că nu suportă moștenire? Aici depinde ce înseamnă „înlocuiască“. Dacă e vorba de proiecte deja existente normal că nu va înlocui nimic, nu rescrie nimeni proiecte imense doar de drag. Dar dacă e vorba de ce se alege pentru proiecte noi, argumentul cu moștenirea e foarte slab. Comparația cu Linux nu văd de ce e relevantă, C e un limbaj mult mai simplu decât Rust, evident că se va ajunge la soluții nu chiar ideale. Rust are și lucruri care nu sunt în C++.

Faptul că nu se vrea feature creep în Rust e foarte bine, nu trebuie să adopte orice feature, altfel se ajunge la un alt C++, limbaj prea complicat.

1 Like

Sau poate pt a minimiza volumul ulterior de munca legat de memory leaks.

1 Like

În C++ există soluții, pe lângă smart pointers se pot folosi sanitizers, nu știu dacă merită o rescriere doar pentru atât.

‘Un exemplu’. E cherry picking si un strawman pe-acolo, ilogica multiplicata. Nu am zis simplu ca ‘nu e folosit’ (in sensul ca absolut deloc), ci ca nu e folosit precum ar trebui conform hypeului, marelui ‘love’, dorintei arzatoare, etc.

Asa ca ciresele culese sunt absolut irelevante, mai ales ca-s mai putin cirese deseori decat zic stirile. De exemplu, primul exemplu dat (sic), cu kernelul:
torvalds/linux: Linux kernel source tree (github.com)
C: 98.4%
Assembly: 0.9%
Shell: 0.3%
python: 0.1%
perl: 0.1%

Rust e pe nicaieri si ia bataie la fund de la susnumitul perl.

Și folositul kernelului Linux ca argument nu e cherry picking? Sau extremele de genul:

Nici de-aia, nici de-aia, pana se ajunge la multimea vida. Cel mai tare limbaj de programare, ala care nu-ti permite nimic. Nu poti implementa cu buguri in el. Perfect memory safety, de fapt orice program necesita zero memorie si se executa in zero picosecunde.

Pare că ai găsit un exemplu pentru care Rust e inferior C++ și acum faptul că Linux kernel nu e rescris în Rust înseamnă că Rust e doar hype și nimic de el. Mă așteptam la argumente bazate pe limbaj în sine, nu pe sentimente, că nu e folosit pe cât de iubit e. De ce mi-ar păsa de câți fani are?

Ia vezi cine a venit cu ‘argumentul’ cu kernelul.
Da, e ilogic.

Ti se pare, nu e un exemplu, e o extrapolare pentru aia care cred ca ideea ‘geniala’ (aplicata de altfel si in alte limbaje) de a reduce din posibilitatile unui limbaj il fac mai bun.
Da, gluma cu multimea vida o fi mai greu de priceput, dar poate ca daca mentionam limbaje ‘pure’ (in sensul paradigmei) poate unii chiar si intelegeau.

Apropo, programeaza careva intr-un limbaj logic pur? Eu sunt un mare fan, apropo, as putea fi bagat in statistici, desi n-as implementa un proiect ‘pe bune’ in asa ceva.

Nu eu. Eu am dat doar exemplul cu Firefox pe lângă ce se dăduse până acum, nu e ăla singurul loc în care se folosește Rust real-world.

Apropo, programeaza careva intr-un limbaj logic pur?

Eu nu, îmi place paradigma dar nu aș folosi ceva „pur” logic. Nu intră la logic programming, dar mie îmi plac Haskell/OCaml foarte mult, și există use-cases reale și pentru ele, chiar și pentru Haskell, chiar dacă e „pur” funcțional.

1 Like

Nu tu, dar nici eu. Eu doar am raspuns pseudo-argumentului.

Si mie imi plac limbajele pur functionale ‘pe hartie’. Pentru proiecte-jucarii merg, ‘exista’ user-cases dar exista un motiv pentru care nu domina (de fapt, mai multe).

Am mai dat exemplul lispului care necesita sub 10 instructiuni, programele nu devin mai simple din cauza aia, dimpotriva.
Iar lispurile pe bune ajung extinse pana au inclusiv suport obiectual, sa nu mai spunem de faptul ca permit si ‘side-effects’ repejor in ‘lumea reala’.

Din ceva motiv, cele sub 10 instructini nu ajung pentru ‘real user-cases’ :slight_smile:

Stii ce-o sa se intample cu rust cand (daca) o sa fie adoptat la scara mai larga? Vezi ce s-a intamplat cu alte limbaje.

Da, asta vom vedea peste niște ani. Din nou, nu-mi place Rust în vreun mod aparte.

Legat de features din limbaje, cred că sunt și niște diferențe aici. De exemplu Haskell și OCaml chiar au foarte multe features în ele, dar punctul cheie e că se pot compune frumos, natural. În alte limbaje cu multe features lucrurile nu se compun așa frumos. Rust cumva mi se pare la mijloc. E un improvement acolo (cu traits, enums/ADTs, pattern matching) dar în același timp nu are un type system la fel de puternic precum Haskell/OCaml ca să poți compune toate features frumos. Plus că Rust are async acum, care mi se pare că complică limbajul enorm, și async chiar nu se compune frumos deloc.

1 Like

Merg si pentru proiecte non jucarii:

Amazon uses Erlang to implement SimpleDB, providing database services as a part of the Amazon Elastic Compute Cloud (EC2).

• Yahoo! uses it in its social bookmarking service, Delicious, which has more than 5 million users and 150 million bookmarked URLs.

• Facebook uses Erlang to power the backend of its chat service, handling more than 100 million active users.

• WhatsApp uses Erlang to run messaging servers, achieving up to 2 million connected users per server.

• T-Mobile uses Erlang in its SMS and authentication systems.

• Motorola is using Erlang in call processing products in the public-safety industry.

• Ericsson uses Erlang in its support nodes, used in GPRS and 3G mobile networks worldwide.