Article View: pl.comp.lang.python
Article #28055Re: Interpretowany czy kompilowany?
From: jacek2v
Date: Sat, 21 May 2011 12:47
Date: Sat, 21 May 2011 12:47
84 lines
5824 bytes
5824 bytes
On 20 Maj, 10:24, "Stachu 'Dozzie' K." <doz...@go.eat.some.screws.spammer.invalid> wrote: > Oczywiście że nie mówią. Mówią o statyczności typowania, bo o tym > dyskutujemy w tej gałęzi. Nadal nie rozumiem co ma do rzeczy "silność" > systemu typów. Wydawało mi się, że cały czas o tym mówisz - o wyższości języka z typowaniem, czyli o jego "sile" . Ale możliwe, że Cię źle zrozumiałem :) > >> > A co to za różnica, że uruchomię zamiast skompiluję? Jeden "ruch" > >> > mniej :) > >> 1. Uruchomienie może być bardziej kłopotliwe niż sam proces budowania > >> (dla webaplikacji to może być skopiowanie na serwer testowy, > >> przeładowanie serwera, otwarcie przeglądarki i dokopanie się do > >> ekranu którego kod chcesz sprawdzić). > > Nigdy i tak musisz uruchomić, > > Parse error. Mhh, a ja zawsze myślałem, że programy się pisze by je uruchamiać. No cóż, ale istnieje też trend zwany "sztuka dla sztuki" :) > Nikt ci nie zabrania uruchamiać aplikacji do woli. Etap weryfikacji > typów podczas kompilacji to po prostu dodatkowe sprawdzenie, które > dochodzi ci praktycznie za darmo. Nie za darmo. Trzeba wszędzie pisać explicite typ, a to sporo kodu więcej. > > Mi. do tego dążą metodyki agile. Przeładowywanie serwera nie jest > > konieczne - automat. Skopiowanie na serwer - automat. Otwarcie > > przeglądarki - automat po kliknięciu na link. > > A potem przeklikuj się ręcznie przez wszystkie formularze żeby sprawdzić > ich poprawność. Albo napisz automat, który będzie automatyzować klikanie > pól (uwaga na AJAX!). Ot, taki dodatkowy kłopot. Kłopot?, ja uważam, że bez tego to bugów będzie jak "mrówków" :) Niezależnie od języka programowania, testy trzeba pisać i wykonywać. Automatyczne zwłaszcza w większych aplikacjach lub o wyższych wymaganiach co do niezawodności/wydajności są wręcz niezbędne - czyli tam gdzie jest większy budżet. Sugerujesz, że oddajesz aplikację nawet jej nie przeklikawszy? > A i tak mogą się prześlizgnąć błędy w rzadko używanych formularzach, > o których nikt nie pamięta i co do których nikt nie pomyślał żeby > napisać testy. A automat (kompilator) by po prostu sprawdził poprawność > *wszędzie*. Ale i tak kompilator nie wyłapie znacznej większości błędów, a świadomość, że trzeba testować jest lepsza niż życie w błędnym przekonaniu, że coś samo się sprawdzi i będzie ok. > >> Ekstrapolując twoje proponowane podejście "jeden ruch mniej", może > >> darujmy sobie testowanie aplikacji? Kolejny ruch mniej. > > Dziwna ekstrapolacja - poza zbiór dopuszczalnych wyników :) > > Właśnie. Do tego prowadzi twój pomysł z opuszczaniem kolejnych kroków > budowania softu: do opuszczenia zbioru dopuszczalnych wyników. To był Twój pomysł, aby nie testować - nie dokręcaj kota ogonem :) > >> Ano nie pomoże. Ale statyczna kontrola typów by sporo ułatwiła. > > Wydaje mi się, że przy zmiana framework raczej przeszkadza. Kiedyś > > spotkałem się z podobnym przypadkiem w Pascalu. Typowanie wymagało > > dużo "bezrozumnego" poprawiania kodu. > > Ale przynajmniej wiedziałeś gdzie się zmieniło API. Przy typowaniu > dynamicznym nie masz tej informacji podczas kompilacji. A jak zmienisz klasę na niższą lub wyższą w ścieżce dziedziczenia, to też się zorientuje - zwłaszcza, że bardzo często używa się rzutowania? > Proponuję popisać w paru innych językach (np. w Javie), wtedy zobaczysz > jaki jest wpływ samej składni na długość kodu. Bo większość operacji > w przeciętnym kodzie źródłowym tłumaczy się wprost na inne języki, > a idiomów używa się sporadycznie. Pisałem w asseblerze x86, Pascalu, Javie, Clipperze, Visual Basicu, trochę w :C, Perlu i jeszcze paru językach :) Jakoś tak wydaje mi się, że mam pojęcie przekrojowe :) Ostatniego Twojego zadanie nie zrozumiałem, sorry :)
Technical Details
Message-ID:
<2f93f4ca-ccb1-42a5-b199-2d9902ee8629@l18g2000yql.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!plix.pl!newsfeed1.plix.pl!goblin2!goblin.stu.neva.ru!feeder3.cambriumusenet.nl!feed.tweaknews.nl!193.201.147.78.MISMATCH!feeder.news-service.com!postnews.google.com!l18g2000yql.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> <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>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!plix.pl!newsfeed1.plix.pl!goblin2!goblin.stu.neva.ru!feeder3.cambriumusenet.nl!feed.tweaknews.nl!193.201.147.78.MISMATCH!feeder.news-service.com!postnews.google.com!l18g2000yql.googlegroups.com!not-for-mail From: jacek2v <jacek2v@gmail.com> Newsgroups: pl.comp.lang.python Subject: Re: Interpretowany czy kompilowany? Date: Sat, 21 May 2011 05:47:24 -0700 (PDT) Organization: http://groups.google.com Lines: 114 Message-ID: <2f93f4ca-ccb1-42a5-b199-2d9902ee8629@l18g2000yql.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> NNTP-Posting-Host: 87.205.203.88 Mime-Version: 1.0 X-Trace: posting.google.com 1305982044 14866 127.0.0.1 (21 May 2011 12:47:24 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Sat, 21 May 2011 12:47:24 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: l18g2000yql.googlegroups.com; posting-host=87.205.203.88; posting-account=eZNabgoAAAATP5GyCUr-uXZ_s7vjxVeX User-Agent: G2/1.0 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