eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingProgramming Language of the Year 2019Re: Programming Language of the Year 2019
  • Data: 2020-01-14 08:45:27
    Temat: Re: Programming Language of the Year 2019
    Od: Maciej Sobczak <s...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    [HAL]
    > No, ale w moim odczuciu lepszym pomysłem byłoby po prostu dbanie o zgodność
    niskopoziomowego interfejsu pomiędzy kolejnymi urządzeniami kontrolera.

    Niskopoziomowego, czyli co? Adresy rejestrów i układ bitów w środku? To za nisko, bo
    na tym poziomie i tak nikt nie chce pracować. Pomrugać LEDem to się jeszcze da na tym
    poziomie, ale obsługa jakiegokolwiek interfejsu komunikacyjnego to już wyższa forma
    masochizmu. Po prostu nikt normalny tak nie robi.
    A cokolwiek powyżej tego poziomu to właśnie HAL.

    [kod inicjalizacyjny]
    > Zoptymalizowany pod dwoma kątami:
    > - rozmiaru, jaki zajmuje w pamięci stałej

    A po co? To i tak jest najmniejsza część całości, w skład której zwykle wchodzi jakiś
    RTOS, być może też jakiś stos TCP, itd.
    Optymalizowanie tego to strata czasu - chociaż, oczywiście, spodziewamy się jakiegoś
    minimum rozsądku, np. że ten kod nie będzie zawierał fragmentów odpowiedzialnych za
    nieużywane peryferia. Ale właśnie po to jest wizard, żeby taką konfigurowalność
    zapewnić.

    Mnie bardziej śmieszy fakt, że ten CubeMX wymaga Javy. I w ten sposób, żeby napisać
    program liczony w kilobajtach trzeba zainstalować softu liczonego w gigabajtach. To
    jest obiektywnie głupie. Konfigurator jądra Linuksa można było kiedyś zrobić kilka
    rzędów wielkości taniej a teraz całe dziedzictwo IT z ostatnich 30 lat bierze udział
    w konfigurowaniu nóżki w mikrokontrolerze.

    > - kolejności inicjalizacji, ze względu na czas inicjalizacji peryferiów (bo
    producent wie to lepiej ode mnie)

    Zakładamy, że tak jest. Nie widzę powodu, żeby nie było.

    > > Teoretycznie nie musi być bolesne, bo są mechanizmy pozwalające rozgraniczyć kod
    generowany od modyfikowanego.
    >
    > Jest bolesne.

    Dlaczego?

    > Fajny pomysł mają goście z Krakowa, język Luna
    > https://www.luna-lang.org
    > opiera się o "dualną reprezentację graficzno tekstową". Można sobie przełączać. To
    jest lepsze od generowania, bo mamy izomorfizm. Czyli można np. używać tradycyjnych
    narzędzi diffujących (o czym sam kiedyś wspominałeś).

    Izomorfizm daje np. konfigurator Texas Instruments (bo przecież ST to nie jedyna
    firma na rynku). Konfiguracja to tradycyjny plik tekstowy, ale ogląda się to
    graficznie (jeśli ktoś chce).

    > W CubeMX nie można (albo ja nie wiem jak). A ich pomysł na rozwój aplikacji (że
    dają mi szablony, i ja wciskam swój kod pomiędzy ich komentarze) jest po prostu
    koszmarny.

    To wciskaj tam nie swój kod, tylko jedną linijkę wywołującą właściwy program w innych
    plikach. Wtedy nie jest bolesne a poniesione ryzyko to właśnie ta jedna linijka.

    > > Oczywiście to nadal nie usprawiedliwia wypychania języka C na tron. Ale tak się
    właśnie dzieje.
    >
    > Nie wiem jaki inny język mieliby wcisnąć.

    C++? Przecież całe środowisko Arduino tak działa.
    I tak każdy producent ma kompilator C++, więc nie widzę problemu.

    Do zastosowań krytycznych te wizardy i tak się nie nadają, więc nie ma się co spinać.
    A rozsądny pozdbiór C++ na tym poziomie (powiedzmy bez wyjątków i polimorfizmu) byłby
    wystarczająco tani.

    --
    Maciej Sobczak * http://www.inspirel.com

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: