Darek Ś.

Darek Ś. Senior Software
Engineer, Splunk

Temat: Rynek IT z C C++

Piotr Pszczolkowski:
A jak nie potrzebujesz operatora to i tak powinienes zadeklarowac go jako prywatny bez definicji.
Aby program byl mniejszy i bezpieczniejszy.

ewentualnie podziedziczyc po boost::noncopyable ;)

pozdrawiam,
Darek

konto usunięte

Temat: Rynek IT z C C++

Przemysław O.:
Piotr Likus:
Właśnie się nawracam na C++.
Szkoda że tak mało się dzieje w samym języku (przynajmniej z mojego małego doświadczenia w C/C++), a komitety skupiają się raczej na STLu.

W samym jezyku też będą zmiany, poczytaj o drafcie nowego standardu, można już się pobawić. Ale w samym języku zmian jakoś specjalnie mi nie potrzeba. A rozwój STL i innych(Boost) jest super. Podoba się to używamy, nie to nie.

Poczytałem trochę:
http://en.wikipedia.org/wiki/C%2B%2B0x

Podobają mi się niektóre zmiany:
- nullptr
- range-based for
- inicjalizacja klasy przy pomocy klamerek {12,34.2}
- typowane wyliczenia
- UTF8
- literały użytkownika
- to regexp nie był standardem??

Całkiem przyjemne, trochę może za dużo tych mikro-dodatkowych znaczków '[]','auto','&&' bo zaczyna to przypominać Perla, ale widać, że wiatr wieje i powiało świeżym powietrzem.

konto usunięte

Temat: Rynek IT z C C++

Piotr Likus:
- to regexp nie był standardem??

Nie, w standardzie jezyka C++ nie znajdziesz czegos takiego jak wyrazenie regularne. Na szczescie boost wypelnia ta luke :)

konto usunięte

Temat: Rynek IT z C C++

Szymon Kubisiak:
Hy hy hy. Dokładnie na odwrót. Pointerów zawsze gdy nie ma innej konieczności, smartów gdy nie wiadomo kiedy przestaną być potrzebne a referencji tylko gdy absolutnie musisz mieć własny operator - czyli niemal nigdy : )

Hmm, też napisałbym hyhyhy ale nie chce być niegrzeczny. Przyznam, że wyższość gołych pointerów nad smart jest dla mnie nowością i chętnie dowiem się więcej o tym podejściu... Co do referencji to przyznam, że trudno mi skomentować.Przemysław O. edytował(a) ten post dnia 30.09.08 o godzinie 22:50

konto usunięte

Temat: Rynek IT z C C++

Piotr Likus:
Poczytałem trochę:
http://en.wikipedia.org/wiki/C%2B%2B0x

Zwroc uwage na daty:
C++0x is the planned new standard for the C++ programming language. It is intended to replace the existing C++ standard, ISO/IEC 14882, which was published in 1998 and updated in 2003.

Nie wiem czy doczekamy sie nowego standardu w jakims rozsadnym czasie.
To wszystko trwa strasznie dlugo. Komitet w swoich rozwazaniach dzieli wlos na czworo, ale to moze i dobrze, bo jak juz standard sie ukaze bedzie dopracowany i spojny wewnetrznie.

konto usunięte

Temat: Rynek IT z C C++

Przemysław O.:
Szymon Kubisiak:
Hy hy hy. Dokładnie na odwrót. Pointerów zawsze gdy nie ma innej konieczności, smartów gdy nie wiadomo kiedy przestaną być potrzebne a referencji tylko gdy absolutnie musisz mieć własny operator - czyli niemal nigdy : )

Hmm, też napisałbym hyhyhy ale nie chce być niegrzeczny.
Hy hy :) Moze by nalezalo sie :)

konto usunięte

Temat: Rynek IT z C C++

Tomasz Krzos:
Piotr Likus:
- to regexp nie był standardem??

Nie, w standardzie jezyka C++ nie znajdziesz czegos takiego jak wyrazenie regularne. Na szczescie boost wypelnia ta luke :)

No nie do konca.

Juz w bibliotekach C byly funkcje dotyczace wyrazen regularnych standardu POSIX.
Patrz naglowek <regex.h> ( man regex)Piotr Pszczolkowski edytował(a) ten post dnia 01.10.08 o godzinie 08:00
Darek Ś.

Darek Ś. Senior Software
Engineer, Splunk

Temat: Rynek IT z C C++

Piotr Pszczolkowski:
[...]
Juz w bibliotekach C byly funkcje dotyczace wyrazen regularnych standardu POSIX.
Patrz naglowek <regex.h> ( man regex)

