eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingCo jest nie tak z C++ (było: Rust) › Re: Co jest nie tak z C++ (było: Rust)
  • X-Received: by 10.31.153.196 with SMTP id b187mr17722vke.14.1503346554321; Mon, 21
    Aug 2017 13:15:54 -0700 (PDT)
    X-Received: by 10.31.153.196 with SMTP id b187mr17722vke.14.1503346554321; Mon, 21
    Aug 2017 13:15:54 -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!peer02.am4!peer.am4.highwinds-media.com!pee
    r02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!e2no981941qta.1!ne
    ws-out.google.com!i9ni41255qte.0!nntp.google.com!v29no2154765qtv.0!postnews.goo
    gle.com!glegroupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Mon, 21 Aug 2017 13:15:53 -0700 (PDT)
    In-Reply-To: <on75ke$g4u$1@node2.news.atman.pl>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=178.37.227.243;
    posting-account=pyti1AoAAAAf66c003TUy10QAAnMWaKw
    NNTP-Posting-Host: 178.37.227.243
    References: <f...@g...com>
    <1...@g...com>
    <7...@g...com>
    <b...@g...com>
    <a...@n...v.pl>
    <2...@g...com>
    <a...@n...v.pl>
    <on23a3$85s$1@node1.news.atman.pl>
    <a...@n...v.pl>
    <on75ke$g4u$1@node2.news.atman.pl>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <5...@g...com>
    Subject: Re: Co jest nie tak z C++ (było: Rust)
    From: s...@g...com
    Injection-Date: Mon, 21 Aug 2017 20:15:54 +0000
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable
    X-Received-Body-CRC: 2682462515
    X-Received-Bytes: 5419
    Xref: news-archive.icm.edu.pl pl.comp.programming:211217
    [ ukryj nagłówki ]

    Ja odnoszę wrażenie, że obecnie programiści nie za bardzo wiedzą jaki język jest na
    prawdę najlepszy i myślą, że w zasadzie to najbardziej zależy od zastosowania. Bo w
    większości wypadków nie ważne jest jak jest szybki - liczy się jak szybko da się coś
    zakodować.

    Ja natomiast mam inne zdanie na ten temat.

    Moim zdaniem (porównując najpopularniejsze języki: Asembler, C, C++, D, Java, PHP,
    Python, JavaScript - tyle poznałem i mi to wystarczy) okazuje się, że C++ jest
    najlepszy. Oto powody:

    1. Bez udziwnień obsługuje standardowe API obecnych systemów operacyjnych (czyli C).
    D ma niby wsparcie dla funkcji C ale trzeba je zdeklarować w języku D.

    2. Zapewnia wszystko to co język obiektowy powinien mieć - a nawet więcej niż wiele
    innych języków, bo ma wielodziedziczenie i szablony. I to wszystko ma bez udziwnień -
    są to cechy naturalne tego języka. Tak więc nie jest uczciwe porównywanie tego języka
    do Asemblera. Tu bym porównał raczej Asemblera do łopaty, a C++ do koparki, a języki
    skryptowe do mini koparek.

    3. Kompiluje się do kodu maszynowego i przez to działa w sposób naturalny - jak to
    przewiduje producent procesora. Jego pliki wykonywalne są najmniejsze z możliwych, są
    prawie tak szybkie jak programy asemblerowe i działają samodzielnie (wymagając
    jedynie bibliotek dll - jeśli tak zostały skompilowane - a często wymaga tego
    licencja biblioteki). Nie wymaga żadnego interpretera, ani żadnych "maszyn
    wirtualnych" które nic nie dają prawdziwemu programiście (bo gdy do C++ przechodzi
    się z Asemblera to ręczne zarządzanie pamięcią jest czymś naturalnym i intuicyjnym -
    ja w ten sposób się uczyłem, bo to wydawało mi się najsensowniejsze i nadal tak mi
    się wydaje). Poza tym obecnie w C++ zarządzanie pamięcią często ogranicza się do
    podania "rodzica" jako parametr konstruktora i on usuwa ten nowy obiekt (Qt tak jest
    zrobione), lub używa się "sprytnych wskaźników" które usuną obiekt kiedy trzeba (to
    implementuje biblioteka standardowa).

    4. Umożliwia dobrą separację interfejsu (deklaracji) i implementacji. Są pliki *.h
    które dobrze opisują zawartość plików *.cpp. To trzeba docenić, bo tego nie ma w
    innych (wymienionych) językach z wyjątkiem C.

    5. Jest przenośny. Umiejętnie pisane programy (w Qt ;] ) są bez problemowo przenośne.
    A kod nieprzenośny daje się izolować (można wyłączać całe pliki *.cpp i kompilować
    warunkowo). Ta przenośność teoretycznie nie jest obarczona jakimś spadkiem wydajności
    czy innymi ukrytymi kosztami. Teoretycznie programy C++ są przenośne na każdą
    platformę na którą jest odpowiednio aktualny kompilator C++. Jednak ważniejszym
    ograniczeniem jest wsparcie danej platformy przez dostawców bibliotek.

    6. C++ żyje własnym życiem bez dominacji jednej firmy która by narzucała innym jaki
    ten język ma być. Nie kompatybilne zmiany się nie przyjmują, bo ludzie chcą mieć
    wybór - np.: pod Windows kompilator VC++, a pod Linuxem g++...

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: