C

Aktualizacja: 22.10.2022

Zobacz polecane:

Kursy Książki

Zastosowanie

C jest jednym z najstarszych i najszerzej używanych języków programowania. Jest on językiem strukturalnym i nie wspomaga programowania obiektowego — choć samo programowanie obiektowe jest w nim możliwe. Odbiega to jednak daleko od tego, jak to wygląda w językach typowo obiektowych. Co ciekawe, wiele innych języków, w tym i obiektowych, jak: C++, Java, JavaScript, C#, PHP, Python, Swift, Go, Rust, zawdzięcza językowi C wiele różnych cech i funkcjonalności.

Język C pozwala na swobodne zarządzanie alokowaną pamięcią, a także precyzyjne definiowanie działań i operacji. W odróżnieniu od wielu współczesnych języków jest on kompilowany bezpośrednio na kod maszynowy, podobnie jak asembler, który możemy również wykorzystać bezpośrednio w języku C. Ze względu na powyższe cechy C, wśród języków wysokiego poziomu, jest uznawany obecnie za "najbliższy" maszynie, to znaczy, że z jego poziomu można wykonać wiele operacji elementarnych na pamięci/procesorze. Nie jest on co prawda definicyjnym językiem niskopoziomowym, jednak na pewno jest on najniższym z języków bardziej przyjaznych człowiekowi.

Cecha ta pozwoliła na wykorzystanie, z powodzeniem, języka C w tworzeniu oprogramowania dla systemów oraz mikrokontrolerów. Język C jest również używany w kodzie bibliotek, jako język współdzielony, którego funkcje mogą wywoływać inne języki. Dzięki temu biblioteki napisane w C mogą być użyte w prawie dowolnym innym języku.

Język C 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, wydajny, i przenośny (podobnie jak pochodny od niego język C++), co sprawia, że jest praktycznie w każdym systemie wbudowanym, od lodówek, mikrofalówek, zegarków do radia włącznie. Można go również znaleźć w elementach samochodu np. w oprogramowaniu wyświetlacza na desce rozdzielczej, czujników, automatycznej skrzyni biegów, systemu sterowania klimatyzacją, czy kontroli 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 163,616
2# scrcpy 96,482
3# netdata 66,625
4# redis 62,913
5# Ventoy 55,505
6# obs-studio 53,354
7# git 48,425
8# llama.cpp 48,270
9# FFmpeg 40,274
10# php-src 36,654

Poziom skomplikowania

C nie należy do najłatwiejszych do nauczenia. Trzeba dbać o zarządzanie pamięcią (brak garbage collectora), które może przysporzyć masę błędów oraz trzeba 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.

C jest statycznie typowany, co oznacza, że dla każdej zmiennej musimy nadać typ przechowywanych danych. Dzięki temu kod jest łatwiejszy w zrozumieniu i utrzymaniu, a błędy dotyczące typów zostaną wykryte już w czasie kompilacji.

Może się wydawać, że C zmusza nas do robienia rzeczy, które inne języki robią za nas — to prawda, ale to dlatego, że C stawia na wydajność. To ma też swoje plusy – taki wymóg pomoże nam lepiej zrozumieć jak program zarządza pamięcią i dlaczego jest to tak ważne.

Chcąc pisać w C oprogramowanie systemowe, przydatna może się okazać dobra znajomość architektury komputera oraz podstaw systemów operacyjnych. Niewątpliwie przydatna jest również znajomość bibliotek systemowych, a także umiejętność czytania ich dokumentacji.

Statystyki

Dane aktualne na dzień: 30.12.2023

C jest jednym z najpopularniejszych języków programowania, głównie, 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.

Na Stack Overflow jest 8 najczęściej tagowanym językiem z 402,184 zapytaniami.

Na Github zajmuje 7 pozycję z liczbą 544,672 projektów, z których 1,827 ma więcej niż 1000 gwiazdek.

Jeśli chodzi o organizowane spotkania to według Meetup.com jest to 10 co do wielkości społeczność z liczbą 233 grup, w skład których wchodzi 129,587 członków na całym świecie. W Polsce mamy odpowiednio 13 grup, w skład których wchodzi 6,599 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 C17 wyszła w czerwcu 2018. Fakt, że wiele nowszych języków jest lepszych od C w niektórych dziedzinach, nie oznacza, że szybko go wyprą i C pójdzie w zapomnienie. C nadal jest najpopularniejszym językiem niskopoziomowym. 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:

Flaga angielska Kursy w języku angielskim Flaga angielska

(W języku polskim niżej)


Język kursu - angielski Okładka kursu

C Programming For Beginners - Master the C Language

C Programming will increase career options. Become a better dev in other languages by learning C. Pointers explained

Czas trwania: 25.5 total hours 149274 zapisanych uczestników
All Levels Ostatnia aktualizacja: 2023-11-20
4.43 / 5
Liczba ocen: 32846

Język kursu - angielski Okładka kursu

C Programming Bootcamp - The Complete C Language Course

C Programming 2023: Master the Fundamentals of C Programming Language. Join the Comprehensive C Bootcamp Masterclass!

Czas trwania: 44 total hours 68416 zapisanych uczestników
All Levels Ostatnia aktualizacja: 2023-11-30
4.51 / 5
Liczba ocen: 7069

Język kursu - angielski Okładka kursu

Beginning C++ Programming - From Beginner to Beyond

Obtain Modern C++ Object-Oriented Programming (OOP) and STL skills. C++14 and C++17 covered. C++20 info see below.

Czas trwania: 46 total hours 280895 zapisanych uczestników
All Levels Ostatnia aktualizacja: 2023-11-20
4.61 / 5
Liczba ocen: 65230

Język kursu - angielski Okładka kursu

Advanced C Programming Course

Become a True Master of the C Programming Language - Confidently Apply for Real Time or Embedded C Jobs or contracts!

Czas trwania: 29 total hours 32243 zapisanych uczestników
Intermediate Level Ostatnia aktualizacja: 2023-11-21
4.54 / 5
Liczba ocen: 4046

Flaga polska Kursy w języku polskim Flaga polska

Język kursu - polski Okładka kursu

Podstawy programowania. Język C

Pierwsze kroki w świecie programowania

Czas trwania: 5.5 total hours 2548 zapisanych uczestników
Beginner Level Ostatnia aktualizacja: 2021-02-06
4.21 / 5
Liczba ocen: 470

Język kursu - polski Okładka kursu

Programowanie w języku C - od A do Z

Naucz się jednego z najpopularniejszych języków programowania i otwórz sobie drzwi do kariery w IT! - Język C

Czas trwania: 7 total hours 362 zapisanych uczestników
Beginner Level Ostatnia aktualizacja: 2022-07-27
4.7 / 5
Liczba ocen: 59

Język kursu - polski Okładka kursu

Język C. Poziom ekspert.

Poznaj najbardziej zaawansowane elementy oraz mechanizmy działania języka C.

Czas trwania: 6 total hours 624 zapisanych uczestników
Expert Level Ostatnia aktualizacja: 2020-06-16
4.7 / 5
Liczba ocen: 74

Język kursu - polski Okładka kursu

[2023] JavaScript - Jedyny Kurs, Którego Potrzebujesz!

Poznaj od podstaw język JavaScript i naucz się tworzyć zaawansowane aplikacje!

Czas trwania: 10.5 total hours 15549 zapisanych uczestników
Beginner Level Ostatnia aktualizacja: 2023-11-03
4.76 / 5
Liczba ocen: 3123

Inne kursy video na UdemyZobacz inne kursy video na Udemy

Najlepsze książki do nauki C

od wydawnictwa Helion:

Mikrokontrolery:

Zobacz inne książki w kategorii C