ChatGPT to niezwykła technologia, która potrafi zadziwić swoją szybkością i precyzją. Dzięki niej można niemal natychmiast uzyskać odpowiedź na najbardziej wymagające pytanie, a nawet wygenerować pełnoprawny kod. Jest to szczególnie przydatne dla tych, którzy potrzebują szybkiej i dokładnej pomocy w rozwiązywaniu problemów.
Co więcej, ChatGPT potrafi również doskonale przetłumaczyć tekst, co udowodniłem rozmawiając z osobą, która mówiła obcym językiem. Jest to niezwykłe narzędzie, które otwiera przed nami nowe możliwości i daje dostęp do ogromnej wiedzy.
Jednak, aby skorzystać z wszystkich możliwości ChatGPT, należy zadawać precyzyjne pytania. Dzięki temu uzyskamy odpowiedzi na nasze najgłębsze zagadnienia i będziemy mogli poznać nowe, fascynujące światy. Dla wszystkich ciekawych świata ChatGPT to prawdziwe "okno na świat".
Można poprosić go by wytłumaczył coś, dostarczył linki do jakiś stron (bywa tak, że linki są niedziałające (być może zmyślone?)), podsunął myśl, wygenerował streszczony poradnik w kilku punktach.
Przeglądałem ankietę zorganizowaną przez Stack Overflow w tym roku i zaciekawiły mnie wyniki na temat najbardziej lubianych języków wśród grupy 71467 osób. Ciekawy jestem czy ten język jest faktycznie aż tak lubiany i dlaczego. No i jak sprawuje się w świecie "embedded".
@Femto O, fajnie że się podzieliłeś doświadczeniem. Też kiedyś hobbystycznie próbowałem rust ale było to 6-7 lat temu. Jednak pamiętam że, że tak powiem 'pobawienie' się tym językiem było już trudne bo kompilator łapał za gardło :). Od tego czasu pewnie sporo się zmieniło na lepsze.
@warzone Zarówno C jak i C++ to języki konstruowane według zasad "nie płacisz za to z czego nie korzystasz". To znaczy, że z jednej strony są bardzo wydajne (nie robią nic ponad to o co je poprosisz), a z drugiej możesz sobie stworzyć pusty pointer i wskazuje on na losowy adres pamięci. Inicjalizacja takiego pointera przez kompilator to praca której nie wszyscy potrzebują i tyle .
Z C++ w embedded jest problem jak z piłami łańcuchowymi. Ekstremalnie skutecznie przecinają zarówno drewno jak i kończyny. Nieprzeszkolony operator szybko się potnie przez co łatwo powiedzieć, że "ręczna piła dużo lepsza bo jeszcze nic sobie nią nie uciąłem".
Niestety ani uczelnie ani podręczniki nie skupiają się na np. tym jak malloc/new, free/delete, biblioteka standardowa itp. działają pod maską i niemal wszyscy jesteśmy tymi nieprzeszkolonymi operatorami. Śledzenie pamięci i jej fragmentacji mogłoby zjeść pół miejsca na kod w takim MCU z 32kB flesha i często free() nawet nie jest zaimplementowane...
Ja mam zasady które stosuje po kolei w zależności od konieczności:
alokuj tylko statycznie (95% przypadków)
jak się nie da alokuj dynamicznie ale dokładnie RAZ (np. w zależności od konfiguracji urządzenia jeden bufor może być większy, a drugi mniejszy. Alokuje je na starcie i nie ruszam.
alokuj dynamicznie chunki ale tylko o jednej z 1..n znanej wielkości. Wtedy sensownie łatwo jest zaimplementować śledzenie fragmentacji. Koszty testów takiego oprogramowania to od razu x2 albo x3.
Napisany w "Rdzy". Tak popularny się zrobił ten język, wszędzie o nim czytam, i nawet do kernela Linuxa ma trafić, że chyba się z nim zapoznam w najbliższym czasie.
Skorzystałem ze z͟n͟a͟k͟ó͟w͟ ͟d͟i͟a͟k͟r͟y͟t͟y͟c͟z͟n͟y͟c͟h. (Teraz to pewnie zastanawiacie się jak ja zrobiłem podkreślenie, kiedy tutaj nie ma takiej opcji w edytorze... Otóż użyłem do tego z͟n͟a͟k͟ó͟w͟ ͟d͟i͟a͟k͟r͟y͟t͟y͟c͟z͟n͟y͟c͟h (Teraz to pewnie zastanawiacie się jak ja... ))
Po każdej literze dodałem sekwencję: \u0307\u0310\u030e
\u0307 to jest taka kropka, podtrzymuje uśmiech nad literą
@ZmiksowanaFretka To jest ciekawostka, nie ma to żadnego specjalnego celu, to tylko w celach rozrywkowych (a przynajmniej dla mnie w trakcie pisania tego postu. Kto wie, może kiedyś ta specyficzna wiedza się do czegoś przyda?)