Article View: pl.comp.os.linux.programowanie
Article #60151Re: Pogaduchy o językach (było coś o dużej silni)
From: Maciej Sobczak
Date: Tue, 08 Nov 2005 09:11
Date: Tue, 08 Nov 2005 09:11
82 lines
4852 bytes
4852 bytes
Marcin 'Qrczak' Kowalczyk wrote:
>>I bardzo dobrze! O to właśnie chodzi, dokładnie tak samo jak z
>>reinterpret_cast, static_cast, itd. - one też się nie "skalują" do
>>większych przykładów. To *ma* wystawać z kodu i być widoczne.
>
> Po co język ma do tego zniechęcać? Do reinterpret_cast rozumiem,
> niech zniechęca, ale do lokalnych funkcji - nie.
>
> Wyróżniać się powinny przede wszystkim operacje, które mają zachowanie
> niezdefiniowane albo bardzo trudno przewidywalne, kiedy się ich źle
> użyje. Tyle że w C++ jest ich za dużo, żeby to było praktyczne.
Praktyczne? W Adzie jest tego znacznie więcej. Nawet rzutowanie pomiędzy
dwoma strukturalnie identycznymi typami musi być jawne:
procedure Hello is
type My_Int1 is new Integer;
type My_Int2 is new Integer;
A : My_Int1 := 5;
B : My_Int2;
begin
-- compile-time error:
-- B := A;
-- OK, rzutowanie:
B := My_Int2(A);
end Hello;
Idź teraz przekonaj ludzi od Ady, że Twoje tricki z trzema
zagnieżdżonymi lambdami, które używają siedmiu zmiennych lokalnych, są
"fajne". Z pewnością uznaliby to za prowokację.
> Jasne, jeździjmy po ulicach z włączonym ręcznym. Hamulec - niech
> będzie, ale tylko kiedy robię coś niestosownego, a nie cały czas.
I tu jest właśnie różnica pomiędzy "teoretycznie" a "praktycznie"
(pisałem o niej parę postów temu). Różnica wyraża się w tym, czy w
realnym projekcie, prowadzonym z użyciem realnych standardów i procesów
i w realnym zespole, ktoś pozwoliłby Ci takie rzeczy pisać. Różnica
wyraża się w tym, czy np. mój szef pozwoliłby mi na to albo czy np. ja
pozwoliłbym na to swoim podwładnym.
Różnica wyraża się też w tym, jaki jest cel tworzenia jakiegoś języka.
Czy tworzy się go po to żeby go stworzyć (w celu np. zrobienia doktoratu
- co jest akurat dobrym pomysłem), czy po to, żeby w nim pisać docelowe
systemy informatyczne. I jakie.
Zestaw dostępnych/potrzebnych/dozwolonych ficzerów albo pojęcie tego, co
jest wygodne a co jest wskazane w znacznym stopniu właśnie od tego zależy.
>>wiele
>>kompilatorów i translatorów było pisanych w C++ (i w czymkolwiek
>>innym) i nikt takiej sieczki tam nie napisał
>
> Wypraszam sobie, oryginalny kod w moim języku nie był sieczką.
Sieczkę zrobiłeś próbując to przetłumaczyć na C++. Co do Twojego języka
się nie wypowiem, bo i tak nie rozumiem tego przykładu. To, że jest
znacznie krótszy, nie musi oznaczać, że byłby dozwolony w realnym
projekcie, nawet gdyby był legalny w C++.
> Oczywiście że można całość wyrazić całkiem inaczej. Ale dlaczego
> miałbym być do tego zmuszony przez ograniczenia języka? Uważam mój
> schemat za zgrabny, tylko C++ nie pozwala mi go sensownie zapisać.
Taki styl. Ja uważam za zgrabne to, że obiekty lokalne mają czas życia
sterowany zakresem i nie sprzedałbym tego za możliwość używania Twoich
zgrabnych zapisów. Taki styl.
--
Maciej Sobczak : http://www.msobczak.com/
Programming : http://www.msobczak.com/prog/
Technical Details
Message-ID:
<dkpq3r$g5o$1@sunnews.cern.ch>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.internetia.pl!news.nask.pl!news.nask.org.pl!news.germany.com!news.belwue.de!irazu.switch.ch!news-zh.switch.ch!switch.ch!cernne03.cern.ch!cern.ch!newsReferences:
<djfrn5$i55$1@nemesis.news.tpi.pl> <87y84fz1bn.fsf@qrnik.zagroda> <djqg9q$1sg$1@sunnews.cern.ch> <87ll0ezpyl.fsf@qrnik.zagroda> <djsle0$q36$1@sunnews.cern.ch> <877jbx7q2t.fsf@qrnik.zagroda> <dk4n41$aue$1@sunnews.cern.ch> <87vezdanl0.fsf@qrnik.zagroda> <dk9su1$6su$1@sunnews.cern.ch> <87k6fqeq35.fsf@qrnik.zagroda> <dkcps0$2vq$1@sunnews.cern.ch> <slrndmk3v4.p01.jajcus@serwis2.beta> <dkd731$2u6$1@sunnews.cern.ch> <87psphsc6n.fsf@qrnik.zagroda> <dkf5da$d8g$1@sunnews.cern.ch> <87mzkk8xc0.fsf@qrnik.zagroda> <dkfmp9$msh$1@sunnews.cern.ch> <87ek5wt6iw.fsf@qrnik.zagroda> <dkj057$2bj$1@sunnews.cern.ch> <87mzkihhww.fsf@qrnik.zagroda> <dkn05f$91f$1@sunnews.cern.ch> <877jbkee0p.fsf@qrnik.zagroda>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.internetia.pl!news.nask.pl!news.nask.org.pl!news.germany.com!news.belwue.de!irazu.switch.ch!news-zh.switch.ch!switch.ch!cernne03.cern.ch!cern.ch!news From: Maciej Sobczak <no.spam@no.spam.com> Newsgroups: pl.comp.os.linux.programowanie Subject: Re: Pogaduchy o językach (było coś o dużej silni) Date: Tue, 08 Nov 2005 10:11:23 +0100 Organization: CERN - European Laboratory for Particle Physics Lines: 82 Message-ID: <dkpq3r$g5o$1@sunnews.cern.ch> References: <djfrn5$i55$1@nemesis.news.tpi.pl> <87y84fz1bn.fsf@qrnik.zagroda> <djqg9q$1sg$1@sunnews.cern.ch> <87ll0ezpyl.fsf@qrnik.zagroda> <djsle0$q36$1@sunnews.cern.ch> <877jbx7q2t.fsf@qrnik.zagroda> <dk4n41$aue$1@sunnews.cern.ch> <87vezdanl0.fsf@qrnik.zagroda> <dk9su1$6su$1@sunnews.cern.ch> <87k6fqeq35.fsf@qrnik.zagroda> <dkcps0$2vq$1@sunnews.cern.ch> <slrndmk3v4.p01.jajcus@serwis2.beta> <dkd731$2u6$1@sunnews.cern.ch> <87psphsc6n.fsf@qrnik.zagroda> <dkf5da$d8g$1@sunnews.cern.ch> <87mzkk8xc0.fsf@qrnik.zagroda> <dkfmp9$msh$1@sunnews.cern.ch> <87ek5wt6iw.fsf@qrnik.zagroda> <dkj057$2bj$1@sunnews.cern.ch> <87mzkihhww.fsf@qrnik.zagroda> <dkn05f$91f$1@sunnews.cern.ch> <877jbkee0p.fsf@qrnik.zagroda> NNTP-Posting-Host: abpc10883.cern.ch Mime-Version: 1.0 X-Trace: sunnews.cern.ch 1131441083 16568 (None) 137.138.37.241 X-Complaints-To: news@sunnews.cern.ch User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20050922 Red Hat/1.7.12-1.1.3.2.SL3 X-Accept-Language: en-us, en In-Reply-To: <877jbkee0p.fsf@qrnik.zagroda> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit