Felieton pod takim tytułem czytałem w zamierzchłych latach 90. w nieistniejącym już czasopiśmie „PC Kurier”.
Autor pławił się w zachwytach nad językiem programowania C.
Pozwolę sobie zacytować z pamięci jedno z tych uniesień:
„Litera C symbolizuje głowę ludzką.
W miejscu gdzie powinna być twarz litera C ma pustą przestrzeń przez którą chłonie informację...”
Przyznam, że rozbawiły mnie wówczas te peany.
Ja szczerze nienawidziłem tego języka.
Nie podobały mi się te klamerki, hashe, gwiazdki.
Składnia była wybitnie nieprzejrzysta i do tego okropny kompilator, który pokazywał błąd tam gdzie go akurat nie było.
W tamtym czasie po krótkiej przygodzie z BASIC’em na komputerki 8-bitowe przesiadłem się na „dorosłe”, 16-bitowe komputery PC.
I zacząłem programować w... Pascalu.
Pascal to przejrzysta, czytelna składnia, znakomita diagnostyka błędów i błyskawiczna kompilacja.
Próbowałem też pisać w C, ale jakoś tak bez przekonania – Pascal w porównaniu do C to dla mnie było niebo a ziemia.
Doprawdy nie mogłem wtedy zrozumieć, dlaczego ten toporny C ma tylu zwolenników.
W połowie lat 90. popularność zyskiwał system Windows, ale również na niego powstało znakomite środowisko programistyczne z Pascalem – Delphi.
Mogłem nadal pisać programy w moim ulubionym języku Pascal (oczywiście zakupiłem licencję na ten program).
Przyszedł XXI wiek a wraz z nim telefony komórkowe, na które można było pisać programy, niestety tylko w Javie.
Chcąc nie chcąc, musiałem się oswoić z tym klamerkowym zapisem (składnia Javy bazuje na języku C).
Później pojawiły się urządzenia typu Pocket PC i platforma programistyczna Visual eMbedded C++, jeszcze później środowisko .NET Framework i język C#.
Zdałem sobie wówczas sprawę, że znajomość składni C i obycie z tym pozornie nieprzejrzystym zapisem bardzo ułatwiła mi migrację do nowego środowiska.
Zatem zamiast kurczowo trzymać się jednego poznanego języka, lepiej było poznać i trzymać się standardu, jakim jest C.
Bowiem większość tworzonych nowych platform programistycznych bazuje na C-podobnej konwencji (np. ogromnie popularna platforma Arduino).
Co do tematu programowania mikrokontrolerów – kiedyś wydawało mi się to wiedzą tajemną, dostępną jedynie dla garstki specjalistów.
Poszukując informacji w Internecie szybko znalazłem artykuły dotyczące procesorów 8051 i AVR oraz kursy BASCOM’a.
Niejako na uboczu zdawała się istnieć garstka piszących w C.
Jednak drążąc temat dowiedziałem się że istnieją również inne rodziny mikrokontrolerów – np. PIC, oraz inne narzędzia np. mikroPascal.
Jednak w naszym kraju praktycznie nie były stosowane.
Skąd w Polsce taka popularność BASCOM’a i AVR’ów?
Myślę że spora w tym zasługa ogromnie opiniotwórczego miesięcznika EdW.
Bo właśnie stąd młodzi adepci elektroniki czerpali wiedzę i umiejętności.
I właśnie ta pozorna prostota programowania w BASCOM’ie spowodowała że przybyło dużo projektów z procesorami
– nawet do przysłowiowego mrugania diodą zamiast dwu tranzystorów używane są ich tysiące...
Na początku swojej mikroprocesorowej drogi, po pobieżnym zaznajomieniu się z możliwościami środowiska i łatwością implementacji w BASCOM czy microPascal
(Pascala nadal darzę sentymentem), zdecydowałem się jednak na... język C.
W kodzie C, jak na dłoni, widziałem bezpośrednie przełożenie kolejnych instrukcji na konkretne operacje sprzętowe.
Bardzo przydatna była również możliwość zastosowania pozornie karkołomnych, jednak znacznie upraszczających kod wynikowy, konstrukcji dostępnych w tym języku.
Pisząc program na mikrokontroler musiałem się liczyć z jego bardzo ograniczonymi zasobami, ale właśnie w C miałem duże możliwości optymalizowania ich zużycia.
Niech się nikomu jednak nie wydaje, że składni języka C można się nauczyć po przeczytaniu czterech artykułów.
Zdecydowanie polecam sprawić sobie jakąś książkę – ich oferta jest dość bogata.
Co ciekawe, istnieją też bezpłatne podręczniki w języku polskim – wystarczy wpisać w przeglądarkę internetową frazę:
„programowanie w języku C książka bezpłatna”.
Już na pierwszym ekranie wśród wyników pojawiają się 3 książki w formacie .pdf do pobrania – legalnie.
Bardzo ważne są też ćwiczenia praktyczne.
Do tego potrzebne jest środowisko lub sam kompilator.
Obecnie wiele narzędzi można swobodnie używać bez opłat.
Polecany jest pakiet Microsoft Visual C++.
Istnieje też, przeportowany z systemu Linux, kompilator GCC wraz z środowiskiem Code::Blocks oraz leciwy, ale za to bardzo lekki pakiet Borland C++.
Nawet gdy zamierza się programować tylko mikrokontrolery, warto mieć pod ręką „duży” kompilator C – chociażby po to,
aby sprawdzić swoje wyrafinowane konstrukcje składniowe, czy będą działać zgodnie z zamierzeniami.
Możliwości debugowania na mikrokontrolerze są bowiem dość ograniczone.
Do programowania mikrokontrolerów na platformie AVR przygotowano oczywiście komercyjne środowiska developerskie z C,
ale o prawdziwej popularności tego języka zadecydowało istnienie znakomitego kompilatora AVR-GCC.
W odróżnieniu od pakietów BASCOM czy mikroPascal kompilator ten jest dostępny całkowicie bezpłatnie, bez żadnych ograniczeń, dla wszystkich.
Do tego nie ma on wygórowanych wymagań sprzętowych ani platformowych.
Można pisać kod w notatniku i kompilować z linii poleceń.
Można też zainstalować i skonfigurować środowisko zintegrowane jak Atmel Studio lub Eclipse.
Zatem bez ponoszenia dużych kosztów można się zestandaryzować do C.
Naprawdę warto!
Powyższy artykuł ukazał się w czasopiśmie "Elektronika dla Wszystkich" w numerze 4/2016