C++ czy warto się uczyć?

0

Czy jest dziś sens inwestewać w naukę tego języka skoro mamy Javę, C# i inne przyjemniejsze języki? Co się obecnie pisze w C++, jakie są zastoswania tego języka?

0

Co się pisze? Bardzo dużo gier na przykład.

C++ jest bardziej niskopoziomowy niż java / C# więc nie będziesz wyzywany od "java-szkółkowca", dostaniesz się 'niżej' do komputera i zrozumiesz prędzej czym są wskaźniki. Za to pisanie programów pójdzie ci nieco wolniej. (aczkolwiek nie polecam zaczynania programowania od C++ jeśli planujesz)

0
MSM napisał(a)

(aczkolwiek nie polecam zaczynania programowania od C++ jeśli planujesz)

Niby czemu? :|

0

Ja tam jestem ze szkoły tych co zalecają Pascala na początek (pewnie dlatego że sam tak zaczynałem i cobie chwalę ;) ).

Ale błagam, nie zaczynajmy dyskusji na ten temat bo zaraz przylecą tutaj ci zalecający Delphi(sporo ich), Asemblera (są tacy), javę/C# (tacy też) albo C++ (jak ty :P). Mimo że wątek już jest we flame...

0
pcmcymc napisał(a)
MSM napisał(a)

(aczkolwiek nie polecam zaczynania programowania od C++ jeśli planujesz)

Niby czemu? :|

Bo to syf. Jeżeli sięgać po coś dosyć niskopoziomowego to po C, zdecydowanie bardziej usystematyzowany język, nie robiący takiej krzywdy użytkownikowi. Ciekawe dlaczego np. na MIT zaczyna(ło?) się od Scheme.

Tylko od trzech języków nie powinno się zaczynać nauki programowania - PHP, Cobol i... C++.

0

też jestem ciekaw czemu niby nie zaczynać od C++ ?

Poza tym C++ jest lepszy od Javy C# chociażby szybkością... wyobraź sobie WoWa napisanego w Javie powodzenia :)

0
Gelldur napisał(a)

Poza tym C++ jest lepszy od Javy C# chociażby szybkością...

Dla jakiegoś 1% tworzonego softu wydajność jest czynnikiem krytycznym, w innym wypadku te 5% różnicy po prostu nie istnieje. Poza tym języki na VM mają to do siebie, że kod może być profilowany i optymalizowany w czasie rzeczywistym, wielokrotnie. C++ praktycznie nie ma zalet w porównaniu do Javy/C#, poza kompilacją do kodu natywnego, co miejscami jest też potężnym minusem.

0

tez uwazam ze najpierw trzeba sie nauczyc programowac a potem zabierac za PHP czy C++

0

A tam... Jak chłopak chce, to nawet od Assemblera może zacząć...
C++ nie jest zły... po nim PHP, c# i inne to pryszcz.... Sam zaczynałem od Pascala, ale nie widzę przeszkody, żeby zaczynać od c... ważne żeby w ogóle zacząć... A jak widzę takie posty to mam wrażenie, że autor i tak nigdy nie zacznie programować,,,

tak właściwie to możesz nawet zacząć od Malbolge... Po tym wszystko będzie pikuś...

0

Pewnie że się uczyć. Jako dobry przykład jak zły może być język programowania.
No i jest to wciąż podstawowy język programowania, niezależnie od tego co javiści czy rubiści twierdzą ;-)

0
Azarien napisał(a)

No i jest to wciąż podstawowy język programowania, niezależnie od tego co javiści czy rubiści twierdzą ;-)

W jakim sensie podstawowy? Bo jest wykładany na uczelniach?

0
somekind napisał(a)
Azarien napisał(a)

No i jest to wciąż podstawowy język programowania, niezależnie od tego co javiści czy rubiści twierdzą ;-)

W jakim sensie podstawowy? Bo jest wykładany na uczelniach?

