Article View: pl.comp.lang.python
Article #28050Re: Interpretowany czy kompilowany?
From: Stachu 'Dozzie' K.
Date: Tue, 17 May 2011 19:03
Date: Tue, 17 May 2011 19:03
71 lines
4789 bytes
4789 bytes
On 2011-05-17, jacek2v <jacek2v@gmail.com> wrote: >> Chodzi o coś zupełnie innego. Typowy błąd początkujących programistów: >> branie implikacji za równoważność. >> "Jeśli program jest dobry, to typy się zgadzają." >> Odwracając implikację: >> "Jeśli typy się nie zgadzają, to program nie jest dobry." > Bardziej poprawnie powinno być: jeśli typy się zgadzają to jest duża > szansa, że kompilator skompiluje :) Bardziej poprawnie od którego? Bo jakoś nie widać do czego pijesz. >> Owszem, great. Kompilator odwalił za ciebie brudną robotę ze wstępnym >> sprawdzeniem poprawności i wybronił cię przed koniecznością uruchamiania >> programu tylko po to, żebyś znalazł hasz tam gdzie miała być krotka. > 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ć). 2. Kompilacja, jako operacja wykonywana na kodzie źródłowym przez automat, jest dokładniejsza od kontrolnego uruchomienia aplikacji. Sprawdzisz za jednym zamachem wszystkie możliwe ścieżki wykonania w blokach kontrolnych? Ekstrapolując twoje proponowane podejście "jeden ruch mniej", może darujmy sobie testowanie aplikacji? Kolejny ruch mniej. > Jak użyjesz stringów zamiast napisania/użycia klas to żadne typowanie > nie obroni :) Eeeee... że co? >> 30kloc, przy zmieniającym się frameworku o który projekt był oparty. >> Wyszukiwanie miejsc gdzie trzeba poprawiać kod żeby był zgodny >> z frameworkiem było bardzo uciążliwe, bo trzeba było po prawie każdej >> poprawce uruchamiać aplikację ponownie. > No tu problem leży gdzieś indziej - parafrazując klasyka: Puchatka :). > Framework jak trochę nazwa sugeruje powinien być w miarę niezmienny bo > wtedy i Święty Typ Najwyższy nie pomoże :) Ano nie pomoże. Ale statyczna kontrola typów by sporo ułatwiła. > A tak poza tym wątkiem to często się zapomina, że Python to nie tylko > skryptowy język, ale język obdarzony niesamowicie zwięzłą, a > jednocześnie czytelną składnią. A co to ma do rzeczy? Mówimy o statycznym systemie typów, a nie o tym czy składnia jest zwięzła. Zresztą zwięzłość składni nie ma specjalnego wpływu na długość kodu w większych projektach. > Polecam porównanie http://shootout.alioth.debian.org/. > Krótszy i przez to łatwiejszy do ogarnięcia kod oznacza mniej > czytania, mniej miejsc do popełnienia błędów itd. > Szczerze mówiąc lubiłem Javę, ale nie podobało mi się w niej łatwe > przekraczanie 80 znaków w linii :) To nie wina języka, że programiści się nie mieszczą w 80 kolumnach, tylko powszechnie przyjętych konwencji, prawie wymuszanych przez bibliotekę standardową (bo weź używaj kontenerów bez tych konwencji). A najbardziej programistów, bo w ogóle nie myślą o tym jak kod zmieścić na 80 znakach (bo przecież od dawna mamy monitory panoramiczne). -- Secunia non olet. Stanislaw Klekot
Technical Details
Message-ID:
<iqugpk$vbu$3@solani.org>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!feeder.erje.net!weretis.net!feeder1.news.weretis.net!news.solani.org!.POSTED!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>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!feeder.erje.net!weretis.net!feeder1.news.weretis.net!news.solani.org!.POSTED!not-for-mail From: "Stachu 'Dozzie' K." <dozzie@go.eat.some.screws.spammer.invalid> Newsgroups: pl.comp.lang.python Subject: Re: Interpretowany czy kompilowany? Date: Tue, 17 May 2011 19:03:16 +0000 (UTC) Organization: solani.org Lines: 71 Message-ID: <iqugpk$vbu$3@solani.org> 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> Mime-Version: 1.0 X-Trace: solani.org 1305658996 32126 eJwFwQkBwDAIA0BLhfKscoAE/xJ25zckJi08zNe3McGdcQWB8/WTW4l6ZjyTwtImSkBTgesPSpoSbA== (17 May 2011 19:03:16 GMT) X-Complaints-To: abuse@news.solani.org NNTP-Posting-Date: Tue, 17 May 2011 19:03:16 +0000 (UTC) User-Agent: slrn/pre0.9.9-111 (Linux) X-User-ID: eJwFwYcBwDAIA7CXGMYk57SM/0+IFE5lJRhEbOyqaa2duftXF/IWCbC9TOZEu4hPoD83EeQDJIcQyA== Cancel-Lock: sha1:v5x1zN3bCVP2E21Uk+Fc3KBfR/Y= X-NNTP-Posting-Host: eJwNyscBwDAIBLCVwOEo41DM/iM4egufsraJQgWLLRNfIBCVd3wjKKUug/4TMVboPAxtmpHjDxuSEOk= Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit