Czy warto znać C?

W ostatnim wpisie wyjaśniłem, dlaczego ten blog pisany jest po polsku. Napisałem też, że każdy szanujący się programista powinien znać język C angielski.

Na początek proponuję przeczytać ponadczasowy tekst Jeola Spolskiego „Niebezpieczne Java-szkoły”.

Joel w swoim artykule skupia się na tym, że pisanie w C jest trudne i wielu studentów nie radzi sobie ze wskaźnikami. Stawia tezę, że „wskaźniki i rekurencja są łaciną i greką informatyki”. To prawda, jednak moim zdaniem C nie jest językiem martwym, wręcz przeciwnie. C jest żywym językiem! Wciąż używanym. Wystarczy wspomnieć najlepszy system operacyjny – Linux [citation needed], najbardziej popularny system kontroli wersji – Git, bazy danych, serwery HTTP, wszystkie aplikacje, gdzie kluczowa jest szybkość działania oraz efektywne wykorzystanie zasobów.

Po drugie, nauka C to nie tylko nauka języka, ale również tego, jak sprzęt, który się programuje, działa. Zwykła ciekawość domaga się odpowiedzi, czym tak na prawdę jest wskaźnik, czym stos, a czym sterta. Jak zachodzą interakcje z systemem operacyjnym? Inne języki (może poza assemblerem) przykrywają to wszystko abstrakcją grubą na kilometr. Owszem gwarantuje ona bezpieczeństwo, łatwość programowania i przenośność kodu, ale nie daje wglądu w to, co się dzieje pod spodem.

Po trzecie, język C to język integracji bibliotek. Praktycznie każdy język ma jakiś sposób na integrację z bibliotekami w C. Co więcej, wiele języków pozwala budować biblioteki, które również mogą być wywoływane w oparciu o konwencję C. Dzięki temu, że wszystko jest kompatybilne z C, nasze programy mogą działać.

Jeśli argumenty Joela i moje nie są przekonujące, to zerknijmy na dane. W końcu teraz wszyscy są data-driven. W pierwszym tygodniu działania tego bloga z odwiedzających użytkowników aż dwie trzecie miało system skonfigurowany na C, pozostali zaś posługiwali się językiem polskim. Być może próbka z pierwszego tygodnia nie jest reprezentacyjna, jednak jest to sygnał, że „C is not dead yet!”


2 thoughts on “Czy warto znać C?

  1. Bardzo zaciekawiły mnie podane na końcu statystyki z Google Analytics, czy analizowałeś je pod kątem geograficznym? Szczególnie ciekawi mnie w jakich regionach Polski C przeważa nad językiem polskim.

Leave a Reply to KubaCancel reply