Wpis z mikrobloga

Czytam sobie "Opus magnum C++11" Grębosza i niestety facet strasznie leje wodę... Pisze sensowne i ważne rzeczy, ale niestety zbyt rozwlekle jak na mój gust. Czy możecie polecić jakąś książkę do nowoczesnego (>=11) C++, w której wiedza podawana jest bardziej zwięźle? Programuję dorywczo / hobbystycznie w C++ od 2 lat. Szukam czegoś, co poszerzy / usystematyzuje moją wiedzę.
#cpp #programowanie
  • 27
  • Odpowiedz
@gacek_w: Ja przygodę z programowaniem zacząłem w gimnazjum od Symfonii C++, a potem jeszcze przerabiałem Stephena Prata i Stroustrup.
Jednak nie uważam tego za dobre podejście, bo w międzyczasie zapominasz to, czego się nauczyłeś. Takie książki przeważnie zawierają więcej, niż potrzeba aby hobbystycznie programować, zwłaszcza jeśli poruszają bibliotekę standardową. W przypadku C++ ciężko jest zapamiętać hobbyście wszystkich funkcji na stringach (a w książkach to poruszają), lepiej nauczyć się po prostu korzystać
  • Odpowiedz
  • 1
A jak jesteś hobbystą, to w ogóle polecam po prostu nauczyć się pythona, to najlepszy język dla hobbystów, bo pozwala szybko pisać dość złożone programy, dzięki prostocie i masie bibliotek.


@Reretos: Nie do końca. :) Zawodowo programuję w Javie od prawie 12 lat, wcześniej 2,5 roku w C#. Pythona znam. W C++ zacząłem programować ponad 2 lata temu. Napisałem w nim dość spory soft (moja praca magisterska)- symulator lotów orbitalnych #
  • Odpowiedz
  • 1
@MostlyRenegade: Pewnie masz na myśli Rust? Cóż, na razie podziękuję. Jak zobaczę soft wielkości Auto CAD, Blender albo jakiś silnik gier AAA w nim napisany, to może zmienię zdanie. :)
  • Odpowiedz
@gacek_w: nad takimi projektami pracują z reguły większe zespoły, które mają już wypracowaną technologię tworzenia i utrzymywania kodu. Poza tym, programy te powstawały dawno temu i nie ma sensu przepisywać ich teraz na rusta, czy cokolwiek innego. Również zapewne nie stosuje się w nich najnowszych językowych ficzerów tylko dlatego, że są.

Jeśli interesuje cię refactoring istniejącego kodu, weź sobie jakiś publicznie dostępny code style i na nim się opieraj. Będzie to
  • Odpowiedz
  • 1
Ten język to kupa. Niby podokładane jest dużo "nowoczesnych" funkcji, ale dalej wystaje spod nich prymitywny C.


@MostlyRenegade: No nie mogę się z tym zgodzić. Myślę, że strzelanie do C++ jest po prostu w modzie, bo to chyba najważniejszy obecnie język programowania. Już sam fakt jak wiele absolutnie krytycznego oprogramowania powstało w tym języku przez ostatnie 40 lat, wystawia C++ odpowiednie świadectwo. Część z tego oprogramowania jest najwyższej jakości. Ja postrzegam
  • Odpowiedz
@gacek_w: Scott Meyers, ma kilka książek o nowoczesnym C++, nigdy nie pamiętam tytułów. Książki podzielone na porady-rozdziały, które dobrze się czyta nawet do poduszki. Jak znasz już podstawy.

Kiedyś pożyczyłem Grębosza i nauczyłem się u niego jednej praktycznej rzeczy, ale tam przykłady są tak długie, tyle rodzajów czcionek i podkreśleń, że aż męczące jest czytanie tego.
  • Odpowiedz
przydałby się porządny refactor


@gacek_w: z czasów jak pisałem w C++, popularny był ten guideline od Google'a: https://google.github.io/styleguide/cppguide.html

Myślę, że strzelanie do C++ jest po prostu w modzie, bo to chyba najważniejszy obecnie język programowania.


No chyba nie. xD Ani nie najważniejszy (Java? JavaScript? ew. C), ani nie dlatego ludzie odchodzą od C++, bo to moda. C++ jest starym, przekombinowanym językiem, gdzie trzeba samemu zarządzać pamięcią, co jest przyczyną większości luk
  • Odpowiedz
  • 2
@ponton: Nie chce mi się spierać, ale to że C++ jest najważniejszym językiem programowania powinno być w miarę oczywiste. Kompilatory, maszyny wirtualne innych języków, środowiska uruchomieniowe - taki V8 dla JavaScript, systemy operacyjne, prawie cały middleware, silniki baz danych, systemy czasu rzeczywistego, systemy pokładowe od samochodów przez samoloty po statki kosmiczne, większość programowej infrastruktury sieciowej. To wszystko i jeszcze więcej stoi prawie wyłącznie na C++ albo będzie, bo obecnie jest napisane
  • Odpowiedz
Skąd te dane, że ludzie odchodzą od C++? Według mojej wiedzy ten język zyskuje na popularności, głównie kosztem C.


@gacek_w: Nie ma danych, to moja opinia. ;) Głównie bazująca na tym, że masa projektów poszła do chmur, a tam nikt C++ już nie używa, nawet ten cały middleware to najczęściej Kafka (Scala) lub bazy nosql jak Cassandra (Java), wszystko zarządzane Kubernetesem (Go). Nawet Android (Java) powoli wypiera normalne systemy, a w
  • Odpowiedz
  • 1
W zasadzie dla C++ zostanie gamedev, embedded i sporo legacy softu, nic nowego już praktycznie w tym języku nie powstaje poza tymi kategoriami.


@ponton: To jak rozumiem też Twoja opinia nie poparta żadnymi danymi? LOL ;) Jak to się mówi punkt widzenia zależy od punktu siedzenia. Te zastosowania "chmurowe" o których mówisz, to głównie soft webowy, dla end-userów, tzw, oprogramowanie biznesowe, enterprise, itp. W tych zastosowaniach C++ był w głębokim odwrocie
  • Odpowiedz
  • 1
nawet ten cały middleware to najczęściej Kafka (Scala) lub bazy nosql jak Cassandra (Java),


@ponton: To jest nieprawda co do systemów baz danych. Porównaj sobie popularność noslq, z MS-SQL, Oracle, nawet PostgreSQL czy MySQL. Czy może chcesz powiedzieć, że relacyjne bazy danych też są w odwrocie? Btw. najpopularniejszy NoSQL, to MongoDB napisany w C++.
  • Odpowiedz