C

Aktualizacja: 30.08.2018

Zobacz polecane:

Kursy Książki

Zastosowanie

C jest jednym z najstarszych i najszerzej używanych języków programowania. C jest językiem strukturalnym, który nie wspomaga programowania obiektowego (ang. object-oriented programming) - choć samo programowanie obiektowe jest w nim możliwe. Jednak odbiega to daleko od tego jak to wygląda w językach zorientowanych obiektowo. Wiele innych języków takich jak: C++, Java, JavaScript, C#, PHP, Python, Swift, Go, Rust, pożyczyło od niego masę cech. C jest językiem ogólnego przeznaczenia. Najczęściej używany do zadań niskiego poziomu, takich jak tworzenie oprogramowania dla systemów czy mikrokontrolerów. Wynika to za faktu, że wśród języków wysokiego poziomu jest “najbliżej” maszyny. Można by powiedzieć, że język C jest gdzieś pośrodku, gdyż jego poziom abstrakcji od sprzętu jest znacznie mniejszy niż w takich językach jak np. Java czy Python. Z drugiej strony bliżej sprzętu są Asamblery, a najbliżej są języki maszynowe.

C jest również używany w kodzie bibliotek, jako język wspólny, którego funkcje mogą wywoływać inne języki. Dzięki temu biblioteki z API w C mogą być użyte w prawie dowolnym innym języku.

Może działać praktycznie na każdej architekturze sprzętowej pod warunkiem opracowania odpowiedniego kompilatora. C został użyty do zrobienia m.in.: jąder (lub ich części) systemów operacyjnych takich jak Windows, Linux, Mac, iOS, Android Windows Phone, systemów bazodanowych, biblioteki programistycznej do tworzenia grafik - OpenGL czy popularnego programu graficznego Gimp. C jest lekki i wydajny, co sprawia że jest praktycznie w każdym systemie wbudowanym, od lodówek, mikrofalówek, zegarków do radia włącznie. W samochodach też zapewne większość funkcji zaprogramowana jest w C. Na przykład wyświetlacz na desce rozdzielczej, czujniki, automatyczna skrzynia biegów, sterowanie klimatyzacją czy kontrola trakcji.

Top 10 projektów na Github wykorzystujących C

Github to system kontroli wersji. Możesz znaleźć tam projekty open source w każdej technologii. Zobacz jakiego typu projekty wykorzystują język C oraz jak wygląda C od strony kodu. Zwróć uwagę na pliki z rozszerzeniem .c.

1# linux 65,450
2# netdata 32,630
3# redis 32,586
4# git 24,768
5# ijkplayer 21,049
6# php-src 20,222
7# wrk 17,947
8# How-to-Make-a-Computer-Operating-System 17,573
9# the_silver_searcher 16,287
10# emscripten 15,837

Poziom skomplikowania

C nie należy do najłatwiejszych do nauczenia. Trzeba dbać o zarządzanie pamięcią (brak garbage collection), które nie wybacza programiście błędów oraz musisz zrozumieć, czym są wskaźniki, bez nich nie zdziałasz wiele. Większy nacisk trzeba kłaść też na debugowanie kodu, ponieważ niektóre błędy mogą powodować niewłaściwe nadpisanie niektórych bloków pamięci, przez co przyczyna problemu może być trudna do namierzenia. W innych językach namierzenie takiego błędu znacznie ułatwia obsługa wyjątków, której C nie ma. To w twoim interesie jest zapobieganie powstawania błędów, oraz sprawdzanie wartości, które zwracają funkcje. Ponadto jest to język statycznie typowany, co oznacza, że dla każdej zmiennej musimy nadać typ przechowywanych danych. W skrócie język C zmusza nas do robienia rzeczy, które inne języki robią za nas, kosztem zmniejszonej wydajności.

Chcąc pisać w C oprogramowanie systemowe, przydatna może się okazać dobra znajomość architektury komputera oraz podstaw systemów operacyjnych.

Popularność

Dane aktualne na dzień: 05.11.2018

C jest jednym z najpopularniejszych języków programowania, głownie, ze względu na swój staż i dlatego, że znajdziemy go w większości urządzeń dookoła nas.

Według TIOBE index, język C jest na 2 pozycji pod względem popularności utrzymując pozycję sprzed roku.
Z kolei według rankingu Spectrum jest na 4 pozycji, a rok temu był na miejscu 2.

Na Stack Overflow jest 7 najczęściej tagowanym językiem z 288,472 zapytaniami.

Na Github zajmuje 7 pozycję z liczbą 215,253 projektów, z których 610 ma więcej niż 1000 gwiazdek.

Jeśli chodzi o organizowane spotkania to według Meetup.com jest to 8 co do wielkości społeczność z liczbą 205 grup, w skład których wchodzi 86,166 członków na całym świecie. W Polsce mamy odpowiednio 11 grup, w skład których wchodzi 4,564 członków.

Meetupy C są kategoryzowane razem z językiem C++. Mimo to widać, że w porównaniu do innych języków, grup organizujących spotkania dla społeczności C/C++ jest dużo mniej, szczególnie w Polsce.

Przyszłość języka

Język C nie wydaje się mieć daty przydatności do użycia. Język powstał ponad 40 lat temu, a w rankingach popularności nadal jest w czołówce. Jego ostatnia wersja C18 wyszła juz dosyć dawno, bo w czerwcu 2018. Fakt, że wiele dzisiejszych języków jest lepszych od C w niektórych dziedzinach, nie oznacza, że są lepsze od niego w każdej. C nadal jest niedoścignionym językiem wysokopoziomowym jeżeli priorytetem jest wydajność. W dzisiejszych czasach stawia się na języki wspierające programowanie obiektowe i te w których proces programowania jest szybszy, więc C nie jest dobrym wyborem dla ogólnego zastosowania. Jednak jeśli masz konkretny powód, warto uczyć się języka C, gdyż nadal jest on wykorzystywany w specyficznych obszarach, a wiedza którą zdobędziesz ucząc się C na pewno się nie zmarnuje, zwłaszcza jeśli planujesz naukę C++.

Najlepsze kursy video do nauki C

na platformie Udemy:

Ładowanie...

Najlepsze książki do nauki C

od wydawnictwa Helion:

Mikrokontrolery

Inne warte uwagi