Zwolennicy C++ często argumentują, że w języku tym można bardzo, bardzo wiele. Kluczowe jest tu właśnie słówko ‘można’. Powiedziałbym mianowicie, że swego rodzaju potencjalność jest jego istotną cechą…
O co dokładnie chodzi? Najlepiej chyba mówią o tym przykłady – takie jak te poniższe:
finally
w blokach try
. W większości przypadków można jednak obejść się bez niej, stosując technikę znaną jako RAII (Resource Acquistion Is Initializon– pozyskanie zasobu inicjalizuje zmienną).Można więc to i tamto; powyższa lista z pewnością nie jest kompletna. Dawniej takie możliwości doskonale świadczyły o C++ jako o języku niebywale elastycznym. Robiły też dobrze dla jego efektywności oraz wstecznej kompatybilności z C. Krótko mówiąc, były niewątpliwymi zaletami.
Teraz jednak wydają się być listą braków, a w najlepszym przypadku niepodjętych, a koniecznych decyzji projektowych. Niezbędnych głównie dlatego, że twórcy nowszych języków nie wahali się ich podjąć. Dzięki temu w wielu przypadkach oszczędzili pracy i trudnych wyborów programistom, którzy z tych języków korzystają.
A programistom C++ wciąż pozostają możliwości… Niestety, aplikacji nie buduje się z kodu, który można by napisać, lecz z kodu już napisanego. Dlatego korzystanie z owych możliwości zamienia się często w uzupełnianie braków. I realizujemy wtedy stare powiedzenie: Jeśli programista chce mieć coś napisane, powinien napisać to sobie sam :P
No bo co tu dużo nie mówić, ‘++’ jest dużym krokiem naprzód w stosunku do C, lecz krok ten można zawsze ‘odświeżyć’ i tego właśnie brakuje. Tak więc duże nadzieje w nadejściu tego powiewu leżą w ~0x i mam nadzieję, że nie przeminie on za szybko z wiatrem =P
Przydaloby sie kilka nowych i ciekawych rzeczy, bo za kilka lub kilkanascie lat programisci beda uwazac C++ za jezyk dla ascetów :)
@Xion: Trafna uwaga z tymi możliwościami ^^
Autor języka, sam mówił, że dokładnie tak był zaprojektowany język jak mówisz : nic nie narzucać, za to ułatwić tworzenie samemu. Na razie, jedynym rozsądnym następcą wydaje mi się D, ale jego biedulka nikt nie wspiera, więc standardem się nie stanie zapewne. A szkoda.
PS. Skoro te nowe języki są takie fajne i crazy to czemu dalej standardem jest C++? :)
Aha i jeszcze pytanko : mógłbyś doprecyzować jakie języki wg Ciebie to te ‘nowe języki’?
C#, Java, w pewnym stopniu Delphi – to te najpopularniejsze, nie licząc np. skryptowych pokroju Pythona, bo jakby inna kategoria wagowa.
“PS. Skoro te nowe języki są takie fajne i crazy to czemu dalej standardem jest C++? :)”
Na pewno? ;-)
Heh, widzę, że nie jestem sam w moim narzekaniu na C++ ;)
Nie można jednak zapominać, że są sytuacje w których użycie maszyny wirtualnej nie wchodzi w grę, i wtedy o C# i Java można tylko pomarzyć. Cóż, cała nadzieja w D.
@Xion: Nie napisałeś jednego. W necie JUŻ są biblioteki obchodzące te niedogodności, więc nikt nie musi ich pisać. C++ miał z założenia być językiem rozszerzalnym przez biblioteki. STL+BOOST+wxWidgets+GMP załatwia większość problemów. Jak ktoś ma sensowny system operacyjny to dowolną zainstaluje 2 poleceniami, więc nie jest to uciążliwe.
@lmmilewski: Problem jest w tym, że nie ma żadnego standardu w wypadku bibliotek (z wyjątkiem tych wchodzących w skład C++). Chcę dajmy na to mieć delegaty, to oczywiście interfejs każdej biblioteki się różni. Pomijam sytuacje, w których, z różnych przyczyn nie ma możliwości skorzystania z bibliotek.
Poza tym biblioteka = dodatkowy kod i/lub zmniejszenie wydajności (poprzez chociażby dynamiczne linkowanie).
Oczywiście dla twórców standardu tak jest łatwiej “my tu damy im tylko podstawowe mechanizmy, jak będą chcieli więcej to sobie napiszą biblioteki”, ale język programowania ma ułatwiać życie. C++ uchodzi za język przenośny, zmuszanie do używania biblioteki temu przeczy.
Xion: Czy z GoogleTrends nie jest tak ze te statystyki sa tworzone na podstawie slowek wpisywanych w google? Mysle ze Java ma tam pierwsze miejsce tylko dlatego ze… sprawia wiele klopotow i ludzie co kroczek musza zagladac do dokumentacji, wlasnie przez google. :)
Java i problemy… hahaha Od kiedy zostawiłem C++ i poznałem Javę moje życie stało się piękniejsze i częściej się wysypiam ;P
Ja myślę, że po prostu ludzie wpisują Java chcąc wyszukać GRY JAVA na komórkę ;P