What is going on with the sudden profusion of books on C?
21st century C, Modern C, Understanding and Using C Pointers?
Okay, I realize "profusion" might seem a bit overblown, but honestly, in C world (and in comparison to other languages), this is practically a publishing boom.
Not that I'm complaining; C was my first programming language (back some time in the mid-90s), and it's still my favorite. But I wonder why we're suddenly getting new books on it? The language itself hasn't undergone any substantial changes recently, and if anything, "memory safety" is all the rage -- a thing that C most assuredly is not.
If this can get the non-C programmers to learn and understand the usefulness of a simple, minimal and direct language ("modern" languages are just too bloated), it is well worth it.
I have said it before and say it again; C will allow you to program everything from itty-bitty MCUs to honking server machines. It is also the de-facto universal "glue" language and its real-world benefits far outweigh any perceived difficulties.
Bottomline - Every programmer should know C whether you use/like it or not.
Glue language aside (which arguably is a lot more true of unices than other platforms), I'd argue Forth might make a better language / minimal environment for learning the low-level parts of a computing system.
It's got interactivity (bundled compiler/interpreter in one system), a large number of implementations (possibly more supported CPUs than C++, but that might be more due to its age), and a Forth system is easier to "pick apart" and learn how its compiler's implemented than a C compiler.
May be true. However, my point was that C is everywhere and you just cannot escape it. Knowledge of this one language allows you to program real-world high-level applications to low-level systems (eg. OS/Compilers etc.) and everything in-between.
Given the proliferation of processors everywhere, it is of immeasurable value to a programmer to become familiar with one "universal" language/runtime/toolchain so that he can program literally anything. It simplifies "incidental complexity" (avoids "tower of babel") which is key to getting things done.
Mastering C and systems programming on Unix-like systems might be the best long-term career effort, since the field is not moving as fast as other technology stacks and old knowledge is still valuable knowledge. C jobs might not be the most widespread, but once you land one, it is highly-likely that it would be a stable one and you wouldn't be easily replaced by koolaid-drinking youngsters.
If you know C++, you know C (ignore dark corners and changes in later C standards). C++ is first and foremost a "better C" and only later everything else.
Personally (As in: This explicitly reflects my experiences and I have no idea is anyone else feels this way) I am worried that we are getting far too abstracted and I am unhappy with the fact that despite the power of our hardware increasing exponentially everything is running slower and slower and taking up massive chunks of memory for simple functions.
E: Also, C can be run anywhere. ANYWHERE. It can run on home computers and consoles from the 80's! I like that fact.
the only thing C missed was a stdnet lib, with things like starting a network daemon and http parsers. oh and a decent list stdlib that everyone could agree on and build the rest on top.
had that happened a while ago, we would never have seen php et al.
Actually, you should research about the story why php was created... it was primarily envisioned as a templating language and the creator wanted people to use c/c++ for business logic etc, however people didn't do that because it was easier with php.
There is absolutely no reason why a website should be build with c, sry...
Comments
What is going on with the sudden profusion of books on C? 21st century C, Modern C, Understanding and Using C Pointers?
Okay, I realize "profusion" might seem a bit overblown, but honestly, in C world (and in comparison to other languages), this is practically a publishing boom.
Not that I'm complaining; C was my first programming language (back some time in the mid-90s), and it's still my favorite. But I wonder why we're suddenly getting new books on it? The language itself hasn't undergone any substantial changes recently, and if anything, "memory safety" is all the rage -- a thing that C most assuredly is not.
Don't jinx it!
If this can get the non-C programmers to learn and understand the usefulness of a simple, minimal and direct language ("modern" languages are just too bloated), it is well worth it.
I have said it before and say it again; C will allow you to program everything from itty-bitty MCUs to honking server machines. It is also the de-facto universal "glue" language and its real-world benefits far outweigh any perceived difficulties.
Bottomline - Every programmer should know C whether you use/like it or not.
Glue language aside (which arguably is a lot more true of unices than other platforms), I'd argue Forth might make a better language / minimal environment for learning the low-level parts of a computing system.
It's got interactivity (bundled compiler/interpreter in one system), a large number of implementations (possibly more supported CPUs than C++, but that might be more due to its age), and a Forth system is easier to "pick apart" and learn how its compiler's implemented than a C compiler.
May be true. However, my point was that C is everywhere and you just cannot escape it. Knowledge of this one language allows you to program real-world high-level applications to low-level systems (eg. OS/Compilers etc.) and everything in-between.
Given the proliferation of processors everywhere, it is of immeasurable value to a programmer to become familiar with one "universal" language/runtime/toolchain so that he can program literally anything. It simplifies "incidental complexity" (avoids "tower of babel") which is key to getting things done.
Mastering C and systems programming on Unix-like systems might be the best long-term career effort, since the field is not moving as fast as other technology stacks and old knowledge is still valuable knowledge. C jobs might not be the most widespread, but once you land one, it is highly-likely that it would be a stable one and you wouldn't be easily replaced by koolaid-drinking youngsters.
Exactly! To be blunt, knowledge of C gives you "programming cachet" like no other language.
I already have enough "programming cachet" with C++.
If you know C++, you know C (ignore dark corners and changes in later C standards). C++ is first and foremost a "better C" and only later everything else.
I can also add Object Pascal, Modula-2, Ada and plenty of others to the list, I just felt lazy and typed only C++.
Personally (As in: This explicitly reflects my experiences and I have no idea is anyone else feels this way) I am worried that we are getting far too abstracted and I am unhappy with the fact that despite the power of our hardware increasing exponentially everything is running slower and slower and taking up massive chunks of memory for simple functions.
E: Also, C can be run anywhere. ANYWHERE. It can run on home computers and consoles from the 80's! I like that fact.
21st century C is 2014(?) and Understanding and Using C Pointers is from 2013, so it is not exactly sudden profusion.
Edit: Using C Pointers is from 2013
Understanding and Using C Pointers is 2013 not 2003.
Thanks. Fixed it. My mistake.
My guess would be the increasing interest in IoT and mobile non-phone devices.
It may be because some people are starting to feel modern languages are bloated.
the only thing C missed was a stdnet lib, with things like starting a network daemon and http parsers. oh and a decent list stdlib that everyone could agree on and build the rest on top.
had that happened a while ago, we would never have seen php et al.
Actually, you should research about the story why php was created... it was primarily envisioned as a templating language and the creator wanted people to use c/c++ for business logic etc, however people didn't do that because it was easier with php.
There is absolutely no reason why a website should be build with c, sry...
Edit: link to rasmus lerdorf on 25 years php: https://m.youtube.com/watch?v=wCZ5TJCBWMg
Please tell this Felix von Leitner (fefe.de, blog.fefe.de), and post his reply in this forum.
His blog software is written in C. It's one of the most frequented blog in German speaking countries and running on a single machine (AFAIK).
Of course, not everybody has the expertise to build something like a blog in C.
I know this blog very well and fefe is definitely enought of a geek to do something like this...
This is howevwr not a good example you know that right?
I don't think that it is a question of expertise, more like choosing the right tool for the right problem.
php was never anything serious until it lived on top apache.
Undergone any changes or not, taking advantage of a market opportunity never gets old.