-
Data: 2013-02-10 18:53:53
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 11:12, Maciej Sobczak wrote:
>
> Moim zdaniem właśnie statyczny system typów najbardziej pokazuje
> swoje zalety właśnie wtedy, gdy należy przerobić istniejący kod -
> wszystko jedno, czy w celu refaktoryzacji czy w celu rozszerzenia
> albo zmiany funkcjonalności.
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.
> 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ą.
> Dynamiczny system typów
> (i bardziej ogólnie: dynamiczna kultura w procesie programowania, bo
> nie chodzi tylko o typy, ale też o to, czy np. w danym pakiecie w
> ogóle istnieje jakaś funkcja, itd.) nie daje mi tu żadnej pomocy -
> mogę wywalić z projektu cały plik i udawać, że nic się nie stało. To
> prowadzi do tzw. fałszywego poczucia bezpieczeństwa.
Daje różne rzeczy, między innymi ułatwia code reuse między różnymi
typami danych, programowanie deklaratywne, loose coupling i różne inne
rzeczy.
> (Tak, słyszałem o unit testach. Znam również ich realny koszt i
> najchętniej posługuję się tą metodą, która w danej sytuacji jest
> tańsza.
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.
> Przy opisie związków strukturalnych między bytami w programie
> statyczny system typów jest *znacznie* tańszy, niż unit testy.)
zależy jakich związków stukturalnych. Znane mi systemy typów słabo
wspierają związki typu "prawie to samo co...", "naczęściej jest
rodzajem...", "staje się ... w momencie ...".
> Zależnie od projektu, jedno bądź drugie ma większy sens. Granicą
> podziału wydaje się być właśnie to, czy dany projekt może być w
> przyszłości przerabiany albo refaktoryzowany. Osobiście: jeśli widzę,
> że dany projekt zajmie więcej niż jeden plik, to nie piszę go w
> języku dynamicznym.
Całkiem spore i mocno zmieniające się w czasie serwisy webowe pisze się
np. w Pythonie czy Ruby.
Następne wpisy z tego wątku
- 10.02.13 22:30 M.M.
- 10.02.13 22:36 Maciej Sobczak
- 11.02.13 00:58 Andrzej Jarzabek
- 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.
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- 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??
Najnowsze wątki
- 2025-02-17 Kraków => MS Dynamics 365BC/NAV Developer <=
- 2025-02-17 Chrzanów => Programista NodeJS <=
- 2025-02-17 Warszawa => Node.js / Fullstack Developer <=
- 2025-02-17 Białystok => System Architect (Java background) <=
- 2025-02-17 Białystok => Solution Architect (Java background) <=
- 2025-02-17 Gliwice => Team Lead / Tribe Lead FrontEnd <=
- 2025-02-17 Gdańsk => PHP Developer <=
- 2025-02-17 Warszawa => Senior ASP.NET Developer <=
- 2025-02-17 Gliwice => Business Development Manager - Network and Network Security
- 2025-02-17 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2025-02-17 Odśnieżanie samochodu
- 2025-02-17 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-02-17 Dęblin => JavaScript / Node / Fullstack Developer <=
- 2025-02-17 Pompiarze...
- 2025-02-16 PV teraz