eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › AVR po latach
Ilość wypowiedzi w tym wątku: 106

  • 71. Data: 2021-11-18 18:38:24
    Temat: Re: AVR po latach
    Od: heby <h...@p...onet.pl>

    On 18/11/2021 18:28, Mateusz Viste wrote:
    >> Dostałeś wlaśnie metodę eliminacji białka z procesu tworzenia się
    >> błedu w kodzie.
    > Nie, nie dostałem. :)
    > Ty tego białka nie wyeliminowałeś, tylko je przesunąłeś w inne miejsce.

    Zmniejszyłem je. Z wielu miejsc usunąłem. Na tym polega proces
    eliminacji białka.

    >>> W konkursie wystartowała natomiast kategoria nowa: "zapomniałem
    >>> ustawić scope guard na włączenie przerwań".
    >> Co wydarzy się 3x rzadziej, niż w twom ręcznie wydziarganym kodzie.
    > Ech, czyli jednak dyskutowanie o prawdopodobieństwach. Szkoda.

    Branża języków programowania dyskutuje własnie o tym, kiedy mowa o
    językach programowania. Szkoda, mogli by rozmawiać o dupach.

    >> Nie pojmujesz że to nie jest styl. To zwiększanie bezpieczeństwa
    >> kodu. Są miejsca, gdzie takie gówno oparte o goto wyleciało by z
    >> hukiem na review razem z autorem tego szamba.
    > Bo ty tak mówisz?

    Tak, z mojej grupy byś wyleciał, dodatkowo z solidym kopniakiem za
    niepojmowanie podstaw bezpieczeństwa.

    >> Ten przewyższa, tylko nie pojmujesz, najwidoczniej w projektach
    >> miganai diodą nie ma problemu i stąd ten problem z rozumieniem tej
    >> wyższości.
    > Czy to miganie diodą, czy sterowanie promem kosmicznym, w obu
    > przypadkach scope nie powinien być tak rozległy, że autor przestaje nad
    > nim panować.

    Ale jest rozległy. I co teraz? Oferujesz "gapmiy się bardziej
    wnikliwie". Ja oferuje "upewnijmy się, że to co można, da się
    zautomatyzować".

    >> To jeszcze jeden:
    >> UART0CTL = 1<<UART0_DOUBLE | 1<<UART0_REVERSE | 1<<UART1_FAST;
    >> Ten kod ma buga. Nie do znalezienia oczami natychmiast. Użyto złej
    >> flagi, od innego uarta. W czasach ludzi robiących #define UART0_FOO 7
    >> to jest poważny problem.
    >> Mogę ten kod napisać sprytnie.
    > O, czyli może jednak będzie konstruktywnie.

    Już było, tylko jesteś niepełnosprytny.

    > No to dajesz.

    A ile płacisz?


  • 72. Data: 2021-11-18 18:41:33
    Temat: Re: AVR po latach
    Od: Piotrek <p...@p...na.berdyczow.info>

    On 18.11.2021 18:12, heby wrote:
    > [...]
    > Są miejsca, gdzie takie gówno oparte o goto wyleciało by z hukiem na
    > review razem z autorem tego szamba. Choć zdaje sobie też sprawę, że w
    > grupach 60+ to może być coding standard.
    >

    Nie to, żebym się obruszył o 60+ ...

    Ale przecież styl projektowania/programowania nie zależy od wieku
    autora. Tylko raczej od tego czy gość trafił do zawodu w wyniku
    ostatniej łapanki przeprowadzonej w środowisku piekarzy, czy też w
    bardziej cywilizowany sposób.

    Piotrek


  • 73. Data: 2021-11-18 18:45:38
    Temat: Re: AVR po latach
    Od: heby <h...@p...onet.pl>

    On 18/11/2021 18:41, Piotrek wrote:
    >> Są miejsca, gdzie takie gówno oparte o goto wyleciało by z hukiem na
    >> review razem z autorem tego szamba. Choć zdaje sobie też sprawę, że w
    >> grupach 60+ to może być coding standard.
    > Nie to, żebym się obruszył o 60+ ...
    > Ale przecież styl projektowania/programowania nie zależy od wieku
    > autora.

    Zależy. Przykro mi to stwierdzić, ale zalezy. W embedded w szczególności.

    Isnieje korelacja między używaniem konstrukcji hackerskich i
    niebezpiecznych, a wiekiem developera. Są to moje, subiektywne
    oczywiscie, obserwacje. Ale sądząc po dyskusjach z moimi znajomymi, nie
    odosobnione.

    > Tylko raczej od tego czy gość trafił do zawodu w wyniku
    > ostatniej łapanki przeprowadzonej w środowisku piekarzy, czy też w
    > bardziej cywilizowany sposób.

    Problem że ten "bardziej cywilizowany sposób", 40 lat temu, to było goto
    w BASICu. I z tym kłopot największy.


  • 74. Data: 2021-11-18 19:19:41
    Temat: Re: AVR po latach
    Od: Mateusz Viste <m...@x...invalid>

    2021-11-18 o 18:38 +0100, heby napisał:
    > Zmniejszyłem je. Z wielu miejsc usunąłem.

    Za pomocą tego magicznego guard? Wmówiłeś to sobie, uprawiasz tylko
    kreatywną księgowość.

    > Ale jest rozległy. I co teraz? Oferujesz "gapmiy się bardziej
    > wnikliwie". Ja oferuje "upewnijmy się, że to co można, da się
    > zautomatyzować".

    Ale ja przecież nie proponuję gapienia się. Objaśniam tylko, że to co
    starasz się wypromować jako "argument za C++ w embedded" wcale nie
    potrzebuje C++.

    > > No to dajesz.
    >
    > A ile płacisz?

    Czyli ta łatwość usuwania białka C++ w ramach flag wymaga założenia
    projektu i zainwestowania roboczogodzin? No to ja dziękuję za taki
    postęp. Jak ma być skomplikowanie to równie dobrze w C mogę sobie
    złożyć system do sprytnego zarządzania flagami.

    Mateusz


  • 75. Data: 2021-11-18 19:40:28
    Temat: Re: AVR po latach
    Od: heby <h...@p...onet.pl>

    On 18/11/2021 19:19, Mateusz Viste wrote:
    > 2021-11-18 o 18:38 +0100, heby napisał:
    >> Zmniejszyłem je. Z wielu miejsc usunąłem.
    >
    > Za pomocą tego magicznego guard?

    Tak. Wyeliminował wszystkie źrodła błedu "zapomniałem włączyć" teraz i w
    przyszłosci, z tej funkcji.

    Oczywiście można go usunąć przypadkiem. Można wiele rzeczy zrobić, to
    tylko białko. Idę o zakłąd że ilosc takich przypadków będzie o rząd
    wielkosci mniejsza, niż przypadków "zapomniałem gdzieś zawołać goto w 30
    miejscach".

    > Wmówiłeś to sobie, uprawiasz tylko
    > kreatywną księgowość.

    Dziwnym trafem ta "kreatywna księgowość" jest powszechnie używanym
    wzorcem projektowym w całym C++, dając zaskakująco wysoki poziom
    bezpieczeństwa transakcji.

    Podpowiem kilka generyków: std::mutex::scoped_lock, boost::scoped_ptr,
    boost::scoped_array itd.

    Każdy da się napisać na goto. I wylecieć kopniakiem za drzwi, bo to nie
    lata 60te.

    >> Ale jest rozległy. I co teraz? Oferujesz "gapmiy się bardziej
    >> wnikliwie". Ja oferuje "upewnijmy się, że to co można, da się
    >> zautomatyzować".
    > Ale ja przecież nie proponuję gapienia się.

    Dokładnie to oferujesz. Mówisz: "ale uważaj, przed każdym wyjściem z
    funkcji musisz zawołać goto". Ja tego nie mówie. Samo prawidłowo zawoła
    się to, co ma się zawołać, nie muszę żyć w ciągłym strachu, mam 1
    miejsce a nie 30, do popełnienia błedu.

    > Objaśniam tylko, że to co
    > starasz się wypromować jako "argument za C++ w embedded" wcale nie
    > potrzebuje C++.

    Zrobiłeś jakiś mechanizm działajacy w podobny sposob na poziomie *tego*
    konkretnie przypadku. Po refaktoringu środka funkcji, ja nie muszę się
    martwić i mam gwarantowane wywołanie sei(), Ty musisz się męczyć i
    przeglądać kod, czy ktoś nie zapomniał zawołać goto. Innymi słowy mój
    zysk to bezpieczeństwo refaktoringu tej funkcji, bezpieczeństwo jej
    pisania i przejrzystośc kodu.

    Wiec albo chcesz mieć szambo, jak proponujesz, albo automatyzację. I
    tak, nie da się tego zrobic w C. Można tylko napisać identyczny przykład
    i wymachiwać "nie ma żadnej różnicy". Ona jest, nie widzisz jej, bo nie
    piszesz nic więcej niż miganie diodą i nigdy nie przyszło Ci do głowy że
    ktoś będzie tą funkcję zmieniał, w czasie jej życia, 100 razy.

    >> A ile płacisz?
    > Czyli ta łatwość usuwania białka C++ w ramach flag wymaga założenia
    > projektu i zainwestowania roboczogodzin?

    Tak. Ja inwestuje raz. Kod taki (o podobnej funkcjonalnosci) napisałem
    już kilka razy, komercyjnie. Za każdym razem używałem go w setkach, jak
    nie tysiącach miejsc. Więc ja zapłaciłem raz, a dobrze.

    Niejaki Mateusz, za każdym razem jak robi UART= płaci na nowo koszta
    potencjalnych bugów, w kółko używając technik z epoki kamiennej do
    podwyższania jakości kodu, czyli cichej modlitwy, że się nie pomylił.

    Przykro mi, że kod nie jest za darmo. Jestem znudzony edukowaniem za
    friko każdego, kto jest za wielkim ignorantem, aby zrobic to samodzielnie.

    > No to ja dziękuję za taki
    > postęp.

    Nie pojmujesz nawet tego, że ten kod da się napisać generycznie i używać
    gdzie chcesz, *zmniejszajac* koszty błedów.

    Pisałeś kiedyś coś więcej, niż hello world?

    > Jak ma być skomplikowanie to równie dobrze w C mogę sobie
    > złożyć system do sprytnego zarządzania flagami.

    To złóż i pochwal się. Ale nie zapłacę za niego z prostej przyczyny: nie
    będzie mieć śladu zalet względem statycznych checków C++. Wiem to
    dlatego, że widziałem ich na pęczki. Każdy gówno wart.

    A najbardziej zabawne, że to dopiero początek tego, co C++ pozwala
    zrobić dobrego w kodzie embedded, a Ty już nie pojmujesz gdzie zalety,
    bo ci assembler przesłania.


  • 76. Data: 2021-11-18 19:55:34
    Temat: Re: AVR po latach
    Od: Dawid Rutkowski <d...@w...pl>

    czwartek, 18 listopada 2021 o 17:22:57 UTC+1 heby napisał(a):
    > On 18/11/2021 15:52, Dawid Rutkowski wrote:
    > >> Tymczasem to bardzo dużo małych, drobnych detali które czynią ten język
    > >> *bardzo* przydatnym w embedded, bez narzutu wydajności.
    > > Napisz choć kilka przykładów.
    > Robiłem to dziesitki razy, na tej grupie, trzeba było uważać.

    To dość dawno, p.m.e. wnikliwie czytam pewnie z rok czy dwa.

    > Np taki:
    >
    > foo()
    > {
    > DisableInterruptsInThisScope guard;
    >
    > [...]
    > return;
    > [...]
    > return;
    > [...]
    > return;
    > }

    Hmm, podałeś piękny przykład socjalizmu - ustroju dzielnie i skutecznie (chyba jednak
    nie) zwalczającego problemy, które nie występują w kapitaliźmie.
    Mechanizm RAII stosowany po to, by "usunąć kategorię bugów", która pojawia się w
    wyniku kodowania, które nie jest nawet strukturalne.
    Wiem że BASIC ryje beret nieodwracalnie...
    I wiem też, że w C można pisać programy FORTRANowe.
    Sztuka i nauka w tym, by tego nie robić.

    Zaś takie cli() na początku i sei() na końcu funkcji można sobie zrobić za pomocą
    __attribute__.
    Tylko co, jeśli przerwania musisz włączyć w połowie funkcji?
    Np. w ISR w programie bardziej skomplikowanym niż miganie diodą?
    Pewnie dałoby się to zrobić lepiej - ale urządzenie musi iść na obiekt jutro, bo za
    pół roku to takie oprogramowanie zrobi też Hindus, a może i Chińczyk.

    > > Dla ustalenia uwagi w porównaniu do C, żeby nie wynajdywać koła.
    > No to masz RIIA.

    Słabe. Jeszcze bym chciał coś lepszego.

    > >>> Przykład zły,
    > >>> bo oba kody skracają się do tej samej abstrakcji wspólnej dla obu
    > >>> języków.
    > >> To dalej oznacza, że jeden z nich na pewno jest w C++.
    > > Który? I dlaczego?
    > Drugi. Kompiluje się g++. Pierwszy też, ale drugi jest *niewątpliwie*.

    To może odwrotnie - czy drugi nie skompiluje się gcc?
    Przecież nie było tam nawet:
    for(int i = 0 ; i < 100 ; ++i )
    Czym one się w ogóle różnią?
    Pewnie tym, co zwróci
    $ echo $_
    Ciekawe co będzie w tym drugim przypadku.
    Nie powinno być:
    void main() {}
    ?

    Rozwiązywałe kiedyś test 50 pytań z Javy i C++ u takiej jednej fajnej "rekruterki"
    (rozpraszała, podobnie jak taka jedna fajna z zakładu metod matematycznych
    informatyki na egzaminie z prawdopodobieństwa ;)
    Java była OK, za co ją uwielbiam (ciekawe czy jest gcj na AVR?), C++ koszmarne - ale
    to Twoje jest jeszcze trudniejsze.

    > >> Ale ale ... zmartwię Cię. Niektóre porządnie napisane przykłady z
    > >> *klasami* kompilują się do wydajnijszego kodu, niż goła pętla w C... to
    > >> dlatego że C++ zawiera więcej konstrukcji pozwalajacej wyrazić cel, a
    > >> nie tylko metodę jego osiągnięcia, wiążac kompilatorowi ręce.
    > > No to którym kompilatorem "lepiej" się skompiluje program napisany w C -
    kompilatorem C czy C++?
    > Oba skompilują tak samo.
    >
    > Dlatego postulatem nie jest uzywanie g++ tylko pisanie w C++.

    Tak samo albo nie.
    Jakoś to mocno "akademickie" - czy dobrze odbieram "grupę" i "review"?
    I to jeszcze akademickie młodego pokolenia, co pierwszy komputer miało z windows
    95...


  • 77. Data: 2021-11-18 20:03:00
    Temat: Re: AVR po latach
    Od: Piotrek <p...@p...na.berdyczow.info>

    On 18.11.2021 18:45, heby wrote:
    > On 18/11/2021 18:41, Piotrek wrote:
    >> Nie to, żebym się obruszył o 60+ ...
    >> Ale przecież styl projektowania/programowania nie zależy od wieku autora.
    >
    > Zależy. Przykro mi to stwierdzić, ale zalezy. W embedded w szczególności.
    >
    > Isnieje korelacja między używaniem konstrukcji hackerskich i
    > niebezpiecznych, a wiekiem developera. Są to moje, subiektywne
    > oczywiscie, obserwacje. Ale sądząc po dyskusjach z moimi znajomymi, nie
    > odosobnione.

    Przede wszystkim jak ktoś zaczynał w IT 40 lat temu to aktualnie raczej
    zajmuje się odcinaniem kuponów od tego co osiągnął w życiu (zawodowym),
    a nie kodowaniem.

    Tak więc będę się upierał, że w przypadku profesjonalistów problem
    zależności jakości kodu od wieku programisty jest IMHO marginalny.

    Natomiast nie neguję zależności jakości kodu od wcześniej wykonywanego
    zawodu ;-)

    Ale przede wszystkim od doświadczenia zawodowego (przy założeniu, że
    gość ma zdefiniowaną ścieżkę kariery, ma mentora, bierze udział w
    szkoleniach, etc.)

    >
    >> Tylko raczej od tego czy gość trafił do zawodu w wyniku ostatniej
    >> łapanki przeprowadzonej w środowisku piekarzy, czy też w bardziej
    >> cywilizowany sposób.
    >
    > Problem że ten "bardziej cywilizowany sposób", 40 lat temu, to było goto
    > w BASICu. I z tym kłopot największy.

    ?

    Nie traktuj tego osobiście ale IMHO masz wypaczone pojęcie o technologii
    i zakresie kształcenia (studentów informatyki) w latach 80.

    Inną sprawą jest to czy rzeczeni studenci mogli wykorzystać nabytą
    wiedzę w pracy zawodowej.

    Ale regresu typu Simula/Smalltalk/C++ -> BASIC raczej bym się nie
    spodziewał.

    Piotrek


  • 78. Data: 2021-11-18 20:26:23
    Temat: Re: AVR po latach
    Od: heby <h...@p...onet.pl>

    On 18/11/2021 19:55, Dawid Rutkowski wrote:
    >> Robiłem to dziesitki razy, na tej grupie, trzeba było uważać.
    > To dość dawno, p.m.e. wnikliwie czytam pewnie z rok czy dwa.

    Tak, od ~10 lat minimum.

    >> Np taki:
    >>
    >> foo()
    >> {
    >> DisableInterruptsInThisScope guard;
    >>
    >> [...]
    >> return;
    >> [...]
    >> return;
    >> [...]
    >> return;
    >> }
    > Hmm, podałeś piękny przykład socjalizmu - ustroju dzielnie i skutecznie (chyba
    jednak nie) zwalczającego problemy, które nie występują w kapitaliźmie.

    Ten przykałd rozwiązuje problem powszechnie występujacy w programach C w
    embedded, czyli tansapcyjności flag. Przerwań, bo łatwe, ale masy innych
    tez łatwo tym osiągnać.

    > Mechanizm RAII stosowany po to, by "usunąć kategorię bugów", która pojawia się w
    wyniku kodowania, które nie jest nawet strukturalne.

    Mechanizm RAII jest używany tam, gdzie jest przydatny. Tu jest przydatny.

    > Wiem że BASIC ryje beret nieodwracalnie...

    Tak, dlatego eliminujemy go z C i pojawia się potrzeba użycia czegoś
    lepszego. C++ jest za darmo.

    > I wiem też, że w C można pisać programy FORTRANowe.
    > Sztuka i nauka w tym, by tego nie robić.

    Wiec wyjasnij to embedowcom, u których goto jest podstawą wzroców
    programowania.

    > Zaś takie cli() na początku i sei() na końcu funkcji można sobie zrobić za pomocą
    __attribute__.

    A takie "enableDisplay()" i "disableDisplay()" też?

    Przyczepiłeś się użycia w przypadku 1, ale nie widzisz pozostałych N-1
    przypadków, gdzie wzorzec projektowy ...scoped... jest znacznie
    wygodniejszy i bezpieczniejszy niż debilizmy z goto.

    > Tylko co, jeśli przerwania musisz włączyć w połowie funkcji?

    To masz dodatkowy scope w połowie funkcji.

    Jesli przerwania musisz wyłączyć pomiędzy scopeami funkcji, to
    prawdopodobnie masz coś mocno spieprzone we flow algorytmu i niewiele tu
    można pomóc, musi wystarczyć modlitwa.

    > Np. w ISR w programie bardziej skomplikowanym niż miganie diodą?

    scope stosuje się własnie w programach znacznie bardziej skomplikowanych
    niż miganie diodą. Aby w ogóle dało się je utrzymać dalej, niż etap
    migania diodą.

    > Pewnie dałoby się to zrobić lepiej - ale urządzenie musi iść na obiekt jutro, bo za
    pół roku to takie oprogramowanie zrobi też Hindus, a może i Chińczyk.

    Mówisz o pisaniu na odpierdol? Łopanie, to oczywiscie goto i nastepny.

    Poważne oprogramowanie przeszło by review, testy automatyczne, statyczną
    analizę, analizę formalną, linting, akceptację SQA. Ale na odpierdol
    nie, ja w ogole nie mówie o takiej kategorii oprogramowania. Być może to
    miganie diodą było by w respiratorze, więc wtedy też.

    Choć nawet w tym na odpierdol wolałbym RAII, niż 30 goto.

    >>> Dla ustalenia uwagi w porównaniu do C, żeby nie wynajdywać koła.
    >> No to masz RIIA.
    > Słabe. Jeszcze bym chciał coś lepszego.

    To proponuj.

    >> Drugi. Kompiluje się g++. Pierwszy też, ale drugi jest *niewątpliwie*.
    > To może odwrotnie - czy drugi nie skompiluje się gcc?
    > Przecież nie było tam nawet:
    > for(int i = 0 ; i < 100 ; ++i )
    > Czym one się w ogóle różnią?

    Niczym istotnym. Właśnie odkryłeś że przejście na C++ jest za darmo. A
    mimo to dev 60+ broni się rękami i nogami, wymyślając co chwile nowe
    debilizmy do obrony epoki kamienia goto-wanego.

    > Pewnie tym, co zwróci
    > $ echo $_
    > Ciekawe co będzie w tym drugim przypadku.
    > Nie powinno być:
    > void main() {}
    > ?

    Nie. Nie powinno. Będzie zero. Gwarantowane. ISO 9899:201x 5.1.2.2.3

    > Rozwiązywałe kiedyś test 50 pytań z Javy i C++ u takiej jednej fajnej "rekruterki"
    (rozpraszała, podobnie jak taka jedna fajna z zakładu metod matematycznych
    informatyki na egzaminie z prawdopodobieństwa ;)
    > Java była OK, za co ją uwielbiam (ciekawe czy jest gcj na AVR?)

    Jak sobie wyobrażasz heap na AVR? Java jest językiem, w którym cieżko
    się piszę bez allokacji na heapie. Innymi słowy nie jest możliwa do
    użycia na AVR w sposób pełny. Co innego C++ - w nim używania heapu nie
    ma obowiązku.

    Istnieją podzbiory Javy np. na karty SIM, ale nie chciałbyś w tym pisać,
    to jest żenujące i przypomnia tortury.

    >, C++ koszmarne - ale to Twoje jest jeszcze trudniejsze.

    To są podstawy C++. Nie ma nic prostszego niż RAII.

    >> Dlatego postulatem nie jest uzywanie g++ tylko pisanie w C++.
    > Tak samo albo nie.
    > Jakoś to mocno "akademickie" - czy dobrze odbieram "grupę" i "review"?

    "grupa" i "review" nie mają nic wspólnego z "akademickością". Są
    normalnymi narzędziami używanymi przez prawie wszystkie firmy zajmujące
    się pisaniem programów, a nie dicking around.

    Bywają "akademickości" gdzie o nich nie słyszano i dalej uczą Delphi,
    dajac na koniec magistry.

    > I to jeszcze akademickie młodego pokolenia, co pierwszy komputer miało z windows
    95...

    Myślę, że przeoczyłeś jakieś ~40 lat rozwoju informatyki.


  • 79. Data: 2021-11-18 20:35:36
    Temat: Re: AVR po latach
    Od: Mateusz Viste <m...@x...invalid>

    2021-11-18 o 19:40 +0100, heby napisał:
    > Dokładnie to oferujesz. Mówisz: "ale uważaj, przed każdym wyjściem z
    > funkcji musisz zawołać goto". Ja tego nie mówie. Samo prawidłowo
    > zawoła się to, co ma się zawołać, nie muszę żyć w ciągłym strachu,
    > mam 1 miejsce a nie 30, do popełnienia błedu.

    Masz 30 miejsc wyjścia z funkcji? No, to faktycznie przykładny kod.

    > muszę się martwić i mam gwarantowane wywołanie sei(), Ty musisz się
    > męczyć i przeglądać kod, czy ktoś nie zapomniał zawołać goto.

    #define return goto gameover

    albo

    #define return TUTAJ_UZYWAMY_GOTO

    albo

    static void func_internal() {
    [...]
    }

    void func() {
    _disable();
    func_internal();
    _enable();
    }

    Ale znowu - ja nie mam zamiaru wykłócać się z usenetowym krzykaczem.
    Wskazuję tylko, że innowacja którą przedstawiasz jest bardzo dyskusyjna.
    I nie jest to z mojej strony krytyka C++ (którego znam słabo), tylko
    podanego przykładu. Zapytałem o jakiś poważniejszy przykład, ale
    wolałeś się obrazić.

    > Wiec albo chcesz mieć szambo, jak proponujesz, albo automatyzację. I
    > tak, nie da się tego zrobic w C.

    Patrz wyżej.

    > Tak. Ja inwestuje raz. Kod taki (o podobnej funkcjonalnosci)
    > napisałem już kilka razy, komercyjnie. Za każdym razem używałem go w
    > setkach, jak nie tysiącach miejsc. Więc ja zapłaciłem raz, a dobrze.

    No fajnie, ale to też nie ma nic wspólnego z C++.

    > Pisałeś kiedyś coś więcej, niż hello world?

    Już któryś raz zamiast pokazać kod stosujesz argumenty ad personam. To
    świadczy zarówno o tobie, jak i o idei którą tak zaciekle bronisz.

    Mateusz


  • 80. Data: 2021-11-18 20:47:04
    Temat: Re: AVR po latach
    Od: heby <h...@p...onet.pl>

    On 18/11/2021 20:03, Piotrek wrote:
    >> Isnieje korelacja między używaniem konstrukcji hackerskich i
    >> niebezpiecznych, a wiekiem developera. Są to moje, subiektywne
    >> oczywiscie, obserwacje. Ale sądząc po dyskusjach z moimi znajomymi,
    >> nie odosobnione.
    > Przede wszystkim jak ktoś zaczynał w IT 40 lat temu to aktualnie raczej
    > zajmuje się odcinaniem kuponów od tego co osiągnął w życiu (zawodowym),
    > a nie kodowaniem.

    W moim otoczeniu programistów 60+ jest mało, ale istnieją. W embedded
    jest ich znacznie wiecej, choć to statystyka subiektywna, ale jak mówie,
    sporo znajomych z mojego otoczenia ma podobne.

    > Tak więc będę się upierał, że w przypadku profesjonalistów problem
    > zależności jakości kodu od wieku programisty jest IMHO marginalny.

    Korelacja jest miedzy wiekiem, a nie "od 60+". Przeciętny 50-latek
    będzie znacznie bardziej skłonny do używania void* niż 40-latek. A
    30-latek znowu, bedzie znał np. C# i nie zdziwi go lambda w C++.

    > Natomiast nie neguję zależności jakości kodu od wcześniej wykonywanego
    > zawodu ;-)

    Taka występuje oczywiście. Dam Ci jeszcze inny przykład: wśród
    programistów z Ukrainy zauważyłem korelacje w preferowanych wzorcach
    projektowych. Skłaniających się w okolice antywzorca "golden hammer". I
    to nie zależy od miejsca, skad pochodzą, z tej Ukrainy. Tak jak by
    problem istniał gdzieś w samym centrum nauczania.

    To trochę jak kiedyś Bielecki, mający wpływ na nauczanie (kiepskie)
    programowania w PL.

    >>> Tylko raczej od tego czy gość trafił do zawodu w wyniku ostatniej
    >>> łapanki przeprowadzonej w środowisku piekarzy, czy też w bardziej
    >>> cywilizowany sposób.
    >> Problem że ten "bardziej cywilizowany sposób", 40 lat temu, to było
    >> goto w BASICu. I z tym kłopot największy.
    > ?

    Starsi programiści potrafią rozwiązać każdy problem używając outdated
    konstrukcji w języku.

    Wyjśc ze scope? Goto! (zamiast poprawnej struktury)
    Zawołać pointer? C-style (zamiast std::function/lambda)
    Zwrócić dwie zmienne? Przez argumenty!
    Polimorfizm? void* i enum cast rozwiązuje wszystkie problemy.

    Widać wyraźną alergicznośc na konstrukcje bezpieczniejsze, ponieważ
    "lepsze jest wrogiem dobrego" jak mawiają ludzie starający sie ukryć
    swoją ignorancję.

    > Nie traktuj tego osobiście ale IMHO masz wypaczone pojęcie o technologii
    > i zakresie kształcenia (studentów informatyki) w latach 80.

    Czy w latach 80 uczono C++ z RAII? Nie. Nie uczy się go, tak na
    marginesie, do dzisiaj. Lata od 90 pod 2020 mam zarówno ogarnięte od
    strony ucznia/studenta jak i wykładowcy. Natomiast tak, uczono na
    uczelniach kiepskich jezyków programowania i zalewano betonem kiepskie
    nawyki. O ile człowiek młody, to jest też elastyczny. Znów starszy, z
    uwagi na biologie, przyjmuje postawę w opozycji do nowości. To
    naturnalne, stwierdzam bardziej fakt, niż narzekam.

    > Inną sprawą jest to czy rzeczeni studenci mogli wykorzystać nabytą
    > wiedzę w pracy zawodowej.

    Zwyczajowo nie, programowanie uC w latach 80/90 w wiekszości odbywało
    się w asm i sporadycznie w idiotycznych dialektach C. Po 20 latach
    pisania na 8051 trudno się dziwić, że jak ktoś mówi o RAII to pojawia
    się natychmiastowa reakcja alergiczna. Mnie to nie dziwi ani torchę i
    nie zamierzam tego zmieniać. Ten problem rozwiąże biologia.

    > Ale regresu typu Simula/Smalltalk/C++ -> BASIC raczej bym się nie
    > spodziewał.

    Języki dąża do bycia coraz to bardziej dziadowskimi, ale ciągle
    uzytecznymi. JavaScript, jako najgorsze guano obecnie używane, jest nie
    dosc że bardo popularny, to również bardzo wysoko płatny.

    Całość tego procesu wynika z faktu, że nie ma na rynku zawodowych
    programistów. Są jedynie Ci z łapanki, którzy nie pojmą RAII w C++, ale
    pojmą jak zrobić obrazek z licznikiem w Node.js.

    Ja tego nie zamierzam zmieniać, ale dziadostwo w moim otoczeniu
    uprzątam, jesli tylko mam okazję. Jeszcze mi się chce.

strony : 1 ... 7 . [ 8 ] . 9 ... 11


Szukaj w grupach

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: