C++ 0x

Started by
63 comments, last by Way Walker 15 years, 10 months ago
Quote:Original post by fpsgamer
Quote:Original post by Eckos
I don't care if C/C++ is harder to program. But atleast it's cross-platform, cross-os, embedded etc. More than your faithful .NET MS loving language is.


You're missing a very critical, yet slight distinction:

C++ is not cross platform. Full stop. The C++ specification does not specify an ABI, making it impossible for a C++ binary to be truly cross platform. You're confusing the fact that there are C++ compilers on different platforms with being "cross platform". If that were the case, then just about every langauge would be "cross platform" as long as they have a compiler on more than one operating system and architecture.

Contrary to what you said, .NET is cross platform. That is because .NET languages are JIT compiled. Therefore they will run an any platform for which there is a run-time.

Quote:Original post by Eckos
MS fanboys?


I think you can teach us a little something about being a fanboy.


C++ is cross platform. The source is you just need to compile it. C# isn't cross platform for one. Microsoft controls it (not including Mono which is different). And yes there is a C++ compiler on every operating system. Because you forgot C# didn't just come out of nothing. And if I didn't look at the source it was made from C++. And probably has Microsoft specific coding in it that isn't cross-platform.

Yeah sure any language is able to be croos-platform/os. But it's developers who stop it. Microsoft knows that if released it for other OS's they would go out of business. Why else does it screw over OpenGL. Making it wrap around directx. But thats another topic.

And C++ is more useable in terms of use. Than say C#. C++ can adapt every language out there through the language's headers. So if you say C++ sucks. Think again, it was used to write your languages ;).

If C# is so great why don't you compile a video driver with it, and a kernel and an whole OS without using assembly, C, C++. Oh wait you can't. Even that somewhat C# OS out there still required Assembly, C, C++ on certain parts. You still need Assembly/C/C++.

And what fanboy am I? I still use Vista and Linux together dual boot. So I can't be either one of those. This is a C++ topic. not C# ;) So if you hate C++ why you in here?

But atleast I'm not tied down to a system. I never said it wasn't hard. I have a few hard problems with it heree and there. I haven't mastered it. And never will. C# is limited to certain things unlike C++

Why do certain companies still prefer C++ over your beloved C#.

The reason I picked C++ over C#. Is because I wanted cross-os. Windows, Linux, MacOSX for it to run on their. Not be tied down to Microsoft. (Mono isn't nowhere catching up to .NET. So it doesn't count. Talking about the real .NET frame.
Advertisement
"The C++ specification does not specify an ABI, making it impossible for a C++ binary to be truly cross platform."
That's one of the things they were trying to get done but got cut and didn't make it into C++ 0x from what I read.
[size="2"]Don't talk about writing games, don't write design docs, don't spend your time on web boards. Sit in your house write 20 games when you complete them you will either want to do it the rest of your life or not * Andre Lamothe
Quote:Original post by Eckos
C++ is cross platform. The source is you just need to compile it.


As I stated before. If C++ is cross platform, then every language is cross platform.

Quote:Original post by Eckos
C# isn't cross platform for one. Microsoft controls it (not including Mono which is different).


You need to get your facts straight:

ISO/IEC 23270:2003 Information technology -- C# Language Specification.

ISO/IEC 23271:2003 Information technology -- Common Language Infrastructure

The public can vote on the development of the C# programming language including CLI runtime. Also, since the CLI specification is public, people have the information necessary to implement it on different platforms.

Quote:Original post by Eckos
And yes there is a C++ compiler on every operating system.


Including the HP-UX operating system, which has a god awful, non-compliant C++ compiler. The point is that there are incredibly few good C++ compilers.

Quote:Original post by Eckos
Because you forgot C# didn't just come out of nothing. And if I didn't look at the source it was made from C++. And probably has Microsoft specific coding in it that isn't cross-platform.


So? Steve Wozniak wrote a basic interpreter in machine langauge. So machine language must be awesome right?

Quote:Original post by Eckos
So if you say C++ sucks. Think again, it was used to write your languages ;).


Nobody said C++ "sucks". But it is undeniably flawed.

Quote:Original post by Eckos
This is a C++ topic. not C# ;) So if you hate C++ why you in here?


I was in here because I was answering the OPs question. You're the one who made several unfounded statements which I corrected several times already.

