Extensible

>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?

>>Allows user to go from low level to high level any time.
You posted C, not C++.

>I never had a job.

dis
I learned the html php and node.js programming languange and got mutliple jjobs

What is high level with c? It's nothing like a scripting language like python

It is called C because you can actually C what is going on.

>needing C++ to do so
pls go babby

a layer of software abstraction above the hardware, that's literally what "high level" anything implies
gets it

>>Can be used as an object oriented language depending on applications.

it really is unreadable though, might as well use c++ if you can

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.

>Why not admit that the C Programming language is the king of all languages
Because lack of memory safety is inexcusable in 2017

>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

ask me how I know you're a noob

>blow my fucking mind BRO

again. thats ok when you just have private projects

NOT when you are a 2017 industry 'grammer

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.

>Can be used as an object oriented language depending on applications.

>pajeet says as he pushes his latest .NET updates to his github

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.

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

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.

>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.

>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

Okay, now do it with 3 or 4 or 5 strings and see how annoying it gets
(Not the person you replied to, btw)

execpt that strcat is unsafe dipshit.

jesus fuck, have you even written secure C applications ever?

cos programming's a follo the leader game for all u cheesefucks

>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.

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.

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.

>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

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.

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

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.

>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++.

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

>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.

Does anyone know what the phrase "C runtime library" means? I've seen that phrase used sometimes but no explanation.

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.

Are your coding abilities as good as your grammar?

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.

So you hate people who want to avoid garbage c runtime code?

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

>90%
That's a cool statistic that you pulled out of your ass.

I want CS students to go and stay go.

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.

I want underage to go and stay go

I'm old enough to party probably older then you anyways shoo code artisan

>programming as a job
programming is best as a hobby, and C is the best for learning how a computer actually works.

C is also the best to make money

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.

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.

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.

C doesn't teach you anything about how a computer works

>C
>extensible
0/10

It is. You either build a custom compiler or use macro

t. webdev

>use macro
1/10

>It is. You either build a custom compiler
So, create C++?

>Wide variety of memory management tools.
that's bad

>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.

legit kill yourself you web monkey

Some country you could be even you are a god in C, you will never find a job without a CS degree...

>>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.

> takes a few decades to write anything decent

Yeah, implementing a list by hand every time is so high level.

> 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

Yeah and then someone forgets a bounds check before you do a memcpy and you get heartbleed.
The C way is always defensive.

have you even worked as part of a team? you don't write everything

>bragging about being old enough to be here without a high school degree

>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.

C is just Assembly well written

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.

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.

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.

Games coded in C feel way much better, Quake III was the pinnacle.

Indeed, but even programming assembly doesn't mean that you know how a computer works.

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.

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

>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.