eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingJakie typowanie jest najlepsze i dlaczego statyczne?Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
  • X-Received: by 10.49.127.198 with SMTP id ni6mr509117qeb.23.1360343685377; Fri, 08
    Feb 2013 09:14:45 -0800 (PST)
    MIME-Version: 1.0
    X-Received: by 10.49.127.198 with SMTP id ni6mr509117qeb.23.1360343685377; Fri, 08
    Feb 2013 09:14:45 -0800 (PST)
    Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!goblin1!goblin.stu.neva.ru!news.glorb.com!p13no2912983qai.0!news-out.g
    oogle.com!k2ni21154qap.0!nntp.google.com!p13no2912982qai.0!postnews.google.com!
    x13g2000vby.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Fri, 8 Feb 2013 09:14:45 -0800 (PST)
    Complaints-To: g...@g...com
    Injection-Info: x13g2000vby.googlegroups.com; posting-host=80.254.146.36;
    posting-account=jr5y-woAAAAWidgVjrSJ6j8m650CTb-v
    NNTP-Posting-Host: 80.254.146.36
    References: <f...@g...com>
    <5...@g...com>
    <s...@j...net>
    <b...@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>
    User-Agent: G2/1.0
    X-HTTP-UserAgent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like
    Gecko) Chrome/24.0.1312.56 Safari/537.17,gzip(gfe)
    Message-ID: <3...@x...googlegroups.com>
    Subject: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
    From: Andrzej Jarzabek <a...@g...com>
    Injection-Date: Fri, 08 Feb 2013 17:14:45 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:201956
    [ ukryj nagłówki ]

    On Feb 8, 4:45 pm, darekm <d...@e...com> wrote:
    > W dniu 2013-02-07 23:51, Andrzej Jarzabek pisze:
    >
    > > A w językach z dynamicznym systemem typów nie trzeba. I na tym polega
    > > różnica - w C++ tego po prostu nie zrobisz i tyle, żaden QVariant czy
    > > hashmap ci nie pomoże.
    >
    > To że zawsze możesz użyć wszystko ma swoją drugą stronę: niczego nie
    > możesz zabronić.  Przy statycznym typowaniu każda funkcja ma
    > zdefiniowane dla jakich typów i w jakim kontekście jest poprawna i w
    > innych jej nie użyjesz. A wraz ze wzrostem  programu liczba kontekstów
    > niepoprawnych rośnie szybciej niż tych poprawnych.

    Można ograniczyć ten efekt odpowiednio projektując kod.

    > > Bo zajmuje czas, bo wprowadza szum do kodu, bo utrudnia refaktoryzację.
    > > Może nie zawsze, ale przynajmniej niekiedy.
    >
    > Co zajmuje czas: wklepanie kodu? Przecież to jest czas pomijalny.

    Wymyślenie zestawu typów i relacji między nimi, odpowiadające
    problemowi. Przerabianie tego zestawu w miarę jak problem się zmienia.

    > Refaktoryzacja: kompilator powie Ci gdzie NIE możesz użyć nowej
    > funkcji/struktury

    W pewnych sytuacjach tak, ale czasem ci powie, że błąd, bo typ X nie
    istnieje i faktycznie, po refaktoryzacji nie istnieje.

    > > Wprowadzasz duplikację. No i pojawiają się dalsze problemy, co na
    > > przykład, jeśli chcesz skopiować structa i owej kopii dołożyć kilka
    > > nowych pól?
    >
    > Tylko wtedy gdy to ma sens, mogę zawsze przekazywać nie obiekty a pole.

    Przykład był przecież uproszczony, jeśli funkcja korzysta z siedmiu
    pól, to przekażesz jej siedem argumentów?

    > Po drugie to kompilator zabroni mi wywołać
    >    foo(foo(c))

    Nawet jeśli właśnie foo(foo(c)) jest dokładnie tym, co chcesz zrobić.

    > > Piszesz konwersję kopiującą wszystkie składowe do hashmapy?
    > > I tak dla każdego typu? I nie widzisz w tym nic niewygodnego?
    >
    > W życiu też możesz używać wygodnego samochodu rodzinnego do którego
    > zapakujesz na dowolnym parkingu kilka osób, psa i śniadanie i dojedziesz
    > nad (prawie) dowolne jezioro. Z drugiej strony masz tiry, które
    > zapakujesz wyłącznie na rampie wyłącznie paletami wyłącznie mechanicznie
    > i można jeździć wyłącznie uprawnionymi drogami. Dlaczego tak skoro tak
    > niewygodnie i restrykcyjnie?

    Nie bardzo rozumiem, jak to się ma do tematu dyskusji. Chcesz
    powiedzieć, że samochody rodzinne są niepotrzebne, skoro można rodzinę
    zapakować w dwa tiry i wybrac sobie takie jezioro, do którego prawie
    dojeżdża uprawniona droga?

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: