>Extensible >Allows user to go from low level to high level any time. >Wide variety of memory management tools. >Can be used as an object oriented language depending on applications. >Knowledge transfers to 90% of all the known programming language out there.
Why not admit that the C Programming language is the king of all languages and everybody HAS to learn if they are serious about programming?
Gavin Lopez
>>Allows user to go from low level to high level any time. You posted C, not C++.
Luke Garcia
>I never had a job.
Logan Phillips
dis I learned the html php and node.js programming languange and got mutliple jjobs
Dominic Jones
What is high level with c? It's nothing like a scripting language like python
Jacob Turner
It is called C because you can actually C what is going on.
Jonathan Harris
>needing C++ to do so pls go babby
Ryan Lewis
a layer of software abstraction above the hardware, that's literally what "high level" anything implies gets it
Alexander Edwards
>>Can be used as an object oriented language depending on applications.
it really is unreadable though, might as well use c++ if you can
Charles Peterson
how is C unreadable? I find languages that implement a shit ton of object oriented inheritance lend themselves to being substantially more unreadable, particularly with code you didnt write.
Cameron Gomez
>Why not admit that the C Programming language is the king of all languages Because lack of memory safety is inexcusable in 2017
Caleb Myers
>lack of memory safety motherfucker, sorry you have a hard time with malloc and free, it sounds like you're just trying to excuse lazy and shit programming practices
Charles Robinson
ask me how I know you're a noob
Alexander Cooper
>blow my fucking mind BRO
Alexander Carter
again. thats ok when you just have private projects
NOT when you are a 2017 industry 'grammer
Josiah Watson
I use C++ over C because it has better libraries and therefore allows me to do stuff easier. None of the Sup Forums memes applies to the real world and you can't tell me what to do.
Landon Miller
>Can be used as an object oriented language depending on applications.
Nolan Gutierrez
>pajeet says as he pushes his latest .NET updates to his github
Jose Taylor
Take something as simple as std::string vs char *. With a dedicated class, you can see the size without looping through it, you can copy, edit and grow the string with easy to understand syntax. Simply use the + operator to concat strings is much more readable than using the C functions.
Gavin Green
Come on m8. Even C++ can do memory management with smart pointers Only c fags with their elitist attitude ever face issues with string buffer overflow, which leads to serious issues like stack smashing and arbitrary code execution
Leo Adams
Go look at all the vulnerabilities that have happened over the years due to the lack of memory safety in C. Computers can verify programs are safe way more reliably than humans can. Isn't technology supposed to make our lives easier? Why should I waste my time doing something that my computer can do faster and better?
C was great back when it first came out. Not because it was objectively great, but because it made it so that you didn't have to rewrite all your assembly code to port something to a new system. You just wrote it once, and then it could run on any system there was a C compiler for. But that was the 1970s, and languages have come a long way since then.
Zachary Brown
>C was great back when it first came out. Not because it was objectively great, but because it made it so that you didn't have to rewrite all your assembly code to port something to a new system. You just wrote it once, and then it could run on any system there was a C compiler for. But that was the 1970s, and languages have come a long way since then. It's worth remembering that systems languages before C, including its immediate ancestors B and BCPL, had very impoverished type systems with essentially just one or two primitive data types, and different incompatible language versions for systems with different word sizes.
Bentley Jones
>std::string spotted the guy who can't work with char * lol also implying str1 += str2; is more readable then strcat(str1, str2); just for faggots who need that sweet sweet syntax sugar, you're probably a shit programmer anyways who am I kidding
Nathaniel Clark
Okay, now do it with 3 or 4 or 5 strings and see how annoying it gets (Not the person you replied to, btw)
Juan Lopez
execpt that strcat is unsafe dipshit.
jesus fuck, have you even written secure C applications ever?
Benjamin Gomez
cos programming's a follo the leader game for all u cheesefucks
Jackson Jones
>Extensible What does this mean? Every language passes this test. C definitely doesn't do it the best.
>Allows user to go from low level to high level any time. If you believe you are writing high and low level code in C "any time" you're either an idiot or being pedantic.
>Wide variety of memory management tools. True. Not always a positive.
>Can be used as an object oriented language depending on applications. Doesn't mean that's a good idea. At all.
>Knowledge transfers to 90% of all the known programming language out there. Sure? I could believe it but you really aren't doing yourself any favors when you pull numbers out of your ass.
Owen Morris
IMO, having done decades of mostly C++ programming, all low-level stuff should be done in C, and all other software should be in any higher level language. I don't care which: C#, Python, Java, LISP, whatever.
Too much time is wasted these days with alpha-nerds trying to out nerd each other with idiotic C programming when 90% of software would be better written in a higher level language.
That said, any attempt at replacing C is fucking idiotic. It is quite literally the lowest level you can go while still maintaining portability across architectures. If people can't handle resource management and array bounds, they shouldn't be writing low level software, period.
Parker Taylor
Basically you sound like you don't get paid to code. No serious developer would ever make the statement that something is "the king of all languages". I could have not learned C and still developed a vastly better understanding of programming then you currently hold.
Justin Foster
>If you believe you are writing high and low level code in C "any time" you're either an idiot or being pedantic. I assume this was referring to inline assembly
Easton Sanders
I do string management all day long in C++ but with null terminated strings, sounds like you faggots jumped on the std band wagon and don't know how to do anything else because it really isn't a pain. it's perfectly safe if you know certain things about both buffers dumb ass if I know the dest has x bytes allocated and the source is < x - strlen(dest) bytes then where is the problem??? Sounds like you are dumb as fuck.
William Parker
the point is, that if you understand well enough what you're doing, those sort of things aren't prevalent enough in your code to completely deter you from the language. yea i get it, pointers are fucking difficult to grasp your >t.brainlet around but that doesn't imply it's not a practical language to program in
Hunter Jenkins
o ok so you mean to tell me strcat() is now somehow more readable and concise than operator overloaded addition of two string classes when you have to note boundings manually?
fuck off. also null terminated strings are shit and you're a fucking dipshit. enjoy having string processing shit apps that are slower than a 10 line mawk script.
end yourself C faggot.
John Howard
>any attempt at replacing C is fucking idiotic thats like saying any attempt at replacing x86 is idiotic. C isn't some sacred language that will never be replaced thats just what neckbears hear like to say. Eventually, if not already, we'll have better solutions then C for low level software. Don't bet against the future.
> All I have to do is manually check memory and length why can't you see thats superior Calm down buddy. Also no one said std is the only way to do that. Lots of C++ libs that easily are better then C. Its ok C has its moments but you're autistic if you think C handles strings better then C++.
Leo Russell
lol I really hate faggots who embrace modern c++ and don't just take C++ as C with more stuff you can code in C++ as you code in C just because dumb faggots are using all this C++ 17 or C++ 0x crap I don't even know the newsest version name doesn't mean you have to C++ has plenty of great features unless you're already working on a C project or you're working in a limited platform use C++ you don't have to use the std or cancerous modern shit
David Sullivan
>thats like saying any attempt at replacing x86 is idiotic The difference is, it's not possible to make a language that's different from C that isn't also slower than C. It's been tried and it can't be done.
Josiah Gomez
Does anyone know what the phrase "C runtime library" means? I've seen that phrase used sometimes but no explanation.
Connor Fisher
yes I agree with you, I happen to work on a project where I write all my own string management code but of course it's perfectly fine to use a lib and often better. My point was that it is more work but not harder if you know how to work with null terminated strings in a secure way and I think every C++ programmer should know how to work with them, this may sound obvious but sadly too many C++ programmers are crappier then C programmers because they expect to use the standard libraries without ever having to get their hands dirty.
Jace Campbell
Are your coding abilities as good as your grammar?
Nathan Wilson
human grammar is much harder then programming for me (c has a few 10s of keywords only) I have no need for grammer in my line of work so I ignore it, I changed country when I was 12 so I write like a 12 year old if I don't make the effort.
Connor Evans
So you hate people who want to avoid garbage c runtime code?
Oliver Reed
no I just think many are just faggots who don't like to get their hands dirty I respect the ones who do it because they understand how shit works but I hate the ones who hide their ignorance with the C is shit meme
Kayden Walker
>90% That's a cool statistic that you pulled out of your ass.
Jackson Hughes
I want CS students to go and stay go.
Jose Carter
I don't even have a high school degree you sound like an insecure python dev who thinks he can get into c++ because you can ignore all the lower level parts lol. I want "code artisans" to go back to redd it.
Gavin Garcia
I want underage to go and stay go
William Jenkins
I'm old enough to party probably older then you anyways shoo code artisan
Kayden Russell
>programming as a job programming is best as a hobby, and C is the best for learning how a computer actually works.
Angel Murphy
C is also the best to make money
Andrew Campbell
I hope everyone sees how stupid this sounds. You think making a language that's different that isn't also slower than C is not possible?
First off that is just false. Second "we've never done something" != "It can't be done". So you're factually wrong and logically incorrect congrats.
Jayden Butler
C++ makes way more money don't even try to argue this. Wall street, Google, Facebook, and tons of other tech companies have high demand for C++ and pay out the ass for it.
And no NEETs on Sup Forums don't know more then those guys and C won't cut it for what they need.
Hunter Carter
You can't generalize C++ programmers. It is a general purpose language which means a lot if different people use it. I have also written libraries for trivial data structures, I would claim it is better to write these in C++ because of templates (although strings should be a vector of chars). Having access to STL or not, I agree with how the design should be. Often, it is fine to only write a specialized class if it only makes sense to use a specific type, but even then, operator overloads and functionality should be there so you can use the class.
Jason King
C doesn't teach you anything about how a computer works
Eli Martinez
>C >extensible 0/10
Nicholas Allen
It is. You either build a custom compiler or use macro
Leo Murphy
t. webdev
Evan Cox
>use macro 1/10
Jackson Sanchez
>It is. You either build a custom compiler So, create C++?
Luis Sanders
>Wide variety of memory management tools. that's bad
Connor Hall
>thinks he understand how memory works just because he has incremented a pointer Quick, without googling, explain how COW works for memory mapped files and why you would use it.
Kayden Ward
legit kill yourself you web monkey
Samuel Sanchez
Some country you could be even you are a god in C, you will never find a job without a CS degree...
Lucas Carter
>>Extensible Sure those very type safe macros look so handy >>Allows user to go from low level to high level any time. Lol. To do any construct you effortlessly do in any FP language you have to do tons of tedious code in C.. >>Wide variety of memory management tools. And that leaves cleaning up to you. >>Can be used as an object oriented language depending on applications. Ha Ha Ha Ha Ha Ha. If you start making your own function pointer map to emulate virtual methods congratulations, you just reinvented C with classes but with an even more hideous syntax. >>Knowledge transfers to 90% of all the known programming language out there. Agreeabke, it brings you close to the metal but handling abstraction is also part of programming. I see Cfags being SHIT at Haskell often.
Andrew Scott
> takes a few decades to write anything decent
Juan Perez
Yeah, implementing a list by hand every time is so high level.
Hudson Foster
> web monkey I've written web applications in C/C++. web is just a transport/network you dipshit, you can have a program do the same thing on anything
Sebastian Richardson
Yeah and then someone forgets a bounds check before you do a memcpy and you get heartbleed. The C way is always defensive.
Juan Perry
have you even worked as part of a team? you don't write everything
Christian Bennett
>bragging about being old enough to be here without a high school degree
Adrian Edwards
>Why not admit that the C Programming language is the king of all languages and everybody HAS to learn if they are serious about programming?
I have studied bioinformatics and I have to admit that this is true. I am now on my bachelor's thesis where I have to write an application in C++ and all courses we've had before were in either python or Java. I am now in the process of learning C (and eventually C++) and if my university had decided to teach C first a lot things would have been so much clearer.
Sure, it's nice to have magic array lists, sorting methods, garbage collection but after 3 years of coding in python or Java I realized I don't know jackshit about computers.
C is, in my opinion, the most important language for beginners. No, you don't need to know what a pointer is for JavaScript etc. but it does help you actually understand things.
Anyone should know how a stack works, what the heap is needed for, how a list is implemented, how a ringbuffer works, how a binary tree is traversed, etc. If you don't understand these things, you don't understand programming.
Adam Cook
C is just Assembly well written
Bentley Hill
Are you part of those who unironically find x.isGreaterThan(y) more readable than x > y?
Syntactic sugar makes code easier to write AND easier to read if used properly.
Juan Butler
C teaches you nothing about a stack works. The only way to truly "get" it is by writing a recursive function in assembly. You will immediately understand why recursion can't go on forever unless tail-optimized.
Jeremiah Moore
In embedded, I agree: C truly is the best choice. Having a standard ABI and a lower memory footprint overall makes it ideal. For anything else, however, C++ is superior.
Owen Edwards
Games coded in C feel way much better, Quake III was the pinnacle.
Jack Ward
Indeed, but even programming assembly doesn't mean that you know how a computer works.
Kayden Gonzalez
Are you kidding me? Assembly is all about some CMOS chips bring together. Assembly in Real Mode you have to manage IRQ, DMA, Interruptions Tables, 64k paging, pointers, and more...
Assembly is even easier than Basic.
Jack Foster
what's a good intermediate level C book/resource?
So far I wrote a small OS based on an atmega 644 (process scheduler, mem alloc/realloc, keyboard driver, i/o interrupt, 8bit segment display output,etc.)
But I still feel I don't know jack shit about C
Luis Martinez
>Assembly in Real Mode ...will only teach you how computers worked 20 years ago.
Not to mention that dropping to real mode and >have to manage IRQ, DMA, Interruptions Tables, 64k paging, pointers, and more... means that you're writing your own OS.
What you are saying is that writing an OS teaches you how a computer works, not writing assembly.