C

Aktualizacja: 08.09.2019

Zobacz polecane:

Kursy Książki

Zastosowanie

C jest jednym z najstarszych i najszerzej używanych języków programowania. C jest językiem strukturalnym, 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. 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 najczęściej używany do zadań niskopoziomowych, 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 napisane 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. Również można go znaleźć w elementach samochodu np. 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 112,261
2# netdata 54,233
3# redis 49,005
4# scrcpy 48,917
5# git 38,073
6# php-src 30,690
7# wrk 29,251
8# ijkplayer 28,840
9# obs-studio 28,070
10# FFmpeg 24,801

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łedy dotyczące typów zostaną wykryte 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ść.

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

Statystyki

Dane aktualne na dzień: 23.05.2021

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 1 pozycji pod względem popularności utrzymując pozycję sprzed roku.
Według rankingu Spectrum również a rok temu był na miejscu 2.

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

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

Jeśli chodzi o organizowane spotkania to według Meetup.com jest to 12 co do wielkości społeczność z liczbą 224 grup, w skład których wchodzi 117,812 członków na całym świecie. W Polsce mamy odpowiednio 13 grup, w skład których wchodzi 7,100 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:

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: 24 total hours 81020 zapisanych uczestników
All Levels Ostatnia aktualizacja: 2021-01-24
4.36 / 5
Liczba ocen: 19266

Język kursu - angielski Okładka kursu

Mastering Data Structures & Algorithms using C and C++

Learn, Analyse and Implement Data Structure using C and C++. Learn Recursion and Sorting.

Czas trwania: 58.5 total hours 62099 zapisanych uczestników
All Levels Ostatnia aktualizacja: 2021-02-06
4.68 / 5
Liczba ocen: 17580

Język kursu - angielski Okładka kursu

C Programming For Beginners

Learn C in ten easy steps on Windows, Mac OS X or Linux

Czas trwania: 8 total hours 23803 zapisanych uczestników
All Levels Ostatnia aktualizacja: 2019-08-03
4.31 / 5
Liczba ocen: 3647

Język kursu - angielski Okładka kursu

C Programming Step by Step - Complete Tutorial For Beginners

C language tutorial from basics with C operator,loop,array,pointer,function,parameter,string,recursion,structure,file.

Czas trwania: 17.5 total hours 14184 zapisanych uczestników
All Levels Ostatnia aktualizacja: 2020-06-09
4.39 / 5
Liczba ocen: 2457

Język kursu - polski Okładka kursu

Podstawy programowania. Język C

Pierwsze kroki w świecie programowania

Czas trwania: 5.5 total hours 1623 zapisanych uczestników
Beginner Level Ostatnia aktualizacja: 2021-02-06
4.68 / 5
Liczba ocen: 225

Język kursu - polski Okładka kursu

Zaawansowane programowanie w języku C

Zostań mistrzem programowania niskopoziomowego

Czas trwania: 5.5 total hours 329 zapisanych uczestników
Intermediate Level Ostatnia aktualizacja: 2020-07-07
4.73 / 5
Liczba ocen: 72

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 127 zapisanych uczestników
Beginner Level Ostatnia aktualizacja: 2021-03-14
4.3 / 5
Liczba ocen: 16

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 160 zapisanych uczestników
Expert Level Ostatnia aktualizacja: 2020-06-16
4.75 / 5
Liczba ocen: 17

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