🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #216990

Re: C is number one (znowu)

#216990
From: godek.maciek
Date: Sat, 11 Jul 2020 20:08
43 lines
4995 bytes
W dniu sobota, 11 lipca 2020 20:45:20 UTC+2 użytkownik Maciej Sobczak napisał:
> > > Tyle że nie wypada o tym mówić. Nie ma
> > >  arytmetyki wskaźników.
> > 
> > W arytmetyce wskaźników i operacji dereferencji oraz pobrania adresu obiektu zawiera się istota tego, czym jest wskaźnik.
> 
> Nie. Arytmetyka wskaźników to cecha właściwie wyłącznie języków asemblerowych, do których C, właśnie z powodu tej arytmetyki, można zaliczyć. Właściwie powód dla którego C ma arytmetykę wskaźników i nie ma prawdziwych tablic, jest ten sam.
> 
> Przykładowo, Ada, która jak najbardziej jest językiem systemowym i która powstała z myślą o systemach wbudowanych, arytmetyki wskaźników nie ma. Tzn. można się naszarpać z rzutowaniem do typu arytmetycznego, na którym od biedy da się coś dodać albo odjąć, ale konieczność tego szarpania to właśnie przejaw braku arytmetyki na właściwych wskaźnikach.

O, właśnie w owym "można się naszarpać" jest pies pogrzebany.

W Adzie można się naszarpać. W Javie nie można.

Java ma inny model pamięci niż C. W C pamięć to ciąg bajtów, a w Javie to zbiór obiektów.

> Zauważ też, że w C++ istnieje wiele standardowych typów pełniących funkcję wskaźnika (smart pointery) i one też nie mają arytmetyki - w dodatku nie przez przeoczenie, tylko celowo.

Powoływanie się na "smart pointery" w dyskusji o wskaźnikach to trochę jak rozważanie zakupu roweru stacjonarnego na wycieczki rowerowe albo do poruszania się po mieście. Niby też rower, ale jednak nie do końca.

Smart pointerom bliżej koncepcyjnie do referencji, niż do wskaźników.

> > Nie do końca. Target Javy to byli programiści aplikacyjni C++.
> 
> Ciekawe, że pojęcie "aplikacji" się rozmyło w świecie internetu. Pojęcie "serwera aplikacji" czy też "serwera aplikacyjnego" jest tego objawem.
> 
> > Java może konkurować z C++ np. tam, gdzie się pisze programy w Qt.
> 
> Może, ale wcale nie tam odniosła sukces. Głównym targetem Javy stał się serwer.
> No i, co ciekawe, Android.
> Ja nie kojarzę obecnie żadnego sensownego programu w Javie, który nazwałbym "aplikacją" w sensie aplikacji desktop. Eclipse, choć się narzuca jako kandydat, to raczej przykład na to, że Javie nie udało się tego zrobić.
> Dlatego nie widzę Javy w tym samym miejscu, co Qt.

Zgadzam się. Ale wydaje mi się, że taki był pierwotny plan.
Wydaje mi się, że trochę C# rywalizuje, albo przynajmniej jeszcze parę lat temu rywalizował z Qt przy tworzeniu aplikacji okienkowych (tam było coś takiego, jak Windows Forms, zastąpione później chyba trochę przeinżynierowanym "Windows Presentation Foundation")

> > Minecraft mógł powstać w Javie
> 
> A pomogłoby mu to w czymś? A może by zaszkodziło?

Tzn. ściśle rzecz biorąc, to Minecraft powstał w Javie, więc chyba pomogło mu to w ogóle powstać.

(Nie zaszkodziło mu to też potem w byciu przepisanym na C++)
Technical Details
Message-ID: <7be60910-7941-4e71-9438-3ba0fc2ccff7o@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erje.net!feeder.erje.net!ecngs!feeder2.ecngs.de!78.46.58.241.MISMATCH!weretis.net!feeder7.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
References: <a81005fe-ad6c-4221-9d4b-5e5272c400a8@googlegroups.com> <r9o6rb$lp5$1@news.icm.edu.pl> <1dcffd9f-ad27-450b-99f4-dc2703e19a6f@googlegroups.com> <rassv4$9ti$1@news.icm.edu.pl> <2ceb517b-0aff-43e8-89d0-f6020b958537@googlegroups.com> <rdhlvh$udp$1@news.icm.edu.pl> <a0add84b-67a0-43b4-8726-76e5d9e2b7b7o@googlegroups.com> <rdl4s1$abp$1@news.icm.edu.pl> <ea0a1c54-2720-41fc-b2a1-a5e75151187eo@googlegroups.com> <rduo26$ofp$1@news.icm.edu.pl> <c05273ac-9d1c-4f0b-b66d-8f078d70a6ddo@googlegroups.com> <re1unm$8vq$1@dont-email.me> <ba5d1b36-f368-4f7b-8a29-8d2de299f3b3o@googlegroups.com> <rec454$cbq$1@news.icm.edu.pl> <6faa1120-6d95-4171-b43f-c8a86c135be6o@googlegroups.com> <c06d7176-4b51-406d-9b25-137730f5af47o@googlegroups.com>

Show Full Headers
Complete Article Headers
X-Received: by 2002:ac8:6d1a:: with SMTP id o26mr71247551qtt.87.1594498097485;        Sat, 11 Jul 2020 13:08:17 -0700 (PDT)
X-Received: by 2002:a05:620a:567:: with SMTP id p7mr66792790qkp.232.1594498097321; Sat, 11 Jul 2020 13:08:17 -0700 (PDT)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erje.net!feeder.erje.net!ecngs!feeder2.ecngs.de!78.46.58.241.MISMATCH!weretis.net!feeder7.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Sat, 11 Jul 2020 13:08:16 -0700 (PDT)
In-Reply-To: <c06d7176-4b51-406d-9b25-137730f5af47o@googlegroups.com>
Complaints-To: groups-abuse@google.com
Injection-Info: google-groups.googlegroups.com; posting-host=37.47.234.248; posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r
NNTP-Posting-Host: 37.47.234.248
References: <a81005fe-ad6c-4221-9d4b-5e5272c400a8@googlegroups.com> <r9o6rb$lp5$1@news.icm.edu.pl> <1dcffd9f-ad27-450b-99f4-dc2703e19a6f@googlegroups.com> <rassv4$9ti$1@news.icm.edu.pl> <2ceb517b-0aff-43e8-89d0-f6020b958537@googlegroups.com> <rdhlvh$udp$1@news.icm.edu.pl> <a0add84b-67a0-43b4-8726-76e5d9e2b7b7o@googlegroups.com> <rdl4s1$abp$1@news.icm.edu.pl> <ea0a1c54-2720-41fc-b2a1-a5e75151187eo@googlegroups.com> <rduo26$ofp$1@news.icm.edu.pl> <c05273ac-9d1c-4f0b-b66d-8f078d70a6ddo@googlegroups.com> <re1unm$8vq$1@dont-email.me> <ba5d1b36-f368-4f7b-8a29-8d2de299f3b3o@googlegroups.com> <rec454$cbq$1@news.icm.edu.pl> <6faa1120-6d95-4171-b43f-c8a86c135be6o@googlegroups.com> <c06d7176-4b51-406d-9b25-137730f5af47o@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <7be60910-7941-4e71-9438-3ba0fc2ccff7o@googlegroups.com>
Subject: Re: C is number one (znowu)
From: godek.maciek@gmail.com
Injection-Date: Sat, 11 Jul 2020 20:08:17 +0000
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit