eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingC is number one (znowu) › Re: C is number one (znowu)
  • Data: 2020-07-11 22:08:16
    Temat: Re: C is number one (znowu)
    Od: g...@g...com szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    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++)

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: