Article View: pl.comp.lang.python
Article #28047Re: Interpretowany czy kompilowany?
From: Rob Wolfe
Date: Tue, 17 May 2011 13:04
Date: Tue, 17 May 2011 13:04
89 lines
4132 bytes
4132 bytes
On 17 Maj, 09:35, "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. > Wiem jak w C++ i Javie. Juz pisalem w skrocie: "it compiles, shipt it!". Co z tego wynika, ze mi kompilator powie, ze typ sie zgadza? Zupelnie nic. Czy nie jest czasem tak, ze operacje na tym typie moga sie nie powiesc? Czy np. w przypadku polimorfizmu moze zostac wywolana zupelnie inna metoda, niz sie spodziewales? I milion innych rzeczy... No, ale sie skompilowalo! Great! > > 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. > Da sie kosztem, ktory imho jest kompletnie nie do przyjecia. > > 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? > C++ i Javy, w projektach sporych mysle (ok 500 kloc). Moge odwrocic pytanie. Jak duzy soft pisales w jezyku dynamicznie typowanym i jakim, aby twierdzic, ze sa do pisania duzych systemow gorsze? Ludzie czesto argumentuja, ze w przypadku duzych systemow z "legacy" kodem bez statycznego typowania, to tylko szalency by probowali cos robic. Mam do czynienia z takim systemem i napatrzylem sie dosc na cudowne mozliwosci statycznego typowania. Nie zabieralbym glosu w tej sprawie, gdyby nie to ze bralem udzial tez w projektach czysto pythonowych (ostatnio ok 50 kloc) i nie tesknilem ani przez moment za statycznym typowaniem. > > Wręcz przeciwnie, muszę się narzeźbić jak debil, > > aby zadowolić kompilator, a w podziękowaniu dostaję segmentation fault. > > Urban legend. Ok, dyskusja zmierza w kierunku dobrze znanym. Oba obozy sa mocno okopane i nic nie wskazuje, abym ja kogos przekonal albo ktos mnie. Takze z mojej strony EOT. RW
Technical Details
Message-ID:
<e423ccad-b001-4931-8e98-68982533d79f@d15g2000yqn.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!d15g2000yqn.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!d15g2000yqn.googlegroups.com!not-for-mail From: Rob Wolfe <rw@smsnet.pl> Newsgroups: pl.comp.lang.python Subject: Re: Interpretowany czy kompilowany? Date: Tue, 17 May 2011 06:04:22 -0700 (PDT) Organization: http://groups.google.com Lines: 93 Message-ID: <e423ccad-b001-4931-8e98-68982533d79f@d15g2000yqn.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: 78.133.233.211 Mime-Version: 1.0 X-Trace: posting.google.com 1305637462 3385 127.0.0.1 (17 May 2011 13:04:22 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Tue, 17 May 2011 13:04:22 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: d15g2000yqn.googlegroups.com; posting-host=78.133.233.211; posting-account=Kl85yQoAAACAhtXaf_cPVYWRBT7UPb10 User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.65 Safari/534.24,gzip(gfe) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit