🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.os.linux.programowanie
Article #60151

Re: Pogaduchy o językach (było coś o dużej silni)

#60151
From: Maciej Sobczak
Date: Tue, 08 Nov 2005 09:11
82 lines
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!news
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>

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