-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!goblin1!goblin.stu.neva.ru!news2.arglkargh.de!zen.net.uk!dedekind.zen.
co.uk!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02.news.neos
trada.pl!news.neostrada.pl.POSTED!not-for-mail
Date: Fri, 08 Feb 2013 17:45:23 +0100
From: darekm <d...@e...com>
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:15.0) Gecko/20120907 Thunderbird/15.0.1
MIME-Version: 1.0
Newsgroups: pl.comp.programming
Subject: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
References: <f...@g...com>
<kem1vl$8n2$1@somewhere.invalid>
<7...@g...com>
<8...@g...com>
<6...@g...com>
<5...@g...com>
<s...@j...net>
<b...@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>
In-Reply-To: <kf1b5r$cvj$1@somewhere.invalid>
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 76
Message-ID: <51152b96$0$1306$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 79.187.5.190
X-Trace: 1360341911 unt-rea-a-02.news.neostrada.pl 1306 79.187.5.190:4797
X-Complaints-To: a...@n...neostrada.pl
Xref: news-archive.icm.edu.pl pl.comp.programming:201954
[ ukryj 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
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- 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
Najnowsze wątki
- 2025-07-23 Gdańsk => Programista Delphi <=
- 2025-07-23 Gdańsk => Programista Mainframe (z/OS, Assembler) <=
- 2025-07-23 Warszawa => Starszy inżynier DevOps (AWS) <=
- 2025-07-23 Gdańsk => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-23 Kraków => Senior Fullstack Engineer (Low-Code Platform) <=
- 2025-07-23 Wrocław => Senior Key Account Manager IT <=
- 2025-07-23 Trójmiasto => Head of Social Media <=
- 2025-07-23 Rzeszów => Spedytor Międzynarodowy <=
- 2025-07-23 Lublin => ERP Implementation Consultant (AP Module) <=
- 2025-07-23 Środa Wielkopolska => SAP FI/CO Internal Consultant <=
- 2025-07-23 Warszawa => Inżynier oprogramowania .Net <=
- 2025-07-23 Kraków => Kotlin Developer <=
- 2025-07-23 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-07-23 Warszawa => Java Developer <=
- 2025-07-23 Wrocław => Konsultant wdrożeniowy (systemy controlingowe) <=