Gdzie C++ jest niezastąpiony?

Odpowiedz Nowy wątek
2018-01-01 18:48
Bialy mleczarz
1

Uzywam innych jezykow do pracy. Juz wiele razy slyszalem od ludzi nie zwiazanych z C++, ze umiera itp. itd. W co osobiscie szczerze watpie. Poza tym patrzac chwile na CppCon i, ze 'modern' c++ to duzy postep do w ogole nie wydaje sie by C++ sie gdzies wybieral. ( a przeciwko Cpp stawiaja Rust )

Wiec gdzie Waszym zdaniem C++ jest nie zastapiony?

  • gry AAA?
  • HFT?
  • 'backendy' dla innych jezykow VM itp. np. node.js?
  • okolo systemowo?
  • wszedzie tam gdzie najwazniejszy jest performance?
  • IoT?
  • embedded?
  • i tak juz w tym tyle kodu powstalo, ze nie da sieuciec? ;)

Pozostało 580 znaków

2018-01-01 19:22
5

Psychologicznie zjawisko "X już umiera" (za X podstaw sobie dowolny język lub technologię), często powodowane jest mechanizmem racjonalizacji stanu "nie wiem, nie rozumiem więc spróbuję to jakoś usprawiedliwić". Warto wtedy pytać daną osobę jakie języki czy technologie zna i na podstawie ich różnorodności (a bardziej różnic w oferowanych podstawowych paradygmatach oferowanych przez technologię), oceniać autorytatywność odpowiedzi o śmierci technologii. Taki mechanizm jest często podświadomy.
Po zapoznaniu się z 3-4 technologią, osoba która programuje rozumie że język programowania to narzędzie i to tylko narzędzie. Ma zakres zastosowań gdzie się sprawdza i zakres w którym mniej. Co do analogii, równie dobrze mogę stwierdzić że: "Czas drabin już przemija. Przecież są podnośniki." Zresztą zawsze pojawi się ktoś kto będzie twierdził że wymianę rynny można zrobić z użyciem Jet pack'a i.. ba ... jest to "jedynie słuszne współczesne rozwiązanie". :-)
Inną sprawą jest to że IMHO języka nie można "się nauczyć i stosować do końca swojego żywota zawodowego". Nauka jest procesem ciągłym a praca w tym zawodzie ma immanentnie wpisaną naukę technologii dzień po dniu.
Podsumowując. C/C++ i Fortrana jeszcze bym nie uśmiercał :-)


Każdy problem w informatyce można rozwiązać, dodając kolejny poziom pośredniości,z wyjątkiem problemu zbyt dużej liczby warstw pośredniości — David J. Wheeler

Pozostało 580 znaków

2018-01-01 19:31
1

Tak naprawdę niezastąpiony to obecnie chyba tylko w grach AAA. A konkretniej w silnikach tychże gier. W innych punktach, które wymieniłeś C++ trzyma się mocno, ale niezastąpiony nie jest

  • W HFT oprocz C++ dość mocno trzyma się Java
  • Języki programowania implementuje się w C, OCaml'u, Haskell'u, Lisp'ie
  • Około systemowo programuje się jeszcze w C
  • Jeśli chodzi o performance to zależy jaka działka, szybki serwer można napisać w Go, do obliczeń można użyć C. Do zadań ogólnych szybki kod napiszesz też w OCamlu.
  • IoT to C
  • Embedded to C oraz specjalne wersje Javy oraz C#

Tak jak napisałem, wybór C++ w każdej z tych kategorii byłby dobrym wyborem, ale na pewno nie można stwierdzić, że nie ma alternatyw.

edytowany 1x, ostatnio: several, 2018-01-01 19:36
Jakie wersje Javy w embedded? - Burdzi0 2018-01-03 18:24
:| czemu ja o takich cudach nie słyszałem xd - Burdzi0 2018-01-03 18:29

Pozostało 580 znaków

2018-01-01 19:41
Bialy mleczarz
1

W sumie moze zle postawilem pytanie. 'Dobrze sie trzyma' to w sumie good enough. ;) A o C to bym sie nie martwil wcale. Sam najwiecej siedze w Javie, w ktorej zakochany nie jestem, i ktora nie jest w sumie ani troche niezastepowalna a jakos czesta w uzyciu. Sam oczywiscie od ludzi z JS w kolko slysze jak to Java umiera...

...a od Javowcow chyba najwiecej slyszalem takich opinii o Cpp. Dla mnie to bardzo krotkowzroczne i chyba nie rozumieja, ze CRUDy to nie tylko to co sie programuje w swiecie ;)

Pozostało 580 znaków

2018-01-01 19:48
0

