După cum bine se știe, limbajul de programare C++ este, probabil, cel mai vast dintre limbajele de programare. Chiar și programatorii care scriu în el de zeci de ani nu pot pretinde că îl cunosc complet. Din acest motiv, comitetul de standardizare C++ a luat o decizie dificilă: pentru ca limbajul să rămână competitiv în fața noilor limbaje emergente, cum ar fi Rust, trebuie să elimine toate funcțiile legate de moștenire, scrise de cine știe ce indivizi în anii '80. De asta se vor ocupa bine cunoscuți dezvoltatori de la Gnome, care au eliminat în trecut toate funcțiile inutile din interfața lor desktop, făcând-o astfel incontestabilă. Vor elimina toate funcțiile până nu vor rămâne decât „plusurile” și vor ajunge la C, din care a evoluat C++, dar nu se vor opri aici; vor păstra doar un C minim.
În special:
- modelele vor fi eliminate și înlocuite cu tipizarea dinamică opțională (scăderea performanței nu va fi semnificativă pentru computerele moderne)
- excepțiile vor fi înlocuite cu coduri de eroare în stilul golang, if err != nil
- va fi eliminată necesitatea sistemelor de build, în locul acestora va exista un manager de pachete în stilul composer pentru PHP
- moștenirea multiplă va fi eliminată împreună cu funcțiile libere, acum totul va fi un obiect, iar toate obiectele vor moșteni din clasa de bază Object
- nu se poate elimina complet comportamentul nedefinit din cauza sindromului Stockholm al dezvoltatorilor, astfel că toate UB vor fi automat înfășurate într-un test unitar, executat de 10 ori, iar programatorului i se va comunica ce comportament a ales compilatorul în cele mai multe cazuri
Fondatorul limbajului, Bjarne Stroustrup, s-a exprimat sceptic cu privire la aceste schimbări, argumentând că dezvoltatorii de la Gnome nu folosesc nici C++, nici Gnome.
Sursa: linux.org.ru