Np. widziales kiedys jakis system operacyjny napisany w javie?

0

Od C++ nie warto zaczynać. Chcesz nauczyć się programowania niskopoziomowego? Lepiej zobaczysz o co chodzi ucząc się assemblera lub C. Chcesz nauczyć się obiektówki? Lepszy będzie Java/C#/Smalltalk niż C++ ze swoją niskopoziomową obiektowością. Programowanie funkcyjne? Scheme/Haskell.
C++ umożliwia pisać w każdym z tych paradygmatów i w każdym coś spierdolił. Ogólnie nie jest to zły język ale na pewno nie jest dobry do nauki.

0

A czego ? .
Moim zdaniem warto bo pozwala potem wystartować w dowolnym kierunku i jest łatwiej ...
Nauka C++ to właściwie na początku nauka C jeśli pominąć standardowe I/O

Wielka kariera dla Crackera <-asembler<- C/C++->[java;C#;.NET;Cokolwiek;] ->W.k. [:-)]

0
EgonOlsen napisał(a)

Np. widziales kiedys jakis system operacyjny napisany w javie?

Widziałem co najmniej dwa, tam samo dwa w Haskellu, jeden w Common Lispie... W C# i pochodnych jest Singularity/Midori - najbardziej znany system eksperymentalny. Poza tym wszystkie mainstreamowe systemy operacyjne mają jądra i podstawowe moduły w C, nie C++.

dzejo napisał(a)

Wielka kariera dla Crackera <-asembler<- C/C++->[java;C#;.NET;Cokolwiek;] ->W.k. [:-)]

Prędzej BASIC 2.0 -> asm -> asm -> C/C++ -> Python -> Common Lisp -> Haskell -> grypsy w zakładzie karnym...

A poważnie - po cholerę crackerowi C++? W rzadkich przypadkach i tak używa się głównie C, ze względu na mechanikę WINAPI. W paru innych językach też można tworzyć kod natywny, wszystkie popularne narzędzia skryptuje się w Pythonie... Do szybkiego tworzenia/prototypowania narzędzi lepiej używać języków wysokiego poziomu, swego czasu eksperymentowałem z frameworkiem do debuggerów/tracerów/wtf w Common Lispie, wyszło bardzo przyjemnie.

0

A mówiłem, "nie zaczynajmy dyskusji na ten temat" ;(

0

OK, ale tematem nie było 'który język jest dobry na początek' tylko w czym się wykorzystuje C++ w dzisiejszych czasach.
No więc jak z tym? Sam jestem ciekawy.

0

Podałem (i koledzy też) -> przede wszystkim gry komputerowe, ale także systemy operacyjne i czasami jeszcze aplikacje użytkowe (szczególnie tam gdzie krytycznie ważna jest szybkość) - ale tam powoli zaczynają dominować nowsze języki.

0

Technologie takie jak Java czy .NET są coraz wydajniejsze. Kiedyś były ślamazarne, teraz jest znacznie lepiej. Być może niedługo będą równie szybkie jak natywny kod. W końcu środowisko uruchomieniowe to też jest program, tak jak kompilator, można je rozwijać, optymalizować i sprawić, że w końcu wypluje kod porównywalny do natywnego.
Za technologiami tymi stoją duże korporacje i pieniądze, dzięki czemu rozwijają się one. Czy o C++ można powiedzieć to samo?
Gry na pecety pisze się tylko na Windowsy. Jeśli M$ kiedyś zadecyduje, że od tej pory gry można robić tylko w C# i XNA (jak na XBoxy), to i tak wszyscy zainteresowani będą musieli się dostosować. A biorąc pod uwagę to, jak bardzo promują swoje nowe technologie, nie jest to niewykluczone.
C++ jest zbyt błędogenny i trudny w utrzymaniu, żeby mógł być stosowany w biznesie. Jest po prostu zbyt drogi, dlatego stracił tutaj na znaczeniu chyba już dawno temu.
Czy opłaca się uczyć? Jasne, zawsze będzie można potem utrzymywać napisane w nim starożytne systemy.

0

this z tych rozmów wnioskuje:
Warto, ale zależy do czego...
c++ jest dobrym językiem do samej nauki np. w liceum czy na początku studiów ... ale nie warto w nim pracować w przyszłości...

0
somekind napisał(a)
Azarien napisał(a)

No i jest to wciąż podstawowy język programowania

W jakim sensie podstawowy? Bo jest wykładany na uczelniach?

W sensie, że „wszystko” jest napisane w C++:
Windows. Office. Wszelkie Corele i Photoshopy. Większość programów wchodzących w skład dystrybucji linuksowych (tu jest większa różnorodność, a sam kernel jest w C). Gry (takie "ze sklepu"). Przeglądarki WWW. Serwery baz danych. Jakiekolwiek serwery właściwie. Kodeki audio i video oraz odtwarzacze. Frameworki i wirtualne maszyny dzięki którym Java, C# i tym podobne w ogóle chodzą, oraz mniejsze, większe i ogromne biblioteki stosowane później w wielu różnych językach.

Można C++ nie lubieć (ja nie lubię), można achać i ochać na swój ulubiony język, ale jest faktem, że hegemonia C++ trwa i trwać będzie.

0
Sid_ napisał(a)

c++ jest dobrym językiem do samej nauki np. w liceum czy na początku studiów ... ale nie warto w nim pracować w przyszłości...

Powiedzialbym, że odwrotnie. Na początek jest to cholernie trudny język, ma kupę pułapek, idiotyzmów i rzeczy 'zależnych od implementacji'. Szczerze? Wątpię żeby był drugi język tak zniechęcający do programowania (które z klepaniem kodu w C++ ma niewiele wspólnego) niż to przestarzałe 'cudo'. Z drugiej strony zawsze będzie nieźle płatna praca dla specjalistów, którzy poznali to draństwo naprawdę dogłębnie.

...w końcu z Cobola też zrezygnować nie możemy, prawda?

0
Świętowit napisał(a)

...w końcu z Cobola też zrezygnować nie możemy, prawda?

Ja myślę, że Cobola w Polsce prawie nie mamy, bo w czasach gdy był popularny, u nas jeszcze nie było powszechnej informatyzacji (chociaż gógiel na "praca cobol" znajduje parę ogłoszeń)

0

Owszem, ale patrzyłem bardziej globalnie - w paru dziedzinach nadal wykorzystuje się powszechnie oprogramowanie w tym draństwie.

0
Azarien napisał(a)

Większość programów wchodzących w skład dystrybucji linuksowych (tu jest większa różnorodność, a sam kernel jest w C).

Tu sie nie zgadzam, poniewaz okolo 1/2 programowa na Linuksy jest napisana w C, zaczynajac wlasnie od kernela(o czym pisales), przez openssh, do wielu fuzzerow chociazby.
Nie twierdze, ze c++ nie ma bo jest i to czesto mozna spotkac, chociazby przed wczoraj kompilowalem swfmill napisany w c++, ale nie przesadzaj, ze wiekszosc, bo to nie prawda.
Prawie zawsze kompiluje programy sam i jesli mialbym wyroznic jezyki wedlug kolejnosci napotkania kodu napisanego w danym jezyku pod Linuksem, to pierwsze i nie podwarzalne jest C, potem Python, C++. No C++ mniej wiecej tak czesto jak Python sie pojawia, no i dalej zadziej spotykane jezyki, ale tez popularne.

0
Świętowit napisał(a)

Na początek jest to cholernie trudny język, ma kupę pułapek, idiotyzmów i rzeczy 'zależnych od implementacji'. Szczerze? Wątpię żeby był drugi język tak zniechęcający do programowania (które z klepaniem kodu w C++ ma niewiele wspólnego) niż to przestarzałe 'cudo'. Z drugiej strony zawsze będzie nieźle płatna praca dla specjalistów, którzy poznali to draństwo naprawdę dogłębnie.

Fakt w C++ czai się wiele kluczyków i pułapek dla nowicjusza. Jednak z drugiej trony jako że zaczynałem od tego języka mogę powiedzieć że dajeto teraz dużą wiedzę czego się obawiać po kolejnych językach. A historia jest nauczycielką projektantów ale słabą :P więc błędy C++ pojawiają się także w nowych językach. To doświadczenie pozwala to wyłapać.

poza tym Java jest też kiepska dla początkujących. Kompatybilność wstecz już się na niej odciska i może sponsorować mały mentlik nowicjuszom. Z drugiej strony bardziej dopracowane liby do javy implementują skutecznie wiele wzorców projektowych i wpajają deweloperom dużo dobrych praktyk.

0
walec51 napisał(a)

Jednak z drugiej trony jako że zaczynałem od tego języka mogę powiedzieć że dajeto teraz dużą wiedzę czego się obawiać po kolejnych językach. A historia jest nauczycielką projektantów ale słabą :P więc błędy C++ pojawiają się także w nowych językach. To doświadczenie pozwala to wyłapać.

Czyli 'skoro ja się musiałem pieprzyć z C++ to inni też muszą'. Większość problemów i błędów z C++ jest specyficzna wyłącznie dla tego języka, faktycznie znam 5 języków, pisałem małe projekty w coś koło 15 - co najmniej 90% cyrków z C++ nie występowało nigdzie indziej. Szczerze? Może czas odpuścić młodym i porzucić to truchło? Większości rzeczy uczonych przez C++ można się nauczyć pisząc chociażby w D, zaś D nie wyrabia tylu złych nawyków, jest bliższy nowoczesnej koncepcji obiektowości. Zaczynanie od największego ścierwa po Cobolu i PHP może być jednocześnie zakończeniem przygody z programowaniem, ciekawe ilu potencjalnych świetnych programistów sobie zęby na C++ połamało.

walec51 napisał(a)

poza tym Java jest też kiepska dla początkujących. Kompatybilność wstecz już się na niej odciska i może sponsorować mały mentlik nowicjuszom.

Nie pomyliło Ci się z C++? Ten język najbardziej cierpi na kompatybilności wstecznej, zachował kupę mechaniki wczesnego C, pochodzącej z lat '70.

0
Azarien napisał(a)

[...] wszystko” jest napisane w C++:
Windows. Office. Wszelkie Corele i Photoshopy. Większość programów wchodzących w skład dystrybucji linuksowych (tu jest większa różnorodność, a sam kernel jest w C). Gry (takie "ze sklepu"). Przeglądarki WWW. Serwery baz danych. Jakiekolwiek serwery właściwie. Kodeki audio i video oraz odtwarzacze. Frameworki i wirtualne maszyny dzięki którym Java, C# i tym podobne w ogóle chodzą, oraz mniejsze, większe i ogromne biblioteki stosowane później w wielu różnych językach.

Ale żeby dostać pracę przy takich projektach to trzeba znać ten język naprawdę dobrze, o czym pisał już Świętowit.

autor napisał(a)

C++ czy warto się uczyć?

Warto go poznać choćby po to, żeby zobaczyć jak pisane są te wszystkie potworki które wymienił Azarien. Ale zdecydowanie nie warto od niego zaczynać. Ja zacząłem i teraz przestrzegam innych by tego samego błędu nie popełnili ;-P

0

Ja zacząłem od asemblera razem z winapi lub msdos ;] Po takim zestawie łatwo sobie wyobrazić jak może wyglądać skompilowany natywny kod.

0

Yhy... To weź to haskellowe crackme co to gdzieś w Nietuzinkowych tematach leży. Naprawdę mam wątpliwości czy wyobrażałeś sobie kod natywny (tak, kod z GHC jest pure native) oparty o kontynuacje i closures...

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