-
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?
Następne wpisy z tego wątku
- 08.02.13 18:52 M.M.
- 08.02.13 18:52 Andrzej Jarzabek
- 08.02.13 19:18 Andrzej Jarzabek
- 08.02.13 21:56 darekm
- 08.02.13 22:11 darekm
- 09.02.13 14:22 Andrzej Jarzabek
- 09.02.13 15:12 M.M.
- 09.02.13 16:29 AK
- 09.02.13 16:31 AK
- 09.02.13 16:35 AK
- 09.02.13 16:37 AK
- 09.02.13 17:01 M.M.
- 09.02.13 18:45 Andrzej Jarzabek
- 09.02.13 19:53 M.M.
- 09.02.13 23:21 Andrzej Jarzabek
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-11-24 Aby WKOOOORWIĆ ekofaszystów ;-)
- 2024-11-22 OC - podwyżka
- 2024-11-22 wyszedł z domu bez buta
- 2024-11-22 Bieda hud.
- 2024-11-24 DS1813-10 się psuje
- 2024-11-23 Białystok => Inżynier bezpieczeństwa aplikacji <=
- 2024-11-23 Szczecin => QA Engineer <=
- 2024-11-23 Warszawa => SEO Specialist (15-20h tygodniowo) <=
- 2024-11-22 Warszawa => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-11-22 Warszawa => Senior Account Manager <=
- 2024-11-22 Warszawa => Key Account Manager <=
- 2024-11-22 Warszawa => DevOps Specialist <=
- 2024-11-22 Kraków => IT Expert (Network Systems area) <=
- 2024-11-22 Warszawa => Infrastructure Automation Engineer <=
- 2024-11-22 Warszawa => Presales / Inżynier Wsparcia Technicznego IT <=