- 
X-Received: by 10.31.191.67 with SMTP id p64mr111862vkf.4.1502603090632; Sat, 12 Aug
 2017 22:44:50 -0700 (PDT)
 X-Received: by 10.31.191.67 with SMTP id p64mr111862vkf.4.1502603090632; Sat, 12 Aug
 2017 22:44:50 -0700 (PDT)
 Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!go
 blin3!goblin.stu.neva.ru!news.misty.com!border2.nntp.dca1.giganews.com!border1.
 nntp.dca1.giganews.com!nntp.giganews.com!m34no579776iti.0!news-out.google.com!i
 9ni421qte.0!nntp.google.com!w51no960848qtc.0!postnews.google.com!glegroupsg2000
 goo.googlegroups.com!not-for-mail
 Newsgroups: pl.comp.programming
 Date: Sat, 12 Aug 2017 22:44:50 -0700 (PDT)
 In-Reply-To: <1...@g...com>
 Complaints-To: g...@g...com
 Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=46.186.90.250;
 posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r
 NNTP-Posting-Host: 46.186.90.250
 References: <f...@g...com>
 <1...@g...com>
 User-Agent: G2/1.0
 MIME-Version: 1.0
 Message-ID: <7...@g...com>
 Subject: Re: Co jest nie tak z C++ (było: Rust)
 From: g...@g...com
 Injection-Date: Sun, 13 Aug 2017 05:44:50 +0000
 Content-Type: text/plain; charset="UTF-8"
 Content-Transfer-Encoding: quoted-printable
 Lines: 227
 Xref: news-archive.icm.edu.pl pl.comp.programming:211005
 [ ukryj nagłówki ]W dniu niedziela, 13 sierpnia 2017 05:17:23 UTC+2 użytkownik M.M. napisał: 
 > On Saturday, August 12, 2017 at 11:07:20 PM UTC+2, g...@g...com wrote:
 > > W dniu sobota, 12 sierpnia 2017 15:59:27 UTC+2 użytkownik s...@g...com
 napisał:
 >
 > > I z pewnością, żeby odpowiedzieć na to pytanie, najpierw
 > > należałoby ustalić nasze oczekiwania względem danego języka,
 > > żeby można było zastosować jakieś kryteria, a nie prowadzić
 > > dyskusji na poziomie "język X jest zły, bo nie ma ficzera Z",
 > > albo "język X jest zły, bo nie jest językiem Y".
 > Kryterium porównawcze to dobra rzecz.
 
 Mógłbyś doprecyzować, co masz na myśli, używając frazy
 "kryterium porównawcze"? (ja ją rozumiem w taki sposób,
 że to jest "kryterium, względem którego porównujemy",
 ale to ma sens dopiero wtedy, kiedy porównujemy, a nie
 kiedy próbujemy ustalić, jakie coś ma wady)
 
 > > Moim zdaniem, dużą wadą C++ jest to, że nie daje programiście
 > > środków do tego, żeby mógł go używać stosownie do swoich
 > > upodobań -- oczywiście w niektórych kontekstach można by to
 > > było uznać za zaletę, jednak "w ogólności" wydaje się to raczej
 > > wadą.
 > Tutaj pozwolę sobie trochę się nie zgodzić. W C++ generalnie
 > jest dużo środków i można w nich przebierać. No chyba chodzi o
 > biblioteki, w przypadku bibliotek trzeba brać albo taką jaka
 > jest, albo se napisać swoją.
 
 Nie chodzi o biblioteki. Chodzi o to, że jako programista
 nie możesz sobie napisać pętli for(iterator : kolekcja),
 tylko musisz poczekać, aż przyjdzie Komitet i Ci to zrobi.
 
 Tzn. ostatnio odkryłem, że jakieś 10 lat temu się bawiłem w takie
 rzeczy, i sobie sam zrobiłem (dla gcc)
 
 #define for_every(ITERATOR, COLLECTION) \
 for(typeof(COLLECTION.begin()) ITERATOR = COLLECTION.begin(); \
 ITERATOR != COLLECTION.end(); ++ITERATOR)
 
 ale niewykluczone, że od takich rzeczy głupieją narzędzia w rodzaju IDE.
 
 > Właśnie kolekcje do uporządkowanych
 > zbiorów mi nie odpowiadają ani w QT, ani w STD, więc napisałem
 > swoją. Ale to jest wada każdego języka. Chociaż taka Java od
 > razu była nastawiona na prostotę i standaryzację ogromnej
 > biblioteki...
 
 Dla mnie wygląda tak, jakby C++ był ofiarą swojego procesu
 standaryzacyjnego, który jest kumulatywny -- ficzery do języka
 są tylko dodawane, i kompatybilność wsteczna jest świętością.
 (Z Javą zresztą jest podobnie).
 Proces standaryzacyjny np. w Haskellu nie miał problemów z tym,
 żeby eksperymentować i zrywać z różnymi decyzjami projektowymi,
 które były uważane za błędne. Użytkownicy może trochę na tym
 ucierpieli, co z pewnością odbiło się na popularności tego systemu,
 ale wpływ na sam projekt języka miało dobry.
 
 > > Przykładowo, gdybym chciał, żeby wszystkie zmienne w C++
 > > były domyślnie zadeklarowane jako "const", i tylko te, które
 > > zasadniczo chcę zmieniać, były zadeklarowane (np. jako "var"),
 > > C++ (z tego co wiem) nie daje mi możliwości uzyskania takiego
 > > zachowania.
 > Ale takiego efektu w żadnym języku nie można uzyskać, o ile
 > zrozumiałem co masz na myśli. Jeśli zostanie przewidziane
 > przed pisaniem kodu, to można sprytne define zrobić, jeśli nie,
 > to w żadnym języku tak się nie da.
 
 W Scali masz zasadniczo coś podobnego -- deklarujesz, czy określona
 zmienna jest "var", czy "val", tzn. czy jest mutowalna czy niemutowalna.
 W Scheme mógłbym bez problemu przesłonić operator przypisania, żeby
 sprawdzał, czy dana zmienna posiada deklarację pozwalającą na jej zmianę.
 
 > > Podobnie, interfejsy dostarczane przez STL są bardzo dziwne.
 > > Jest sobie chociażby taki kontener "stack". Jak można się spodziewać,
 > > stack<T> ma funkcję push(T element), która kładzie element na stosie,
 > > oraz pop(), która zdejmuje element ze stosu.
 > Idzie z tym żyć. Ja na tę sprawę mam inny pogląd. W innych językach,
 > jest mniej możliwości. Naturalne dla innych języków jest to, że
 > biblioteka zazwyczaj jest taka jaka powinna być w danym języku. A w
 > C++ jest bardzo dużo środków wyrazu. Zazwyczaj z biblioteką taką jak
 > STL czy QT można żyć. Problem w tym, że czasami chce potrzeba
 > biblioteki "skrojonej na miarę" do danego programu. Przy czym
 > skrojona na miarę oznacza albo wygodę programowania, albo
 > bezpieczeństwo, albo przejrzysty kod, albo ekstremalną wydajność.
 > W innych językach nie tylu środków wyrazu, więc inne języki
 > nie dają okazji do dzielenia włosa na czworo. W Javie nigdy w
 > życiu nawet bym nie pomyślał o pisaniu swojego kontenera, bo
 > po co? W C++ zazwyczaj używam swoich drzew, tablic hashujących, itd,
 > ponieważ (w moim przypadku najczęściej) to skraca czas obliczeń.
 
 
 > > Problem w tym, że funkcja pop() nie zwraca zdejmowanego elementu.
 > > Uzasadnienie autorów biblioteki jest takie, że w ten sposób można
 > > uzyskać większą wydajność, i że STL jest projektowany w taki sposób,
 > > żeby "nie płacić za to, czego się nie używa" -- jednak brak
 > > ergonomii biblioteki jest w istocie pewną ceną -- tym więszką, gdy
 > > programiści przyzwyczają się, że zepsute interfejsy to norma.
 > Zazwyczaj jest bardzo wysoka cena za bardzo małe zwiększenie wydajności.
 > Stos ma metodę top która zwraca. Można wywołać top a potem pop. I
 > pewnie w konkretnym przypadku będzie efekt przeciwny do zamierzonego,
 > pewnie wydajność będzie gorsza dla dwóch wywołań niż dla jednego z
 > odpowiednim typem zwracanym. A jakby dziedziczyć po stosie i sobie
 > napisać taką metodę pop? W QT chyba nazywa się taka metoda take.
 
 możliwości są różne. projektanci C++ mogliby zrobić "dispatch on return
 value" (Haskell ma coś takiego), i wówczas stack mógłby dostarczać dwóch
 implementacji "pop" -- jednej z typem void, a drugi z typem T.
 
 > > Jeśli ktoś ma ochotę posłuchać sobie tego rodzaju narzekań, to jest
 > > ten gość, Scott Meyers, który najpierw pisał dużo książek o C++,
 > > a później zaczął jeździć po konferencjach, narzekając na dziwność
 > > interfejsów C++ (sławiąc taką mantrę, żeby projektować interfejsy
 > > w taki sposób, żeby łatwo było ich używać poprawnie, i żeby trudno
 > > było ich używać niepoprawnie), i teraz zdaje się zajmuje się
 > > rozwijaniem języka D. Można sobie go w wolnej chwili obejrzeć
 > > np. tutaj
 > Nie, mam dosyć swojego narzekania ;-)
 >
 > > Poza tym długie czasy kompilacji i niezrozumiałe komunikaty diagnosyczne
 > > również są pewną ceną, którą programiści C++ muszą płacić.
 > Kompilacje można zrównoleglać w make. Komunikaty diagnostyczne...
 > nie wiem.. zazwyczaj wiem co kompilator do mnie mówi, czasami
 > tylko muszę chwilę się zastanowić.
 
 to musisz spróbować boosta ;]
 
 > > W każdym razie jeżeli używasz C++ i jesteś z tego zadowolony,
 > > to ja nie zamierzam Cię przekonywać, że nie jesteś. Jednak dla mnie
 > > duży stopień komplikacji tego języka (np. skomplikowana
 > > składnia i różne założenia utrudniające formułowanie wniosków
 > > dotyczących programów napisanych w C++) są na tyle poważnym problemem,
 > > że jeśli nie muszę, raczej staram się z niego nie korzystać.
 > Dla mnie to co nazywasz komplikacją, jest bogactwem możliwości.
 > Ale jeśli nie muszę, to też wolę np. Jave, PHP.
 
 Raczej miałem na myśli n. to, o czym wspominał Meyers w prezentacji.
 Że poziom skomplikowania C++ doprowadził do tego, że dające się
 używać narzędzia do refaktoryzacji kodu dla C++ pojawiły się
 w środowiskach IDE o dekadę później, niż dla innych języków.
 
 Co do owego "bogactwa możliwości" to C++ w istocie daje dużą kontrolę
 nad tym, co będzie robił komputer w trakcie wykonywania programu.
 Osobiście nie sądzę, żeby taka kontrola była potrzebna. Raczej
 wolałbym mieć narzędzie, które samo dobierze optymalne struktury
 danych do mojego programu, żebym mógł korzystać tylko z jednego
 prostego interfejsu do kolekcji (interfejsy w STLu wołają o pomstę
 do nieba). Sądzę, że takie podejście na dłuższą metę miałoby lepszy
 wpływ na wydajność programów, niż to, co oferuje C++.
 