Jest jednak jeden zasadniczy problem z bibliotekami C (np. http://www.opengroup.org/onlinepubs/7990989775/xsh/reg... ). Mianowicie w nich az roi sie od tych (zdaniem wielu ludzi) straszliwych paskudnych odrażających wskaźników ;)))

p.s.
przepraszam nie moglem sie powstrzymac :P

pozdrawiam,
Darek

konto usunięte

Temat: Rynek IT z C C++

Darek S.:
Juz w bibliotekach C byly funkcje dotyczace wyrazen regularnych standardu POSIX.
Patrz naglowek <regex.h> ( man regex)

Jest jednak jeden zasadniczy problem z bibliotekami C (np. http://www.opengroup.org/onlinepubs/7990989775/xsh/reg... ). Mianowicie w nich az roi sie od tych (zdaniem wielu ludzi) straszliwych paskudnych odrażających wskaźników ;)))

:) co nie oznacza, ze ich nie bylo :) (tych bibliotek w standardzie)
Nie wiem co ludzie maja do wskaznikow. Naprawde.
Czy tego nie idzie zrozumiec?
Az takie trudne i skomplikowane?
Mnie dopiero zaczynaly meczyc gdy mialem wskaznik do tablicy ze wskaznikami, ktore dalej cos wskazywaly, co tez bylo wskaznikiem.

p.s.
przepraszam nie moglem sie powstrzymac :P

:) nic to :)Piotr Pszczolkowski edytował(a) ten post dnia 01.10.08 o godzinie 09:07

konto usunięte

Temat: Rynek IT z C C++

Piotr Pszczolkowski:
Piotr Likus:
Poczytałem trochę:
http://en.wikipedia.org/wiki/C%2B%2B0x

Zwroc uwage na daty:
C++0x is the planned new standard for the C++ programming language. It is intended to replace the existing C++ standard, ISO/IEC 14882, which was published in 1998 and updated in 2003.

Nie wiem czy doczekamy sie nowego standardu w jakims rozsadnym czasie.
To wszystko trwa strasznie dlugo. Komitet w swoich rozwazaniach dzieli wlos na czworo, ale to moze i dobrze, bo jak juz standard sie ukaze bedzie dopracowany i spojny wewnetrznie.

Na szczęście IDE które używam coś z nowości juz ma - TR1 (VS 2008 SP1). Nie próbowałem czy coś w samym języku dodali.
GCC coś z tego "już" ma?

Nie wiem jak się ma C++0x do TR1 i czy w ogóle się ma.

http://www.codeguru.com/columns/kate/article.php/c15185
Szymon Kubisiak

Szymon Kubisiak Developer aplikacji
mobilnych Android

Temat: Rynek IT z C C++

Piotr Pszczolkowski:
Zdecydowanie nie.
Referencje maja absolutne pierwszenstwo przed pointerami.

Nawet Brian Stroustrup twierdzi odwrotnie...
Przemysław O.:

Przyznam, że wyższość gołych pointerów nad smart jest dla mnie nowością i chętnie dowiem się więcej o tym podejściu...

Podejście nazywa się KISS i w zarysie polega na tym że wszystko co mniejsze, szybsze i prostsze jest lepsze od tego co większe, wolniejsze i bardziej skomplikowane (a robi to samo).
Z tego podejścia wywodzi się C i wydaje mi się że dla nie lubiących go jest mnóstwo lepszych, wysokopoziomowych języków (np gdzie wszystko jest smartpointerem).
Co do referencji to przyznam, że trudno mi skomentować.

Patrz na słowa człowieka który wprowadził referencje do języka.

Moja opinia jest taka:
Referencje:
Referencje zostały wprowadzone tylko z powodu operatorów. W C nie pisało się & przed każdym += więc potrzebny był jakiś dirty hack żeby C++ wyglądało tak samo. Referencje na ratunek.
To że sytuacja raz zmusiła do takiego triku jeszcze nie znaczy że warto go używać zawsze.

Nie lubię referencji bo nie wiadomo czy została zdereferencjonowana z NULLa dopóki się nie wywali. No a ja siakoś nie kocham try ani catch. Jasne, tylko złośliwy idiota podaje NULLa do funkcji przyjmującej referencje. Niemniej jednak idioci istnieją i używając referencji ani trochę nie zabezpieczasz się przed NULLem, a jedynie odcinasz się od wiedzy o nim.

Referencja zaciemnia kod, gdyż wewnątrz nie wiadomo czy się pracuje na kopii czy na oryginale. Również widząc wywołanie funkcji nie mogę powiedzieć czy jej parametry zostaną zmodyfikowane czy nie (oczywiście są consty, ale do tego trzeba widzieć definicję).
Przykład:
int iCostam = 5;
SiakasFunkcja(iCostam);


Powiedzcie mi teraz, jaką teraz wartość ma iCostam ? W kodzie bez referencji widzisz to co powyżej albo:
InnaFunkcja(&iCostam);
I od razu wiadomo co jest co.

To bardzo miłe móc do wszystkiego odwoływać się tak samo, ja jednak wolę na pierwszy rzut oka wiedzieć z jakim obiektem mam do czynienia.
Referencja tak naprawdę jest zwyczajnym wskaźnikiem. Więc po co samych siebie okłamywać?

Smart pointery:
Wcale nie twierdzę że smarty to zło. Ale dopóki wiadomo odkąd dokąd obiekt istnieje to zysk z nich jest zerowy.
Smarty eliminują jedne bugi, a wprowadzają inne. Tymczasem obiekty nie zwolnione na skutek kołowej zależności są o wiele trudniejsze do zauważenia i zdebugowania niż crash na NULLu.
Jestem człowiekiem i popełniam błędy, ale wolę widzieć je od razu.Szymon Kubisiak edytował(a) ten post dnia 01.10.08 o godzinie 10:38

konto usunięte

Temat: Rynek IT z C C++

Piotr Likus:
GCC coś z tego "już" ma?
Z tego co wiem to nie.
Ale nie uzywam nigdy najnowszej wersji gcc, wiec moze czegos nie wiem.

Nie wiem jak się ma C++0x do TR1 i czy w ogóle się ma.
TR1 to biblioteka szablonow, cos jak STL.
Tak wiec z C++0x nie ma nic wspolnego.
TR1 to tzw. C++ Library [T]echnical [R]eport uznany bodaj w 2006 przez ISO.
Biblioteka nie nalezy do standardu STL, ale wiekszosc jej czesci z duzym prawdopodobienstwem sie w nim znajdzie.

Na linuksie TR1 juz jest obecnie dostepna po instalacji systemu.
Pod linuksem: /usr/include/c++/4.2/tr1/Piotr Pszczolkowski edytował(a) ten post dnia 01.10.08 o godzinie 10:07

konto usunięte

Temat: Rynek IT z C C++

Szymon Kubisiak:
Piotr Pszczolkowski:
Zdecydowanie nie.
Referencje maja absolutne pierwszenstwo przed pointerami.

Nawet Brian Stroustrup twierdzi odwrotnie...
Z Brianem to nigdy nie wiadomo kiedy robi sobie jaja, a kiedy mowi powaznie.
Przypomne dla niewtajemniczonych, ze to tworca C++.
A jakis czas temu krazyl w necie artykul, w ktorym byl on (niby on) najwiekszym krytykiem C++.
Watpie zeby krytykowal wlasny twor.
Wiec nie dokonca wiadomo co on powiedzial, a co inni probuja mu przypisac.Piotr Pszczolkowski edytował(a) ten post dnia 01.10.08 o godzinie 10:09

konto usunięte

Temat: Rynek IT z C C++

Szymon Kubisiak:
Piotr Pszczolkowski:
Zdecydowanie nie.
Referencje maja absolutne pierwszenstwo przed pointerami.

Nawet Brian Stroustrup twierdzi odwrotnie...

Ciekawe zatem czemu wprowadził referencje do C++. Chętnie zobacze cytat.

Sprawa z referencjami jest dość prosta -> C++ FAQ Lite mówi o tym jednoznacznie.

http://klub.chip.pl/b.krzemien/c++-faq-pl/references.h...

konto usunięte

Temat: Rynek IT z C C++

Piotr Pszczolkowski:
Szymon Kubisiak:
Piotr Pszczolkowski:
Zdecydowanie nie.
Referencje maja absolutne pierwszenstwo przed pointerami.

Nawet Brian Stroustrup twierdzi odwrotnie...
Z Brianem to nigdy nie wiadomo kiedy robi sobie jaja, a kiedy mowi powaznie.
Przypomne dla niewtajemniczonych, ze to tworca C++.
A jakis czas temu krazyl w necie artykul, w ktorym byl on (niby on) najwiekszym krytykiem C++.
Watpie zeby krytykowal wlasny twor.
Wiec nie dokonca wiadomo co on powiedzial, a co inni probuja mu przypisac.

Cytat:

