-
81. Data: 2013-02-07 02:09:28
Temat: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
Od: Andrzej Jarzabek <a...@g...com>
On 07/02/2013 00:36, M.M. wrote:
> W dniu czwartek, 7 lutego 2013 01:12:47 UTC+1 użytkownik Andrzej Jarzabek napisał:
>> No ale nie możesz w ten sposób wstawić dowolnej struktury czy mapy.
> Jak na razie wstawiam dowolne potrzebne.
>
>> Możesz przypisać boost::function<int(int)>?
> Czy to na pewno jest potrzebne, albo chociaż zapewnia w jakimś
> przypadku wygodę?
A więc nie moższ.
>> Nie ma tej wygody, bo na zmiennej typu Variant możesz wywoływać tylko
>> mettody typu Variant - czyli żadnych użytecznych dla danych, na których
>> faktycznie chcesz wykonywać jakieś operacje.
> Nie wiem o jaką użyteczność chodzi, ale może to by załatwiała metoda
> wirtualna?
Variant policz_cene(Variant transakcja)
{
return transakcja.kwota * kurs_walut(transkacja.waluta,
moja_waluta);
}
W tym momencie piszę algorytm liczący kwotę, jakimi typami są
transakcje, kwoty i waluty jeszcze nie zdecydowałem, zresztą mogę to
wiele razy refaktoryzować. Może transakcja będzie konstruowana z
elementu XML, który ma podelementy 'kwota' i 'waluta'.
>> Żeby zrobić coś więcej
>> musisz sobie przerzutować, a żeby przerzutować musisz dokładnie
>> wiedzieć, na co chcesz rzutować.
> Nie trzeba wiedzieć aż tak dokładnie, wystarczy rzutować na klasę z
> czystą metodą wirtualną, zwykle na tą najwyższą w hierarchii dziedziczenia.
Wystarczy, żeby powodować niewygodę. Bo tak czy inaczej musisz w tym
momencie zdefiniować odpowiednie typy.
>> Nie możesz mieć tego samego kodu, który zadziała zarówno na hashmapie z
>> elementem o nazwie 'pole' jak i na obiekcie typu (klasy) mającego pole o
>> nazwie 'pole'.
> O jakie różnice chodzi?
struct A
{
def pole
def polozenie
[...]
}
struct B
{
def pole = 0
}
var c = parse_xml('<root><pole>31</pole></root>')
fun foo(p)
{
return (p.pole)/2
}
foo(new A)
foo(new B)
foo(c)
-
82. Data: 2013-02-07 06:05:15
Temat: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
Od: Roman W <b...@g...pl>
On Wed, 6 Feb 2013 15:57:09 +0000 (UTC), "Stachu 'Dozzie' K."
<d...@g...eat.some.screws.spammer.invalid> wrote:
> Typy prymitywne są wyjątkiem w javowym systemie typów. Niewygodnym
nie
> jest niemożliwość dodania im metod, tylko w ogóle konieczność
dodatkowej
> obsługi tych wyjątkowych konstrukcji.
No ale bez prymitywnego "double" nie istnialaby numeryka w Javie.
RW
-
83. Data: 2013-02-07 08:35:28
Temat: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
Od: firr kenobi <p...@g...com>
>
>
> Typowanie dynamiczne zapewnia bardziej zwartą składnię z jednej strony, a
>
> okupione jest... w końcu nie wiem czym.
Większą podatnością na błędy?
>
Okupione jest (i to jest przynajmniej dla mnie najwazniejsze ;-) znacznie nizszą
wydajnoscią
- udostępnia z kolei pewną (przynajmniej ewentualną) prostotę
Osobiscie ineteresuje sie glownie tj wlasciwie
wylacznie wydajnym kodowaniem i nie pociaga
mnie tez obiektówka tak ze nie mam pecjalnych bodzcow by uczyc sie chocby lepiej javy
czy obj-c czy pythona czy tcl (znam jako tako obj-c ktory ma bardzo dynamiczne typy
ale dawno nie pisalem i ten dynamizm w obj-c jest spleciony z tym paskudnym
paradygmatem z
release tak ze nie uiem teraz sobie tamtego
przypomniec i odzielic jednego od drugiego
i ocenic jak oceniam same ten 'dyntypy')
> Czy odwrotnie, większą odpornością na nie? W PHP nie trzeba podawać
>
> typu zmiennej i można ją wykorzystać do przechowania danych innego
>
> typu. Czy ja w PHP robiłem więcej błędów czy mniej niż w innych językach?
>
> Nie wiem... chyba podobnie. Trudno powiedzieć, bo inne projekty realizowałem w
>
> innych językach. Trudno porównywać. Pythona, Rubiego i całej reszty nie
>
> sam znam, a z tej dyskusji jak na razie (chyba) nic nie wynikło. Kłócimy
>
> się tylko o to, czy wygodne jest słowo def i rzutowanie na Integera - a
>
> to raczej odpowiedzi nie przyniesie.
>
-
84. Data: 2013-02-07 08:50:31
Temat: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
Od: "AK" <n...@n...com>
Użytkownik "M.M." <m...@g...com> napisał:
> Różnicę zrozumiałe już dawno, ale nie mogę pojąć, dlaczego to jest
Ja tez :)
PS: Tzn.jest to pewien problem. W hash-table jest taki bukiet: "wydumane'.
Tam trafia ten "problem".
AK
--- news://freenews.netfront.net/ - complaints: n...@n...net ---
-
85. Data: 2013-02-07 08:53:45
Temat: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
Od: "AK" <n...@n...com>
Użytkownik "Andrzej Jarzabek" <a...@g...com> napisał:
> Dodatkowo języki dynamiczne często mają możliwość konstruowania typów w locie,
można sobie np.
> wczytać XML i skonstruować obiekt odpowiadający węzłowi z właściwościami
odpowiadającymi
> podelementom czy atrybutom.
Ufff. Wreszcie ktos poruszyl jedna z waznych praktycznie korzysci "dynamicznego"
typowania.
PS: A tak w ogole to np. taki Python w ogole nie posiada zmiennych.
AK
--- news://freenews.netfront.net/ - complaints: n...@n...net ---
-
86. Data: 2013-02-07 09:12:15
Temat: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
Od: "AK" <n...@n...com>
Użytkownik "M.M." <m...@g...com> napisał:
> Nie wiem co znaczy sensownie. Wczoraj do Variant przypisywałem
> Pixmapę z obrazkiem. Jak na razie nie narzekam na brak funkcjonalności.
Ale musisz zrobic ten Variant, a variantow tysiace i maja sie do siebie nijak
(w BCB++/Delphi inny, w MS inny, w COM inny itp itd).
W przypadku jezykow z "first-class" masz to standardowo
i w pelnej zgodzie z "klasycznym" definiowaniem typow.
> Tutaj znowu ten argument z HashMapą indeksowaną stringiem.
> Chyba podobna wygoda? W PHP mam obiekt->pole, w C++ mam obiekt['pole'].
Nie. Nie podobna.
W Pythonie masz pelnoprawna klase/obiekt ktora zachowuje sie
_dokladnie_ tak samo jakby byla zadeklarowana/zdefiniowana statycznie.
W zabawie z hashmapa masz sytuacje ktora musisz wszedzie specjalnie
obsluzyc. Poza tym w stosunku do "zwyklej"/statycznej klasy np
nie zgadza ci sie sizeof, serializacja ci sie idzie pasc, nie zapiszesz toto na dysku
jakims fwritem itp :)
Troche zartuje, ale jednak ta hasmmapa to zbbedna sztuczka/obejscie.
PS: A reflection w Javie jest calkiem ok i jest to duzy krok naprzod w stosunku
do C++.
AK
--- news://freenews.netfront.net/ - complaints: n...@n...net ---
-
87. Data: 2013-02-07 09:53:12
Temat: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
Od: Sebastian Kaliszewski <S...@n...softax.com.pl>
On 02/05/2013 08:32 PM, AK wrote:
> Użytkownik "Sebastian Kaliszewski"
> <S...@n...softax.com.pl> napisał:
>
>>>> a już na pewno nie da się tego transplantować do języków o
>>>> dynamicznym systemie typów.
>>>
>>> Otóz "da sie" i oczywiście tak się robi.
>>
>> Że co?
>
> Przestan glupolu sie czepiac, bo jesli chodzi o znajomosc jezykow
> programowania to "mozesz mi klawiature czyscic"
LOL!
>
>> Rozpoznaje składnie funkcji na podstawie podania typu (bo o tym
>> mowa) w języku w którym typu nie podaje się? Ciekawe
>
> Mowilem zes glupol i znow sie sprawdza. Slowem: bredzisz. Nie o zadne
> rozpoznawanie funkcji chodzi. "Rozpoznawanie funkcji" (czyli czy to
> funkcja itp) ma sie tak do "typologii" jak (...)
Zacznij czytać ze zrozumieniem to na co odpowiadasz, to ci pomoże.
>> Bo poza tym to oczywiście da się uniknąć słowa kluczowego
>
> Jakie znow slowo kluczowe ? Co ty stulasz ? Mowimy o _systemie typow_
> i jego "pilnowaniu", a nie o parsingu, synktatyce
> "rozpoznawaniu funkcji" itp.
Nie, Adasiu, nie...
Odpowiadasz na:
"Ale tam się tak jakby deklaruje typ zwracany. To "uporanie się"
polegało na obciążeniu składni przewidzianej dla systemu typów
dodatkowym obowiązkiem wykrywania deklaracji i/lub definicji funkcji.
Nie jestem przekonany, czy aby na pewno to eleganckie rozwiązanie, a już
na pewno nie da się tego transplantować do języków o dynamicznym
systemie typów."
Dla opornych:
mówimy o użyciu słowa kluczowego do oznaczenia definicji funkcji jako
jakoby rzeczy brzydkiej (zdaniem M.M.)
>
> PS: Przeprszam wszytskich (lacznie z interlokutorem) za
> "bezposredniosc" ale tolerancja dla siemionowstwa usenetowego
> wyraznie mi sie zmniejszyla na starosc
Przede wszystkim, Adasiu, na starość chamiejesz.
\SK
-
88. Data: 2013-02-07 09:59:47
Temat: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
Od: Maciej Sobczak <s...@g...com>
W dniu środa, 6 lutego 2013 18:10:54 UTC+1 użytkownik Stachu 'Dozzie' K. napisał:
> Jakiś przykład javowego kontenera (haszmapy, treemapy, arraylisty),
> który potrafi trzymać inty?
To akurat słaby przykład - bo wskazuje raczej na ułomność Javowych kontenerów, niż na
ułomność intów. Przykłądowo, C++ i Ada jakoś nie mają problemu z intami w
kontenerach, więc najwyraźniej da się zrobić to dobrze.
--
Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com
-
89. Data: 2013-02-07 10:10:17
Temat: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>
On 2013-02-07, Maciej Sobczak <s...@g...com> wrote:
> W dniu środa, 6 lutego 2013 18:10:54 UTC+1 użytkownik Stachu 'Dozzie' K. napisał:
>
>> Jakiś przykład javowego kontenera (haszmapy, treemapy, arraylisty),
>> który potrafi trzymać inty?
>
> To akurat słaby przykład - bo wskazuje raczej na ułomność Javowych
> kontenerów, niż na ułomność intów. Przykłądowo, C++ i Ada jakoś nie
> mają problemu z intami w kontenerach, więc najwyraźniej da się zrobić
> to dobrze.
Tylko w C++ i w Adzie inty *traktuje się* z grubsza tak samo jak dowolne
typy zdefiniowane przez użytkownika czy bibliotekę. W Javie jest pewien
zbiór typów specjalnych (typy prymitywne), którego się używa po prostu
inaczej.
--
Secunia non olet.
Stanislaw Klekot
-
90. Data: 2013-02-07 10:12:05
Temat: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
Od: Maciej Sobczak <s...@g...com>
W dniu czwartek, 7 lutego 2013 08:53:45 UTC+1 użytkownik AK napisał:
> PS: A tak w ogole to np. taki Python w ogole nie posiada zmiennych.
http://docs.python.org/3/reference/datamodel.html
Słowo "variable" występuje tam tylko 28 razy, więc faktycznie można to określić jako
wypadek przy pisaniu specyfikacji języka.
Masz jeszcze jakieś podobne złote myśli?
--
Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com