ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
* Few facilities for code reuse or abstraction (hard to do abstract data types; no polymorphism). C's static type system can't compete with the more modern static type system of, say, Haskell, which is polymorphic and can work out the type of most functions automatically.
* No namespaces (OK, this isn't especially high-level, but it's very useful).
* No bult in list datatype (this is a real PITA; just about every practical C program I've written has needed a linked list datatype at some point). It's impossible to represent a linked list constant (even in C++ with the STL).
* None of the useful features of functional languages (real higher order functions, closures, currying, optimisation of tail-recursion, etc.)
* No garbage collection. This is a real disadvantage, especially now garbage collectors are getting faster than manual memory management. Lack of GC also makes managing linked lists, etc. even more trouble.
Like I said, I don't think there's anything wrong with C, it's just been overtaken by other languages (e.g. Perl/Python) for writing run-of-the-mill applications, and was never really any good for doing the really tricky stuff (AI, etc.) It still has things going for it (like good performance, lots of libraries available).
Most of these issues have been addressed in C++ in one way or another, but it's a beast of a language.
Right, and personally i don't see anything wrong with C been overtaken by other languages. Every language is ment to be good at something and it's the programmers choice to pick the language most suited for the task.
But then if you think about it, Perl and such, were built on C, so in it's most basic form it's C with added features that make certain things easier to do (which is the point i think).
Ofcourse at one point or another added you reach the end of the languages capabilities, which is when you start moving to languages that can do it and leave C for what it's best at.
Right, and personally i don't see anything wrong with C been overtaken by other languages. Every language is ment to be good at something and it's the programmers choice to pick the language most suited for the task
I totally agree. All i was arguing was that C is not usually the best language for writing applications. It's good for other things, like kernels for example.
Quote:
But then if you think about it, Perl and such, were built on C, so in it's most basic form it's C with added features that make certain things easier to do (which is the point i think).
Hmm, IMHO Perl is very unlike C. It has a lot of the syntax, but other than that it's totally different (no static typing, etc.). It really owes more to Awk and shell scripts than C.
Yeah Perl isn't the best example of what i am trying to say. You are right, it's very different in form from C, but deep deep deep down it's C (only the interface between the programmer and the inner C, is very different...ie Perl)
Wow. I will never understand the linux/programming community. All this bickering. My language is better than yourś is! ... No itś no!
My distro is better than yourś ......
It seems to me like it doesn't really matter what language/distro. Seems like itś more preference based. You people really need to simma. But I appreciate the all the feedback.
Yeah, I'm sure it's pretty strange to watch people get into heated arguments about the relative merits of programming languages when they could be, say, having sex or playing Counterstrike instead, but the odd thing is that it really does matter which programming language you use. Unfortunately the only thing you can do is to try a few and see which one(s) you like. It's definately an advantage to learn more than one, because it helps you to think about solving problems in different ways.
Okay. Maybe bickering was the wrong word. And I can understand having your preferences. But why try to convince the person who has been using linux just as long as you and has his (or her) own set of preferences, instead of targeting newbs like me.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.