Tell me one reason why people should learn a low level programming language like C over high level like Java

Tell me one reason why people should learn a low level programming language like C over high level like Java.

Soon low level programming jobs are dead and anything is done in high level while Java is better for recterional use. C is only relevant in embedded that is going to die after IoT is a meme without weight. Jobs wont disappear completely but they will certainly dwindle in low level languages

Prove me wrong if you can

honda hasnt been the same since the late 90s

For employment? You shouldn't. The enterprise market has spoken and they've largely bent the universities and training programs that feed them around their whims.

But on an ideological level? We are making software slower far more quickly than computers are getting faster. That's a problem. A problem that could be solved if people stopped insisting implementing everything in Javascript is fine and actually put some effort into developing in more efficient languages.

>Tell me one reason why people should learn a low level programming language like C over high level like Java.
Because one day you might need to make a program that processes packets from 2 tap interfaces and trying to use fucking java instead of C for it will make your program drop half of them.

Because you need to control the mic pass through on a headset but java sound API doesn't have access to that...

Its like, try to cook Rattatuille when you dont know how to cook rice (??

So when you learn java, you understand why you're using .equals() instead of ==

As much as I like C++, this is a shitty comparison.

It would be like trying to cook ratatouille except you don't know how to cook rice, but you have a magic rice dispenser that dispenses perfectly cooked rice every time. Yes you might get some marginal improvements from knowing how to do it, the knowledge might be applicable somewhere else, but you can do everything else perfectly well without it.

You should learn both

What kind of shitty programmer thinks he's at a crossroads where he must choose either C or Java? You're not marrying the language, settling down, and having 2.5 kids with it, correct?

user, you dont need to know how to use a manual gear if automatic works

Embedded is much more than iot, but C don't die anyway.

well said

Sure you may only ever need to know how to drive an automatic, but if driving is your livelyhood, I'd be better to know how to drive manual rather than not know at all.

I really don't get it, would you hire some autist who swears x language is a gift from god himself, thus he only uses x?

>But on an ideological level? We are making software slower far more quickly than computers are getting faster.

Existing programs aren't (usually) getting slower. Modern programs are far more complex than `dd` and require a more complex language to implement them reasonably.

Although most machines aren't getting faster, they __are__ getting relatively cheaper. With that being the case, modern applications really need a language that can take advantage of multiple compute resources.

C is not the solution to slow programs.

Hello Pajeet. C has been a standard for decades because it allows fine grain low level control and works goo as a high level general purpose language too. Fuck off, street shitter.

c and java are both high level.

Yea until triptronic and then the guy who knows how gears works passes you off the line. Except in this analogy his implementation thrives and yours dies.

Sigh.. Sooner or later you may be forced to go low level. Apart from that having broader experience can give you insights you might otherwise not have. Also if you really love technology you might enjoy learning it for the joy of learning. Finally if you think we are at some kind of stasis point where trends can't ever flip back to some new low level tech, well, perhaps you should be working for Warren Buffet with your soothsaying skills.

I program in C at work. after all of the ceremony required by java my turnaround time is comparable on complex projects and i have little in the way of portability issues because ive written OS specific code for it long ago.

Embedded programmer tries to segue into webdev:
>Hmm ok... so that's how concurrency works in javascript
>Hey, using dynamic programming here will change this from an O(n^2) runtime to O(n)
>Hey boss, I refactored our codebase and now our product uses half as much AWS storage
>Hi guys, I just wrote this nice little hack for the WASM project I'm working on

Webdev tries to segue into embedded/low level programming
>Wait, where's my DOM?

as a mainly (but not solely) java dev, lemme point out you can't write an efficient kernel or other critical/low-level systems in java.

That sounds like something that could be done in C++.

Because then can justify your poorness for not being able to afford a mac.

The GNU project uses C.

Shut up, you know what he meant.

Anyway, C is still relevant in fundamental software like compilers, interpreters, drivers, and system programming. ESR said it best when he claimed you should only program in C if you absolutely have to. I think OP's question fails to consider C++ as the bridge between the two languages. Faster and lower than Java, but still supports nice features like strings and STL.

Am I banned

I think your questions answered

But C has strings

C has primitive strings, when it comes to string operations, you'll find yourself reinventing the wheel.

Someone already invented a decent string library for C you larping retard.
antirez/sds

There's nothing unique to a string that makes it need its own operations that arrays of integers don't

ever see that one episode of TNG where an entire planet forgot how their fuckhuge life-preserving generator worked?

sds s1 = sdsnew("aaa");
sds s2 = sdsnew("bbb");
s1 = sdscatsds(s1,s2);
sdsfree(s2);
printf("%s\n", s1);

output> aaabbb

This looks like ass, and is nowhere near as userfriendly as the C++ string library.