5 ms·
> > There Are No C Conferences. Maybe that’s why the C++ committee is now over 10 times the size of the C committee. I have this controversial thought: C peopl
by scoutt 5y ago
> > There Are No C Conferences. Maybe that’s why the C++ committee is now over 10 times the size of the C committee.
I have this controversial thought: C people understood one thing before everyone else (including the creators of C++, Rust, and any other language), and is this:
“Perfection is Achieved Not When There Is Nothing More to Add, But When There Is Nothing Left to Take Away” -- Antoine de Saint-Exupery.
Super-bloated languages that keep adding features every month/year are far from perfection.
Now bring it on!
Note: I love both C and C++. I prefer C because it's simpler (I write firmware for a living). Sometimes I use C++ with simple classes and I might throw in a template or two if I am in a good day. Of course my classes are for my use only: don't try to copy/move them!! I won't chase every little nitpick of deleting and overriding every operator/constructor!! And the further I might go is implementing a Singleton.
- pjmlp 5y agoI guess you haven't kept up to date with ISO C work.
- scoutt 5y agoMay be, but... https://en.wikipedia.org/wiki/C17_(C_standard_revision) https://en.wikipedia.org/wiki/C17_(C_standard_revision) "C17 addressed defects in C11 without introducing new language features" means a lot. https://en.wikipedia.org/wiki/C2x https://en.wikipedia.org/wiki/C2x Has a few additions compared to C++20 (https://en.wikipedia.org/wiki/C%2B%2B20 https://en.wikipedia.org/wiki/C%2B%2B20)
- pjmlp 5y agoHave fun reading these ones instead of relying on Wikipedia, https://news.ycombinator.com/item?id=30160590 https://news.ycombinator.com/item?id=30160590 Also you forgot the endless amount of compiler specific language extensions.
- scoutt 5y agoLet's see what (and how it) lands in C2x. Of course, as any other language, C might be taken over in the future by a new generation and be bloated, too. But so far, it is contained. In any case, nobody can deny the amount of bloat in C++ has no parallel. > Naturally at this point one could ask why not just use C++ instead I might do, in a limited and simpler form, as I said before. Of course I am not developing something like SKIA; just firmware in a limited and constrained environment (not even using std).
- pjmlp 5y agoThere is no denial about that, except most languages suffer from similar bloat. When people count the amount of pages on ISO C++, they forget to include the standard library on the process. Which on C's case it includes the expectation that POSIX is also available.
- jstimpfle 5y agoThis is one example of bending over backwards to claim things that are obviously wrong, no useful discussion to have here.
- perryizgr8 5y agoC++ is great if you forbid the class keyword in your project. It turns into an amazing new-age language with cutting-edge concepts.
- ginko 5y agoSo just define your classes with struct. ¯\_(ツ)_/¯
- victorcharlie 5y agoHey, do you mind pointing me to some learning material regarding firmware? I have a totally unrelated background (I'm a chemist) although I picked up some coding during my PhD (the usual "science stack": Python/shell scripts). After that I learnt C and fell in love with its simplicity and power and firmware/drivers always seemed like magic to me so I'd like to understand them a little bit better. Thanks and have a great day!
- Koshkin 5y agoNot the GP, but to me the only difference between firmware and software is that firmware is often (but not always) "burned" right into a piece of hardware, which is usually a chip that has a microcontroller of some sort inside it. The PC BIOS is also called firmware sometimes - because it is "burned" into the PC itself. A device driver, on the other hand, can be implemented in software or firmware, or, usually these days, as a combination of both. Drivers indeed are magic - since they usually designed to interact with, and to control, physical systems, they must work in real time, and writing a driver requires understanding the system's behavior to a minute detail.