-
Data: 2013-02-11 00:58:41
Temat: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
Od: Andrzej Jarzabek <a...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 10/02/2013 21:36, Maciej Sobczak wrote:
> W dniu niedziela, 10 lutego 2013 18:53:53 UTC+1 użytkownik Andrzej
> Jarzabek napisał:
>
>> Być może jest to prawda, ale to nie znaczy, że dynamiczny system
>> typów nie pokazuje innych zalet, które są w takich sytuacjach
>> przydatne.
>
> Co z tego, że pokazuje, skoro przez swoją dynamiczność nie dałbym mu
> szansy się wykazać. Coś w stylu: być może Fiat 126p przejawia jakieś
> ciekawe własności podczas przekraczania bariery dźwieku, ale nie
> przekonam się o nich, bo w obawie o swoje bezpieczeństwo w całym
> zakresie poniżej tego, po prostu do niego nie wsiądę. (Nie znaczy to,
> że w ogóle nie wsiądę - może i wsiądę, ale w innym celu.)
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".
>>> 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, różnica powiedzmy jak między programowaniem
obiektowym a funkcyjnym.
>> Daje różne rzeczy, między innymi ułatwia code reuse między różnymi
>> typami danych,
>
> Jak do tej pory jedyny code reuse między różnymi typami widywałem w
> kontenerach
To niewiele widziałeś. W sumie ja też niewiele widziałem, ale reuse poza
kontenerami widziałem.
Ż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.
> dynamiczne. 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.
Serializacja jest tutaj właściwie przyczynkiem do punktu "loose
coupling" - można mieć system rozproszony, którego poszczególne węzły
przekazują sobie zserializowane obiekty i masz różne korzyści typu
łatwiejsze rozbijanie czy scalanie węzłów, ale też to, że możesz
wymienić niektóre części systemu bez wymieniania innych - np. komponent
może zdeserializować obiekt z właściwościami, które nie były częścią
typu w momencie pisania tego komponentu, cośtam zrobić w zależności od
komponentów, które już zna, po czym zserializować go i przesłać dalej
razem ze wszystkimi nieznanymi sobie właściwościami.
Poza tym jest też taki dyanmiczny język specjalnie zaprojektowany do
pisania homogenicznych systemów rozproszonych jakim jest Erlang.
>> programowanie deklaratywne,
>
> Nie widzę związku z dynamicznością.
http://groovy.codehaus.org/Creating+XML+using+Groovy
%27s+MarkupBuilder
http://code.google.com/p/spock/
Całe code-as-data/data-as-code w dialektach Lispa i techniki korzystania
z tego.
>> loose coupling
>
> Daję radę bez dynamicznego systemu typów.
Nie chodzi o to, czy daje radę, tylko czy jest wygodne, łatwe i proste.
>> Z mojego doświadczenia wynika, że w prawie każdym przypadku koszt
>> unit testów jest tańszy od kosztu braku (dobrych) unit testów.
>> Również w językach ze statycznym typowaniem.
>
> W języku statycznym nie potrzebuję unit testu, żeby upewnić się, że
> foo może zawołać bar z podaną listą parametrów. Unit test, który to
> sprawdza, nie jest dobry.
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.
>> Całkiem spore i mocno zmieniające się w czasie serwisy webowe pisze
>> się np. w Pythonie czy Ruby.
>
> https://www.google.pl/search?q=django+exception
>
> Google na to: "Około 3,760,000 wyników (0,15 s)"
>
> 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?
Następne wpisy z tego wątku
- 11.02.13 01:31 Roman W
- 11.02.13 06:04 M.M.
- 11.02.13 09:07 Andrzej Jarzabek
- 11.02.13 10:49 Maciej Sobczak
- 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
Najnowsze wątki z tej grupy
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
Najnowsze wątki
- 2025-06-01 jaki kretyn boziu uśpić :)
- 2025-06-01 Zdolny to legalnego prowadzenia samochodu w Anglii wykluczony z komisji wyborczej w Białymstoku
- 2025-06-01 nie ustąpiła moturowi?
- 2025-05-31 Skoro jest tak dobrze i TANIO to dlaczego jeszcze nie jeździmy na takich akumulatorach?
- 2025-05-31 Warszawa => IT Data Analyst (obszar Power BI) <=
- 2025-05-31 Warszawa => IT Hardware Specialist - Wsparcie i Konfiguracja <=
- 2025-05-31 Środa Wielkopolska => Konsultant wewnętrzny SAP FI/CO <=
- 2025-05-31 Gdańsk => PHP Developer <=
- 2025-05-31 Lublin => Delphi Programmer <=
- 2025-05-31 co to za obcęgi? [OT]
- 2025-05-30 Rondo :)
- 2025-05-30 Warszawa => Senior Account Manager <=
- 2025-05-30 Warszawa => Senior C++ Developer (analiza numeryczna i modelowanie) <=
- 2025-05-30 Gdańsk => Team Lead Data Engineer (Snowflake) <=
- 2025-05-30 Warszawa => Team Lead Data Engineer (obszar Snowflake) <=