Why I Love C
Note! I am not saying that other programing languages are not as good as C. Every Programming languages has its meaning and value, otherwise it is already dead or never born.
C Programming Language was originally developed by Dennis Ritchie between 1969 and 1973 at Bell Labs, and used to re-implement the Unix operating system. This is a brief intruduction to C on Wikipedia. And C is my first computer language to learn. At winter holiday in 2014, I bored at home and browse the website. And the link Computer Language caused my attention, I clicked and I saw it, the C programming language. That's started of the story of me & C.
At that time, I am just a high school student and I have no computer. So I install an app called c4droid for complie the C code and I print the first "Hello World!" in my life on my 500 RMB smart phone. I was happy at the time. I bought a book like "C xxx 0 to 1" to learn C and I find a lot of bugs in the book, haha ∩_∩. Everything is ok at the beginning, but as I learned, I became confused that I just can wrote console application and just implement some numeric problems (Yeah, I know, it's my fault, C is powerful -_-!). So I decide to learn other computer languages and I actually did it in the next two years (But not completely put down C) like C++, Python, Java, Html, Css, Js and so on. After learning these I found some advantages of C, simple, effective, powerful and flexible.
Simple doesn't mean easy to coding by C, but means the knowledge you need to know is a bit less about C itself.
Effective means C complied code is very efficient.
Powerful means C can operate directly on the hardware.
Flexible - C pointer (Ok, This will be a nightmare for many beginners @_@).
And C has disadvantages too, like manually manage memory, null pointer and so on. But this all can be solved (you only need to be serious and serious =_=).
Let the story continue. When I was learning Java, I saw, solve the array sorting problems using sort () just like:
Array.sort (a);
C has sorting function too, but I don't know at that time =_=.
void qsort (void *base, size_t nmemb, size_t size,
int (*compar)(const void *, const void *, void *));
Ok, fine. I was very hard to write sorting algorithm (like shell sort, quick sort, etc) at that time is solved simpley O_O!.
Oh, Sort, I knew it \ ∩_∩ /. This is first time I want to explore the function librarys. I have been using the C functions like printf, scanf, etc, and I don't know how it is implemented. So I read the source code and found a lot of C pointer. I don't know much about it. Then I learned assembly language (The first one to learn is 8086 asm) and knew pointer is just an address of memory and it is flexible (Now I like to use it ∩_∩ ).
---------
pointer --> 0x00|0x1122 | Then:
--------- pointer = 0x00
0x02|0x3344 | *pointer = 0x2211
--------- Note:
0x04|0x5566 | This is little-endian
---------
During this time, I found a lot of products written by C. And what attracts me the most is Linux a totally free operating system wirtten entirely by asm (bootloader and some optimization) and C (most of the system). Yeah, C is powerful system programming language (There is now a new system programming language called Rust, more safer than C. I don't know much about it. So, I won't discuss it here). And now I learning how to design an operating system and reading Linux 0.11 source code.
The story is done. And I will list bellow who is more suitable to learning C even using C (just what I think):
The beginners. Learning C is not only learning how to programming but also learning the underlying knowledge of computer. And it will make you have a diffrent view of programming. This will be a good experience for beginners.
People who want to learn computer low level knowlage by programming.
People Who want to use Simple, Effective and powerful language for coding.
People who want to be a system programmer.
Someone like me (Ok, stop it -_-!).
There is some resources about Programming, Linux, OS develop and some Binary hacks in my github. And welcome to visit and download.
At last, attach a sentence that Linus said: Read the Fucking Source Code!!!
All done. That's why I love C so much.
PS: 又又又,又要考英语四级了,写篇文章压压惊 o_o! (有任何语法错误,或者拼写错误,还请指出,谢谢!)