C is a disservice to intelligent programmers...

C is a disservice to intelligent programmers. It has almost 0 features that a modern and intelligent programmer uses to be productive. Since C is such a timesink, it's popularity is falling more than any other languages in the market.
C is dying and it should die ASAP. C programmers are actually retards in general. C is a small language to grasp, exactly the kind of shit that makes things retard friendly.
C has no advanced features like C++ does.

But as a newfag you are kinda in the right direction. C is for newbies. Think of it this way:
During ancient times, counting to 10 was a big deal and a person who could count to 10 was considered to be "wise".

Fast forward a few century counting to 10 is so trivial we teach this to toddlers. Now toddlers appreciate the vast "knowledge" of counting to 10 while matured brains are busy with modern technologies.

C is from stone age and the people who still preach it is like overgrown toddlers that can't learn advanced things. C is for lesser programmers.
C doesn't have delegates
C doesn't have resizable arrays
C doesn't have strings
C doesn't have string concatenation
C doesn't have namespaces
C doesn't have exception handling
C doesn't have closures in the standard
C doesn't have unit tests
C doesn't have Function overloading
C doesn't have memory safety of any kind
C doesn't prevent memory exploits and has no bounds and runtime checks
C doesn't support dynamic method loading/creating
C doesn't even have generics and templates
C doesn't have meta programming
C doesn't have mixins
C doesn't have higher order functions
C doesn't have contract programming
C doesn't have inner classes
C doesn't have function literals
C doesn't have array slicing
C has a very limited support for implicit parallelism
C doesn't even have string switches

C is a cancer that plagues the modern software industry

Other urls found in this thread:

en.cppreference.com/w/c/language/arithmetic_types#Boolean_type
notabug.org/koz.ross/awesome-c
twitter.com/SFWRedditGifs

C++ fags BTFO!

What would be an acceptable alternative for C in low-level programming?

doesnt that just mean that none of those "features" are necessary?

C*

Forth

Code monkey programming in higher level OOP languages and it always bugs me
Are there C standard libraries implementing basic structures as lists or hashsets or everyone has to implement them on their own if they want to use one?

Too bad i can't program my 8 bit microcontroller with 255 bytes of RAM in whatever meme high level language you use

>Are there C standard libraries implementing basic structures as lists or hashsets or everyone has to implement them on their own if they want to use one?

No, C is stuck in the Stone Age. C programmers can't comprehend the complexity of modern data structures. It would make their heads explode.

Fortran

go program your turing machine then

Wow OP you're right. I'm now a Rust homosexual.

Which language do you think the languages that implements those "complex data structures" are written in?
It's c dumbass

The reason Rust is being pushed so hard is because social justice warriors have found great difficulty penetrating the communities of open source system coders who use C and/or C++.

The "safety" features give advantages to lobotomised Feminist studies "coders" who are trying to "disrupt" these communities while breaking the knee caps of everyone else who knows what they are doing.

Literally nothing in Rust actually solves problems that haven't already been solved by RAII in C++ and even some GC/stack/heap techniques in the arguably superior but slower D compiler.

The advocates are all social justice warriors and this is their "long march through the development communities". They are employing critical theory against their main targets C and C++, by criticising everything it is and does and demonising its users. They've held back their "cis het white male" jargonism for now, but once they have established a foot hold "killer app", expect them to go wild with it. Just read through the big throbbing CoC they've erected on their main website.

Rust is kill. Don't touch it, spit on all its advocates.

I'm serious tho, can anyone point me to commonly used data structures C library?

>it's popularity is falling more than any other languages in the market.
Higher salaries, here i come!

Which is written in the machine language, the lowest level language. But it'll take forever to get things done the closer you get to the metal, so to speak. Your logic is flawed. It's like saying horse-drawn carts are superior because they're the ancestors of cars.

C is outdated and not suited for modern applications. You might be able to program your electronic arduino toys and drivers with them, but they don't have any use beyond that. C++ meets the demands of the modern world. C no longer does. It only fills a niche role now.

The best language in existence, but no one cares.

Why is it the best?

>what is firmware
>what is embeded software
>what are operating system kernels
>what are hardware drivers
>what are low level system utilities
>why can't they be implemented in
>why is itself implemented in C

Lightweight, faster than C, allows the use of essentially any programming paradigm.

NSA/C shills incoming

Fuck you OP, C is awesome!

bump

sepples

you are acting like C is used everywhere for everything.

Obviously C++ is better for desktop applications, and there is a ton of other options for people with different backgrounds.
C is still used today because you don't change language in a project (unless you are a webdev, then you do it every two weeks)

C is dying anyway. Either use C++ or git gud and learn Rust. Ignore the NSA shills. They'll adamantly oppose you for using safer programming language.

Their anti-shill patterns can be easily spotted, their most common strategy for Sup Forums users is to spread SJW boogeyman which has nothing to do with anything practical.

NSA spread the hatred towards free software with communism boogeyman
NSA spread the hatred towards Java with pajeet boogeyman
NSA spread the hatred towards firefox with the SJW boogeyman
Now it's rust, my two cents: when some one resorts to muh sjw/pajeet/communism as an argument you should know they've lost the argument

t. mozilla shill

Wow, thanks for opening my eyes, user.

t. NSA shill

The best bit is when you're reading it and you think oh they're not that bad, a bit tightass but that's all. Then they refer you to the citizen code of conduct.

>citizen code of conduct
what exactly is wrong with that?

This is the first paragraph

1. Purpose

>A primary goal of COMMUNITY_NAME is to be inclusive to the largest number of contributors, with the most varied and diverse backgrounds possible. As such, we are committed to providing a friendly, safe and welcoming environment for all, regardless of gender, sexual orientation, ability, ethnicity, socioeconomic status, and religion (or lack thereof).

Software is a science. If something works and is innovative, that is immutable. The feelings of sensitive individuals is irrelevant to these things.

These things always place people's feelings above technical merit and competence.
They also usually have a clause that says you have the duty to excommunicate anyone from your project if they hurt anyone's feelings for any reason, even if the altercation happened off-site, and had nothing to do with the project or your organization.
Easiest example, X developer is biggest contributor, but some tranny doesn't like his commentary on trans people he made on twitter.
This has happened in the past.

b-but they only want people to be happy, and caring to their f-feelings is the way...

Stop trying to argue with liberal arts fucktards, they'll bring up "emotional intelligence" or call you autistic for not caring about people's feelings.
Oh here's my favorite, "people are more important than software"

The same way giving an alcoholic a beer is making him happy.

>Rust

You are an absolute retard for unilaterally deciding what is and isn't a good language.

t. Embedded Software Engineer, C is still king for a lot of things

Nice bait u fucking retard.
OS kernel - C
Drivers - C
Universe - you guessed it, C.

Java is responsible for its own hate

This so much.
Fuck python kids and fuck javascript mongrels.

>C is a small language to grasp, exactly the kind of shit that makes things retard friendly.
Hence why I recommend it to beginners. Easy to understand, but still requires you to learn the basics of computer architecture. Also forces you to be able to implement many things yourself. If you freeze up because you can't implement something due to a lack of third party libraries for it, you don't deserve to call yourself a programmer. While it is certainly desirable to leverage libraries when you can, as it is better for productivity, you should never be wholly reliant on them.

Otherwise...

C++, Rust, and Ada all serve excellent roles as systems programming languages, or as general purpose programming languages when speed is desired. C++ is particularly preferred when one or more C libraries is necessary for the task.

C#, Java, and their kin (languages that run on their respective virtual machines) are useful as feature-complete general purpose languages that need a moderate amount of performance, but which can trade-off absolute performance for portability, or ease of development.

Ruby, Python, Node.js, and similar languages are useful as general purpose languages for small-scale programs, where performance is less relevant, or primarily I/O bound, as in the case of some webservers.

Other languages are primarily domain specific.

Use the right tool for the right job.

>C is from stone age
>the people who still preach it is like overgrown toddlers
Also, what happened to your use of punctuation in the latter half of your OP, OP?

Never have I seen Ada recommended outside of my company. Nice going user.

Probably glib. Though this
struct stuff {
char * x;
int *y;
struct stuff *next;
};

