Disclaimer: Saya memang sedang belajar mengenai sistem komputer, namun saya bukanlah ahlinya. Tulisan ini mungkin saja salah total, namun ada baiknya jika Anda menemukan salahnya, Anda bisa berikan masukan/kritik pada kolom komentar.
Saat saya kuliah tahun pertama di Teknik Komputer Universitas Indonesia, kelas Pengantar Teknik Komputer waktu itu belajar bahasa C. Sejujurnya, saya agak agnostik tentang bahasa yang digunakan; lebih ke gunanya kemana, dengan cari yang lebih sederhana (saya suka yang sederhana, tidak rumit). Namun, banyak yang mempertanyakan kenapa sih belajar C? Jadul ah! Lah
wong hasilnya di layar item aja kok (di terminal), apa serunya?
Bahkan, sewaktu saya jadi asisten lab ada mahasiswa yang nyeletuk, "ih C gampang banget, gini gini doang". Entah karena dia yang jenius atau emang cuma nyoba printf dan if-else.
C sangat populer, bahkan di tahun 2016 saat C sudah tidak muda. Menurut
IEEE Spectrum, C berada di peringkat teratas untuk bahasa terpopuler. Sesuatu populer bukan karena tanpa alasan (oke oke, ada artis antah berantah yang populer di tv).
|
Sumber: IEEE spectrum |
Terjemahan kasar: "C digunakan untuk menulis program yang mementingkan kecepatan dan fleksibilitas, seperti pada sistem tertanam (
embedded systems) dan
high-performance computing". Sekarang sedang tren istilah
Internet of Things. Dimana-mana ada. Sensor umumnya, jika tidak selalu, dioperasikan pada mikrokontroler yang diprogram dengan C.
Tidak cuma berhenti di
embedded systems. Buat para web programmer, pastinya tidak asing dengan web server. Sesungguhnya, server adalah sebuah proses, bukan komputer fisik. Apache HTTP Server, salah satu yang paling populer, dibuat dengan
C dan XML. Masih ga ngakuin kalo server bisa dibuat dari C?
Nginx pun dibuat dengan C. Bahkan, sebenarnya membuat program server dengan C yang sederhana tidak begitu sulit. Banyak literatur yang memberikan tutorialnya (salah satu rekomendasi saya: buku gratis
Beej's Guide to Network Programming). Linux? Dibuat juga dengan C. Coba cek
Github kernel Linux, dan sekitar 90% dibuat dengan C. Selain yang saya sebutkan tadi, masih ada banyak proyek besar lain yang ditulis dalam C.
Menurut saya, ada beberapa keuntungan belajar C pada saat pertama kali belajar memprogram komputer:
- Dibandingakan dengan belajar Java saat pertama kali belajar, orang memiliki keuntungan belajar bagaimana komputer menggunakan memory untuk kepentingan prosesnya. Hal ini bisa dipelajari saat belajar the evil pointer.
- Dibandingkan dengan langsung belajar C++, orang tidak perlu dipusingkan dengan konsep Object Oritented Programming (OOP). Jika sudah paham betul secara procedural, belajar OOP dengan C++ atau Java jadi lebih menyenangkan (kalau saya sih jadi memuji-muji konsep OOP yang sangat elegan dalam membentuk object dan class).
- Lebih enak lagi saat udah belajar Operating Systems, orang lebih mengerti bagaimana OS bekerja dengan hands on mengenai multithread, interprocess communication, dsb. Buku yang menurut saya bagus adalah buku gratis Operating Systems: Three Easy Pieces.
- Dibandingkan dengan langsung Assembly....ya setidaknya membuat orang tidak males belajar memprogram komputer haha.
Saya tidak mengatakan bahwa C lebih unggul dibanding bahasa lain. Yang saya tekankan adalah 1) C sangat berguna dan tidaklah bijak mengatakan tidak berguna belajar C, 2) Belajar C pada saat awal belajar programming memiliki keuntungan-keuntungan yang khas.