Article View: pl.comp.lang.python
Article #28089Re: Interpretowany czy kompilowany?
From: jacek2v
Date: Tue, 24 May 2011 11:25
Date: Tue, 24 May 2011 11:25
119 lines
7433 bytes
7433 bytes
On 23 Maj, 10:53, "Stachu 'Dozzie' K." <doz...@go.eat.some.screws.spammer.invalid> wrote: > > "Siła" to inaczej mówiąc, że lepiej jak jest typowanie niż jak go > > niema. > > Eeee... Nie? C ma słabsze typowanie niż C++, od którego silniejsze > typowanie ma Haskell. Nie, last one tłumaczę :) Mówię o sytuacji: typowanie JEST albo NIE MA. > Nie. Ty zapomniałeś użyć prawidłowo interpunkcji. Brakuje argumentów? Nie jest moim celem zmienianie Twojego poglądu, chciałem tylko porozmawiać, aby też samemu mieć szerszy pogląd. Jak Cię to obraża, nudzi, wkur... albo co innego mniej przyjemnego to daj znać to skończymy - po co się przerzucać prztyczkami? Ani mnie to bawi, ani nic dobrego mi, albo Tobie przyniesie. > To twój program składał się chyba wyłącznie z deklaracji. U mnie nie > wychodzi nawet 10% kodu. Mhh, versus 0% w Python to sporo. Przy 10 000 linii to 1000 linii kontra 0 linii :) > > A co to "formalną automatyczną weryfikacją"? > > Proponuję poszukać w takim razie materiałów. Miłe:) > > 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). > > To może tak wyglądać w małych projektach, gdzie jesteś w stanie > naprodukować i utrzymywać testy dla mniej więcej większości kodu. > W większych projektach przy refaktoryzacji okazuje się że system typów > przynajmniej pokazuje, gdzie jeszcze trzeba poprawić kod, co jest IMO > bardzo dużym zyskiem (tym większym, im większy projekt), a uzupełnienie > kodu o deklaracje typów nie zwiększa jakoś specjalnie jego długości. Może są takie Twoje doświadczenia, moje są takie, że daje "złudne poczucie poprawności". > To chyba w jakichś malutkich projektach. Gdy program robi się duży, > z jednej funkcji którą zmieniasz może korzystać fafnaście innych > modułów. Potem weź szukaj tych modułów i przekopuj się przez kod, żeby > ujednolicić typ danych, na którym ten kod operuje. Może nie stosujesz unit testów? > > I tak każdy moduł/funkcja/ > > metoda przez programistę jest dziesiątki (jeśli nie setki razy) > > uruchomiany/debugowany. Trzeba sobie uświadomić, że kod jest pisany po > > to by był uruchomiony. Nie wyobrażam sobie by programista zrobi commit > > kodu nie uruchomiwszy go, zakładając, że pisze nieomylnie. > > Nie wyobrażam sobie żeby programista był w stanie sprawdzić dokładnie > cały duży projekt, wszystkie wywoływane w nim funkcje. A co ma jedno do drugiego? Widocznie masz inne podejście do pisania programów niż ja. Ja uważam, że interfejsy powinny się nie zmieniać, a jak już musimy je zmienić to z bardzo dużą uwagą - "wolna amerykanka" jest przeważnie zabójcza. > Bzdurzysz, chłopcze. To powinno brzmieć: "Python [...] jest językiem > "dynamicznie typowanym", czyli typowanie ma, tylko jest ono sprawdzane > dopiero przy uruchomieniu". Nie podawane exlicite typy to są w SML-u, > a mimo to język jest statycznie i silnie typowany. O co Ci chodzi, chcesz rozmawiać merytorycznie, czy próbować łapać za słóweczka. Wspominałeś o C++, a co tu ma do tego SML? > Chłopcze, a może tak byś doczytał o polimorfizmie dynamicznym zamiast > pokazywać nieistniejące problemy? W Javie wiadomo od zawsze, że > adresy wszystkich metod są rozwiązywane at runtime. Inaczej w C++, gdzie > musisz powiedzieć jawnie, które metody są rozwiązywane podczas > kompilacji. Chłopcze, chciałeś dowodu i go dostałeś. Nie płacz teraz, że to wszyscy wiedzieli, jak wcześniej nie potrafiłeś tego zrozumieć. Trzymaj fason :) Jest typowanie i nic nie daje. > Nawiasem mówiąc, jak ktoś piszący w Pythonie może nie umieć utrzymać > jednolitego systemu wcinania kodu i miesza spacje z tabulatorami? O_o No args ? > > Zajrzyj na shootout.alioth.debian.org, przekonasz się jak to się > > przekłada na ilość kodu w rzeczywistości. Strona ta zawiera porównanie > > programów (szybkość, zużycie pamięci, ilość linii kodu) rozwiązujących > > ten same problemy w różnych językach programowania. W tej chwili coś > > nie działa ta strona - może jakieś prace trwają i nie mogę przytoczyć > > konkretnego przykładu :). Ale jeśli dobrze pamiętam to wielkość kodu > > java vs python oscyluje między 5:1 do 10:1. Oczywiście nie tylko > > "idiomy" zmniejszają ilość kodu w python. Jest jeszcze brak nawiasów, > > typowania explicite, krótka notacja - chyba wszystko wymieniłem. > > Tylko to wszystko są fistaszki. Rzeczy istotne dla skrócenia kodu, to: > * dobrze przemyślane API bibliotek (w tym: biblioteki standardowej) > * konstrukcje nieprzekładalne na języki innego paradygmatu (słyszał > o domknięciach?) > * zwyczaje programistyczne różnych środowisk (javistów, pythonistów > itd.) Hehehe. Mr Stach, albo "chłopcze" jak wolisz, sam sprowadziłeś dyskusję do tego poziomu. Jak już chyba ktoś kiedyś wspomniał, nastała następująca sytuacja: okopaliśmy się i d. z okopów nie ruszymy :). Starałem się zrozumieć Twój punkt widzenia. Starałem się osiągnąć jakiś merytoryczny poziom dyskusji, ale się nie udało. Pierd... za uszami nie ma sensu. Zatem: EOT Miłego Dnia Jacek
Technical Details
Message-ID:
<1677fe13-1eb6-4a72-8830-c09ff6ec96a4@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> <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> <ird79k$7oa$2@speranza.aioe.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: jacek2v <jacek2v@gmail.com> Newsgroups: pl.comp.lang.python Subject: Re: Interpretowany czy kompilowany? Date: Tue, 24 May 2011 04:25:33 -0700 (PDT) Organization: http://groups.google.com Lines: 153 Message-ID: <1677fe13-1eb6-4a72-8830-c09ff6ec96a4@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> <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> <ird79k$7oa$2@speranza.aioe.org> NNTP-Posting-Host: 87.205.244.228 Mime-Version: 1.0 X-Trace: posting.google.com 1306236333 7597 127.0.0.1 (24 May 2011 11:25:33 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Tue, 24 May 2011 11:25:33 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: x10g2000yqj.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