Is usually all that's needed. Though glib is pretty common if you need something more advanced like hashset or list.

Case on point, this is what losing an argument looks like

The library you want is called Klib. It's a header-only library that uses macros to generate code for various data structures. Its performance for hash tables is reasonable enough that some have used it in C++ over std::unordered_map (which, last I checked, is implemented poorly in gcc)

While it is true that the most commonly used OS kernels these days are written in C (due to being started in a time where C++ was not up to snuff), and likewise, the driver API is entirely in C as well, I would not necessarily consider them for a serious modern project. C++11 and up have their advantages that might be particularly useful in kernel-level code. Rust, similarly, has the same advantages, and already does have a decent open source kernel out in the form of Redox.

I had to use it as an introductory language when I first started my bachelor's. It's not the most pleasant language to use, but you can get used to it, and it does have a sufficient number of features necessary to make a good systems language. If I was writing code that could be responsible for someone's life or death, I might strongly consider it.

thanks

I have a joke, C users

What is a boolean?

This

>C doesn't have delegates
function pointers
>C doesn't have resizable arrays
realloc
>C doesn't have strings
C has arrays. A string is an array of type char.
>C doesn't have string concatenation
sprintf
>C doesn't have namespaces
You can force this yourself with macros, or just write structurally sound code that doesn't rely on multiple namespaces.
>C doesn't have exception handling
The assignment operator returns the result of the rvalue, you can use this for higher order conditional statements, which handle errors.
>C doesn't have closures in the standard
Mixing data and code was a mistake from the very beginning.
>C doesn't have unit tests
Write your own.
>C doesn't have Function overloading
Function overloading makes binary compatibility with other C compilers impossible because every compiler would have it's own method of function name mangling to make function overloading work.
>C doesn't have memory safety of any kind
>C doesn't prevent memory exploits and has no bounds and runtime checks
Write correct code and this isn't an issue.
>C doesn't support dynamic method loading/creating
Don't mix code and data please.
>C doesn't even have generics and templates
C11 has this, you've always been able to write macros. Anything overly complex should be a plain ass function, this is what callbacks are for.
>C doesn't have meta programming
The C preprocessor lets you do lots of convenient things and prevents autistic stuff like generating of code at build time.
>C doesn't have mixins
good
>C doesn't have higher order functions
There's nothing stopping you from writing your own.
>C doesn't have function literals
Do not mix data and code please.
>C doesn't have array slicing
Write it yourself, shitstain.
>C has a very limited support for implicit parallelism
Most of the standard library is thread safe, it's up to you to write thread safe code when writing software.
>C doesn't even have string switches
switch (!strcmp(...))

>closures/lambdas are mixing data with code
i really wish i knew what it's like to be this brand of retarded

keep going man, this is hilarious.

>that damage control

A miserable pile of bytes

I'm doing an assignment in C at this very moment and I think I want to die.

Most of these are false, but even so, that's what makes it good.

same thing it has been since 1999 en.cppreference.com/w/c/language/arithmetic_types#Boolean_type

Why the fuck is this thread still here?

C doesn't have booleans

a lambda is code that can be passed around like data, that's literally its definition

>passed around like data
alright, let me just casually serialize some of my fold arguments.
nigger do you even know how abstraction works

Show us an example where a lambda makes something actually easier, where C needs workarounds.

exactly

When you need to use a macro just for this, it's just stupid (+It's in C99, for something basic as this)

Don't ignore the counter argument
A boolean still occupies at least a whole byte, might as well stop pretending and call a spade a spade.

What about using Go instead?

go has runtime, so it's not low bare metal level

C is literally the best programming language. If you use anything else you are a cuck.

>Show us an example where a fuel injector makes something actually easier, where my horse needs workarounds.

glib
libapr
notabug.org/koz.ross/awesome-c

Only losers use C.

Cuck detected.

What language is C*? Did you mean C#?

I have a fulltime job where I write in C and assembly
OP(oo) is a fag!

C stands for Cucks

nice buzzword, retard

/thread

...

>Write everything yourself!
>Advanced features aren't needed!

