Język C++ powstał w roku 1985 roku czyli aż 37 lat temu. Czyni go to jednym z najbardziej leciwych komercyjnych języków programowania. Mimo swego wieku jest on jednak nieprzerwanie wykorzystywany w wielu firmach i wykładany na uczelniach. Jak wygląda stan C++’a w roku 2022 i czy nadal jest on wart Twojej uwagi? W dzisiejszym wpisie przyjrzymy mu się bliżej, wypunktujemy jego wady i zalety oraz omówimy jego wykorzystanie w branży IT.
Charakterystyka C++
Zacznijmy od scharakteryzowania C++’a. Zdajemy sobie sprawę, że nie jest to najpopularniejszy język w dzisiejszych czasach i nie jest tak bez przyczyny. Świat rozwoju oprogramowania idzie do przodu i zrozumiałym jest, że co kilka lat powstają coraz nowsze języki. Człowiek jest z natury leniwy i jeżeli interpreter lub kompilator danego języka robi coś za niego, to będzie chętniej patrzył na właśnie ten język.
Zalety C++
Wbrew pozorom C++ wcale nie stoi jednak w miejscu i też regularnie się rozwija. Od 2011, dokładnie co 3 lata, wydawany jest nowy standard tego języka wprowadzający kolejne usprawnienia i dodający nowe funkcje. C++ jest również standaryzowany przez komitet ISO i ma wielu producentów kompilatorów i stoi wiele firm jednocześnie. Sprawia to, że jest on dużo bardziej odporny na ewentualnie turbulencje w danej firmie. Niewątpliwym atutem C++’a jest jego ręczne zarządzanie pamięcią, które sprawia, że programy w nim napisane są niezwykle wydajne. Trzeba być natomiast świadomym dwóch rzeczy:
Po pierwsze – programować wydajny kod trzeba umieć. O ile wprawny programista poradzi sobie lepiej bez garbage collectora i będzie w stanie napisać lepiej zoptymalizowany kod, o tyle ktoś, kto nie programuje długo, nie wyniesie z tego korzyści.
Po drugie – współczesny sprzęt jest z roku na rok coraz wydajniejszy. O ile nie tworzymy oprogramowania na systemy wbudowane, nie musimy oszczędzać pamięci tak bardzo jak kiedyś.
Ważną zaletą języka C++ jest jego kompatybilność z językiem C. Oznacza to, że wszystkie biblioteki napisane dla języka C można wykorzystywać w programach pisanych w C++. Mowa tu również o wszelkich bibliotekach systemów operacyjnych, które również są napisane w C
Wady C++
Główną wadą C++ jest jego poziom skomplikowania. Często wytykany jest mu np. brak garbage collectora. Istnieją co prawda smart pointery, oraz system rodzicielstwa (Qt), które zajmują się zarządzaniem pamięcią za nas, jednak wciąż trzeba z nich umyślnie skorzystać i wywołać je w naszym kodzie. Dla niektórych wadą mogą być również wskaźniki i referencje, o które w językach wyższego poziomu nie trzeba się przejmować.
Gdzie wykorzystuje się C++
Jak wspomnieliśmy wcześniej, język C++ jest naturalnym językiem dla systemów operacyjnych, więc z pewnością znajdzie zastosowanie wszędzie tam gdzie trzeba niskopoziomowo porozumieć się z Windowsem czy Linuxem oraz w przypadku programowania sterowników sprzętowych. Wydajność C++’a, o ile na komputerach osobistych coraz częściej się o niej zapomina, jest niezwykle ceniona w przypadku programowania urządzeń wbudowanych, mających ograniczone zasoby pamięci podręcznej. Również z uwagi na wydajność C++ jest powszechnie używany przy produkcji gier AAA. Jest on bezkonkurencyjny jeżeli chodzi o optymalizacje.
Czy warto uczyć się C++
Naszym zdaniem jak najbardziej warto. Nie będziemy jednak próbować przekonać Cię, że ten język jest w jakikolwiek sposób lepszy od innych. Każdy z wykorzystywanych komercyjnie języków ma swoje mocne i słabe strony oraz swoje zastosowania. Projekty pisane w C++ są natomiast bardzo zróżnicowane. Dzięki temu praca nie jest tak monotonna jak w językach typowo webowych albo językach typowo bazodanowych. Pracy w C++ jest pod dostatkiem, a wynagrodzenia są bardzo dobre. Czy warto wybrać C++ jako pierwszy język programowania? Jak najbardziej można. Jednak po pierwsze ma on dość wysoki próg wejścia, a po drugie wiedza odnośnie zarządzania pamięcią rzadko przydaje się w przypadku języków wyższego poziomu.
Na koniec
Podsumowując, C++ mimo swego skomplikowania i wielu lat na karku jest wciąż chętnie wykorzystywany. Programy w nim napisane są szybsze i pochłaniają mniej pamięci operacyjnej niż programy napisane w językach wysokiego poziomu, a dzięki nowym standardom wciąż odpowiada na nowe potrzeby programistów. Jest nieocenionym narzędziem przy pisaniu dobrze zoptymalizowanych gier. wszelkiego rodzaju oprogramowania desktopowego oraz programów na systemy wbudowane
Kaleron
says:Tak, nie trzeba przejmować się wydajnością ani optymalizacją kodu. W ogóle nie trzeba rozumieć działania sprzętu, żeby zostać programistą. Wystarczy, że każemy użytkownikowi kupić wydajniejszy sprzęt. Kiedyś dokładnie te same zadania często mogliśmy wykonywać równie sprawnie, jeśli nie sprawniej na daleko słabszym sprzęcie. Fakt, że interfejsy były brzydsze i toporne. I strony na modemach 33 kb/s też często otwierały się szybciej. Ale dopóki mamy taki deficyt programistów, że nawet orangutan po trzymiesięcznym kursie znajduje pracę w zawodzie, lepiej nie będzie. Wszak każdego specjalistę można zastąpić skończoną liczbą studentów…
Piechocki
says:Taka forma kapitalizmu gdzie zysk jest ponad dobro człowieka hamuje rozwój techniki nauki itd a wszystko jest podporządkowane maksymalizacji zysków i wymuszaniu na klientach kupowania coraz szybszych, pojemniejszych i droższych komputerów, oprogramowania itd.
Łukasz Kosiński
says:Cześć Kaleron, tak tylko dla ścisłości napiszę, że się zgadzam z Tobą. Nie miałem na myśli, że nie należy przejmować się wydajnością ani optymalizacją. Po prostu w większości przypadków obecnie nad optymalizacją myśli się dopiero jak pojawiają się problemy. Oczywiście błędnie, ale nic dziwnego skoro klient czeka na projekt ¯\_(ツ)_/¯