🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.objects
Article #4715

Re: Prawda o C++

#4715
From: Adam Karpierz
Date: Mon, 18 Jan 1999 20:53
122 lines
6509 bytes
Janusz Stopa wrote:
>Wypada mi sie wtracic. Wiem, ze wiele osob na tej liscie uwielbia
>Fortran, czy inne jezyki bo maja w nich wiecej doswiadczenia.

Panie Januszu.

Tu sie Pan myli. Fortarnu bardzo nie lubie.
Nawet F90 choc to juz _zupelnie_ inny Fortran niz uzuwany
przeze mnie 4 czy 77.
I mam ku temu wydaje sie w miare obiektywne uzasadnienie.
Natomiast nie przeszkadza mi to docenic jednej z cech
Fortranu 90 jakim wlasnie jest obsluga macierzy.
Obsluga _calkiem_ rozniaca sie od tej z F4/77 ktora
byla nawiasem mowic koszmarna.
Po prostu fakty mowia za siebie czy sie je lubi czy nie.

Powiem moze ogolniej.
Uwazam ze jakakolwiek cecha jezyka o ktorej informacja
o jej charakterze i atrybutach jest tracona w czasie kompilacji
(a tak sie dzieje w przypadku tablic w C++) nie dorowna
w sensie mozliwosci optymalizacji i elastycznosci realizacji
tej samej cesze ale poprzez wbudowanie jej obslugi
w kompilator.

Bardzo lubialem i lubie natomiast Algol (mnowstwo kodu)
a szczegolnie Simule (chociaz w Simuli juz nie zdazylem
prawie nic powazniejszego napisac) i to wcale nei z powodu
doswiadczenia, ale z powodu latwosci i klarownosci
programowania i prawie zupelnego braku "efektow ubocznych".
Nigdy mi sie tej klarownosci nie udalo uzyskac w C++ mimo tez
kilkuletniego doswiadczenia, chociaz doceniam wszystkei
pozytywne cechy C++ czemu tez niejednokrotnie dawalem wyraz.
Najwieksze doswiadczenie mam wlasnie w C/C++ i mysle
ze nic zlego sie nie dzieje jesli krytycznie oceniam niewatpliwe
wady jezyka. Mnie osobiscie ich swiadomosc bardzo pomaga.

Wlasnie takie podejscie uwazam za sluszne i staram sie go
jedynie wyrazic.
Znac jezyk, jak najbardziej starac sie go lubiec (ja lubie C++:),
ale nie slepo, czyli znac jego wady, ale przy okazji nigdy nie
zasklepiac sie w jednym narzedzi/jezyku.
Patrzec w przyszlosc (np. Java, hm.. to raczej spojrzenei w bok)
ale tez w przeszlosc (np. Simula).
Mysle ze to jedyna ochrona przed popadnieciem w fanatyzm
i zatraceniem perspektywy w ocenie narzedzia/jezyka progr.

>Czy dany jezyk programowania jest "lepszy" od drugiego zalezy
>od wielu rzeczy, m.in. od upodoban dyskunatnow.

Tu przeciez (przynajmniej mnie) nei chodzi o to ktory jezyk
jest lepszy. Chodzilo wylacznei o konkretna ceche jezyka
ktora przeciez nie determinuje jego "lepszosci".

>Niemniej dyskusja
>(w tym i rownoleglych watkach) nie jest zbyt obiektywna. Mam wrazenie,
>ze wielu dyskunantow nigdy w zyciu nie widzialo powazniejszego projektu
>w przemsyle, ktory okazal sie byc wielkim sukcesem.

Zgadzam sie. Przyznaje sie ze nie widzaialem duzo duzych projektow
ale moze 3, 4 by sie znalazlo (patrzac z polskiej perspektywy oczywiscie) .
I to nie calkiem tak znow bez sukcesu.  ( -||- ).
A co najwaznejsze, te projekty byly tak bardzo praktyczne i dalekie
od conieco naukowej atmosfery panujacej niekiedy na p.c.o
ze az.. bolalo :).

>Nie jest prawda, ze TYLKO jezyk/kompilator pozwala na optymalna
>obsluge tablic (czy czegokolwiek innego). Akurat zamiarem C++
>jest umozliwienie pisanie szybkiego/optymalnego kodu:
>poprzez mozliwosc dolaczania specjalizowanych bibliotek (ktore
>tez moga byc napisane w C++) oraz bardzo niewielkiego narzutu
>w czasie wykonania danego programu. Owszem, pisanie w C++ wymaga
>doswiadczenia.

Ja nie twierdze ze C++ nie posiada _zadnych_ pozytywnych
sprawdzjacych sie w parktyce cech.
Tyle tylko ze te pozytywne cechy wcale nie wplywaja i nie czynia
lepsza np. obslugi tablic niz jest w rzeczywistosci.
Taka ekstrapolacja tracila by juz ideologia.

>> A jak inaczej je zrealizowac ?
>> Referencja to nie alias (przezwisko) ale rzeczywista zmienna przeciez.
>
>Chyba jednak nie tak. Na str. 97 "The C++ Programming Language" jest:
>"A reference is an alternative name for an object". A dalej w tekscie:
>"The obvious implementation of a reference is as a (constant) pointer
>... In some cases, the compiler can optimize away a reference ..."
>Proponuje uwaznie przeczytac.

Przeczytalem i nie jestem przekonany
Referencja to przeciez osobny typ.
Gdzie indziej wyraznie pisze:
"Poniewaz dla dowolnego typu T, _typy_ T i T& dopuszczaja
ten sam zbior wartosci inicjatora, wiec funkcje z _typami_
argumentow rozniacymi sie jedynie w tym zakresie nie moga
miec tej samej nazwy"
Zmienna referencyjna ma inny typ niz zmienna "niereferencyjna".
Dowodem jest jest inne zachowanie jako parametru funkcji
(mozna przekazac wartosc z powrotem, mimo ze sama
zmenna referencyjna (jak wszystko w C) jest przekazywana przez
wartosc. A wiec jednak nie jest to tylko alias (alternative name).
To osobny typ z wszelkimi tego konsekwenscjami.
Ja przynajmniej tak to rozumiem.
Zreszta co tu duzo mowic. Referencje sa wymienione
jako jedne z typow pochodnych w raporcie C++.
A przez co zrealizowane ?.
Tu sie poprawiam. Faktycznie niewazne i powiem wiecej,
niepowinno to wlasiwie nikogo obchodzic.

>Z wlasnego doswiadczenia moge powiedziec, ze robienie szumu
>wokol wskaznikow w C++ nie ma wiekszego sensu. Po prostu, jezeli
>program nie jest pisany przez swiezo przeszkolonych programistow,
>to problem ze wskaznikami w C++ nie istnieje.
>Sa natomiast inne problemy: np. z bledami w kompilatorach,
>watkami (threads), itd. ale to juz nie jest sprawa samego jezyka.

W duzej czesci sie zgadzam oczywiscie.

Pozdrawiam
--
Adam Karpierz
Poszukuje stalej pracy, moje dane:
http://www.adares.alpha.pl/cv.htm
Technical Details
Message-ID: <78073r$t5p$1@zeus.polsl.gliwice.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.nask.pl!orion.cst.tpsa.pl!news.task.gda.pl!polsl.gliwice.pl!not-for-mail
References: <77o3bl$j0q$1@polonez.man.lodz.pl> <369FDDCE.7B94748A@interdata.com.pl> <77q41i$j7f$1@polonez.man.lodz.pl> <wU3o2.25549$U1.4744058@news.tpnet.pl> <77qi2q$42a$1@polonez.man.lodz.pl> <77qk38$ken$1@zeus.polsl.gliwice.pl> <77vn97$j3l$1@polonez.man.lodz.pl> <77vsod$l0u$1@zeus.polsl.gliwice.pl> <36A3823B.1950@bear.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.nask.pl!orion.cst.tpsa.pl!news.task.gda.pl!polsl.gliwice.pl!not-for-mail
From: "Adam Karpierz" <karpierz@itl.pl>
Newsgroups: pl.comp.lang.c,pl.comp.objects
Subject: Re: Prawda o C++
Date: Mon, 18 Jan 1999 21:53:21 +0100
Organization: Politechnika Slaska, Gliwice
Lines: 125
Message-ID: <78073r$t5p$1@zeus.polsl.gliwice.pl>
References: <77o3bl$j0q$1@polonez.man.lodz.pl> <369FDDCE.7B94748A@interdata.com.pl> <77q41i$j7f$1@polonez.man.lodz.pl> <wU3o2.25549$U1.4744058@news.tpnet.pl> <77qi2q$42a$1@polonez.man.lodz.pl> <77qk38$ken$1@zeus.polsl.gliwice.pl> <77vn97$j3l$1@polonez.man.lodz.pl> <77vsod$l0u$1@zeus.polsl.gliwice.pl> <36A3823B.1950@bear.com>
Reply-To: "Adam Karpierz" <karpierz@itl.pl_te_spamy_wykoncza_mi_kiedys_nerwy>
NNTP-Posting-Host: ppp214.intertele.pl
X-Newsreader: Microsoft Outlook Express 4.72.3110.1
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit