-
X-Received: by 10.49.75.9 with SMTP id y9mr928104qev.9.1360576194520; Mon, 11 Feb
2013 01:49:54 -0800 (PST)
X-Received: by 10.49.75.9 with SMTP id y9mr928104qev.9.1360576194520; Mon, 11 Feb
2013 01:49:54 -0800 (PST)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!
f6no9454547pbd.0!news-out.google.com!oq8ni3787pbb.0!nntp.google.com!c4no9443583
pbz.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Mon, 11 Feb 2013 01:49:54 -0800 (PST)
In-Reply-To: <kf9c7i$61o$1@somewhere.invalid>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=195.182.34.201;
posting-account=bMuEOQoAAACUUr_ghL3RBIi5neBZ5w_S
NNTP-Posting-Host: 195.182.34.201
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: <8...@g...com>
Subject: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
From: Maciej Sobczak <s...@g...com>
Injection-Date: Mon, 11 Feb 2013 09:49:54 +0000
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
Xref: news-archive.icm.edu.pl pl.comp.programming:202008
[ ukryj nagłówki ]W dniu poniedziałek, 11 lutego 2013 00:58:41 UTC+1 użytkownik Andrzej Jarzabek
napisał:
> > Co z tego, że pokazuje, skoro przez swoją dynamiczność nie dałbym mu
> > szansy się wykazać.
>
> 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".
Tak, to jest dokładnie taki argument. Poza tym, że obiektowość powstała z myślą o
dużych systemach i sama w sobie nie ma cech, który by były z nimi sprzeczne.
> >>> 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,
Droższy? Bardziej efektywny? Czy jedynie "też pozwala"?
Jeśli coś ma być inaczej, to ma być po coś i ma się opłacać.
> > Jak do tej pory jedyny code reuse między różnymi typami widywałem w
> > kontenerach
>
> To niewiele widziałeś.
Możliwe, ale nie czuję się tym pokrzywdzony a skoro tak, to najwyraźniej nic nie
straciłem, że nie widziałem.
Poproszę o lepszy argument, niż "niewiele widziałeś".
> Ż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.
Statyczne typowanie ma swój koszt. Pytanie, jaki jest końcowy bilans.
> > 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.
Dlaczego? Po co? Żeby móc powiedzieć, że jakiś jeden język jest OK?
Jednym z celów rozpraszania jest wykorzystanie zalet różnych technologii, bo różne
technologie mają swoje mocne punkty w różnych częściach całości.
Czyli znowu mamy podobny argument: co z tego, że język dynamiczny daje fajną
serializację w homogenicznym systemie rozproszonym, skoro nie robię homogenicznych
systemów rozproszonych. Ten argument może być niewygodny, ale jest realny i oznacza,
że w realu wartość dodana dynamicznego systemu typów jest mniejsza, niż się
reklamuje.
> Poza tym jest też taki dyanmiczny język specjalnie zaprojektowany do
> pisania homogenicznych systemów rozproszonych jakim jest Erlang.
I jego też nie użyję z powodu tego samego argumentu?
Tak, wiem, że ktoś takie systemy pisze. Ale *ja* nie piszę, więc Erlang rozwiązuje
problem, którego nie mam a tych, które mam, nie rozwiązuje.
> >> loose coupling
>
> > Daję radę bez dynamicznego systemu typów.
>
> Nie chodzi o to, czy daje radę, tylko czy jest wygodne, łatwe i proste.
Całe programowanie obiektowe powstało po to, żeby mieć loose coupling, więc nie widzę
tu problemu. Realizacja OO w mainstreamowych językach sprawia, że jest to zarówno
wygodne, łatwie i proste.
> 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.
Zakładając pokrycie 100%. Bo tylko wtedy faktycznie zawoła.
Testy z pokryciem 100% są bardzo kosztowne.
> > 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?
A czy ja gdzieś w tej dyskusji napisałem, że Java jest dla mnie statycznym językiem?
(Wyprzedzam następne pytanie: w C++ i w Adzie też wyjątki widuję.)
--
Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com
Następne wpisy z tego wątku
- 11.02.13 17:24 M.M.
- 11.02.13 18:41 firr kenobi
- 11.02.13 18:55 M.M.
- 11.02.13 19:18 firr kenobi
- 12.02.13 00:19 Andrzej Jarzabek
- 12.02.13 00:23 Andrzej Jarzabek
- 12.02.13 00:36 Andrzej Jarzabek
- 12.02.13 01:15 M.M.
- 12.02.13 02:09 Andrzej Jarzabek
- 12.02.13 08:41 Adam Wysocki
- 12.02.13 10:10 AK
- 12.02.13 10:19 Maciej Sobczak
- 12.02.13 20:14 Andrzej Jarzabek
- 12.02.13 22:28 Andrzej Jarzabek
- 12.02.13 22:42 M.M.
Najnowsze wątki z tej grupy
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 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
Najnowsze wątki
- 2025-01-04 Zbieranie danych przez www
- 2025-01-04 reverse engineering i dodawanie elementów do istniejących zamkniętych produktów- legalne?
- 2025-01-04 w Nowym Roku 2025r
- 2025-01-04 Warszawa => Specjalista ds. IT - II Linia Wsparcia <=
- 2025-01-04 Warszawa => Java Developer <=
- 2025-01-04 Warszawa => Spedytor Międzynarodowy <=
- 2025-01-04 Warszawa => System Architect (Java background) <=
- 2025-01-04 Wrocław => Application Security Engineer <=
- 2025-01-04 Chrzanów => Specjalista ds. public relations <=
- 2025-01-04 Katowice => Key Account Manager (ERP) <=
- 2025-01-03 Problem z odczytem karty CF
- 2025-01-03 Jazda z Warszawy do Krakowa teslą
- 2025-01-03 Wrocław => Konsultant Wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-01-03 Warszawa => International Freight Forwarder <=
- 2025-01-03 Mińsk Mazowiecki => Area Sales Manager OZE <=