Skocz do zawartości

C++ a inne języki w RasberryPi i Arduino


prezes

Pomocna odpowiedź

Założeniem RASPBERRY PI jest posiadane systemu operacyjnego. W tym wypadku jest to Linux. Język programowania w tym wypadku nie zależy od sprzętu, ale od tego, czy dana wersja systemu operacyjnego obsługuje dany język, bądź dostarcza możliwość dorzucenia narzędzi do programowania/używania danego języka.

Tak, Raspberry da się programować za pomocą różnych języków. Jedynym problemem jest znalezienie API (application protocol interface) do obsługi zawartych peryferiów (jak IO) - choć z tego co wiem takie rzeczy da się robić za pośrednictwem C++'a w Raspberry.

C++ to odgałęzienie C - krok w jego ewolucji. Różnice są widoczne, ale nie są tak krytyczne, by nie móc uczyć się dwóch języków naraz.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Napisałem tylko, że tak wg mnie byłoby najłatwiej zacząć.

Sam tworzę projekty komercyjne na Raspbery i Ubuntu, ale każdy "amator" wie jak przyjemnie programuje się w Visual Studio 🙂

Link do komentarza
Share on other sites

Najłatwiej wg mnie będzie zacząć od Windowsa 10 w wersji na najnowsze rasbpery PI a program pisać w Visual Studio w C++.

O, widzę, że kolega ma duże doświadczenie. Niestety to, co Microsoft nazywa "Windowsem 10" na Raspberry Pi 2 nie jest pełnosprawnym systemem operacyjnym, a jedynie wbudowanym serwerem WWW udostępniającym API, pozwalające sterować płytką z zewnątrz. Nie da się na tym uruchomić żadnego kompilatora, o środowisku programistycznym takim jak Visual Studio już nie wspominając. Więc ta rada chyba raczej dość chybiona.

Osobiście nie mam żadnego problemu z domyślnym Raspbianem, szczególnie od kiedy jest "wersja minimalna" obrazu, mieszcząca się na 2GB karcie SD. Biblioteki do API dla C i C++ jak najbardziej istnieją, więc nie ma tu problemu. Dodam jeszcze, że za błąd uważam zakładanie, że należy się nauczyć tylko jednego języka i trzeba wybrać którego. Wręcz przeciwnie, im więcej różnych języków się zna, nawet tylko pobieżnie, tym lepiej się programuje.

Link do komentarza
Share on other sites

deshipu, trochę nie trafiłeś z argumentami....

Windows 10 dla Raspberry jest jak najbardziej pełnoprawnym systemem operacyjnym. Tylko nie ma nic wspólnego z Windows 10 na PC (albo bardzo niewiele). Jest to kolejna wersja Windows CE, czyli rodziny systemów dla urządzeń wbudowanych. Nie będą na nim działały programy z PC, nie pogramy itd.

Wersja dla Raspberry nie posiada interfejsu graficznego - to wcale nie znaczy, że nie jest to system operacyjny. Linuxa można uruchamiać bez X-ów i nadal będzie systemem.

Visual Studio jest jak najbardziej środowiskiem do programowania na Windows CE. Oczywiście kompilator nie działa na płytce, tylko na PC. W sumie to koszmarny pomysł w przypadku Raspberry, żeby kompilator uruchamiać na ARM-mie. O wiele łatwiej, szybciej, bezpieczniej jest programować i kompilować programy na PC, a wynikowy program wysyłać na docelową płytkę. Tak się programuje Arduino, STM32 i większość mikrokontrolerów. Niestety Raspberry jest na tyle "mocne" że wiele osób kompiluje na docelowej płytce... Ma to tyle sensu co uruchamianie gcc na AVR, ale jest bardzo popularne.

Faktycznie warto uczyć się wielu języków - nie tylko programowania. Ale nie jest racją, że ilość przechodzi w jakość. Jeśli umiemy powiedzieć "dziękuję" w 50 językach, nie oznacza to, że będziemy przez to lepszymi mówcami... Lepiej znać dobrze chociaż jeden język programowania, a pozostałe w miarę możliwości. Oczywiście jeśli ktoś pozna dobrze 10 to jeszcze lepiej. Ale poznanie kiepsko wszystkich wcale nie poprawi umiejętności programistycznych

Link do komentarza
Share on other sites

Na czym ten serwer WWW chodzi to nieistotne, skoro nie masz do tego dostępu. Co z tego, że system operacyjny jest "pełnosprawny", skoro nie możesz go użyć.

Koszmarny pomysł czy nie, pozwala programować ludziom, którzy nie mają innego komputera, drogiego oprogramowania i skomplikowanego środowiska. Poza tym programy, które piszą, raczej się nie będą kompilować godzinę.

Faktycznie warto uczyć się wielu języków - nie tylko programowania. Ale nie jest racją, że ilość przechodzi w jakość. Jeśli umiemy powiedzieć "dziękuję" w 50 językach, nie oznacza to, że będziemy przez to lepszymi mówcami... Lepiej znać dobrze chociaż jeden język programowania, a pozostałe w miarę możliwości. Oczywiście jeśli ktoś pozna dobrze 10 to jeszcze lepiej. Ale poznanie kiepsko wszystkich wcale nie poprawi umiejętności programistycznych

Znajomość składni języka programowania (czy też wielu takich języków) ma się nijak do umiejętności programowania, to są dwie zupełnie osobne umiejętności, które nie wpływają na siebie bardziej, niż, jak piszesz, znajomość języków obcych i krasomówstwo. Natomiast poznanie nowych sposobów myślenia przy programowaniu, które zazwyczaj idzie w parze z "nauką języka", jak najbardziej pomaga. Ktoś, kto zna zarówno C jak i Pythona, Prologa oraz Haskella, będzie potrafił rozwiązać więcej problemów, niż ktoś, kto całe życie programował tylko w C, choćby i znał ten język na wylot. Nawet jeśli zna te języki tylko pobieżnie -- bo musiał się zapoznać z leżącymi u ich podstaw sposobami myślenia. Oczywiście, jak mówi stare powiedzenie, da się pisać w C w dowolnym języku -- nauczyć się tylko odpowiedników poszczególnych podstawowych instrukcji i mechanicznie tłumaczyć programy z C. Ale przecież nie o to chodzi.

Link do komentarza
Share on other sites

Co rozumiesz przez brak dostępu? Przecież do Windows 10 na RPi jest jak najbardziej dostęp. Można zdalnie działać z poziomu prompt-a oraz oczywiście uruchamiać aplikacje napisane w Visual Studio. To nie jest system, na którym mamy grać pasjansa - służy do uruchamiania aplikacji.

Cieszę się, że już ustaliliśmy że nie ma potrzeby uczenia się wielu składni. Sposoby myślenia, nazywane są w programowaniu paradygmatami. Mamy więc paradygmat programowania strukturalnego, obiektowego, czy funkcjonalnego. Ale do tego nie musimy wcale uczyć się nowych języków. Może będziesz zaskoczony, ale w C można programować obiektowo. Oczywiście zawsze lepiej wiedzieć więcej, ale nie zgodzę, się że ktoś kto trochę zna programowanie funkcjonalne, trochę obiektowe, trochę asemblera jest lepszym programistą, niż np. ekspert od Pythona. Inna sprawa, że nie ustaliliśmy kto to jest "lepszy programista", więc każdy to może rozumieć inaczej.

Moim zdaniem - najlepiej na początek opanować jeden język programowania, a następnie pouczyć się trochę ogólnej informatyki np. algorytmiki. Kolejne języki poznaje się już dużo szybciej.

Link do komentarza
Share on other sites

Dodam jeszcze, że za błąd uważam zakładanie, że należy się nauczyć tylko jednego języka i trzeba wybrać którego. Wręcz przeciwnie, im więcej różnych języków się zna, nawet tylko pobieżnie, tym lepiej się programuje.

Ja uczę się na razie tylko C++ ponieważ zamierzam pracować w gamedevie a tam C++ to podstawa. Zamierzam uczyć się też Pythona do pisania kilku skryptów w Linuksie. Na razie to tyle dalej zobaczymy.

Link do komentarza
Share on other sites

To jeśli C++ do nauki to polecałbym Raspberry, albo programowanie na PC. Raczej gier nie pisze się na malince, więc programowanie na PC to chyba racjonalny wybór. Na Arduino można używać C++, ale mikrokontroler ma bardzo mało pamięci i za dużo obiektowości się tam nie nauczy. Trochę lepiej wygląda już STM32.

Link do komentarza
Share on other sites

Oczywiście, że powstają różne amatorskie projekty. Ale ja rozumiałem, że prezes, chce pracować, a nie bawić się w programowanie gier. Swoją drogą, czy wyobrażasz sobie kompilację np. wiedźmina na procesorze Raspberry?

Link do komentarza
Share on other sites

Zaraz, ale przecież Malina została pomyślana jako platforma do zabawy w programowanie gier. Tysiące gier jakie na nią powstają to proste programiki w Scratchu lub Pythonie. To jest jej podstawowe zadanie - zabawa, a nie ciągnięcie Dzikiego Gona w najsłabszych detalach i 10fps. Zapewne znajdą się maniacy którzy będą na niej odpalać Quake'a i cieszyć się jak dzieci, ale wątpię czy powstanie rynek profesjonalnych gier na Malinę i czy ktoś będzie gotów za to cokolwiek zapłacić. To wciąż jest (fantastyczna) zabawka do robienia hobbystycznych projektów i tak trzeba ją traktować.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.