Article View: pl.comp.lang.python
Article #28045Re: Interpretowany czy kompilowany?
From: Łukasz Rekucki
Date: Tue, 17 May 2011 12:48
Date: Tue, 17 May 2011 12:48
69 lines
3411 bytes
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-mailReferences:
<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