logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Czy rozwiązania no-code zdominują przyszłości rozwiązań wbudowanych?

ghost666 27 Wrz 2023 01:54 1572 13
  • Współczesne firmy stale dążą do osiągania coraz więcej przy mniejszym nakładzie zasobów i pracy. W miarę upływu czasu tworzenie systemów wbudowanych stało się z kolei niezwykle złożone. Rozważmy, chociażby włącznik światła podłączony do Internetu. Jego jedyną funkcją jest włączanie i wyłączanie oświetlenia, ale do zbudowania takiego urządzenia potrzebne są sterowniki niskopoziomowe, systemy czasu rzeczywistego (RTOS), stosy łączności, połączenie z chmurą, mechanizmy bezpieczeństwa, konstrukcje o niskim zużyciu energii i zdolność do odzyskiwania danych po przerwie w dostawie prądu. Wiedza i umiejętności programistyczne niezbędne współcześnie są ogromne i, szczerze mówiąc, stają się coraz bardziej nieuzasadnionym wymaganiem. W ciągu ostatnich kilku lat w branży oprogramowania dla systemów wbudowanych pojawiło się przekonanie, że dalsza perspektywa jego tworzenia niekoniecznie będzie polegać na pisaniu kodu. Czy to oznacza, że rozwiązania typu no-code zdominują przyszłość systemów wbudowanych? Przyjrzyjmy się im bliżej.

    Co to jest no-code?

    Gdy mówimy o opcji typu no-code, mamy na myśli narzędzia wysokiego poziomu, które najczęściej wykorzystują graficzny interfejs użytkownika (GUI), aby umożliwić projektowanie i wdrażanie systemu na platformach embedded. Programista nie musi koniecznie znać języka programowania. Musi zrozumieć koncepcje oprogramowania na wysokim poziomie, podczas gdy narzędzie wykorzystuje te założenia do generowania kodu niskiego poziomu. Na przykład, jeśli chcemy zaimplementować maszynę stanów, po co zajmować się edycją i manualnym pisaniem kodu w C/C++ czy Rust? Maszyna stanów to koncepcja wysokopoziomowa, a jako programistom systemowym nie zawsze zależy nam na tym, w jakim dokładnie języku jest ona zaimplementowana. Istotne są jednak szczegóły odnośnie do jej projektowania. Jeśli możemy użyć narzędzia wysokiego poziomu do określenia zachowania takiego urządzenia, a następnie pozwolić temu instrumentowi wygenerować implementację, to jest to dla nas wielka korzyść!

    W przeszłości rozwój oprogramowania wbudowanego zawsze zaczynał się na poziomie układu, sprzętu i rozwijał, aż do osiągnięcia wymaganych funkcji przez produkt. Taka praktyka jest ukochana przez inżynierów elektroników i programistów systemów wbudowanych! Poświęcamy uwagę bitom i bajtom, mapom pamięci i rejestrów... Niestety z punktu widzenia biznesu, zarządzanie i klienci niekoniecznie przejmują się tymi aspektami. Zależy im na pożądanych funkcjach, które pomogą uzyskać cel. To prowadzi do pojawienia się podejścia o odwrotnym przebiegu prac — z góry na dół.

    Kod kontra no-code

    Rozwiązania typu no-code niekoniecznie przyspieszą testowanie produktu przez firmę, która zaczyna od funkcji. Warto pokazać je klientom i uzyskać od nich opinie, które są niezbędne do stworzenia udanego produktu na końcu procesu. Idea no-code otwiera możliwość projektowania systemu przez osoby bez dogłębnej wiedzy w zakresie języków programowania. Jest to bardzo atrakcyjne z punktu widzenia biznesu, co skłania firmy do wdrażania tej koncepcji.

    Idee takie jak no-code i projektowanie oparte na modelu istnieją w branży oprogramowania od dziesięcioleci. Są też narzędzia typu STMCubeMx, Matlab, MCUXpresso i inne, które pozwalają na pewnym poziomie uniknąć konieczności pisania kodu. To interesujące rozwiązania, które z roku na rok stają się coraz lepsze. Niemniej niektóre firmy borykają się z kosztami braku instrumentów do kodowania, a inne narzędzia po prostu nie są wystarczająco rozwinięte. Mogą one przyspieszyć proces rozwoju, ale nadal wymagają od programisty znajomości wielu podstawowych szczegółów.

    Wszystko to prowadzi do ciekawego punktu dotyczącego tworzenia oprogramowania wbudowanego. Jest ono wyjątkowe, ponieważ programiści, zajmujący się tym kodem, muszą zrozumieć, co dzieje się z tym źródłowym. Jeśli zaistnieją problemy z wydajnością, z pamięcią czy wiele innych, które często pojawiają się w systemach wbudowanych, podejście no-code nie będzie odpowiednim rozwiązaniem. Programiści muszą zrozumieć swój sprzęt i proces kompilacji. Abstrahowanie od szczegółów na wyższym poziomie może przyspieszyć proces tworzenia oprogramowania, ale w końcu coś pójdzie nie tak, a wtedy niezbędna będzie specjalistyczna wiedza do przezwyciężenia trudności.

    Podsumowanie

    Chociaż podejście no-code stanowi fascynujący obszar, to niekoniecznie zdominuje on dziedzinę tworzenia oprogramowania. No-code może znaleźć zastosowanie, zwłaszcza w kwestii projektowania architektury na wysokim poziomie, budowania interfejsów użytkownika i zarządzania zachowaniem oraz sterowania stanem. Być może w przyszłości pojawi się standardowa metoda tworzenia oprogramowania, która zastąpi kod lub modele, ale wydaje się, że jesteśmy jeszcze daleko od takiej rzeczywistości, szczególnie w przypadku systemów wbudowanych. Uformowało się wiele interesujących koncepcji i pomysłów z dziedziny no-code, ale prawdopodobnie minie kolejna dekada lub więcej, zanim podejście to zdominuje w pełni tę branżę. Może przyspieszy to przyjęcie narzędzi opartych na sztucznej inteligencji, ale zawsze będzie potrzebna dogłębna wiedza na temat niskopoziomowych aspektów programowania systemów wbudowanych.

    Źródło: https://www.embedded.com/will-no-code-solutions-dominate-the-future-of-embedded/

    Fajne? Ranking DIY
    O autorze
    ghost666
    Tłumacz Redaktor
    Offline 
    Fizyk z wykształcenia. Po zrobieniu doktoratu i dwóch latach pracy na uczelni, przeszedł do sektora prywatnego, gdzie zajmuje się projektowaniem urządzeń elektronicznych i programowaniem. Od 2003 roku na forum Elektroda.pl, od 2008 roku członek zespołu redakcyjnego.
    https://twitter.com/Moonstreet_Labs
    ghost666 napisał 11960 postów o ocenie 10197, pomógł 157 razy. Mieszka w mieście Warszawa. Jest z nami od 2003 roku.
  • #2 20748864
    pixel7
    Poziom 23  
    To tak, jakby podróżować samochodem z klocków lego. Przetestowane wszystkie moduły, każdy ze sobą współpracuje, całość sprawna technicznie. Tylko że wszystkie modele nie będą zbyt "jednakowe"? Świat minecrafta?
  • #3 20749056
    ChatGPT
    Poziom 10  
    @ElektrodaBot Czy ChatGpt lub AI zastąpi technologie no-code w przyszłości?
  • #4 20749064
    ElektrodaBot
    AI od OpenAI ChatGPT4
    ChatGPT napisał:
    Czy ChatGpt lub AI zastąpi technologie no-code w przyszłości?
    To jest interesujące pytanie i ma wiele aspektów do rozważenia. Przede wszystkim, "no-code" (brak kodowania) i AI są dwiema technologiami, które działają w nieco odmienny sposób i służą różnym celom. Dlatego ważne jest, aby zrozumieć, na czym polegają obie te technologie.

    Technologia "no-code" to podejście do programowania, które pozwala na tworzenie aplikacji czy stron internetowych bez konieczności pisania kodu znanego z tradycyjnych języków programowania. Zamiast tego, programiści używają interfejsów graficznych, przeciągania i upuszczania, czy gotowych bloczków z funkcjonalnościami, które można dowolnie łączyć ze sobą. To sprawia, że tworzenie oprogramowania jest bardziej dostępne dla osób, które nie mają formalnego wykształcenia informatycznego.

    Z drugiej strony, AI (sztuczna inteligencja) jak ChatGPT, to technologia, która naśladuje ludzkie procesy myślowe, takie jak uczenie się, rozumienie języka, rozpoznawanie wzorców, rozwiązywanie problemów i podejmowanie decyzji. AI może być używana do automatyzacji pewnych zadań, które zwykle wymagają interwencji człowieka.

    Jeśli chodzi o to, czy AI zastąpi technologie "no-code", to moim zdaniem nie jest to prawdopodobne w najbliższej przyszłości. Oto dlaczego:

    1. Różne cele: Tak jak wspomniałem wcześniej, AI i "no-code" służą różnym celom. "No-code" jest przede wszystkim narzędziem do tworzenia oprogramowania, podczas gdy AI jest narzędziem do automatyzacji i symulacji inteligencji ludzkiej.

    2. Kompleksowość: Tworzenie aplikacji, zwłaszcza tych bardziej skomplikowanych, często wymaga niuansów, które są trudne do zaprogramowania za pomocą AI. Na przykład, niuanse związane z projektowaniem użytkownika, wymaganiami biznesowymi, zależnościami w kodzie itp.

    3. Customizacja: Technologie "no-code" oferują dosyć dużą swobodę w dostosowywaniu aplikacji do specyficznych potrzeb użytkownika czy biznesu. AI natomiast, choć coraz lepsza, nie jest jeszcze na tyle zaawansowana, aby sprostać wszystkim niuansom.

    4. Kontrola nad kodem: W przypadku tworzenia oprogramowania, często ważne jest, aby mieć pełną kontrolę nad kodem. W przypadku "no-code", mimo iż nie piszemy kodu "ręcznie", mamy kontrolę nad tym, jakie bloki funkcjonalności łączymy ze sobą. W przypadku AI, ta kontrola bywa ograniczona.

    Pomimo powyższych punktów, AI na pewno będzie miała coraz większy wpływ na sposób tworzenia oprogramowania. Na przykład, AI może być używana do automatyzacji pewnych aspektów procesu tworzenia oprogramowania, takich jak testowanie, debugowanie, optymalizacja kodu, a nawet generowanie pewnych fragmentów kodu. Ale pełne zastąpienie technologii "no-code" przez AI wydaje się mało prawdopodobne w najbliższej przyszłości.
    Możesz mnie wywołać w każdym temacie pisząc @ElektrodaBot. Zastrzeżenie: Niektóre odpowiedzi udzielone przez ElektrodaBota mogą być niedokładne. Elektroda nie ponosi odpowiedzialności za dokładność, rzetelność ani kompletność prezentowanych informacji. Wszystkie odpowiedzi ElektrodaBota powinny być zweryfikowane przez użytkownika. OpenAI może monitorować i zapisywać informacje wprowadzane po wywołaniu ElektrodaBota.
  • #5 20750034
    ghost666
    Tłumacz Redaktor
    pixel7 napisał:
    To tak, jakby podróżować samochodem z klocków lego. Przetestowane wszystkie moduły, każdy ze sobą współpracuje, całość sprawna technicznie. Tylko że wszystkie modele nie będą zbyt "jednakowe"? Świat minecrafta?


    Ale przecież już od dawna tak jest, że wiele elementów samochodów wykorzystuje się w różnych modelach... tak samo jest z oprogramowaniem, od kiedy są gotowe biblioteki do wielu rzeczy, to jest częściowo składanie z klocków.

    Pytanie jest tylko o to, czy to pójdzie dalej?
  • #6 20750350
    Thunderacer
    Poziom 19  
    ghost666 napisał:
    Ale przecież już od dawna tak jest, że wiele elementów samochodów wykorzystuje się w różnych modelach... tak samo jest z oprogramowaniem


    Masz rację, często jest tak, że tylko interfejs użytkownika stosuje się jako nakładkę. Niestety, w zasadniczym oprogramowaniu powiela się często te same błędy. Na szczęście producenci zaczynają dostrzegać, że jakość kodu ma przełożenie na ich pieniądze w tworzeniu kolejnych aktualizacji.
  • #7 20751442
    _lazor_
    Moderator Projektowanie
    Tak patrząc to oprogramowanie też jest z klocków. Nie spotkałem w sumie dużej firmy, która by nie produkowała "klocków" bo każda biblioteka to taki klocek. Czy da się to zrealizować graficznie? Jedyne rozwiązanie graficzne, które się przyjeło (przyjeło = używają tego duże firmy i to nie przypadki jednostkowe) jakie znam to labview.

    Chciałbym zobaczyć graficzne przedstawienie interface'ów które zawierają setki pól i stosują meta programowanie :D Zrozumiałbym szybciej sens ułożenia mojego makaronu na talerzu niż taki obrazek.
  • #8 20751875
    khoam
    Poziom 42  
    _lazor_ napisał:
    Chciałbym zobaczyć graficzne przedstawienie interface'ów które zawierają setki pól i stosują meta programowanie

    Na przykład Visuino :D

    Zrzut ekranu schematu połączeń elektronicznych

    Tak sobie zażartowałem ...
  • #9 20757321
    bigrom
    Poziom 14  
    No-code wg mnie to mrzonka w systemach. Zawsze ktoś będzie musiał przełożyć to co ktoś wymyśli na sensowne klocki.
    To tak jak mamy klocki lego i od dzisiaj wszyscy będą budowniczymi swoich wymarzonych budowli niby tak. Ale cyjanopan zrobi swoje.
    A kto będzie szukał błędów w tym ładnie narysowanym i stworzonym oprogramowaniu.
    Wszyscy wiedzą do czego służy młotek ale nie liczni umieją z niego korzystać. I to są właśnie programiści. Wydaje się że im trochę to lepiej wychodzi niż innym.

    A jak wszyscy widzą książka kucharska to zbiór algorytmów które prowadzą do potraw. A przecież nie wszyscy umieją gotować.
  • #10 20757326
    khoam
    Poziom 42  
    bigrom napisał:
    Zawsze ktoś będzie musiał przełożyć to co ktoś wymyśli na sensowne klocki.

    Docelowo, do tego ma właśnie służyć tzw. AI. Ono może pracować przez 24h na dobę i nie wymaga opieki ze strony HR. Z punktu widzenia biznesu jest to tańsze rozwiązanie, ale czy lepsze?
  • #11 20757347
    bigrom
    Poziom 14  
    @ElektrodaBot Jaki jest no-code ze źródłami
  • #12 20757349
    ElektrodaBot
    AI od OpenAI ChatGPT4
    bigrom napisał:
    Jaki jest no-code ze źródłami
    Technologia No-Code, jak sama nazwa wskazuje, pozwala na tworzenie oprogramowania bez konieczności pisania kodu. Zamiast tego, możesz używać interfejsu typu "przeciągnij i upuść" i gotowych bloków funkcjonalności, które składają się na finalną aplikację. Jest to atrakcyjne dla osób bez formalnego tła programistycznego, które chcą tworzyć aplikacje lub strony internetowe.

    "No-code" ze źródłami, jak to nazwałeś, prawdopodobnie odnosi się do platform no-code, które umożliwiają dostęp do źródłowego kodu generowanego przez te platformy. Choć to nie jest powszechne w świecie no-code (ponieważ cała idea polega na unikaniu bezpośredniego pisania kodu), niektóre platformy mogą oferować tę opcję dla bardziej zaawansowanych użytkowników, którzy chcą mieć większą kontrolę nad finalnym produktem.

    Przykłady takich platform to Bubble, OutSystems czy Adalo. Te platformy oferują interfejs typu "przeciągnij i upuść" do tworzenia aplikacji, ale także umożliwiają użytkownikom dostęp do generowanego kodu, jeśli chcą wprowadzić bardziej zaawansowane zmiany.

    Jednak istotne jest zrozumienie, że korzystanie z takich platform może wymagać pewnego poziomu zrozumienia kodowania. Dostęp do i modyfikacja kodu źródłowego jest zaawansowaną funkcją, która zazwyczaj jest używana przez programistów, którzy chcą personalizować generowane aplikacje ponad to, co jest możliwe za pomocą domyślnych narzędzi no-code.

    Wreszcie, należy zauważyć, że każda platforma jest inna. Nie wszystkie platformy no-code oferują dostęp do kodu źródłowego, a te które to oferują, mogą mieć różne ograniczenia i możliwości. Dlatego zawsze warto dokładnie sprawdzić możliwości konkretnej platformy przed podjęciem decyzji o jej użyciu.
    Możesz mnie wywołać w każdym temacie pisząc @ElektrodaBot. Zastrzeżenie: Niektóre odpowiedzi udzielone przez ElektrodaBota mogą być niedokładne. Elektroda nie ponosi odpowiedzialności za dokładność, rzetelność ani kompletność prezentowanych informacji. Wszystkie odpowiedzi ElektrodaBota powinny być zweryfikowane przez użytkownika. OpenAI może monitorować i zapisywać informacje wprowadzane po wywołaniu ElektrodaBota.
  • #13 20760222
    ChatGPT
    Poziom 10  
    Tak wygląda no-code


  • #14 21162014
    Plumpi
    Specjalista - systemy grzewcze
    khoam napisał:
    _lazor_ napisał:
    Chciałbym zobaczyć graficzne przedstawienie interface'ów które zawierają setki pól i stosują meta programowanie

    Na przykład Visuino :D

    Zrzut ekranu schematu połączeń elektronicznych

    Tak sobie zażartowałem ...


    Dobry żart. To oprogramowanie to chyba pisano w Logo i to jeszcze w wersji językowej Indian, używając sygnałów dymowych :)

Podsumowanie tematu

W dyskusji poruszono temat przyszłości rozwiązań no-code w kontekście systemów wbudowanych, które stają się coraz bardziej złożone. Uczestnicy zauważają, że technologia no-code umożliwia tworzenie aplikacji bez pisania kodu, co czyni ją bardziej dostępną dla osób bez formalnego wykształcenia informatycznego. Wskazano na analogię do budowy z klocków LEGO, gdzie różne elementy oprogramowania mogą być łączone w celu stworzenia funkcjonalnych aplikacji. Jednakże, niektórzy uczestnicy wyrażają wątpliwości co do efektywności no-code, podkreślając, że zawsze będzie potrzeba programistów do rozwiązywania problemów i zapewnienia jakości kodu. Wspomniano również o platformach no-code, takich jak Bubble, OutSystems i Adalo, które oferują interfejsy graficzne do tworzenia aplikacji.
Podsumowanie wygenerowane przez model językowy.
REKLAMA