Następne wpisy z tego wątku
- 13.08.17 11:23 M.M.
- 13.08.17 15:01 slawek
- 13.08.17 16:16 M.M.
- 13.08.17 16:52 w systemie siła 'POPIS/EU
- 13.08.17 18:15 slawek
- 13.08.17 18:44 w systemie siła 'POPIS/EU
- 13.08.17 20:32 slawek
- 13.08.17 21:23 w systemie siła 'POPIS/EU
- 16.08.17 18:47 Wojciech Muła
- 16.08.17 20:28 slawek
- 16.08.17 20:35 Mateusz Bogusz
- 16.08.17 22:21 slawek
- 18.08.17 18:46 Mateusz Bogusz
- 21.08.17 22:15 s...@g...com
- 21.08.17 23:49 g...@g...com
Najnowsze wątki z tej grupy
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
Najnowsze wątki
- 2025-10-30 Był neosędzia w składzie jest cofka w apelacji [dożywocie za potrójne zabójstwo]
- 2025-10-30 Warszawa => Lead SAP PP Consultant <=
- 2025-10-30 Poznań => Konsultant SAP HCM <=
- 2025-10-30 Warszawa => Junior Rekruter <=
- 2025-10-30 Warszawa => Senior SAP Consultant - PP area <=
- 2025-10-30 Zakrzewo => SAP HCM Consultant <=
- 2025-10-30 Gang przestępców napadających przestępców już rozbity! [CBŚP,media,prawny humor]
- 2025-10-30 Kraków => Koordynator Produkcji / Przedstawiciel ds. rozwoju produktu
- 2025-10-30 Kraków => Production Coordinator / Representant Product Dev <=
- 2025-10-30 Warszawa => Starszy Konsultant SAP - obszar PP <=
- 2025-10-29 szablon do pasty DIY
- 2025-10-29 Głośnik potrzebny
- 2025-10-29 Warszawa => Specjalista rekrutacji IT <=
- 2025-10-29 Rzeszów => International Freight Forwarder <=
- 2025-10-29 Białystok => Gen AI Engineer <=




