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.34.135 with SMTP id z7mr832976qei.1.1360559098355; Sun, 10 Feb
    2013 21:04:58 -0800 (PST)
    X-Received: by 10.49.34.135 with SMTP id z7mr832976qei.1.1360559098355; Sun, 10 Feb
    2013 21:04:58 -0800 (PST)
    Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
    .pl!news.nask.org.pl!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!nx02.ia
    d01.newshosting.com!newshosting.com!69.16.185.11.MISMATCH!npeer01.iad.highwinds
    -media.com!news.highwinds-media.com!feed-me.highwinds-media.com!p13no7896820qai
    .0!news-out.google.com!k2ni21154qap.0!nntp.google.com!p13no7896812qai.0!postnew
    s.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Sun, 10 Feb 2013 21:04:58 -0800 (PST)
    In-Reply-To: <kf9c7i$61o$1@somewhere.invalid>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=89.229.34.123;
    posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
    NNTP-Posting-Host: 89.229.34.123
    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>
    <kf9c7i$61o$1@somewhere.invalid>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <f...@g...com>
    Subject: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
    From: "M.M." <m...@g...com>
    Injection-Date: Mon, 11 Feb 2013 05:04:58 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    X-Received-Bytes: 4628
    Xref: news-archive.icm.edu.pl pl.comp.programming:202004
    [ ukryj nagłówki ]

    W dniu poniedziałek, 11 lutego 2013 00:58:41 UTC+1 użytkownik Andrzej Jarzabek
    napisał:
    > 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".
    Argument "ma zalety bo używam" też niewiele wnosi :)

    Właśnie 2-3 godziny temu stanąłem w obliczu takiej refaktoryzacji ze
    zmianą struktury danych dla algorytmów, a więc musiałem także
    poprawiać algorytmy. Konieczność wynikła z nieudanej próby optymalizacji.
    Zamiast globalnie trzymać dane w pamięci, a potem filtrowanie/sortowanie
    zrobić na wskaźnikach, to dla algorytmów przygotowałem specjalistyczne
    struktury danych. Globalne dane były konwertowane na specjalistyczne,
    liniowe tablice w pamięci. Miałem nadzieję że dzięki sekwencyjnemu
    dostępowi do pamięci i mniejszym rozmiarom specjalistycznych struktur
    program zadziała szybciej. Niestety nie udało się, narzut na konwersje i
    kopiowane pożarł cały zysk.

    No więc stanąłem w obliczu tej refaktoryzacji i myślę sobie, jakbym miał
    język z dynamicznym typowaniem, to pomimo wielu błędów w pozostałych
    częściach programu, bym mógł program uruchomić. Bym mógł uruchomić te
    działające części, a w trakcie uruchomienia może zdołałbym zrobić
    jeszcze jakiś eksperyment z optymalizacją. Ze statycznym typowaniem nie
    mogłem na to sobie pozwolić, musiałem wszystkie użycia specjalistycznych
    struktury zamienić na tablice wskaźników. Myślę sobie dalej: znalazłem
    zaletę dynamicznego typowania.

    Jednak po chwili druga myśl: przecież kompilator przez 2-3 godziny krzyczał, że
    jest źle. Bez tej pomocy bym pewnie te wszystkie użycia znajdował przez
    tydzień albo dłużej. Co więcej, środowisko uruchomieniowe odsyłałoby mnie
    do linii w której błąd się uaktywnił, a do złego użycia bym musiał dochodzić
    debugerem po stosie wielokrotnych wywołań funkcji. Tutaj kompilator pokazał
    mi od razu gdzie nie ma zdefiniowanych typów i od razu byłem w linii
    która wymagała poprawek.

    Podsumowując, moje stanowisko nie zmieniło się, nie widzę tych zalet,
    choć niewykluczone że są.

    Pozdrawiam

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: