-
X-Received: by 2002:a0c:cd87:: with SMTP id v7mr235337qvm.6.1543090836404; Sat, 24
Nov 2018 12:20:36 -0800 (PST)
X-Received: by 2002:a0c:cd87:: with SMTP id v7mr235337qvm.6.1543090836404; Sat, 24
Nov 2018 12:20:36 -0800 (PST)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
0.net!newsreader4.netcologne.de!news.netcologne.de!peer02.ams1!peer.ams1.xlned.
com!news.xlned.com!peer02.am4!peer.am4.highwinds-media.com!peer01.iad!feed-me.h
ighwinds-media.com!news.highwinds-media.com!v55no6924006qtk.0!news-out.google.c
om!m21ni8355qta.0!nntp.google.com!v55no6924005qtk.0!postnews.google.com!glegrou
psg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Sat, 24 Nov 2018 12:20:36 -0800 (PST)
In-Reply-To: <pt93uj$d1$1@gioia.aioe.org>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=213.108.152.51;
posting-account=bMuEOQoAAACUUr_ghL3RBIi5neBZ5w_S
NNTP-Posting-Host: 213.108.152.51
References: <8...@g...com>
<7...@g...com>
<d...@g...com>
<psp6q7$97o$1@node2.news.atman.pl>
<6...@g...com>
<pss4d0$14n$1@node2.news.atman.pl>
<3...@g...com>
<8...@g...com>
<a...@g...com>
<psvfau$s2$1@gioia.aioe.org>
<1...@g...com>
<pt7erk$1eer$1@gioia.aioe.org> <pt7evk$1eer$2@gioia.aioe.org>
<f...@g...com>
<pt8hiv$uaq$1@gioia.aioe.org>
<c...@g...com>
<pt93uj$d1$1@gioia.aioe.org>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <7...@g...com>
Subject: Re: Niezmienniki pętli
From: Maciej Sobczak <s...@g...com>
Injection-Date: Sat, 24 Nov 2018 20:20:36 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 4713
X-Received-Body-CRC: 1463786871
Xref: news-archive.icm.edu.pl pl.comp.programming:212998
[ ukryj nagłówki ]> > Dlaczego? Jest konsekwentny. W odróżnieniu np. od Javy, gdzie int jest
wartościowy
> > ale Integer nie jest, albo nie da się zrobić List<int>, albo gdzie wskaźniki
> > nazywane dla zmyłki referencjami są jednak wartościowe, itd.
>
> Kazdy Javowiec dobrze wie dlaczego jest ta dwoistosc (ze wzgledow
> wydajnosciowych dla typow prostych).
Nie zgadzam się. Nie ma żadnego powodu robić takiej dwoistości, żeby uzyskać
wydajność. W szczególności wydajność nie jest powodem, dla którego List<int> nie
działa. Jakoś w innych językach działa i nikt tym językom nie zarzuca braku
wydajności. To, że w Javie nie działa List<int> wynika z tego, że projektanci Javy
nie mieli jaj, żeby od początku zrobić prawdziwe generyki, zamiast tego zrobili jakąś
cienką nakładkę na referencyjno-obiektowy system pod spodem. Dlatego musi być
List<Integer> - bo akurat to da się *łatwo* zaimplementować przez tzw. wymazywanie
typów ("type erasure" dla poliglotów) tak, żeby wyszło z tego List<Object>, bo to już
umieli wcześniej. Tymczasem zarówno Ada jak i C++ potrafią zrobić kontener z
elementami typu prostego tak samo, jak kontener z elementami referencyjnymi i w obu
przypadkach jest tak samo (tzn. maksymalnie) wydajnie.
Nie gloryfikuj amatorszczyzny. Schizofrenia Javowego systemu typów nie ma żadnego
związku z wydajnością.
> Jest jednak zawsze alternatywa int:Integer
Ale właśnie ta alternatywa jest kompletnie po nic. To nie jest ficzer, to jest
właśnie defekt, bo nie ma powodu, żeby liczbę naturalną wyrażać na więcej, niż jeden
sposób. To jest ten moment, kiedy patrzysz w popękane lustro i cieszysz się, że jest
Ciebie tak wielu. Nie, masz po prostu popsute lutro.
> i w zaleznosci od potrzeb
Potrzeba jest zawsze jedna. To język zmusza programistę do myślenia na dwa sposoby o
tym samym. To jest właśnie defekt (popsute lustro).
> W C++ nie ma żadnej (a to "podobno" obiektowy jezyk:).
Nie ma żadnego problemu, żeby zrobić list<shared_ptr<int> >. Ale taka "alternatywa"
nie ma związku z obiektowością. Zwłaszcza, że lista liczb to w ogóle nie jest problem
obiektowy.
Nie mieszaj pojęć.
--
Maciej Sobczak * http://www.inspirel.com
Następne wpisy z tego wątku
- 26.11.18 11:01 Wojciech Muła
- 29.11.18 09:08 Maciej Sobczak
- 01.12.18 15:15 Borneq
- 01.12.18 20:50 Wojciech Muła
- 02.12.18 13:52 Borneq
Najnowsze wątki z tej grupy
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- 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
Najnowsze wątki
- 2025-03-18 Tesla na złom
- 2025-03-18 Ziobrotura 3.0 będzie w prawie przesłuchać "świadka" Tuska bez adwokata w sprawach Sienkiewicza/Bodnara/...?
- 2025-03-18 Produkty ,,Made in Germany" wciąż na topie - art. na www.dw.com
- 2025-03-18 ulaskawienia
- 2025-03-18 Gdynia => Sales Executive / KAM <=
- 2025-03-18 42 MILIARDY ZŁOTYCH ZYSKU W ROK. DLACZEGO BANKI TYLE ZARABIAJĄ W POLSCE?
- 2025-03-17 Nie matura lecz chęć szczera ...
- 2025-03-17 Pendrive zdycha, czy coś jeszcze innego? Problem z plikami.
- 2025-03-17 Odkurzacz Smapp Dynamic - dawny Zelmer
- 2025-03-17 Nagra IV i zewnętrzny pilot
- 2025-03-17 Rzeszów => Spedytor Międzynarodowy <=
- 2025-03-17 Warszawa => Junior Account Manager <=
- 2025-03-17 Białystok => Gen AI Engineer <=
- 2025-03-17 Białystok => Generative AI Engineer <=
- 2025-03-17 Częstochowa => Backend Developer (Node + Java) <=