For a person who is so zealous about C++, you don't seem to know very much about it. If you're going to be an evangelist, learn something about the thing you're evangelizing.

[Edited by - fpsgamer on June 22, 2008 2:50:25 AM]
Quote:Original post by Eckos
C++ is cross platform. The source is you just need to compile it. C# isn't cross platform for one. Microsoft controls it (not including Mono which is different). And yes there is a C++ compiler on every operating system. Because you forgot C# didn't just come out of nothing. And if I didn't look at the source it was made from C++. And probably has Microsoft specific coding in it that isn't cross-platform.

Yeah sure any language is able to be croos-platform/os. But it's developers who stop it. Microsoft knows that if released it for other OS's they would go out of business. Why else does it screw over OpenGL. Making it wrap around directx. But thats another topic.

And C++ is more useable in terms of use. Than say C#. C++ can adapt every language out there through the language's headers. So if you say C++ sucks. Think again, it was used to write your languages ;).

If C# is so great why don't you compile a video driver with it, and a kernel and an whole OS without using assembly, C, C++. Oh wait you can't. Even that somewhat C# OS out there still required Assembly, C, C++ on certain parts. You still need Assembly/C/C++.

And what fanboy am I? I still use Vista and Linux together dual boot. So I can't be either one of those. This is a C++ topic. not C# ;) So if you hate C++ why you in here?

But atleast I'm not tied down to a system. I never said it wasn't hard. I have a few hard problems with it heree and there. I haven't mastered it. And never will. C# is limited to certain things unlike C++

Why do certain companies still prefer C++ over your beloved C#.

The reason I picked C++ over C#. Is because I wanted cross-os. Windows, Linux, MacOSX for it to run on their. Not be tied down to Microsoft. (Mono isn't nowhere catching up to .NET. So it doesn't count. Talking about the real .NET frame.


In your fanboy rage you kind of missed the point. The only reason why C++ is "cross platform" is because just about every OS under the sun has a compiler for it. In spite of this if you want your code to run in Windows and Linux it has to be compiled twice, once on each machine. Where as Java and C# only need to be compiled once and the program will run on any machine that has the runtime installed on it. That is cross platform.

--------Ratings - Serious internet buisness
Quote:Original post by j_smith4
In your fanboy rage you kind of missed the point. The only reason why C++ is "cross platform" is because just about every OS under the sun has a compiler for it. In spite of this if you want your code to run in Windows and Linux it has to be compiled twice, once on each machine. Where as Java and C# only need to be compiled once and the program will run on any machine that has the runtime installed on it. That is cross platform.


"Only" need a runtime/VM eh?
What exactly is the difference between requiring a compiler and a VM to make your program run?
Quote:Original post by Eckos
Well if C/C++ is as bad as you proclaim it is. Then why don't you convince all the millions of C/C++ user's to switch back from *nix/mac/solaris to C# VB.NET since in your opinion C# is gawdly.

Many of the smart ones already are, but I never claimed C# was a panacea either. There are situations where sticking to C++ is better.

Quote:But atleast it's cross-platform, cross-os,

The Mono Project

Quote:embedded

.NET Micro

Quote:Write a letter to ISO C++ committee and tell them to not bother with C++0/1x since C# pwns all? That's it right? MS fanboys?

You're an idiot for even thinking this is what I was arguing. I very explicitly stated that there were things worth improving for C++, and you completely ignored that because you're reading your own anti-MS C++-is-everything bullshit bias into what I'm saying instead of actually reading what I'm writing, probably because you are a fanboy of C++ and a fan of blindly bashing Microsoft.

Quote:And what proof do you have that Microsoft's C++ is more standard if any than gcc.

I'll read "if any" as "in any way" since otherwise I have no clue what you're talking about.

My proof consists of my purchased copy of the C++ standard which tells me the difference between right and wrong, and various pieces of code which behave or misbehave in different ways on different compilers, such as the two you've mentioned. When MSVC is behaving and GCC is not, that's a place Microsoft has done it better than GCC. Since I actually use both compilers, it's not at all surprising that I'd find such cases.
Quote:Original post by marsong
"Only" need a runtime/VM eh?
What exactly is the difference between requiring a compiler and a VM to make your program run?


