First of all you need to know that concepts like "high-level language" are defined in the CS field. Read this article and consider checking out the CS course from Stanford or at Coursera. Concepts like that does not "change"
"It has no abstractions" you are wrong here. It has abstractions for basic types, concepts like Arrays and even syscalls. It also has abstractions for FILEs and a lot of things. If possible, check some basic C course and you will be amazed of how many things C can offer you!
"it has no pointers" you are also wrong. C has pointers, and pointers of pointers. They are representations of memory references.
"No string datatype": Do you ever wondered why the Strings and Arrays has so many methods in common? They are both almost the same thing: Arrays! 😁 Strings = Arrays of chars!
"C is still updated": When Linus was asked about changing from C to C++ the main language from Linux kernel, he answered with a message that C is a Stable language and C++ is continuously "messy" updated (with a lot of not so receptive words...)
C is a language to be used in some specific contexts. As we never should be doing a web-Scrapper using C when we have Python, I think we never will see an OS written in JS.
The answer to your question is: C is a high-level language and this will not change for the CS world too soon.
Hi, I'm Swastik Baranwal, a software developer from New Delhi, India passionate about open-source contribution, Gopher, Pythoneer, Compiler Design and DevOps.
I never said that C has no pointers. I meant C++ std::string.
I keep hearing that C is no longer a High Level Programming Language because it is no abstractions, has pointers, have to handle memory on our own, no string data type, unsafe etc.
About the STD: the C++ Standard Library is a implementation of common useful objects as abstractions. The existence of such thing in C++ doesn't invalidate that C has its own abstractions as I mentioned. I really suggest you to check how C language is constructed and how to implement some basic things such as a basic server with threads, open/read/write files or a basic calculator in C.
I have no intention to offend you but seems like you have no basic notion of how C language works or what is concepts like abstractions and basic data types.
Hi, I'm Swastik Baranwal, a software developer from New Delhi, India passionate about open-source contribution, Gopher, Pythoneer, Compiler Design and DevOps.
There are more letters to be written in C++ and you are including in your executable the full string.h header. Is that valid? Are you really using all of it? For a Desktop application, this makes no sense but for embedded systems, every byte counts.
"You can write using namespace std; and...": No. Do not do this in your code. Check this thread at StackOverflow and do some research about it and why is considered a bad practice.
For the 'string' issue, let me suggest another approach:
// Ctypedefchar*string;stringstr="hello";
As an answer to people who say things like: "C is bad because it doesn't have strings!", consider asking about what they are trying to do. In general, they are complaining about scapegoats.
Hi, I'm Swastik Baranwal, a software developer from New Delhi, India passionate about open-source contribution, Gopher, Pythoneer, Compiler Design and DevOps.
I have some thoughts, so here we go:
C is a language to be used in some specific contexts. As we never should be doing a web-Scrapper using C when we have Python, I think we never will see an OS written in JS.
The answer to your question is: C is a high-level language and this will not change for the CS world too soon.
I never said that C has no pointers. I meant C++
std::string
.Actually, the tweet shared by this article said that, as you can see at this link:
twitter.com/ThePracticalDev/status...
About the STD: the C++ Standard Library is a implementation of common useful objects as abstractions. The existence of such thing in C++ doesn't invalidate that C has its own abstractions as I mentioned. I really suggest you to check how C language is constructed and how to implement some basic things such as a basic server with threads, open/read/write files or a basic calculator in C.
I have no intention to offend you but seems like you have no basic notion of how C language works or what is concepts like abstractions and basic data types.
I get what you mean but people complain that they have to use
char chr[]
orchar* chr
for this.There's a big difference between people complaining about something and people being really mindful about knowing the options to it. Compare:
There are more letters to be written in C++ and you are including in your executable the full
string.h
header. Is that valid? Are you really using all of it? For a Desktop application, this makes no sense but for embedded systems, every byte counts.using namespace std;
and...": No. Do not do this in your code. Check this thread at StackOverflow and do some research about it and why is considered a bad practice.For the 'string' issue, let me suggest another approach:
As an answer to people who say things like: "C is bad because it doesn't have strings!", consider asking about what they are trying to do. In general, they are complaining about scapegoats.
Definitely! I really agree with you. I hope Dev deletes/changes their tweet.