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)
  • Data: 2023-05-18 16:24:49
    Temat: Re: Dziwny problem z kodem w C (gcc mips/pic32)
    Od: heby <h...@p...onet.pl> szukaj wiadomości tego autora
    [ pokaż wszystkie 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: