-
X-Received: by 10.31.142.14 with SMTP id q14mr88873vkd.19.1502456015167; Fri, 11 Aug
2017 05:53:35 -0700 (PDT)
X-Received: by 10.31.142.14 with SMTP id q14mr88873vkd.19.1502456015167; Fri, 11 Aug
2017 05:53:35 -0700 (PDT)
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
.pl!news.nask.org.pl!news.unit0.net!weretis.net!feeder6.news.weretis.net!feeder
.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!border1.nntp.dca1.giganews
.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!w51no230681qtc.0!news-out
.google.com!i9ni139qte.0!nntp.google.com!s6no230493qtc.1!postnews.google.com!gl
egroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Fri, 11 Aug 2017 05:53:34 -0700 (PDT)
In-Reply-To: <a...@n...v.pl>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=159.205.39.242;
posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
NNTP-Posting-Host: 159.205.39.242
References: <om4qli$mfm$1@node2.news.atman.pl>
<a...@n...v.pl>
<omcv1l$h2o$1@node1.news.atman.pl>
<a...@n...v.pl>
<f...@g...com>
<a...@n...v.pl>
<4...@g...com>
<a...@n...v.pl>
<d...@g...com>
<a...@n...v.pl>
<5...@g...com>
<a...@n...v.pl>
<f...@g...com>
<a...@n...v.pl>
<5...@g...com>
<a...@n...v.pl>
<1...@g...com>
<omi0ce$trs$1@node2.news.atman.pl>
<a...@n...v.pl>
<5...@g...com>
<b...@g...com>
<omifua$d2f$1@node2.news.atman.pl>
<9...@g...com>
<a...@n...v.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <9...@g...com>
Subject: Re: Rust
From: "M.M." <m...@g...com>
Injection-Date: Fri, 11 Aug 2017 12:53:35 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 106
Xref: news-archive.icm.edu.pl pl.comp.programming:210975
[ ukryj nagłówki ]On Friday, August 11, 2017 at 2:03:15 PM UTC+2, slawek wrote:
> On Fri, 11 Aug 2017 02:34:20 -0700 (PDT), Maciej Sobczak
> <s...@g...com> wrote:
> > wraz z biblioteką Qt daje przenośność i możliwo?=
> > ?ci". I tu ma rację, niezależnie od wad tego języka. Pokry=
> > cie platform (przenośność) i niszy rynkowych (możliwo=
> > ści) w C++ jest znacznie lepsze, niż w innych językach i dla=
>
> Narzędzia dla C i C++ są powszechnie dostępne, ale programy w nich
> napisane nie są w 100% przenośne.
>
> Między innymi nie jest ustalone czym jest int.
>
> W dodatku Komitern ustala kolejne wersje, które są implementowane jak
> komu się chce. Na przykład w C powinien być typ bool, a bywa że go
> nie ma.
>
> Pod tym względem Java jest nieco lepsza.
Pod względem przenośności i w ogóle pod względem wygody programowania?
W moim odczuciu jest o niebo lepsza. Wiadomo, nie chodzi strikte o
język, tylko też o narzędzia. Bo co stoi na przeszkodzie, aby
napisać kompilatory do C++ na różne platformy w których int
ma zawsze 32bity? Chyba poza wydajnością nie ma żadnych przeszkód?
Generalnie to ja bym programował tylko w Javie. Bardzo lubię
Javę, miałem nawet okres w swoim życiu, gdy tylko programowałem w
Javie i w C++ nie chciałem. Potem się zniechęciłem, nie do języka, nie
zmieniło się nic pod tym względem że lubię Javę, nadal jakoś
tak po prostu miło się pisze w Javie, kod jest taki przejrzysty,
bez sieczki spowodowanej nadmierną ilością operatorów lub szablonów,
dużo jest gotowych bibliotek, właśnie jest ta dobra przenośność, itd...
Ale problemy były gdy uruchamiałem programy korzystające intensywnie z
dużej pamięci. Gdy wezmę np. taką Wekę (pakiet do uczenia maszynowego) i
wrzucę plik o rozmiarze rzędu 3MB, to Weka potrafi się wywalić gdy
ma mniej niż 1GB !!! Zazwyczaj ustawiam 1.2GB do takiej zabawy. Gdy
Weka zrobi jedną epokę w uczeniu multi layer perceptron, to moja
implementacja zrobi może z 50, a też często używam wektorów a
nie wskaźników. Wektor czy lista z szablonów C++ potrafi mieć
narzut pamięciowy 2-3 krotny, jednak pomimo tego, napisane w C++ potem]
działa lepiej, szybciej, jest tak jakby bardziej przewidywalne.
Kiedyś kilka gier typu szachy-warcaby w Javie napisałem. Programy
te nie korzystały intensywnie z pamięci, ponieważ większość
pamięci było allokowane raz na starcie programu i potem trzymane w
specjalnych tablicach. Innymi słowy nie robiłem ciągle new. Za to
programy te miałem dużą tablicę hashującą. Okazało się, że w
analogicznych programach w C++ ta duża tablica hashująca mogła
być 2-3 razy większa, ponieważ właśnie w Javie był taki duży
narzut pamięciowy.
W Javie każdy obiekt i każda tablica są dynamiczne, wątpię żeby
optymalizator potrafił tablicę lub obiekt położyć na stosie
procesora. Allokowanie na stercie jest wolne. Dostęp do nowo
zaalokowanej pamięci może jest w miarę szybki, ale w trakcie
allokowania rzadko działa cache, a dostęp do niebuforowanej
pamięci jest wolny.
No i niestety, z wielką przykrością, rzadko sięgam po ten
piękny, przyjemny i przenośny język programowania.
Ktoś czytając to mógłby pomyśleć, że Java ma same wady, ale
tak nie jest. Kompilatory mogą wygenerować z kodu bajtoweg
Javy bardzo efektywny kod maszynowy, i już kiedyś widziałem
jak ten sam algorytm napisany w Javie działa szybciej niż w
C++. Ale po pierwsze w C++ jeszcze można było zoptymalizować,
chociażby poprzez wstawki assemblerowe, a tamten algorytm
nie korzystał intensywnie z dużej pamięci.
Pozdrawiam
Następne wpisy z tego wątku
- 11.08.17 14:55 slawek
- 11.08.17 15:15 M.M.
- 11.08.17 15:17 slawek
- 11.08.17 15:17 Tomasz Kaczanowski
- 11.08.17 15:27 slawek
- 11.08.17 20:55 k...@g...com
- 11.08.17 22:03 slawek
- 11.08.17 22:13 slawek
- 11.08.17 22:43 k...@g...com
- 12.08.17 07:04 slawek
- 12.08.17 07:25 slawek
- 12.08.17 15:56 s...@g...com
- 12.08.17 15:59 s...@g...com
- 12.08.17 19:08 slawek
- 12.08.17 20:17 Wojciech Muła
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-25 Tak wiem.... To oczywiste ale jak oni dzisiaj dziadują na materiale
- 2025-02-25 rozliczenia policji
- 2025-02-25 Echhhhhh. Marzy mi się SWAP Audi A2 z 1.8 T ;-)
- 2025-02-25 Warszawa => Analityk Biznesowo-Systemowy <=
- 2025-02-25 Warszawa => SQL Developer <=
- 2025-02-25 Zbigniew Ziobro śmie sugerować "niedostatki niezawisłości" sędzi (wątpliwości co do bezstronności)
- 2025-02-25 Kraków => DevOps Engineer (Junior/Regular) <=
- 2025-02-25 Kraków => Front-end Developer <=
- 2025-02-25 Szpital
- 2025-02-24 Gniazdo + wtyk
- 2025-02-24 Dyrektor Toyoty miał rację. Elektryki to ślepa uliczka
- 2025-02-24 Białystok => System Architect (Java background) <=
- 2025-02-24 Białystok => System Architect (background deweloperski w Java) <=
- 2025-02-24 Białystok => Solution Architect (Java background) <=
- 2025-02-24 Warszawa => Data Engineer (Tech Leader) <=