Programiści systemów wbudowanych słabo znają język C

Według badań rynkowych ponad 80% programistów systemów embedded wykorzystuje C lub C++ jako swój podstawowy język programowania. Jednak w teście dotyczącym znajomości języka C wypadli oni bardzo słabo.

Posłuchaj
00:00

Test na stronie Netrino.com sprawdzający znajomość języka C w systemach wbudowanych w ciągu 25 miesięcy rozwiązało ponad 4000 osób, a wyniki zbiorcze oraz w podziale na kraje i regiony dostarczają ciekawych wniosków – programistom systemów wbudowanych za znajomość języka C należy się jedynie ocena dostateczna.

Rys. 1. Rozkład wyników testu znajomości języka embedded C

Jest to wynik bardzo niepokojący, biorąc pod uwagę fakt, że od pisanego przez nich oprogramowania urządzeń medycznych, aplikacji przemysłowych, urządzeń ABS czy instrumentów znajdujących się w kabinie pilota może zależeć ludzkie życie. Embedded C Quiz składa się z 10 pytań wielokrotnego wyboru, z których każde ma cztery możliwe odpowiedzi, w tym okazjonalną w stylu „żadna z powyższych”. Rozwiązanie testu w sposób całkowicie losowy pozwoliłoby na zdobycie zaledwie 20 lub 30% punktów.

Udzielenie odpowiedzi trwa kilka minut, jednak nie ma limitu czasowego. Każde pytanie jest całkowicie niezależne od innych, a kolejność pytań taka sama dla wszystkich uczestników. Test został opracowany przez ekspertów z dziedziny firmware’u, a jego założeniem było sprawdzenie znajomości tych cech języka C, które są najbardziej specyficzne dla oprogramowania embedded.

Przykładowe kwestie poruszane w teście dotyczą właściwego użycia stałych, zmiennych i zmiennych statycznych, pisania mobilnego kodu C z użyciem kompilatorów i preprocesorów kompatybilnych z ANSI/ ISO oraz wykorzystania rotacji bitowych. Na przykład w jednym z pytań należy z dostępnych odpowiedzi wybrać właściwy typ „x” dla deklaracji „int * const x;”.

W innym trzeba wskazać jedną z czterech linii kodu, która „zresetuje najmniej znaczący bit x”. Długość prezentowanych fragmentów kodu nie przekracza jednej linii, a większość testowanych koncepcji i technik jest dokładnie opisana na stronie internetowej Netrino. Autorzy oceniają, że zdecydowana większość uczestników testu jest zatrudniona jako twórcy firmware’u. Quiz został opracowany w taki sposób, aby wyniki były jak najbardziej sensowne.

Jednak należy mieć świadomość, że nie było to badanie naukowe, do którego programiści systemów wbudowanych powinni być wybierani losowo, zamiast zgłaszać się samodzielnie. Autorzy mają nadzieję, że próbka była jak najbardziej reprezentatywna, gdyż w badaniu wzięło udział mniej niż 1% z 500 000 osób odwiedzających stronę, na której przez dwa lata znajdował się link do quizu.

Zasięg geograficzny

Quiz i cała strona, na której był on umieszczony, wykonana jest w języku angielskim, dlatego można się spodziewać, że uczestnicy, dla których jest to język ojczysty, byli w uprzywilejowanej sytuacji. W podziale na geograficzne regiony ponad 1000 wyników uzyskano ze Stanów Zjednoczonych (1465 wyników), Indii (1361) oraz reszty świata (1247). Resztę świata można podzielić na trzy główne podgrupy o ponad 100 wynikach: Europę Zachodnią (446), Azję bez Indii (304) oraz Bliski Wschód (101).

Wyniki

Tabela 1. Wyniki testu znajomości języka C w aplikacjach embedded w podziale na kraje i regiony

Średni wynik dla całego świata wyniósł 61%. Każdy programista systemów wbudowanych odpowiedział błędnie średnio na cztery z dziesięciu pytań wielokrotnego wyboru dotyczących swojego podstawowego języka programowania. Jest to niepokojący fakt, ponieważ język C jest językiem do wyboru w większości projektów embedded, a C++ jeszcze trudniej opanować.

Akademicka ocena wyników testu to słaba trójka. Programiści z USA uzyskali wynik o 1% lepszy niż średnia. Programiści z Indii wypadli poniżej średniej, zdobywając 59,3% punktów, a reprezentacja reszty świata uzyskała 61,7%. W tabeli 1 przedstawiono punktację dla kilkunastu wybranych krajów i regionów.

W skali światowej test został rozwiązany bezbłędnie tylko przez 238 osób. Po drugiej stronie skali znalazło się 209 programistów, którzy uzyskali punktację mniejszą niż oczekiwana dla losowego wyboru (25%). Pełny rozkład wyników dla wszystkich krajów przedstawiono na rysunku 1. Dane pokazują, że wynik 80% lub wyższy uzyskała mniej niż jedna trzecia programistów systemów wbudowanych.

Co przykre, jedna czwarta uzyskała mniej niż 50% możliwych do zdobycia punktów, mimo że w przypadku zgadywania wartość oczekiwana wyniosła co najmniej 25%. W teście pojawił się również rodzimy akcent, gdyż uzyskano 27 wyników z Polski. Średnia punktacja wyniosła tutaj aż 69,3%, należy jednak zauważyć stosunkowo niewielką liczebność próby. Co ciekawe, do grupy najmniej licznie reprezentowanych w teście zaliczają się Japonia (2 wyniki), Hong Kong (4), Korea Południowa (10) czy Tajwan (13).

We wrześniu 2009 roku na stronie Netrino uruchomiono kolejny quiz, tym razem sprawdzający znajomość języka C++ w aplikacjach embedded. Jak podają autorzy, wstępne wyniki są gorsze niż te uzyskane w teście znajomości języka C. Większy jest również odsetek osób, które testu nie ukończyły. Najważniejsza jest jednak wielkość próby, zatem jeśli ktoś z czytelników wykorzystuje w pracy język C++, to zachęcamy do rejestracji i przetestowania swoich umiejętności na stronie Netrino www.netrino.com .

Grzegorz Michałowski

Powiązane treści
Optymalizacja wydajności programów w języku C
Europa rozwija systemy wbudowane
Zobacz więcej w kategorii: Gospodarka
Produkcja elektroniki
Metale ziem rzadkich - najpotężniejsze narzędzie Chin w walce o dominację gospodarczą
Aktualności
Weidmüller ponownie w światowej czołówce - trzeci z rzędu złoty medal EcoVadis za zrównoważony rozwój
Komponenty
Rochester Electronics zwiększa dostępność układów Lattice dla aplikacji o długim cyklu życia
Zasilanie
DigiKey prezentuje pierwszy w branży konfigurator zasilaczy dostępny online
Projektowanie i badania
Biblioteka przewodników firmy Mouser
Zasilanie
Nowy e-book Mouser i YAGEO: elementy pasywne dla zasilania pojazdów elektrycznych
Zobacz więcej z tagiem: Artykuły
Magazyn
Listopad 2025
Informacje z firm
Grupa RENEX zaprasza na targi Evertiq EXPO Warszawa 2025
Magazyn
Październik 2025

Koń trojański w układzie scalonym: Dlaczego europejski sektor zbrojeniowy musi uniezależnić się od chińskiej elektroniki

Współczesna geopolityka nie pozostawia złudzeń – era powszechnej globalizacji dobiegła końca, a jej miejsce zajmuje epoka strategicznej autonomii i bezpieczeństwa narodowego. W obliczu wojny za naszą wschodnią granicą oraz rosnącego napięcia na linii Waszyngton - Pekin, Europa stanęła przed koniecznością redefinicji swojego podejścia do produkcji obronnej oraz akceptacji faktu, że prawdziwe bezpieczeństwo zaczyna się nie na poligonie, ale w fabryce.
Zapytania ofertowe
Unikalny branżowy system komunikacji B2B Znajdź produkty i usługi, których potrzebujesz Katalog ponad 7000 firm i 60 tys. produktów