>C doesn't have delegates
Bloat.
>C doesn't have resizable arrays
Bloat.
>C doesn't have strings
Bloat.
>C doesn't have string concatenation
Bloat.
>C doesn't have namespaces
Bloat.
>C doesn't have exception handling
Bloat.
>C doesn't have closures in the standard
Bloat.
>C doesn't have unit tests
Bloat.
>C doesn't have Function overloading
Bloat.
>C doesn't have memory safety of any kind
Bloat.
>C doesn't prevent memory exploits and has no bounds and runtime checks
Bloat.
>C doesn't support dynamic method loading/creating
Bloat.
>C doesn't even have generics and templates
Bloat.
>C doesn't have meta programming
Bloat.
>C doesn't have mixins
Bloat.
>C doesn't have higher order functions
Bloat.
>C doesn't have contract programming
Bloat.
>C doesn't have inner classes
Bloat.
>C doesn't have function literals
Bloat.
>C doesn't have array slicing
Bloat.
>C has a very limited support for implicit parallelism
Bloat.
>C doesn't even have string switches
Bloat.

Speed is the only thing that matters.

C has _Bool, which is typedef'd to bool in stdbool.h.

C has Booleans, just like C++.

Many of the things you're calling bloat don't really impact performance at all.

And what about its actual features? Having a quick look on Wikipedia I can tell it's basically a thread-safe C.

rust is for cucks

C(uck) spotted

>shills using our language
they are evolving

>and already does have a decent open source kernel out in the form of Redox
Are you joking? That project deserves to be smeared out by Linus

>C
>Booleans

Why do you sound like a Sup Forums fucktard?

OR
Idris.
But rust already has more, and significantly better, libraries than haskell so it has a leg up in that department.

>C doesn't have resizable arrays
malloc
>C doesn't have strings
nul terminated char * is a string
>C doesn't have string concatenation
strcat
>C doesn't have namespaces
just add prefixes to your identifiers, which will effectively be a namespace
>C doesn't have exception handling
longjmp
>C doesn't have Function overloading
function overloading is not a good thing. it leads to harder to read code and more painful compile errors
>C doesn't have memory safety of any kind
This is necessary in some applications
>C doesn't prevent memory exploits and has no bounds and runtime checks
stack canaries, DEP and plenty of other runtime checks exist. Just because they're not in the C standard doesn't make them not an industry standard.
>C doesn't even have generics and templates
macros
>C doesn't have higher order functions
how is this not achieved with function pointers?
>C doesn't have function literals
syntactic sugar
>C doesn't have array slicing
pointer math
>C has a very limited support for implicit parallelism
the compiler is free to do whatever the fuck it wants, as long as the result is right. openmp, for example.
>C doesn't even have string switches
syntactic sugar

I'm pretty sure there are, but because C doesn't have language-level generics it's usually better to implement your own if using non-standard data types.

C was created because FORTRAN was found inadequate for systems programming.

Turing machines are more powerful than any PC. We haven't built anything more powerful than a FSM yet.

>255 bytes of RAM
Pretty sure even the C90 standard library won't run on that.

Most processors can't address individual bits, so you instead pack multiple boolean variables into a single byte.

It's true what they say, can't spell cuck without C.

Rust is smaller than C as well as significantly more memory efficient.

C compilers are only fast because they implement all those things you idiot

>C++, Rust, and Ada all serve excellent roles as systems programming languages
C++ is a horrible mess as a language. It has all of the memory safety problems of C, with a ton of new fun ways to cause undefined behavior. If you use the STL to make it memory safe, it'll probably run slower than the equivalent code in Java.

Ada is a pretty cool language, except for the horrible syntax and required usage of Unchecked_Deallocation for some tasks. IMO, Ada 95 did OOP the best. The lack of a preprocessor in the standard is also bullshit.

Is rust actually in a usable state now? Can I write code in Rust that will still compile in 10 years? I certainly can in any standardizes language like C.

go back to Sup Forums

come back after you've googled wildcards.

>Rust is smaller than C
>[citation needed]
I would imagine that Rust's mandatory bounds checking would add a few instructions here and there. Other than that, I doubt it'd make any difference.

You should probably be using assembly at that point.