Wpis z mikrobloga

Jak myślicie mierczki #cpp? Tutaj ciekawa strona mówiąca dlaczego język C++ jest do bani:
https://wiki.theory.org/YourLanguageSucks#C.2B.2B_sucks_because

moim zdaniem storna się całkowicie myli i żaden z argumentów się nie trzyma, np. c_str() oczywiście specjalnie jest explicity
inne rzeczy są już poprawione (deklaracja typu throw w nagłówku, od C++11, oraz duża biblioteka std, oraz właściwie-standardowa boost).

Inne są błędne, np nie ma finally - bo po co, jest RAII (albo RAII+lambda jako finally)

Nie do końca rozumiem co im sie nie podoba w lambdach.
Oczywiście C++ nie jest idealne, ale argumenty tam podane które się utrzymują to są kategorii "mogło by umieć więcej".

A dyskusja zaczęła się od tego że PHP jest (moim zdaniem) całkowicie niedorobione w porównaniu z normalnymi językami, http://www.wykop.pl/wpis/13813171/co-umieliscie-przed-pojsciem-na-studia-a-co-umieci/44683589/
( ͡ ͜ʖ ͡)

#smuteczek #januszeprogramowania
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@rfree:
Dobra, krok po kroku:

It is backward compatible with C.

Still with subtle differences that make some C code unable to compile in a C++ compiler.

Yep, w pełni zgoda. Niepełna kompatybilność z C mogłaby zostać ukryta już dawno, nie jest, przez co cały język cierpi. Preprocesor, include'owanie plików i
  • Odpowiedz
@losiul: caly ambaras z inline polega na tym ze ludzie mysla ze slowo kluczowe inline jest rownoznaczne z konkretna metoda optymalizacji co jest nieprawda. jesli juz sie czepiac to nalezalo by sie przyczepic do calego systemu linkowania i budowania, ktory swoja droga czasem potrafi napsuc krwii. jak by to rozwiazac lepiej? nie mam pojecia. ale nawet majac jakas sensowne alternatywne rozwiazanie, pojawia sie problem wstecznej kompatybilnosci. trudno ja rozpatrywac jako
  • Odpowiedz
@rfree: @losiul:

It is backward compatible with C.

>Still with subtle differences that make some C code unable to compile in a C++ compiler.

To że język jest kompatybilny (nawet jeśli nie w 100%) to jest wielka zaleta języka. Zaś "niuanse" nie powinny nikogo ugryźć w dupę, chyba że
  • Odpowiedz
Może w trybie debug. Przy włączonej optymalizacji wszystkie "write-only", "read-only" i te zmienne (ale także funkcje i klasy) które nie są wykorzystywane zostaną wywalone z plików *.obj.

A przy włączonym Whole Program Optimisation, efekt jest jeszcze większy.

@psychob: Owszem, to może być problem w dużych projektach, ale powiedziałbym wręcz, że to zaleta - patrz mój komentarz do tego punktu.

Wydaje mi się więc, że ten cały paragraf poświęcony C++ nie
  • Odpowiedz
@rfree: Nigdy nie rozumiałem, dlaczego ludziom chce się tracić czas na pisanie podobnych teorii. Consolewars w wersji dla programistów ?
Są dużo ważniejsze argumenty przy wyborze technologii do danego projektu, niż teoretyczne rozważania o niuansach języka :)
  • Odpowiedz
@devml: sporo z tych "wad" C++ jest istotnych. Akurat te istotne nie są prawdziwe. Faktycznie nie rozumiem autora dlaczego narzeka na pewne zupełnie nie istotne aspekty C++.
  • Odpowiedz