🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Interpretowany czy kompilowany?

#28089
From: jacek2v
Date: Tue, 24 May 2011 11:25
119 lines
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-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> <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