Path: csiph.com!goblin2!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail From: =?UTF-8?Q?Sebastian_Bia=c5=82y?= Newsgroups: pl.comp.programming Subject: =?UTF-8?Q?Re:_[OT]_Du=c5=bca_kasa_i_kiepski_wynik_-_dlaczego=3f?= Date: Sat, 12 Sep 2015 21:46:45 +0200 Organization: ATMAN - ATM S.A. Lines: 120 Message-ID: References: <55b2141b$0$2206$65785112@news.neostrada.pl> <991b8162-a09e-4ef3-b58f-6af678a319d4@googlegroups.com> <62f21ed0-8877-4e9a-8c64-63c9b737d16b@googlegroups.com> NNTP-Posting-Host: 176-115-85-233.via.zamek.net.pl Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: node2.news.atman.pl 1442087208 32731 176.115.85.233 (12 Sep 2015 19:46:48 GMT) X-Complaints-To: usenet@atman.pl NNTP-Posting-Date: Sat, 12 Sep 2015 19:46:48 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 6.0; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 In-Reply-To: Xref: csiph.com pl.comp.programming:27391 On 2015-09-12 20:35, AK wrote: >>> Hehehe :) Dobre ! "Standardowa" to malo istotny kawalek :) ? >>> Pikne ! >> Owszem. Przypominam że stl to rzecz której się np. Nie używa np. na uC > Ale ja pisze o bibliotece standardowej/systemowej C, a nie o stl. Standardowej nie używa sie na uC, lub używa w bardzo ograniczonym zakresie. > Jego glowna wada to IMHO brak tread-safe-wowosci. To jest również zaleta. > Tylko dlaczego tak badziewny stl jest czescia std:: a mily Bog !? On nie jest badziewny. Wiele rozwiązań jest naprawde niezłych. I możliwych tylko w C++. > Mylisz sie co do "To był znakomity pomysł w kilku miejscach". > To nie byl znakomity pomysl, a kiepskie implementacje sa konsekwencja > wlasnie nietrafionego pomyslu. Pomysł był: a) innowacyjny b) możliwy do implementacji tylko w C++ c) spieprzony bo każdy implementowal po swojemu > Takie cus jak stl powinno by "wbudowane w jezyk/biblioteke" i napisane > obiektowo I jest napisane obiektowo. ALe piękno polega na tym że tylko tam gdzie to się przydaje. > (tak jak w Javie czy .NET), a nie napisane "na boku" poprzez uzycie > techniki templates Techniki templates zostały uzyte świadomie. Z powodu tego że jako jedyne pozwalaly na optymalizacje zamiast powolnego kodu generycznego. > komplikujacej sprawe i skladniowo i koncepcyjnie ponad miare. Nie ma tu żadnego ponad miarę. Zwykle uzycie szablonów, w dośc prymitywnej postaci. stl to nie jest specjalnie skomplikowana bibliteka. boost jest o rzedy wielkości bardziej skomplikowany. > PS: Nie mam nic w stosunku do generics w Javie, ale do C++ tempaltes mam > duzo. Generyki i templates to coś zupełnie innego. W zasadzie w ich różnicach mozna znaleźć powód dla którego stl jest tak a nie inaczej napisany. >> Bibliteki stl zawieraja błedy. Inne też. Suprise. > To niech sie przestaja nazywac std:: :) Bledy się poprawia i idzie dalej. >>> To rzeczywiscie super swiadczy o C++ :) >> Błędy w kompilatorze nie świadczą o języku. To nie był błąd standardu. > Moga swiadczyc. Jesli bledy w kompilatorach po tylu latach istnienia jezyka > wciaz sa tak powazne jak w C++ to znaczy, ze jezyk ten przez swe > skomplikowanie i niejednoznacznosci (nie tylko skladniowe, rowniez > semantyczne) > jest bardzo trudny do zaimplementowania. A to juz swiadczy (zle) o jezyku. Nie. Przykład clanga pokazał że jakośc kompilatorow zależy mocno od projektu samego kompilatora. Absurdalna szybkośc implementacji clang to w zasadzie esencja problemow z legacy programmers u sterów gcc i vs. Warto wspomnieć że gcc od niedawna pozwolił na używanie C++ w środku. Nic dziwnego, maja problem. >>> PS0: Czy std::/stl jest juz wreszcie thread-safe ? >> Czy standard C++ kiedy powstawało stl mówił coś o "thread"? > A co mnie to obchodzi ? _Dzis_ jest to niezbedne (juz dawno bylo!), Nie. Jest niezbedne tu. A tam nie. Nie wiem dlaczego mialbym na siłe dostać bonus którego nie chcę. > a przez 20 lat nie zrobiono _nic_ w tym wzgledzie nawet szczatkowo. > Skutek byl taki ze trzeba bylo niekedy _samemu_ pisac calego stl-a > aby moc uzyc w programach wielowatkowych. Tak. Na tym polega m.in. niskopoziomowośc C++. Nie ma tutaj nic dziwnego że jak potrzebujesz nietywpoego zastosowania to sobie piszesz sam poza standardem. >> Bo standard jest niesłychanie skomplikowany. > No wlasnie Po co ? Bo język ma duzo cech ktorymi obrastał przez lata, czasem chaotycznie. Mam rowniesz wrażenie że pewne cechy języka to zamrożone bugi lub niedociągnięcia pierwszych implementacji. > Taka Java czy C# jest skladniowo wlasciwie prymitywny > w stosunku do C++ a pokrywa wiekszosc dziedzin zastosowan C++ > (nawet os-owo systemowe, poki co na Win) To rodzielne światy, pokrywają się tylko nieznacznie. >> Aczkolwiek przykład clang pokazał, że niestety również dlatego że >> projekty kompilatorów zatrudniają dużo corncobów[1]. Głównie takich >> którzy zamiast zalet jakiejs technologii widzą tylko same wady i >> ciągle żyją w latach 60-tych. > Heh. Tak sie sklada, ze taki gcc pisali wlasnie "mlodzi gniewni" z > rodziny C/C++ :) Nie. Gcc miał zakaz używania C++. Uwolniono go od niedawna. Pali się im grunt pod nogami, wiele kodu ktory *mogł* by się im przydać napisano już w C++ i portowanie go do C było głupie. Ponadto przypuszczam że sa pod wrażeniem szybkości implementacji clanga > Mnie sie na Odrze nie zdarzyl nigdy w zadnycm jezyku wypad kompilatora przy > obsludze jakiejs konstrukcji jezyka. Bo były to języki o prymitywnej składni. > W przypadku gcc i owszem zdarzyl mi sie i to nie wypad tylko normalny > zawis. Miliony razy tego doswiadczylem. I co z tego? Kompilator gcc c++ jest przypuszczalnie setki razy większy od kompilatora Simuli.