🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.python
Article #28045

Re: Interpretowany czy kompilowany?

#28045
From: Łukasz Rekucki
Date: Tue, 17 May 2011 12:48
69 lines
3411 bytes
On May 17, 9:35 am, "Stachu 'Dozzie' K."
<doz...@go.eat.some.screws.spammer.invalid> wrote:
> On 2011-05-16, Rob Wolfe <r...@smsnet.pl> wrote:
>
>
>
>
>
>
>
>
>
> > zbro...@tlen.pl writes:
>
> >> On 16.05.2011 15:49, Rob Wolfe wrote:
> >>> Nic podobnego. Tego typu proste bledy sa do wylapania uzywajac
> >>> statycznej analizy bez zadnego problemu.
>
> >>> $ cat test.py
> >>> lst = []
> >>> lst.keys()
> >>> $ pylint -E test.py
> >>> ************* Module test
> >>> E:  2: Instance of 'list' has no 'keys' member
>
> >> Takie też?
>
> >> def a(b):
> >>     print b.keys()
>
> >> x = []
> >> a(x)
>
> >> Tyle w temacie statycznej analizy.
>
> > Ok, mamy różne pojęcie o tym jaki błąd jest oczywisty. ;)
>
> A teraz sobie porównaj jak takie błędy się wychwytuje w Adzie, C++ albo
> w Javie.

W C++ bardzo często nieistniejące, a wiadomości o błędach siegają
wielu ekranów nic nie znaczącego bełkotu kompilatora.


> > > Tak, interfejsów statycznie nie da się sprawdzić w Pythonie.
> > Wspominałem też o testach, które by tu pasowały jak ulał.
> > Są też asercje. Można kontrolować interfejsy w runtime'ie itp.
>
> Można. Ale powinno to być wykonane podczas kompilacji -- bo się da.

1. Jak ktoś chce, to może i w Pythonie, np.: http://threecheck.sourceforge.net/

2. Jeśli iść tą drogą, to Java czy C++ sprawdzają bardzo mało.
Porównaj z np. Haskell'em. Dla fanatyków jest Epigram (http://www.e-
pig.org/). Tam każdy program poprawnie otypowany jest na 100%
poprawny. Trochę może ci zająć napisanie programu liczącego 100-tną
cyfrę rozwinięcia PI, no ale jak już napiszesz...

>
> > Chodzi mi o to, że w praktyce nie zauważyłem, aby statyczne
> > typy pomagały.
>
> A ile tego (języków ze statycznym typowaniem) używałeś i przy jak dużych
> projektach?

Takie argumenty raczej nie prowadzą do merytorycznej

---
Łukasz Rekucki
Technical Details
Message-ID: <f9f1a60d-202b-4605-9929-f178d85b8944@x10g2000yqj.googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!postnews.google.com!x10g2000yqj.googlegroups.com!not-for-mail
References: <iqmlha$r29$1@news.onet.pl> <4dcee603$1$2437$65785112@news.neostrada.pl> <iqo0j1$g9u$1@news.onet.pl> <87boz3anea.fsf@smsnet.pl> <iqqk2o$oh7$1@news.onet.pl> <0601cb5b-befa-46ba-9d1c-f105c81369fe@r35g2000prj.googlegroups.com> <iqrlte$rfe$1@news.onet.pl> <87k4dqe6vw.fsf@smsnet.pl> <iqt8gb$lo1$1@solani.org>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!postnews.google.com!x10g2000yqj.googlegroups.com!not-for-mail
From: Łukasz Rekucki <lrekucki@gmail.com>
Newsgroups: pl.comp.lang.python
Subject: Re: Interpretowany czy kompilowany?
Date: Tue, 17 May 2011 05:48:24 -0700 (PDT)
Organization: http://groups.google.com
Lines: 75
Message-ID: <f9f1a60d-202b-4605-9929-f178d85b8944@x10g2000yqj.googlegroups.com>
References: <iqmlha$r29$1@news.onet.pl> <4dcee603$1$2437$65785112@news.neostrada.pl> <iqo0j1$g9u$1@news.onet.pl> <87boz3anea.fsf@smsnet.pl> <iqqk2o$oh7$1@news.onet.pl> <0601cb5b-befa-46ba-9d1c-f105c81369fe@r35g2000prj.googlegroups.com> <iqrlte$rfe$1@news.onet.pl> <87k4dqe6vw.fsf@smsnet.pl> <iqt8gb$lo1$1@solani.org>
NNTP-Posting-Host: 83.12.183.238
Mime-Version: 1.0
X-Trace: posting.google.com 1305636504 25964 127.0.0.1 (17 May 2011 12:48:24 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Tue, 17 May 2011 12:48:24 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: x10g2000yqj.googlegroups.com; posting-host=83.12.183.238; posting-account=5fpXZwoAAADF-CUdCuJ-FpYxG8__-wRx
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Ubuntu/10.10 Chromium/11.0.696.65 Chrome/11.0.696.65 Safari/534.24,gzip(gfe)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit