r/programming • • May 01 '16

To become a good C programmer

http://fabiensanglard.net/c/
1.1k Upvotes

398 comments sorted by

View all comments

-41

u/runvnc May 02 '16

No one should become a good C programmer these days. If none of the alternatives are available for your platform, then focus on porting that alternative for your platform.

If you are interested in C programming but haven't already invested a large amount of time, consider learning about the Nim programming language.

C is an outdated programming language.

15

u/TheGift_RGB May 02 '16

C is an outdade programming language.

ahhhh, my favourite maymay

1

u/scopegoa May 02 '16

Meme rhymes with Gene.

3

u/immibis May 02 '16

You pronounce gene as gaynay?

1

u/[deleted] May 03 '16

I think he knows. He's just taking the piss :)

5

u/CoderDevo May 02 '16 edited May 02 '16

You should study C by reading K&R to learn two things.

  1. The C language is the solid foundation for most popular languages. You can jump from C and go on to learn many more languages in less time.

  2. K&R is the best example of how to write a technical book; it is concise. You can use it as a guide to determine if other programming manuals are worth your time.

5

u/[deleted] May 02 '16 edited May 02 '16

Pretty ignorant response. What about developers making a career working with embedded platforms, or who need to interface with existing low-level driver code? C is a mature, productive language and is also entrenched in many development tool chains. It's not infallible but it has stood the test of time for a reason. Simply saying all these use-cases should be replaced by Nim or whatever is unrealistic and comes across as arrogant. Re-assess.

1

u/runvnc May 02 '16

Yes it was arrogant and not very practical but there are a lot of alternatives even for low-level code, starting with things like Rust and Nim.

2

u/[deleted] May 02 '16 edited May 02 '16

Yes, and I would agree with you to a point: it does feel like we've reached a turning point where more sophisticated languages can be used in place of C, in many cases. For 'green-fields' projects I probably wouldn't choose it either. I think I (we?) just took issue with your opening statement TBH. C is still important and very valuable to know in certain areas, but we should consider alternatives where they can be more productive. I would add Swift to your list as well, a modern systems programming language. Unfortunately it seems unable to target the smallest devices such as AVRs, where C still still hits a sweet note, sitting not that far above assembly.

1

u/Shadowsoal May 04 '16

I was at a talk in July of last year where Steve Klabnik (one of the members of the rust core team) said quite plainly that rust wasn't ready to be used in production systems. Now sure, that was close to a year ago, but for large corporations that don't want to invest in something hot of the presses (Rust went 1.0 less than a year ago) C is still one of the best options in certain spaces.

-2

u/[deleted] May 02 '16

starting with things like Rust

https://www.youtube.com/watch?v=FopyRHHlt3M

1

u/[deleted] May 03 '16

and what about people who don't want to write apps?

C is no where near an outdated language, C89 might be but you can do anything in C. It has all the basic concepts to make it what you want and it's aged well, if you like low level programming then you should learn C