eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingJakie typowanie jest najlepsze i dlaczego statyczne?Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!news.chmurka.net!.POSTED!not-for-mail
    From: Andrzej Jarzabek <a...@g...com>
    Newsgroups: pl.comp.programming
    Subject: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
    Date: Sun, 10 Feb 2013 23:58:41 +0000
    Organization: news.chmurka.net
    Lines: 106
    Message-ID: <kf9c7i$61o$1@somewhere.invalid>
    References: <f...@g...com>
    <s...@j...net>
    <1...@g...com>
    <3...@b...softax.pl>
    <b...@g...com>
    <k...@b...softax.pl>
    <4...@g...com>
    <keun5d$lsh$1@somewhere.invalid>
    <f...@g...com>
    <keuri4$nje$1@somewhere.invalid>
    <1...@g...com>
    <keuusd$ovj$1@somewhere.invalid>
    <7...@g...com>
    <kf1b5r$cvj$1@somewhere.invalid>
    <51152b96$0$1306$65785112@news.neostrada.pl>
    <3...@x...googlegroups.com>
    <4...@g...com>
    <kf61vl$fh0$1@somewhere.invalid>
    <c...@g...com>
    <kf8mrj$piq$1@somewhere.invalid>
    <3...@g...com>
    NNTP-Posting-Host: 5ac53cfe.bb.sky.com
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: somewhere.invalid 1360540723 6200 90.197.60.254 (10 Feb 2013 23:58:43 GMT)
    X-Complaints-To: abuse-news.(at).chmurka.net
    NNTP-Posting-Date: Sun, 10 Feb 2013 23:58:43 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130107
    Thunderbird/17.0.2
    In-Reply-To: <3...@g...com>
    X-Authenticated-User: ajarzabek
    Xref: news-archive.icm.edu.pl pl.comp.programming:202002
    [ ukryj nagłówki ]

    On 10/02/2013 21:36, Maciej Sobczak wrote:
    > W dniu niedziela, 10 lutego 2013 18:53:53 UTC+1 użytkownik Andrzej
    > Jarzabek napisał:
    >
    >> Być może jest to prawda, ale to nie znaczy, że dynamiczny system
    >> typów nie pokazuje innych zalet, które są w takich sytuacjach
    >> przydatne.
    >
    > Co z tego, że pokazuje, skoro przez swoją dynamiczność nie dałbym mu
    > szansy się wykazać. Coś w stylu: być może Fiat 126p przejawia jakieś
    > ciekawe własności podczas przekraczania bariery dźwieku, ale nie
    > przekonam się o nich, bo w obawie o swoje bezpieczeństwo w całym
    > zakresie poniżej tego, po prostu do niego nie wsiądę. (Nie znaczy to,
    > że w ogóle nie wsiądę - może i wsiądę, ale w innym celu.)

    To jest argument nazasadzie: "może i ta cała obiektowość ma jakieś
    zalety przy pisaniu dużych systemów, ale co z tego, skoro nidgy bym nie
    zdecydował się użyć jej do pisania czegoś takiego".

    >>> Statyczny system typów pozwala wyrazić związki między różnymi
    >>> bytami w programie, dzięki czemu szybciej widać jaki jest zakres
    >>> wprowadzanych zmian.
    >>
    >> Pozwala, ale są inne sposoby, które też pozwalają.
    >
    > Droższe?

    Nie wiem nawet, jak to porównać. Chodzi o zupełnie inny paradygmat
    pisania programów, różnica powiedzmy jak między programowaniem
    obiektowym a funkcyjnym.

    >> Daje różne rzeczy, między innymi ułatwia code reuse między różnymi
    >> typami danych,
    >
    > Jak do tej pory jedyny code reuse między różnymi typami widywałem w
    > kontenerach

    To niewiele widziałeś. W sumie ja też niewiele widziałem, ale reuse poza
    kontenerami widziałem.

    Żeby nie było: w C++ da się osiągnąć niezły code reuse, ale czasem
    sensowne zrobienie tego wymaga ostrego lawirowania między dziedziczeniem
    klas a szablonami.

    > dynamiczne. Innym przykładem może być np. serializacja, ale ponieważ
    > temat serializacji pojawia się w systemach rozproszonych, które
    > zwykle są heterogeniczne, to i tutaj mało mnie interesuje, co mi ma
    > do zaoferowania jakiś jeden język, bo zwykle co by nie miał, to i tak
    > nie rozwiązuje to problemu heterogeniczności.

    Można tak zrobić system rozproszony, żeby nie był heterogeniczny.
    Serializacja jest tutaj właściwie przyczynkiem do punktu "loose
    coupling" - można mieć system rozproszony, którego poszczególne węzły
    przekazują sobie zserializowane obiekty i masz różne korzyści typu
    łatwiejsze rozbijanie czy scalanie węzłów, ale też to, że możesz
    wymienić niektóre części systemu bez wymieniania innych - np. komponent
    może zdeserializować obiekt z właściwościami, które nie były częścią
    typu w momencie pisania tego komponentu, cośtam zrobić w zależności od
    komponentów, które już zna, po czym zserializować go i przesłać dalej
    razem ze wszystkimi nieznanymi sobie właściwościami.

    Poza tym jest też taki dyanmiczny język specjalnie zaprojektowany do
    pisania homogenicznych systemów rozproszonych jakim jest Erlang.

    >> programowanie deklaratywne,
    >
    > Nie widzę związku z dynamicznością.

    http://groovy.codehaus.org/Creating+XML+using+Groovy
    %27s+MarkupBuilder
    http://code.google.com/p/spock/

    Całe code-as-data/data-as-code w dialektach Lispa i techniki korzystania
    z tego.

    >> loose coupling
    >
    > Daję radę bez dynamicznego systemu typów.

    Nie chodzi o to, czy daje radę, tylko czy jest wygodne, łatwe i proste.

    >> Z mojego doświadczenia wynika, że w prawie każdym przypadku koszt
    >> unit testów jest tańszy od kosztu braku (dobrych) unit testów.
    >> Również w językach ze statycznym typowaniem.
    >
    > W języku statycznym nie potrzebuję unit testu, żeby upewnić się, że
    > foo może zawołać bar z podaną listą parametrów. Unit test, który to
    > sprawdza, nie jest dobry.

    W jęyku dynamicznie typowanym też nie potrzebujesz takiego unit testu,
    bo skoro masz test, który testuje, to, co robi foo, kiedy wywołuje bar z
    tą liczbą parametrów, to on automatycznie sprawdza też, że może zawołać
    z taką listą, z jaką woła.

    >> Całkiem spore i mocno zmieniające się w czasie serwisy webowe pisze
    >> się np. w Pythonie czy Ruby.
    >
    > https://www.google.pl/search?q=django+exception
    >
    > Google na to: "Około 3,760,000 wyników (0,15 s)"
    >
    > Nabijam się, ale na poważnie: nie raz dostałem po gałach różnymi
    > komunikatami, które ładnie zdradzały w czym dany serwis został
    > ulepiony, więc potwierdzam: faktycznie, masz rację, pisze się.

    I co, wyjątków z Javy nie widujesz?

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: