C Is Obsolete

preview_player
Показать описание
Recorded live on twitch, GET IN

MY MAIN YT CHANNEL: Has well edited engineering videos

Discord

Hey I am sponsored by Turso, an edge database. I think they are pretty neet. Give them a try for free and if you want you can get a decent amount off (the free tier is the best (better than planetscale or any other))
Рекомендации по теме
Комментарии
Автор

If you've ever done ANY serious embedded programming, you'll know C is far from obsolete

CastToVoid
Автор

Barney Starsoup: "C only has datatypes, functions, and that's it"
C Programmer: "Yes"

StevenOBrien
Автор

Yes, after years of programming, I've realised that data types, functions and loops are enough in 99% of cases.

seifparole
Автор

"His hair is obsolete" got me.

thingsiplay
Автор

C is the easiest way to understand how software interacts with hardware. Just right amount of abstraction and technicality for beginner.

goohanbeom
Автор

Fun fact: When my dad was a kid, he called Dennis Ritchie in Murray Hill, NJ and Mr. Ritchie took the time to answer the question in detail. By the way, this was when state to state calls were long distance and my grandparents had a sit down with my dad when they got the phone bill.

esra_erimez
Автор

C’s lack of “features” is why it’s far more straightforward and a smaller task to implement a compiler for some new embedded platform with a new chip. Outside of assembly, C is absolutely going to be an available language to execute code on some hardware. C++, sure not too far behind in a lot of cases that matter, but not everywhere.

EbonySeraphim
Автор

C will never be obsolete because it's the best language to reverse engineer assembly into (given that the program was written in a compiled language, and even sometimes if it was written directly in assembly)

brianb
Автор

When you pass your initial stage of "programming how does it work", then it's time for "The C Programming language". A small book, for the greatest of languages. "C isn’t a big language and as such, a long book wouldn’t serve it well". Just read *very carefully* K&R kids. Study it. Work on the exercises. Work on the examples. Create some miniature applications. You will get to learn the true fundamentals, all of them.

No programming language will hold secrets from you from that point on. All the skills you will acquire will be directly applicable and transferable to everything from Go & Rust & Zig/Nim, to JS/TS, to Java and C# even - and then, to a deeper understanding of the OS that will allow you to master your environment and enjoy programming much more.

Learn C. Your future self will thank you.

PhilipAlexanderHassialis
Автор

When I heard my friend saying that C is the language that they use for programming 1 & 2, I've wonder why they would use an old language when we have python which is easy to use and easy to understand? but once I got on the same university and learned C, now I know how important it is.

bissnickss
Автор

I write C professionally. Sometimes I fantasize about C++, then I read some and remember I hate C++. But I also recognize its benefits. But both git and linux are mostly C. So it has its place and influence. What would be nice is if C had a better standard library, with things like hash maps and sort.

joshk
Автор

C++ has some keywords that are not keywords in C, which means a C program that contains identifiers named "class", "module", "throw" etc will be ill-formed as a C++ program. The C++ type system is also stricter, so for example you can't just assign the result of malloc to a pointer, you have to cast it first.

C also developed on its own on a rather different direction than C++, which means it got some features meant that C++ solves in other ways, or that are incompatible with how C++ solves some other problems. For example, in C99 it's legal to have arrays of variable length, even in a struct as long as it's the final member. In C++ all built-in arrays must have size known at compile time (we have vector for this, so we don't need to fiddle with the complexity of variable length arrays and how it would interact with other language features). C99 lets you initialize structs by naming their members e.g. {.a = 1, .b = 2, .c = 3}. C++ also has this feature, but it's more limited since the C++ object model ties lifetimes with lexical scope, which means that the fields must be given in the same order as they're declared in the struct definition.

It's like C and C++ are two different romance languages. Still obviously related, but not so much that one reads directly as the other.

isodoubIet
Автор

Communicating with a computer is easy. Communicating with other people is hard. If your problem domain doesn't require fancy abstractions, then your language doesn't need them. However, when they do benefit your inter-engineer communication, then you need a higher level language.

Regardless, as long as a language is Turing Complete, you can do everything in it. The only difference is how much effort it will take, how it will perform, and how difficult it will be to read.

TOracle
Автор

Designated initializers from C99 were not added to C++ until C++20. I have seen people argue for constructors, but that is not a replacement since I might want to initialize a single struct in multiple different ways. Sounds like the "I have argued for compatibility" is more a "C should not add features that don't exist in C++" since if he really wanted compatibility, C++ would have added all C99 features in C++03. To me, "the languages should have been merged into one" just sounds like "why did they keep working on C when they could have worked on MY project instead"

FanatiQS
Автор

Thats funny, because I still use C exclusively to this day and can do practically anything with it.

delicious_seabass
Автор

Technically C:s restrict keyword (telling the compiler that two pointers do not point to overlapping memory) is not officially part of the C++ standard because it is not clear how it should work with abstract classes and other OO stuff. However, many C++ compilers implements a version of the restrict keyword but there is no guarantee that it works in the same way between different compilers so if you use it you basically become compiler dependent.

tordjarv
Автор

C Is Obsolete the same way a shovel is obsolete....

artimdutton
Автор

Bjarne doesn't want physicists to become hardware level memory allocation experts. He wants them to become experts in weird C++ syntax. I'd rather understand a pointer 1000 times than figure out which between the rule of 5, the rule of 3 or whatever applies in a certain case, or what the distinction is between lvalues, rvalue and lrvalue. Also: it is well known that physicists love debugging templates. 🙂 True story!

ElPikacupacabra
Автор

As someone who just rewrote their Vulkan Renderer in C (porting from C++), I can firmly say C is freeing from the hell of C++. Even if it takes me twice as long to do anything.

yaazarai
Автор

I'm primarily a C programmer, and while there are some places that I think the language could be improved, I think that most alternative languages take the abstractions too far.

Things I'd want in C would be stuff like stronger typing, a simpler operator precedence, removing default return values for typed functions, implicit header guards, scoped headers, letting `.` reach through pointers, having defer statements, etc.

bitskit