Jak powszechnie wiadomo, język programowania C++ jest najprawdopodobniej największy pod względem objętości z języków programowania. Nawet programiści, którzy piszą w nim od dziesiątek lat, nie mogą się pochwalić, że znają go w całości. W związku z tym komitet standaryzacyjny C++ podjął trudną decyzję: aby język pozostał konkurencyjny w obliczu pojawiających się nowych języków programowania, takich jak Rust, należy usunąć z niego wszystkie legasy funkcje, napisane nie wiadomo przez jakich goblinów w zapomnianych latach osiemdziesiątych. W tym pomogą dobrze znani na tym forum deweloperzy Gnome, którzy kiedyś usunęli wszystkie zbędne funkcje ze swojego środowiska graficznego, tym samym czyniąc je nie do pokonania. Będą usuwać wszystkie funkcje, aż usuną wszystkie „plusy” i dojdą do C, z którego C++ się wywodzi, ale na tym się nie zatrzymają, pozostawią z języka tylko minimalne C.
W szczególności:
- szablony zostaną usunięte i zastąpione opcjonalną dynamiczną typizacją (spadek wydajności nie będzie istotny dla nowoczesnych komputerów)
- wyjątki zostaną zastąpione kodami błędów w stylu gopherów if err != nil
- konieczność stosowania systemów budowy zostanie usunięta, zamiast tego będzie menedżer pakietów w stylu composera dla PHP
- wielokrotne dziedziczenie zostanie usunięte wraz z wolnymi funkcjami, teraz wszystko będzie obiektem, a wszystkie obiekty będą dziedziczyć z klasy bazowej Object
- całkowite usunięcie undefined behavior nie jest możliwe z powodu syndromu sztokholmskiego u deweloperów, dlatego wszystkie UB będą automatycznie owijać się w test jednostkowy, wykonywany 10 razy, a programista zostanie poinformowany, który dokładnie zachowanie wybrał kompilator w większości przypadków
Założyciel języka Bjarne Stroustrup wyraził sceptycyzm wobec tych zmian, argumentując, że deweloperzy Gnome nie korzystają ani z C++, ani z Gnome.
Źródło: linux.org.ru
