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
What would be an acceptable alternative for C in low-level programming?
Jordan Gomez
doesnt that just mean that none of those "features" are necessary?
Ryan Edwards
C*
Dylan Long
Forth
Daniel Wright
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?
Levi Fisher
Too bad i can't program my 8 bit microcontroller with 255 bytes of RAM in whatever meme high level language you use
Gavin Price
>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.
Jason Brooks
Fortran
Aaron Harris
go program your turing machine then
Aiden Gray
Wow OP you're right. I'm now a Rust homosexual.
Juan Bell
Which language do you think the languages that implements those "complex data structures" are written in? It's c dumbass
Brandon Clark
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.
Aaron Perez
I'm serious tho, can anyone point me to commonly used data structures C library?
Samuel Reed
>it's popularity is falling more than any other languages in the market. Higher salaries, here i come!
Jaxon Rivera
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.
Daniel Watson
The best language in existence, but no one cares.
Christian Cruz
Why is it the best?
William Cooper
>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
Kayden Hernandez
Lightweight, faster than C, allows the use of essentially any programming paradigm.
Connor Brown
NSA/C shills incoming
Justin Lewis
Fuck you OP, C is awesome!
Dominic Hall
bump
Parker Phillips
sepples
Blake Phillips
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)
Jason Garcia
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
Robert Campbell
t. mozilla shill
Evan Walker
Wow, thanks for opening my eyes, user.
Cooper Johnson
t. NSA shill
Kayden Scott
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.
Samuel Rodriguez
>citizen code of conduct what exactly is wrong with that?
Caleb Price
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).
Blake Hughes
Software is a science. If something works and is innovative, that is immutable. The feelings of sensitive individuals is irrelevant to these things.
Eli Baker
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.
John Johnson
b-but they only want people to be happy, and caring to their f-feelings is the way...
Jacob Perez
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"
Elijah Brooks
The same way giving an alcoholic a beer is making him happy.
Jayden Foster
>Rust
Lucas Bennett
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
Josiah Sullivan
Nice bait u fucking retard. OS kernel - C Drivers - C Universe - you guessed it, C.
Xavier Green
Java is responsible for its own hate
Juan Lee
This so much. Fuck python kids and fuck javascript mongrels.
Grayson Bell
>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.
Parker Perry
>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?
Cooper Sanchez
Never have I seen Ada recommended outside of my company. Nice going user.
Julian Allen
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.
Brayden Garcia
Case on point, this is what losing an argument looks like
Camden Thompson
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.
Connor Watson
thanks
Jordan Brooks
I have a joke, C users
What is a boolean?
Isaac Robinson
This
Samuel Nelson
>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(...))
Sebastian Jackson
>closures/lambdas are mixing data with code i really wish i knew what it's like to be this brand of retarded
Joseph Jackson
keep going man, this is hilarious.
Juan Perry
>that damage control
Kevin Ortiz
A miserable pile of bytes
Hunter Cooper
I'm doing an assignment in C at this very moment and I think I want to die.
Cameron Peterson
Most of these are false, but even so, that's what makes it good.
I have a fulltime job where I write in C and assembly OP(oo) is a fag!
Blake Flores
C stands for Cucks
Ryan Hernandez
nice buzzword, retard
Julian Sullivan
/thread
Aaron Collins
...
Jacob Morgan
>Write everything yourself! >Advanced features aren't needed!
Jace Sanchez
>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.
Luis Evans
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.
Colton Gutierrez
And what about its actual features? Having a quick look on Wikipedia I can tell it's basically a thread-safe C.
Adrian Nguyen
rust is for cucks
Jayden Wood
C(uck) spotted
Aaron Howard
>shills using our language they are evolving
Tyler Adams
>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
Sebastian White
>C >Booleans
Leo Sullivan
Why do you sound like a Sup Forums fucktard?
Bentley Collins
OR Idris. But rust already has more, and significantly better, libraries than haskell so it has a leg up in that department.
Brandon Roberts
>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
Joseph Turner
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.
Easton Butler
It's true what they say, can't spell cuck without C.
Benjamin Bennett
Rust is smaller than C as well as significantly more memory efficient.
Angel Nguyen
C compilers are only fast because they implement all those things you idiot
James Sanchez
>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.
Christian Scott
go back to Sup Forums
Jaxon Cook
come back after you've googled wildcards.
Kevin Clark
>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.