Disagree? Give me a reason. I'm in the mood to have a friendly (argument).
No native windowing library
[editline]16th July 2014[/editline]
No classes
[editline]16th July 2014[/editline]
What am I talking about I don't even understand the things
Lack of any modern language feature seems like a pretty strong argument against it.
Which C you mean?
The original C?
[QUOTE=Adam.GameDev;45409179]No native windowing library[/QUOTE]
That's actually a good argument, I was expecting something less. Not a whole lot of native system languages do. Although I'd still rather use GTK than anything else, so it doesn't matter to me.
[QUOTE=Darwin226;45409209]Lack of any modern language feature seems like a pretty strong argument against it.[/QUOTE]
What types of features are C lacking? Also, C is extremely modular. Write the damn "features yourself", or see if there's a library available for what you need.
[QUOTE=MuffinZerg;45409231]Which C you mean?
The original C?[/QUOTE]
Yes, of course.
Considering that C compiles to Assembly, in your logic C is Jesus and Assembly is God.
[QUOTE=utilitron;45409298]Considering that C compiles to Assembly, in your logic C is Jesus and Assembly is God.[/QUOTE]
I love you. But have you every tried writing x86 assembly by hand?
C# is the best.
[url=http://www.youtube.com/watch?v=tSMHARaIYNs]Truly the best language known to man.[/url]
C+= is a huge improvement.
[sp]I only know C++; how does it differ from C?[/sp]
C++ has classes
[QUOTE=nuttyboffin;45409437]C# is the best.[/QUOTE]
I wasn't expecting an argument that bad... C# is worse than Java. It's slow, and it's extremely limited functionality wise. There's not a whole lot you can do with C#, other than making cute little artsy fartsy point and click games. There's nothing I'd use C# for that C can do (which is everything...ever).
C# is extremely high level, more so than C is. It's not even compiled into machine code...so why is it even "compiled" at all? Imagine what would happen if you tried to build an operating system on C#. Actually, you couldn't. There's no possible way for C# to actually interact with your hardware without help from another language.
Actually, I think you can compile C# to native, same as Java
[QUOTE=Adam.GameDev;45409521]C++ has classes[/QUOTE]
C++ is just C with a bunch of extra useless unneeded garbage. I don't believe there's anything C++ can do that C can't. Classes aren't needed. C++ isn't too bad, I just wouldn't want to program in it.
[QUOTE=Adam.GameDev;45409567]Actually, I think you can compile C# to native, same as Java[/QUOTE]
C# and Java both depend on certain runtime environments, which are not native to any operating system, ever. They both rely on C.
[U]Diagram:[/U]
Java
|
Runtime
|
C
|
Assembly
|
Binary
|
Your computer
The same goes for C#, but C# goes up one step higher.
There's generally a reason why C isn't used for everything.
You can theoretically make your shit slightly faster by writing stuff in pure C as opposed to C++, but the tradeoff between performance and productivity isn't really worth it a lot of the time.
Things like classes aren't needed yeah, but they are a large boost in productivity to some.
There's nothing you can do in C++ that you can't do in C just like there's nothing you can do in C that you can't do with assembly.
And writing all the features you need yourself is generally a hit in productivity too. It's the same reason why game developers use other people's engines a lot of the time.
I wouldn't go as far as to say C++'s stuff is extra useless unneeded garbage. Well, not all of it anyways.
I think C's a really nice language though. Practically everything we have today was built from C from the looks of it.
[QUOTE=awcmon;45409753]There's generally a reason why C isn't used for everything.
You can theoretically make your shit slightly faster by writing stuff in pure C as opposed to C++, but the tradeoff between performance and productivity isn't really worth it a lot of the time.
Things like classes aren't needed yeah, but they are a large boost in productivity to some.
There's nothing you can do in C++ that you can't do in C just like there's nothing you can do in C that you can't do with assembly.
And writing all the features you need yourself is generally a hit in productivity too. It's the same reason why game developers use other people's engines a lot of the time.
I wouldn't go as far as to say C++'s stuff is extra useless unneeded garbage. Well, not all of it anyways.
I think C's a really nice language though. Practically everything we have today was built from C from the looks of it.[/QUOTE]
Finally, a good reply.
Call yourself a programmer?!
Title should read: All languages [I]apart from C[/I] suck. C is god.
Also, I love C, but you don't use a hammer to repair a watch. I.e. blunt instrument.
[QUOTE=Mad Vargas;45409588][...]
C# and Java both depend on certain runtime environments, which are not native to any operating system, ever. They both rely on C.
[U]Diagram:[/U]
Java
|
Runtime
|
C
|
Assembly
|
Binary
|
Your computer
The same goes for C#, but C# goes up one step higher.[/QUOTE]
This isn't quite true, at runtime there's no (significant) difference between C and Assembly. Same with C# (and I think Java), once they finished starting they run natively as machine code.
(C# isn't "one step higher" either, just the intermediary language is more prominent.)
Personally, I wouldn't want to program without a garbage collector because certain schemes are much more difficult to do correctly without it.
(I admit that it becomes easier the more modular I make my programs though, since the amount of cyclic references decreases that way.)
Since C# is more high-level I can also take advantage of features that rewrite my code into coroutines and let me do certain things with a third or less of the work I'd have to do in C.
It's possible to do reactive programs with long processes in C, but you'd have to write all the callbacks and state machines manually since even templates can emulate them only to some extent.
[QUOTE=Mad Vargas;45409267]What types of features are C lacking? Also, C is extremely modular. Write the damn "features yourself", or see if there's a library available for what you need.
[/QUOTE]
Language features are not libraries. You can't write them yourself without some metaprogramming capabilities, of which C has a hilariously puny subset.
[QUOTE=Mad Vargas;45409588]C# and Java both depend on certain runtime environments, which are not native to any operating system, ever. They both rely on C.[/QUOTE]
[URL="https://en.wikipedia.org/wiki/GCJ"]Again, not always[/URL]
[QUOTE]GCJ can compile Java source code to Java Virtual Machine bytecode or to machine code for a number of CPU architectures.[/QUOTE]
C has horrible stuff like undefined behaviour, strict aliasing and integer promotion which makes c not as straight forward as some people say.
Also there's loads of stuff that's outside the standard but you still need. I would be surprised to see any significant codebase without a single compiler extension used.
Not to mention a general lack of quality of life features.
This was just made to have an argument. The major languages have their place, whether you like it or not. discussion over.
writing stuff in C is slow and unsafe.
It is good for low-level stuff though, I can't disagree on that or algorithms that need to be fast like FFT.
But hey.. C# beats the hell of C when it comes to productivity and readability.
When you write C++ you can opt out of the features (either by disabling them in the compiler or by just not using them).
For example, if you so desire, you can choose not to use exceptions. Of course this mostly disables the entire STL because exceptions are so prevalent with them. However it still allows many C++ idioms and features like namespaces, classes, polymorphism and RAII.
With C, the code you write is limited by the language's features. This is very rarely useful to the programmer. You cannot extend the language, there's no metaprogramming.
From a performance standpoint, C attempts to hide very little from the programmer. There are no "hidden costs". However I think the differences are negligible to a higher-level language like C++ if you as a programmer know and understand the performance implications of the language features you use.
Providing more tools for the programmer is not a bad thing when they know how to use them.
[QUOTE=Mad Vargas;45409559]I wasn't expecting an argument that bad... C# is worse than Java. It's slow, and it's extremely limited functionality wise. There's not a whole lot you can do with C#, other than making cute little artsy fartsy point and click games. There's nothing I'd use C# for that C can do (which is everything...ever).
C# is extremely high level, more so than C is. It's not even compiled into machine code...so why is it even "compiled" at all? Imagine what would happen if you tried to build an operating system on C#. Actually, you couldn't. There's no possible way for C# to actually interact with your hardware without help from another language.[/QUOTE]
C# is compiled to bytecode which is run through a JIT compiler. Meaning it's about as fast as C. [URL="http://stackoverflow.com/questions/787375/why-would-you-want-to-use-c-sharp-if-its-slower-than-c"]Here's an answer from Jon Skeet, who's generally considered pretty smart.[/URL]
It's also used for a shitload of things. Visual Studio's UI is written in C#. [URL="https://xamarin.com/customers"]Everyone on Xamarin's customer page.[/URL] Countless websites. The Sims 3 game portion (the renderer is written in C++). Pretty much every game on XBLA. Most games made with Unity. HandBrake. KeePass. I don't even know why I'm replying because you obviously don't want to have a "friendly argument."
[editline]16th July 2014[/editline]
Besides, if your application is so performance-sensitive where execution speed is your main bottleneck, you might as well use Assembly.
[editline]16th July 2014[/editline]
[QUOTE=Mad Vargas;45409588]C++ is just C with a bunch of extra useless unneeded garbage. I don't believe there's anything C++ can do that C can't. Classes aren't needed. C++ isn't too bad, I just wouldn't want to program in it.
C# and Java both depend on certain runtime environments, which are not native to any operating system, ever. They both rely on C.
[U]Diagram:[/U]
Java
|
Runtime
|
C
|
Assembly
|
Binary
|
Your computer
The same goes for C#, but C# goes up one step higher.[/QUOTE]
Actually, .NET comes pre-installed with new versions of Windows, and Mono comes pre-installed with recent Ubuntu releases. And yes, [URL="http://cosmos.codeplex.com/"]C# is native to some operating systems.[/URL]
If you think execution speed or ability to do everything is the most important part of a language, you haven't programmed very long. Development speed, ease of readability, security, ease of debugging, and many other concerns are much more important than execution speed.
Plus, Java's more like:
Java Bytecode
|
Runtime
|
Your Computer
And C# is:
IL
|
JIT Compiler
|
Your Computer
You can't count C, Assembly, and machine code in that because they're not compiled every time you run the program, they're compiled when you make the binary. The runtime translates Java to machine code, just like the C# compiler translates IL to machine code (just a bit faster than Java).
[QUOTE=Mad Vargas;45409173]Disagree? Give me a reason. I'm in the mood to have a friendly (argument).[/QUOTE]
Developer productivity. End discussion. Anyone with real-world development experience knows how valuable developer time is.
[QUOTE=KmartSqrl;45410633]Developer productivity. End discussion. Anyone with real-world development experience knows how valuable developer time is.[/QUOTE]
Unless you are on a [URL="http://en.wikipedia.org/wiki/Time_and_materials"]time and materials contract[/URL], then by all means... write the damn thing in assembly. :)
Thanks for the thread
ITT: I don't know much about programming at all, C is best!
[QUOTE=geel9;45412221]ITT: I don't know much about programming at all, C is best![/QUOTE]
it's like they read an article about C being decent, got incredibly persuaded, and is now trying to persuade us and citing the article in their arguments
Sorry, you need to Log In to post a reply to this thread.