I do want to change the argument, should I use a pointer or should I use a reference? I don't know a strong logical reason. If passing ``not an object'' (e.g. a null pointer) is acceptable, using a pointer makes sense. My personal style is to use a pointer when I want to modify an object because in some contexts that makes it easier to spot that a modification is possible.


http://www.research.att.com/~bs/bs_faq2.html

Wg mnie Brianowi śmierdzi pisanina const'ów.
Bo to jest ratunek na jego dysonans poznawczy.Piotr Likus edytował(a) ten post dnia 01.10.08 o godzinie 10:22

konto usunięte

Temat: Rynek IT z C C++

Przemysław O.:
Ciekawe zatem czemu wprowadził referencje do C++. Chętnie zobacze cytat.
Takiego cytatu mozesz nie zobaczyc :)
Bo byc moze to nie on wprowadzil referencje (ale nie wiem).

W jego ksiazce (wydanej takze po polsku) "Projektowanie i rozwoj jezyka c++" nie znalazlem ani slowa o referencjach. Wiec albo to nie jego pomysl, albo pojawil sie po wydaniu ksiazki.
Bjarn to tak naprawde inicjator, teraz jest jednym z bardzo wielu ktorzy pracuja nad rozwojem jezyka. Bardzo czesto w ksiazce przyznaje sie, ze w czyms sie mylil i uznawal wyzszosc nie swoich pomyslow.
Szymon Kubisiak

Szymon Kubisiak Developer aplikacji
mobilnych Android

Temat: Rynek IT z C C++

Sorki, zacząłem edytować starego posta i się rozpisałem straszliwie.
Rzućcie okiem jeszcze raz.Szymon Kubisiak edytował(a) ten post dnia 01.10.08 o godzinie 10:26

konto usunięte

Temat: Rynek IT z C C++

Piotr Likus:
My personal style is to use a pointer ...
No coz, kazdy ma swoje 'style' :)

konto usunięte

Temat: Rynek IT z C C++

Szymon Kubisiak:
Sorki, zacząłem edytować starego posta i się rozpisałem straszliwie.
Rzućcie okiem jeszcze raz.
Rzucilem okiem :)
I powtorze: to taki jego styl.

Wyglada na to, ze jako czlowiek starej daty z czasow C, ma problememy z zaakceptowaniem nowych mechanizmow.
Chyba nigdy nie byl guru w technikach programowania obiektowego.
W swojej ksiazce mowi nie o programowaniu obiektowym, tylko o C z klasami. I chyba chcialby zeby tak zostalo. Ale to on zostal, W tyle.
Jego wlasne dziecko go przeroslo, a on jeszcze pamieta C.
Jako programista C chcial cos zmienic, rzucil mala kulke sniezna, ktora zmienila sie w lawine, ktorej on jako wyznawaca C nie akceptuje.
Tak to wedlug mnie wyglada.Piotr Pszczolkowski edytował(a) ten post dnia 01.10.08 o godzinie 10:39
Szymon Kubisiak

Szymon Kubisiak Developer aplikacji
mobilnych Android

Temat: Rynek IT z C C++

Piotr Pszczolkowski:
Wyglada na to, ze jako czlowiek starej daty, z czasow C ma problememy z zaakceptowaniem nowych mechanizmow.
Chyba nigdy nie byl guru w technikach programowania obiektowego.
Jego wlasne dziecko go przeroslo, a on jeszcze pamieta C.
Jako programista C chcial cos zmienic, rzucil mala kulke sniezna, ktora zmienila sie w lawine, ktorej on jako wyznawaca C nie akceptuje.
Tak to wedlug mnie wyglada.

Ups, zapomniałem napisać co jest moją opinią a co Brajana : P

Wg mnie to raczej to co w lite faq
Niektórzy programiści C "starej linii" nie lubią referencji z powodu związanej z nimi semantyki, utrudniającej w wywołaniu funkcji spostrzeżenia, że chcemy umożliwić zmianę zawartości zmiennej. Często jednak, po uzyskaniu pewnego doświadczenia w C++, zdają sobie sprawę, że takie uproszczenie stanowi pewną formę ukrywania zbędnych informacji, będącą raczej zaletą niż wadą referencji. Przydatne jest to np. wtedy, gdy programista ma wyrazić algorytm w języku bardziej odpowiadającemu rozwiązywanemu problemowi, nie ściśle w języku maszyny.

jest naciągane.

A w nowym C brakuje const dziedziczenia .Szymon Kubisiak edytował(a) ten post dnia 01.10.08 o godzinie 10:39

Następna dyskusja:

Co sie dzieje w Polsce (ryn...




Wyślij zaproszenie do