![Artykuł sponsorowany vs natywny. 8 różnic, które wpływają na skuteczność publikacji [© DDRockstar - Fotolia.com] Artykuł sponsorowany vs natywny. 8 różnic, które wpływają na skuteczność publikacji](https://s3.egospodarka.pl/grafika2/content-marketing/Artykul-sponsorowany-vs-natywny-8-roznic-ktore-wplywaja-na-skutecznosc-publikacji-222399-150x100crop.jpg) 
![Kiedy wysłać mailing? Jaki dzień tygodnia i godziny są najlepsze [© ra2 studio - fotolia.com] Kiedy wysłać mailing? Jaki dzień tygodnia i godziny są najlepsze](https://s3.egospodarka.pl/grafika2/mailing/Kiedy-wyslac-mailing-Jaki-dzien-tygodnia-i-godziny-sa-najlepsze-223622-150x100crop.jpg) 
![Ranking kont osobistych z najlepszymi korzyściami dla klientów [© Andrey Popov - Fotolia.com] Ranking kont osobistych z najlepszymi korzyściami dla klientów](https://s3.egospodarka.pl/grafika2/konto-osobiste/Ranking-kont-osobistych-z-najlepszymi-korzysciami-dla-klientow-266814-150x100crop.jpg) 
![Renta wdowia - wnioski już od 1 stycznia 2025 [© Freepik] Renta wdowia - wnioski już od 1 stycznia 2025](https://s3.egospodarka.pl/grafika2/renta-wdowia/Renta-wdowia-wnioski-juz-od-1-stycznia-2025-263356-150x100crop.jpg) 
 Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei
Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei 
 
 
![Wynajem mieszkania w Warszawie pochłania 44% pensji. Zobacz, jak wypadamy na tle Europy [© pixabay] Wynajem mieszkania w Warszawie pochłania 44% pensji. Zobacz, jak wypadamy na tle Europy](https://s3.egospodarka.pl/grafika2/rynek-najmu/Wynajem-mieszkania-w-Warszawie-pochlania-44-pensji-Zobacz-jak-wypadamy-na-tle-Europy-269391-150x100crop.jpg) 
![Lot z niespodzianką - jak overbooking zmienia podróż i jakie prawa mają pasażerowie? [© wygenerowane przez AI] Lot z niespodzianką - jak overbooking zmienia podróż i jakie prawa mają pasażerowie?](https://s3.egospodarka.pl/grafika2/prawa-pasazera/Lot-z-niespodzianka-jak-overbooking-zmienia-podroz-i-jakie-prawa-maja-pasazerowie-269384-150x100crop.jpg) 
![Lider z sercem: empatia i zaufanie jako klucz do sukcesu zespołu [© wygenerowane przez AI] Lider z sercem: empatia i zaufanie jako klucz do sukcesu zespołu](https://s3.egospodarka.pl/grafika2/lider/Lider-z-sercem-empatia-i-zaufanie-jako-klucz-do-sukcesu-zespolu-269133-150x100crop.png) 
![Bańka AI za 5 bilionów dolarów: Kiedy inwestorzy powiedzą: sprawdzam? [© wygenerowane przez AI] Bańka AI za 5 bilionów dolarów: Kiedy inwestorzy powiedzą: sprawdzam?](https://s3.egospodarka.pl/grafika2/AI/Banka-AI-za-5-bilionow-dolarow-Kiedy-inwestorzy-powiedza-sprawdzam-269382-150x100crop.png) 
 
 
 