Essentially nothing. The other guy is going on about how C++ is cross platform when several people have shown it to be otherwise. I was just adding the point that if you want C++ to run on multiple OSes you need to have multiple compilers. Whereas something like C# only needs to be compiled once and it will run anywhere (provided you have the JIT runtime). As far as I know the developers of Mono did it all with no help from Microsoft. If that is the case there is little reason why it couldn't be ported to Mac or other platforms. MS is smart enough to know that if .NET goes to other platforms it will cause other people to use it because it is cross platform.

Last thing I will say, these little zealot wars do nothing other then waste time.
--------Ratings - Serious internet buisness
Quote:Original post by marsong
Quote:Original post by j_smith4
In your fanboy rage you kind of missed the point. The only reason why C++ is "cross platform" is because just about every OS under the sun has a compiler for it. In spite of this if you want your code to run in Windows and Linux it has to be compiled twice, once on each machine. Where as Java and C# only need to be compiled once and the program will run on any machine that has the runtime installed on it. That is cross platform.


"Only" need a runtime/VM eh?
What exactly is the difference between requiring a compiler and a VM to make your program run?


The problem with the phrase "cross platform" is that it means different things in different contexts and is at best loosely defined, thereby causing confusion.

For example one may say that a C++ program is cross-platform. That means the programmer has taken care to use libraries that are available on all target platforms. This is something completely different.

However it is never okay to say that the C++ programming langauge is cross platform. That is because the document that describes what the language is i.e. the specification ISO/IEC 14882:2003, doesn't address multiple platforms let alone one. This fact makes it impossible for anybody to refer to C++ as cross platform.

Languages like Java and C# actually describe the target environment. Therefore a compliant implementation of the language implies the presence of a standard runtime environment. Thereby making those languages cross platform.
Quote:Original post by Eckos
Why else does it screw over OpenGL. Making it wrap around directx. But thats another topic.


Now that I'm done laughing....

Wrong wrong wrong wrong wrong.

MS have had nothing todo with OpenGL since they withdrew some time ago from the ARB (2001 or 2002 rings a bell); the ARB have been screwing over OpenGL themselves nicely since then.

The ONLY time you'll get OpenGL wrapped around D3D is on Vista when you haven't installed graphics card drivers from your chip maker; if anything that MS going out their their way to help out people as without this wrapping OpenGL programs would fail to run or be restricted to the 1.1 Software version of OpenGL which has existed since Win95.

In short; get your fact straight before running your mouth.

Quote:
So if you say C++ sucks. Think again, it was used to write your languages ;).


First of all, so what?(one of my favourite languages is implemented in C, not C++, and is also self-hosting, but whatever). By the same token, every C++ program gets translated to assembly in the end, so assembly is superior, right?

Secondly, "your" languages? Dude, you have it all wrong. There's not "our" and "your" languages. Some of the people here that you're arguing with know C++ 10 times better than you,believe me. You're just not supposed to treat a language like it's your fiancee. It's a tool. You don't get emotionally attached to a tool. You use it to do your work. The more tools you have in your disposal, the better. You will be a better programmer if you learn to evaluate calmly the technologies you have at your disposal, and decide based on logic and not emotions or fanboyism. I have a lot of things against Microsoft as a company, but undeniably C# is a fine language, and it can save a lot of headaches in a vast range of applications. Of course, there is a point that it's controlled by Microsoft and there is a point that there's an ECMA standard; they're both true. For example, C# 3.0 is not yet a standard, but will be soon. That pretty much proves that the main decisions of what's going in and out of the language is made by Microsoft: first, Microsoft releases a new implementation, then, it becomes a standard. Anyone that's not naive or a die-hard MS fan realizes that. There's not an absolute truth such as "MS is always evil" or "MS is always innocent". MS is a company, it does what companies do, things that range from beneficial to hurtful, and always, always, with its own interest as primary concern. Nevertheless, C# is a good language. You might want to try it sometime, it can help even you if you drop your fanatism.


Also, since you know it's an entirely different topic, why are you bringing OpenGL into this? Microsoft has just updated the default OpenGL implementation from the buggy,software 1.1 to the wrapped-around-D3D 1.4. That is if you haven't installed your card drivers. I just installed Vista, my video card drivers of course and I did a glGetString(GL_VERSION) for good measure. It's 2.1.2 alright. Everything's fine.

[Edited by - mikeman on June 22, 2008 1:38:55 PM]

This topic is closed to new replies.

Advertisement