Linked by MOS6510 on Thu 10th Jan 2013 23:25 UTC
Permalink for comment 548563
To read all comments associated with this story, please click here.
To read all comments associated with this story, please click here.
Features
Linked by Thom Holwerda on 06/13/13 14:35 UTC
Linked by Thom Holwerda on 06/11/13 17:07 UTC
Linked by Thom Holwerda on 06/10/13 23:13 UTC
Linked by Thom Holwerda on 06/08/13 14:57 UTC
Linked by Thom Holwerda on 06/07/13 11:40 UTC
Linked by Thom Holwerda on 06/04/13 12:45 UTC
Linked by nfeske on 05/31/13 10:12 UTC
Linked by Thom Holwerda on 05/29/13 16:59 UTC
Linked by Thom Holwerda on 05/24/13 17:26 UTC
Linked by Thom Holwerda on 05/21/13 21:38 UTC
More Features »
Sponsored Links



Member since:
2011-10-10
I too think the productivity aspect of C is overrated by the author.
I think what the author fails to consider is when your programming language of choice is "fast enough". Also, too many times, I have seen algorithms to solve problems using brute force approaches isntead of choosing smarter algorithms. I don't care if you write machine code, if you're using a dumb algorithm, your program's runtime efficiency will pay for it. I think that C's reputation as a "high-level assembly" actually makes people less likely to truly think about algorithm design, and instead rely on tricks of the compiler. In other words, C's reputation as a fast language is actually detrimental to good algorithm design.
Many people have been addressing C's lack of OO as a good thing, but I will say that C's lack of functional style programming is a bad thing. Having had to torture my brain to grok functional programming languages, I think that people just don't think easily in it. Recursion tends to hurt people's brains, and generally, people come up with iterative solutions instead. Also, the immutability of variables throws people for a loop (no pun intended from above). Unfortunately, C is horrible from a functional perspective. Start writing functions in a map-reduce style, using first class functions for filtering, having the ability to generate functions dynamically, or using to closures to encapsulate data....and you will truly miss it when you have to write things in an imperative style.