Noo ja w sumie trochę przeceniłem znaczenie Cpp w niektórych zastosowaniach. W okołosystemowych zastosowaniach Cpp jest obecny, ale na pewno nie tak silny jak C. Obecnie w HFT java też jest bardziej dominująca niż Cpp.

Ale jeśli chodzi Ci o umieranie i temu podobne dyskusje, to Cpp nie umrze dopóty, dopóki łatwiej będzie znaleźć programistę C++ niż OCaml'a, Go itp. Duża i całkiem oddana społeczność, dojrzałość kompilatorów i narzędzi trzymają język przy życiu.

edytowany 1x, ostatnio: several, 2018-01-01 19:49
Pokaż pozostałe 8 komentarzy
zarabiam na kieliszek chleba w korpo javie (od czasu do czasu jakiś angular) - nic ciekawego. - rubaszny_karp 2018-01-02 12:38
Doczytałem że ScyllaDB to w uproszczeniu Cassandra przepisana na C++ z użytym DPDK w warstwie sieciowej. Jako umiarkowany fanboy cassandry i C++, projekt właśnie przykuł moją uwagę, szczególnie, że ma już kilku klientów. - several 2018-01-02 15:32
Do takich benchmarków na stronie producenta/autora podszedłbym z rezerwą, często gęsto autor testów ustawia tak parametry żeby udowodnić to co chce. Ale nawet jeśli jest skok 2x z takim samym "fail tolerance" jak cassandra, to jest to duża rzecz. - several 2018-01-02 15:48
Powiedzmy, ze jak dzielę to przez dwa to i tak jest niezle ;) - karsa 2018-01-02 15:48

Pozostało 580 znaków

2018-01-01 19:51
0

@Bialy Mlecarz no prosze Cie...
Akurat Java ma dużo innych zalet do pisania czegos innego niż CRUDy, np.
1)Garbage Collector (tak wiem, są Smart Pointery w C++)
2)Bardzo dobre wsparcie dla wielowątkowości
3)Dużo bibliotek
4)Od Javy 9 modularyzacja

Generalnie oczywiście zgadzam sie że Java nie zawsze jest najlepsza, ale nie jest to język powolny albo tylko do CRUDów


Nie pomagam przez PM. Pytania zadaje się na forum.

Pozostało 580 znaków

2018-01-01 19:56
Bialy mleczacz
0

Jesli chodzi o gry to jednak tez jest chyba dosc niszowe zastosowanie. Podejrzewam, ze o ile.znajomosc c++ jest wymagana to rzadko sie cos w nim pisze. Bo kto moze korzysta jednak z gotowych game engines. A najwiecej rzezbia pewnie przy top tytulach.

Ciekaw jestem co bedzie z Rust
http://www.jonathanturner.org[...]-facts-about-rust-growth.html
Ale troche ludzi narzeka, ze jest zbyt skomplikowany.

Pozostało 580 znaków

2018-01-01 19:57
Bialy mleczacz
0

@scibi92: ja nic takiego nie napisalem i zdaje sobie sptawe z zalet. chodzilo mi o LUDZI, ktorzy poza CRUD nigdy nie wyszli.

Pozostało 580 znaków

2018-01-01 20:03
3

Ja mam 3 zarzuty, które imho pozwalają innym językom (takim jak rust czy go) wygryzać C++ po troszeczku w różnych miejscach:

  1. Przy templatkach to co produkuje kompilator mówi głównie, że jest jakiś błąd. Tego nie da się czytać. Kod w C++ może wyglądać naprawdę pięknie gdy jest naszpicowany template'ami ale co z tego skoro jeden mały błąd i jesteśmy zdani na siebie?
  2. Odziedziczone po C UB. Smutne jest to, że to prawdopodobnie zostanie z nim już do samego końca.
  3. Brak modułów. Serio, 2 lub więcej plików per 1 klasa (.hpp i .cpp)? serio?

Pozostało 580 znaków

2018-01-01 20:10
Bialy mleczacz
0

@scibi92: Go to ma dobre wsparcie dla wielowatkowosci ;)

Takie Go niby bezposrednio nie konkuruje z Java czy C++ z C wcale ale w wielu moejscach bedzie 'good enough' by sobie poradzic. A jego popularnosc jednak mocno wzrasta.

Pozostało 580 znaków

2018-01-01 20:36
5
Bialy mleczarz napisał(a):

ze 'modern' c++ to duzy postep

Mam ogólną awersję do nazywania czegokolwiek ”modern”, zwłaszcza dlatego, że co jest modern a co nie jest to zmienia się w czasie, i zależy też od własnego punktu widzenia.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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