Przyszłość C++

0

Witam, to pytanie może okazać się głupie, ale czy c++ ma przyszłość?
Spotkałem się dzisiaj z opinią że żadne większe aplikacje nie są już pisane w c++ i jest to tylko język wykorzystywany na uczelniach. Czyt to prawda? Poznałem C++11 wydaje mi się że na poziomie zaawansowanym i zastanawiam się czy iść w kierunku tego języka czy może dać sobie z nim spokój i zacząć uczyć się C# lub JAVA. Czy więcej projektów jest pisanych w C#/JAVA czy jednak w C++. I jeszcze który język jest lepszy, wydajniejszy i wygodniejszy?
Nie wiedziałem do którego działu to dać więc jeśli źle trafiłem to nie przenoście do kosza tylko do poprawnej kategorii :)

0

Z tego co wiem, większość aplikacji okienkowych jest pisana w C# a gry znowu w C++ Musisz sam podjąć decyzję w jakim kierunku głównie chcesz się rozwijać ale uważam, że nie warto zatrzymywać się na jednym języku.

0

Ja idę raczej w kierunku zabezpieczeń i aplikacji okienkowych.

2

Pewnie mnie zaraz ukamienują specjaliści ale jak aplikacje okienkowe to C#.

4

Tu sie dyskusja na ten temat (i sporo offtopu) nawiązała dość spora:

http://4programmers.net/Forum/C_i_C++/201193-c++11_-_przedluzanie_agonii_czy_zbawienie_dla_c++

Ja idę raczej w kierunku zabezpieczeń i aplikacji okienkowych.

Nie wiem czy C++ to dobry wybór dla typowych aplikacji okienkowych, ale wielu by się ze mną pewnie nie zgodziło. Odnośnie zabezpieczeń nie wiem dokładnie o co chodzi.

wydaje mi się że na poziomie zaawansowanym

Na poziomie zaawansowanym C++ zna mało ludzi, możesz być pewien że Ty nie (ja też nie, więc nie czuj się obrażony).

5

wydaje mi się że na poziomie zaawansowanym

Masz rację, wydaje ci się (spojrzałem na twoje posty, żeby nie skłamać).

Co do tego: "który język jest lepszy" raczej nie ma jednej, właściwej odpowiedzi. Każdy język ma swoje zastosowania i nadaje się do pewnych rzeczy lepiej niż drugi. C++ jeszcze prędko z tego świata nie zejdzie. Jest naprawdę bardzo dużo aplikacji, które rozwijane są w tym języku od lat i nie zanosi się na to, żeby miało się to zmienić. Komitet standaryzacyjny w ciągu ostatnich ~dwóch lat wziął się do pracy i moje zdanie jest takie, że C++ w niedalekiej przyszłości rozkwitnie.
Z drugiej strony mamy gigantyczny rynek aplikacji biznesowych, w których niepodzielnie od kilku lat i przez kolejne lata będzie rządzić Java i .NET. I to raczej w tej dziedzinie prościej będzie znaleźć bardzo dobrze płatną i stabilną pracę.

Jeżeli poświęcisz odpowiednio dużo czasu, pracy i wysiłku w dowolną z tych trzech technologii to nie będziesz musiał się niczego bać.

0

Napisałem zaawansowanym bo wydawało mi się że jak przeczytałem i zrozumiałem książkę C++ Szkoła Programowania wyd.6 Pratta, która opisuje moim zdaniem dużo zaawansowanych zagadnień to i siebie mogę nazwać zaawansowanym, ale rzeczywiście raczej nim nie jestem :)

1
Adam Programmer napisał(a):

Ja idę raczej w kierunku zabezpieczeń i aplikacji okienkowych.

Zabezpieczenia...

C# i inne współczesne trendy nie są zbyt bezpieczne. Są bardziej podatne na inżynierię odwrotną niż C++.

1
Adam Programmer napisał(a):

Napisałem zaawansowanym bo wydawało mi się że jak przeczytałem i zrozumiałem książkę C++ Szkoła Programowania wyd.6 Pratta, która opisuje moim zdaniem dużo zaawansowanych zagadnień to i siebie mogę nazwać zaawansowanym, ale rzeczywiście raczej nim nie jestem :)

Oj, jedna książka to zdecydowanie za mało. Meyers, Josuttis, Alexandrescu - to tak na szybko co mi przychodzi do głowy. Poza tym samo zrozumienie książki to jedno, a wykorzystanie tej teorii w praktyce to druga sprawa...
Co do tematu, to każda technologia jest w czymś lepsza lub gorsza. Systemy wbudowane, gamedev czy "wielkie kombajny", tam zdecydowanie C++ ma swoje zastosowanie. Zgodnie z Twoim ukierunkowaniem na aplikacje okienkowe, rozpatrywałbym bardziej Javę ew. C#

7

Przyszłość C++
Przyszłością C++ jest C++14 a potem C++17 :D

C++ zawsze będzie, bo w jakimś języku te systemy operacyjne i maszyny wirtualne dla Javy i C# trzeba napisać ;-)

A nie ma jakoś na horyzoncie godnego następcy.

0

W takim razie dziękuję wszystkim którzy się wypowiedzieli, zdecydowałem że na razie nauczę się na naprawdę wysokim poziomie c++, a potem w liceum jak mi się będzie chciało to wezmę się za C#. Na razie pod względem składniowym nie spodobał mi się ten język, samo wypisanie czegoś w konsoli jest trudniejsze i dłuższe niż w c++, poza tym wolę mieć wybór czy piszę obiektowo czy strukturalnie, a C# chyba mi tego nie pozostawia. Przyzwyczaiłem się do c++ :D poza tym zauważyłem że konkursy w których biorę udział (np. OIG) i wiele innych wymaga c++/c lub pascala :)

1

Na razie pod względem składniowym nie spodobał mi się ten język

Hmm... poza paroma featureami to skladnia jest bardzo podobna do C/C++.

samo wypisanie czegoś w konsoli jest trudniejsze i dłuższe niż w c++

Ale to chyba problemem nie bedzie przy normalnym pisaniu, sam nie pamietam kiedy cos na konsole wypisywalem.

Anyway, powodzenia!

2

c++... Im wiecej w nim pisze, im wiecej go poznaje tym bardziej jestem przekonany ze nic nie potrafie. Im dluzej w nim pisze tym szybciej chce go zostawic na chwile i nauczyc sie c# by porownac czy ja jestem tak slaby czy jezyk jest tak ogromny. No ale wkoncu robie to co zawsze chcialem, a to mozna robic jedynie w c++ ;) wiec nie tak predko zostawie go na rzecz innej technologii (chyba ze praca bedzie tego wymagac)

Prat to jest podstawa podstaw. Znasz teraz teorie jak mozna tworzyc aplikacje za pomoca obiektow i zapewne z uzyciem stla (ktorego nie znasz, jak znasz to popatrz sobie na posty @rincewind). Teraz stworz cos wiekszego. Jak skonczysz zostaw projekt na 1-2 miesiace, rozwijaj sie i wroc do projektu. Przepiszesz wszystko.

Programowanie to nie tylko jezyk. Nawet jak bedziesz znal c++ najlepiej na swiecie, to nadal mozesz projektowac zle klasy, zaleznosci i znajomosc jezyka nie pomoze Ci utrzymywac zle zaprojektowanego kodu. Dolacz do jakiegos open-source projektu bys sie uczyl dzialania w grupie i narzedzi kontrolowania wersji, archkitektury etc.

Co do przyszlosci. Zgadzam sie z @Azarien poki co w niektorych dziedzinach nie ma nastepcy na c++. c++ szybko nie wymrze. Tylko z tym jezykiem jest taki problem, ze ciezko w nim zaczac teraz pracowac. Bo to dosc stary jezyk i programisci przewaznie maja juz w nim doswiadczenie, dlatego pracodawcy wymagaja bardzo czesto doswiadczenia. Jest duzo wiecej ofert juniorow na jave czy c# czy .NET niz na c++ (a o c to juz w ogole nie wspomne).

Fajny jezyk bo daje duzo mozliwosci. Niefajny, bo daje duzo mozliwosci ;) ale i tak go lubie ;)

1

Ja zauważam raczej trend że c++ ciągle się rozwija ( c++11, c++14 w planach ), do tego biblioteka boost i Qt - nic więcej mi nie trzeba. Wielu z was mówi że c++ do "typowych" aplikacji okienkowych to nienajlepszy pomysł - nie wiem, może macie rację. Dla mnie w tej chwili c++ służy do pisania wszelkiego typu aplikacji z zastosowaniem wyżej wymienionych "dodatków" do tego języka ;) Oby rozwijał się jak najdłużej ;)

Kiedyś na forum znalazłem nawet informacje że c++ został wykorzystany przy projekcie F35 ;d więc pewnie mieli powody żeby wybrać akurat c++...

0

A czy próbowałeś czegoś innego niż C++?

Fajnie, że w C++ i wielu innych językach można robić te same rzeczy, ale wszędzie gdzie nie potrzeba wielkiej wydajności można użyć języków, w których rozwiązanie wypracujemy znacznie szybciej. Jednak w przypadku gdy znamy tylko C++, to w C++ wypracujemy najszybciej najlepsze rozwiązania (na nasze możliwości). Gdy wydajność nie jest priorytetem, to na pewno danej firmie nie będzie honorowo zależało na wykorzystaniu technologii, w których pracownikom będzie dłużej schodziło na realizację dopracowanych rozwiązań. Nie bez powodu używa się języków zarządzanych, gdzie mamy ułatwioną implementację, bogatą bibliotekę standardową, pominięcie zabawy z linkerem (np. w Pythonie wystarczy samo import i nie trzeba podejmować dodatkowych kroków by używać wybranego modułu), garbage collector, który za nas będzie wiedział kiedy zrobić "delete" obiektu. Biblioteki napisane w C++ bardzo dobrze wspomagają języki zarządzane (np. wrapper PyQt czy silnik Panda 3D). Wszystko koegzystuje. Taki silnik, Unity 3D jest środowiskiem uruchomieniowym napisanym w C++ i do niego tylko pisze się skrypty w JavaScript, ewentualnie można się wesprzeć C#'pem.

0

Kiedyś na forum znalazłem nawet informacje że c++ został wykorzystany przy projekcie F35 ;d więc pewnie mieli powody żeby wybrać akurat c++...
Pewnie dostępność programistów (a zarazem ich koszt) w przeciwieństwie do takiej Ady, która podobno jest „właściwym” językiem do takich zastosowań..

PS. oczywiście żaden ze „współczesnych” języków javowo-dotnetowych nie wchodzi w rachubę.

0

Wcześniejszy projekt F22 w większości napisali właśnie przy użyciu Ady...

Spine próbowałem na początku c i javy, c++ wybrałem dlatego że najlepiej mi się w nim po prostu pisze ;) A że jestem ( przynajmniej na obecna chwile ) hobbystą to jeden język "ogólnego przeznaczenia" do wszystkiego co potrzebuje na razie mi wystarcza. Na pewno nie mogę narzekać że z wykorzystaniem c++, boost i Qt "cieżko" pisze mi się aplikacje ;)

0
emacs napisał(a):

Ja zauważam raczej trend że c++ ciągle się rozwija ( c++11, c++14 w planach )

Zdaje sie, ze nie o tym tutaj mowa. Pytanie bylo raczej na temat udzialu w rynku jezyka C++ a to zupelnie inna rzecz. Istnieje zapewne cala masa jezykow, ktore sie rozwijaja a jednoczesnie takich z ktorych prawie nikt w srodowisku produkcyjnym nie korzysta.

C++ oczywiscie ma swoj pewien udzial w rynku, jednak jest to glownie udzial w projektach powstalych lata temu. Rzadko slysze o nowych projektach w C++, co mnie zreszta nie dziwi poniewaz sam bym sie 10 razy zastanowil nad wybraniem C++ w sytuacji kiedy moge wybrac C#, Jave czy nawet jakis jezyk skryptowy.

emacs napisał(a):

Dla mnie w tej chwili c++ służy do pisania wszelkiego typu aplikacji z zastosowaniem wyżej wymienionych "dodatków" do tego języka ;)

Tez kiedys pisalem wszystko w C++. Dzisiaj uwazam, ze to nie byl najlepszy pomysl.

emacs napisał(a):

Na pewno nie mogę narzekać że z wykorzystaniem c++, boost i Qt "cieżko" pisze mi się aplikacje ;)

Wiesz, to jest troche tak, ze jak sobie wybierzesz C# i przyjdzie Ci pracowac w C# komercyjnie, to prawdopodobnie trafisz na projekt w ktorym zostaly uzyte wzglednie nowe technologie - szczegolnie jezeli chodzi o aplikacje desktopowe bo na ASP.NET niektorzy narzekaja. W przypadku C++ moze sie okazac, ze przyjdzie Ci pracowac nie z boostem, nie z Qt a z wynalazkiem o nazwie MFC i innym badziewiem :)

Nie dziwie sie natomiast, ze wybrales sobie C++ do prywatnych projektow. Sam postapilem dokladnie tak samo :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1