-
Data: 2013-02-08 17:45:23
Temat: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
Od: darekm <d...@e...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 2013-02-07 23:51, Andrzej Jarzabek pisze:
>
>
>> W językach wymagających jawnego podawania typu nie ma na to siły i
>> trzeba typ podawać.
>
> 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.
>
>>> Wystarczy, żeby powodować niewygodę. Bo tak czy inaczej musisz w tym
>>> momencie zdefiniować odpowiednie typy.
>> Nie dociera do mnie dlaczego to jest problemem. Albo problem
>> jest nieistotny, albo coś ze mną nie tak :D
>
> 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.
Refaktoryzacja: kompilator powie Ci gdzie NIE możesz użyć nowej
funkcji/struktury
>
>> Andrzej Jarzabek wrote:
>>> fun foo(p)
>>> {
>>> return (p.pole)/2
>>> }
>>
>> Idealne na hashmapę lub funkcję wirtualną.
>>
>> foo( hash_map ) {
>> return hash_map["pole"] / 2;
>> }
>>
>> foo( *object ) {
>> return object->value() / 2;
>> }
>
> 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.
Po drugie to kompilator zabroni mi wywołać
foo(foo(c))
kwestia czy lepiej mieć większe ograniczenia i mniejsze zagrożenie
nieuprawnionego użycia, czy mniej ograniczeń , mniej kodu i większe
zagrożenie nieuprawnionego użycia?
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?
--
Darek
Następne wpisy z tego wątku
- 08.02.13 17:49 Andrzej Jarzabek
- 08.02.13 18:14 Andrzej Jarzabek
- 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
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