-
Data: 2013-02-11 10:49:54
Temat: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
Od: Maciej Sobczak <s...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie 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
- 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 <=