🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Interpretowany czy kompilowany?

#28060
From: jacek2v
Date: Tue, 24 May 2011 10:55
66 lines
4328 bytes
On 22 Maj, 19:29, zbro...@tlen.pl wrote:
> On 22.05.2011 11:10, jacek2v wrote:
>
> > Nie uważam, że testy dają 100% niezawodności, ale dają (znacznie
> > wyższy poziom niezawodności) vs. (włożony nakład pracy na ich
> > przygotowanie) niż (typowanie) vs. (włożony nakład pracy na pisanie
> > kodu).
>
> Ale dlaczego "versus"?
versus - miałem na myśli "odnosząc do", czyli testy dają więcej efektu
w stosunku do włożonej pracy

> Statyczne typowanie nie zastępuje testów, ale daje dodatkoą weryfikację.
> Program ze zgodnymi typami nie musi być poprawny, natomiast program w
> którym typy się nie zgadzają, poprawny nie będzie. Tyle i tylko tyle.

Tak to też wcześniej napisałem. Miałem na myśli, że nakład pracy na
pisanie kodu z typowaniem nie opłaca się :)

> Co do testów - w innym poście tego wątku podałem przykład, będący nieco
> uproszczonym przypadkiem z życia wziętym, gdzie po refaktoringu i zmiany
> API jednej z bibliotek, do produkcji trafił kawałek niepoprawnego kodu
> mimo że testy przechodziły bezbłednie.
> Akurat tutaj kontrola typów na etapie kompilacji załatwiłaby sprawę.
> Przy czym nie tweirdzę że jest to panaceum na wszystko.

Tak.

> > class c1{
> >     public int m1(int a) {
> >         a = a + 1;
> >         return(a);
> >     }
> > }
> > class c2 extends c1{
> >     public int m1(int a) {
> >         a = a + 2;
> >         return(a);
> >     }
> > }
> > public class jsimple{
> >      public static void main (String[] args) {
> >    c1 o1 = new c2();
> >    System.out.println (o1.m1(3));
> >      }
> > }
> > result: 5
>
> > I co z tego, że typ c1? :(
>
> Znaczy chcesz pokazać, że jak się spieprzy projekt struktury klas, to
> już nic nie pomoże? Z tym jestem się w stanie zgodzić.

To był przykład dla mojego adversarza, aby łatwiej mu było zrozumieć
co miałem na myśli :)
Nie "nic", unit test pomoże. Ale ile się trzeba napisać by te
typowanie zapisać :)

> Przy dobrze zaprojektowanych klasach powyższy problem nie wystąpi, a na
> źle zaprojektowane klasy lekarstwem nie jest ani kontrola typów, ani testy.

Oczywiście, jak się DOBRZE napisze kod to na pewno będzie DOBRY :)
Nie o to mi chodziło, chodzi o "opłacalność typowania" w kontekście
jakości aplikacji.

Pzdr.
Technical Details
Message-ID: <c4a63f8f-afbc-4dab-ab9e-4c241433ab38@28g2000yqu.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!28g2000yqu.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> <e423ccad-b001-4931-8e98-68982533d79f@d15g2000yqn.googlegroups.com> <iqtsq9$j2e$4@solani.org> <4d8313d9-cc85-4065-b94d-c7433e6d51de@p6g2000vbn.googlegroups.com> <iqugpk$vbu$3@solani.org> <64a9b1f5-e71a-4b1e-b54b-029a032d6a17@x1g2000yqb.googlegroups.com> <ir58gg$me$1@speranza.aioe.org> <2f93f4ca-ccb1-42a5-b199-2d9902ee8629@l18g2000yql.googlegroups.com> <ir90vs$nd8$1@speranza.aioe.org> <b807128c-8325-4ef6-93a9-c41ba1609583@h7g2000yqa.googlegroups.com> <irbh66$4fa$1@news.onet.pl>

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!28g2000yqu.googlegroups.com!not-for-mail
From: jacek2v <jacek2v@gmail.com>
Newsgroups: pl.comp.lang.python
Subject: Re: Interpretowany czy kompilowany?
Date: Tue, 24 May 2011 03:55:58 -0700 (PDT)
Organization: http://groups.google.com
Lines: 81
Message-ID: <c4a63f8f-afbc-4dab-ab9e-4c241433ab38@28g2000yqu.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> <e423ccad-b001-4931-8e98-68982533d79f@d15g2000yqn.googlegroups.com> <iqtsq9$j2e$4@solani.org> <4d8313d9-cc85-4065-b94d-c7433e6d51de@p6g2000vbn.googlegroups.com> <iqugpk$vbu$3@solani.org> <64a9b1f5-e71a-4b1e-b54b-029a032d6a17@x1g2000yqb.googlegroups.com> <ir58gg$me$1@speranza.aioe.org> <2f93f4ca-ccb1-42a5-b199-2d9902ee8629@l18g2000yql.googlegroups.com> <ir90vs$nd8$1@speranza.aioe.org> <b807128c-8325-4ef6-93a9-c41ba1609583@h7g2000yqa.googlegroups.com> <irbh66$4fa$1@news.onet.pl>
NNTP-Posting-Host: 87.205.244.228
Mime-Version: 1.0
X-Trace: posting.google.com 1306234558 14678 127.0.0.1 (24 May 2011 10:55:58 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Tue, 24 May 2011 10:55:58 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: 28g2000yqu.googlegroups.com; posting-host=87.205.244.228; posting-account=eZNabgoAAAATP5GyCUr-uXZ_s7vjxVeX
User-Agent: G2/1.0
X-Google-Web-Client: true
X-Google-Header-Order: HNKRUAELSC
X-HTTP-UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.68 Safari/534.24,gzip(gfe)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit