eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaDziwny problem z kodem w C (gcc mips/pic32) › Re: Dziwny problem z kodem w C (gcc mips/pic32)
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!eternal-september.org!
    news.eternal-september.org!.POSTED!not-for-mail
    From: heby <h...@p...onet.pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: Dziwny problem z kodem w C (gcc mips/pic32)
    Date: Thu, 18 May 2023 16:24:49 +0200
    Organization: A noiseless patient Spider
    Lines: 89
    Message-ID: <u45cfs$9qr5$1@dont-email.me>
    References: <a...@n...icm.edu.pl>
    <u44i3o$css$1$Janusz@news.chmurka.net>
    <a...@n...icm.edu.pl>
    <u44vfs$lla$1$Janusz@news.chmurka.net>
    <u4524j$n6u$1$grzegorz@news.chmurka.net> <u453bn$8ogn$2@dont-email.me>
    <u453ir$ool$1$grzegorz@news.chmurka.net> <u45668$94na$1@dont-email.me>
    <u458fc$sfo$1$grzegorz@news.chmurka.net> <u458jg$9a1b$2@dont-email.me>
    <u45935$sv9$1$grzegorz@news.chmurka.net> <u459ml$9a1b$3@dont-email.me>
    <0...@g...com>
    MIME-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    Injection-Date: Thu, 18 May 2023 14:25:00 -0000 (UTC)
    Injection-Info: dont-email.me; posting-host="9e372acaf9cbddb2066dbe1fe96e32a1";
    logging-data="322405";
    mail-complaints-to="a...@e...org";
    posting-account="U2FsdGVkX1/fr8Ch7+w1sXhDPZx9lHZt"
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
    Thunderbird/102.11.0
    Cancel-Lock: sha1:cudFOS7Hvdb2jDwh73Qz+s/4twk=
    In-Reply-To: <0...@g...com>
    Content-Language: en-US
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:780633
    [ ukryj nagłówki ]

    On 18/05/2023 16:08, Dawid Rutkowski wrote:
    >>> Wyciąłem, bo pisząc o zaczęciu nie miałem na myśli wykonania kroku,
    >>> który tak naprawdę nic nie zmienia.
    >> Krok ten zmienia bardzo wiele. Nagle nie masz wymówki, że się nie da
    >> pisać lepiej.
    > Niestety da się również pisać gorzej.

    Tak, ale to już problem białkowy, a nie ograniczenia języka. Wystapuje w
    każdym języku. No może poza perlem, tam pisanie bardzo dobrze jest
    nieodróznialne od pisania najgorzej.

    > Wciąż nie możesz zrozumieć, że pisząc o C++ musisz mieć w świadomości,
    > że to jest cały C++, a nie tylko wybrane przez ciebie, ułatwiające życie
    mechanizmy.

    Bzdura do kwadratu.

    Piszesz w C.

    Masz problem, który można elegancko i czytelnie rozwiązać C++.

    Używasz C++ w tym jednym miejscu.

    Reszta dnia wolnego.

    > Ale nie C++.

    Czyli to problem ideologiczny. Nie możesz uwierzyć, że można pisać po
    staremu i tam gdzie C++ się przydaje - użyć go. Musi być albo skrajna
    prawica albo lewica. Recjonalizm zakazany.

    > Może nie masz traumy ze studiów ze zmuszaniem do stosowania bzdur
    > jako sztuki dla sztuki.

    Po prostu ich nie rozumiesz i to całkowicie zrozumiałe. Jak zaczniejsz
    używać, szczególnie jeśli ktoś pokaże Ci jak, zrozumiesz, że pewne
    konstrukcje w C są najzwyczajniej niebezpieczne i prowadzą do sytuacji
    niewykryanych przez kompilator, jak w tym watku.

    Pisanie w C to pisanie w asemblerze, podługując się nieskopoziomowymi
    instrukcjami.

    Pisanie we współczesnym C++ polega na wyrażaniu potrzeb w sposób
    wysokopoziomowy. Zamaist "potrzebuję wiedziec ile to zajmuje ramu i
    potem se podziele" piszesz "potrzebuje wiedzieć jakie to jest duże". To
    jest bezpieczniejsze.

    Do tego stopnia, że w jednym z coding standardów jakie miałem okazję
    czytać, używanie sizeof w pętli for jest wykrywane przez linter na
    etapie review. Ktoś widocznie miał dośc poprawiania takich bzdur.

    > Mnie to prześladowało

    Więc to problem ideologiczny.

    > Możliwe, że jestem niedouczony, ale z Javy poszedł jak z płatka, a z C++
    > normalnie wytrzeszcz: "to tak można?!?!jeden!"

    Czyli możesz się w wolnej chwili doedukować. Powiększawie warsztatu
    programistycznego to tylko plusy. Tym bardziej, że za friko.

    > I mi brakuje właśnie czegoś takiego jak kompilowana java na uC.
    > Było coś w podobie zwanego JavaME - ale padło.

    Nie chcesz tego. Semantyka referencji i zarządzanie pamięcią w Javie nie
    nadaja się do mikrokontrolerów, szczególnie do zastosowań realtime, mimo
    wielu prób wciśnięcia Javy do małych uC. Za to C++ jak najbardziej
    pasuje, bo jest zdecydowanie bliżej sprzętu.

    > Jak piszesz samemu to możesz sobie dyscyplinę typu: "używam TYLKO tego, tego i tego
    z C++" narzucić.

    Tak. To się nazywa coding standard, review, lint. Nie masz takiego
    zestawu w firmie?

    > Ale w zespole zaraz zaczną odwalać bzdury, "bo w C++ tak można".

    Nie. Od tego jest code review + coding standard. Choć przyznaje, że to
    pytanie/opinia czasem się pojawi, szczególnie jak zakaz idityczny. Na
    przykład "nie wolno używać C++ bo go nie rozumiem".

    > Tak jak kiedyś byłem na rozmowie o pracę z takimi dwoma, co mieli biuro w KC,
    > chodziło o J2ME i mocno komentowali o takich, co na J2ME alokują sobie tablice po
    2MB...

    I znowu ten sam argument bez śladu sensu. To, że ktoś w C++ allokuje za
    dużo, to wina biedy intelektualnej programisty, a nie wina C++. C++ to
    tylko powiększenie składni o masę użytecznych rzeczy. Nie chroni przed
    debilizmem. Ale czasem wrzaśnie na etapie kompilacji o jakimś fuckupie,
    gdzie C przełknie bez popijania. I jak wstawisz w to zdanie "Java"
    zamiast "C++" to dalej będzie prawda.

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: