Advertisement

Future of C++

Started by October 02, 2001 02:19 PM
65 comments, last by savagerx 23 years, 2 months ago
AFAIK Vampire : The Masquerade was written in java. That''s a commercial 3D RPG, problem was and still is that it''s sloooooooooow. Wouldn''t even run on a K6-2 500, 64MB and a geforce2mx now considering I got very good speed on Q3 and UT with that system that''s pretty bad.
quote: Original post by Crazy_Vasey
AFAIK Vampire : The Masquerade was written in java. That''s a commercial 3D RPG, problem was and still is that it''s sloooooooooow. Wouldn''t even run on a K6-2 500, 64MB and a geforce2mx now considering I got very good speed on Q3 and UT with that system that''s pretty bad.


Funny, it ran just fine on the spare Celery300a w/ 64meg ram and a TnT1 that Ive got in the corner.

And only its scripting language was Java, not the engine itself.
-----------------------"When I have a problem on an Nvidia, I assume that it is my fault. With anyone else's drivers, I assume it is their fault" - John Carmack
Advertisement
quote: Original post by McMcDonald
Dynamic access of java objects (you can query the members of a class at runtime,...)


RTTI.

quote: one standard language with a great set of apis...


a) STL.
b) APIs should not be a part of the language, and they aren''t. Both C++ and Java have "great APIs" for them; which do you think has more?

quote: standard access to databases with odbc...


Again, should not be a part of a general-purpose programming language. And I think SQL is better than ODBC, but that''s just me. In any case, C++ too.

I totally agree with anyone who says that the problem domains of Java and C++ have considerable overlap, but each language is better suited to problems of specific types.

quote: Original post by marcos
BY THE WAY, WHERE CAN I FIND MORE ABOUT C++0X, PLEASE!!!


C++0x is still in the conceptual stages; there''s no concrete information as yet. Considering that there isn''t a single totally C++98-compliant compiler yet, I wouldn''t worry about C++0x right now.
Ah, but the java.* APIs are a part of the language in java''s case in the sense that they are the same on any platform that has a certified VM, and are constantly maintained and expanded, and come bundled with the language.

Meaning your code will run on a Mac, a Windows or a Linux Box (and many other platforms) without you having to find api''s for each architecture and adapting to them.

With C++ apis they usually are platform specific, cost money, and you cannot be sure they will be maintained/evolved.
I dont like Java. The dang language was originally designed to run kitchen appliances! I drives me nuts to see so many colleges teaching Java as the main language in their Computer Science courses...

But a couple of points...
There are pointers in Java. Every instance of a class is a pointer to that class. Pointers are built into the language and kinda hidden from view.

For instance if you do this:
MyClass duh;
You get an empty pointer to MyClass. You don''t see this much. You usually see this:
MyClass duh = new MyClass();

Another thing, Java is interpreted - think along the lines of BASIC!

As far as cross compatability - I have nearly NEVER DL''d a Java application that worked without needing to be tweaked. In order to make a Java app work better/faster, people tend to use machine specific instruction sets. There goes cross platform.

In my opinion, Java is truly not much use and it irks the HELL out of me to be forced to learn it for my school programs.

Landsknecht
"For gold or glory, but never for free!"

My sig used to be, "God was my co-pilot but we crashed in the mountains and I had to eat him..."
But folks whinned and I had to change it.
I dont think at this point there can really be an argument between whether C/C++ or Java is better, mainly because C/C++ has been around a lot longer than Java so it has had a lot more time to work out all the bugs. C became popular in the 70''s and then C++ which is really just built on top of C came out in the 80''s. Java only came out in mid 90''s, I say give it another 5 years or so and see where it is in comparison to C/C++.
Advertisement
quote: Original post by Oluseyi
----------------------------------
Original post by McMcDonald
Dynamic access of java objects (you can query the members of a class at runtime,...)
----------------------------------

RTTI.

That''s not quite the same thing. C++ has very poor (non-existant) support for reflection. C++ RTTI only allows you to check types of variables dynamically; not, for example, to call a method dynamically (by this I mean that you won''t know the method name until run-time), or to inspect what attributes an object contains and their types dynamically.

Just try to implement something along the lines of Java''s serialization support in C++
Java's primary strength is its portability, prefect for web applets, but for games or science, c++ is the way to go. Also java's security makes programming it a real pain in the ass. Its good for what it's designed for, so it should stay there. Hmmm, I know someone who works at Sun, he even says java sucks.

(1) Whether java will take over C++ to becoming the next main general purpose language?

- No I don't think so, not for me anyway

(2) How does that affect the type of language used
to make games?

- What? Games have a need for speed, and java doesn't do asm, it doesn't do speed either

(3) If that's the case, does it imply that we may have to drop C++ and pick up java?

- I would drop programming if I had to use java full time, yuk, unfortunately I already know it.

Edited by - burp on October 3, 2001 4:03:30 PM
quote: Original post by Dactylos
C++ RTTI only allows you to check types of variables dynamically; not, for example, to call a method dynamically (by this I mean that you won''t know the method name until run-time), or to inspect what attributes an object contains and their types dynamically.


Very true. However C++ OO design principles stress inheritance and polymorphism. While I do agree, though, that C++''s functionality is not as robust as Java in this regard, the same effect can be obtained by a shift in design point. I might add that I''m not qualified to comment on Java , given that I have never investigated the language in more than cursory fashion.
I''m a C++ programmer, plain and simple. But I wouldn''t be arrogant enough to say C++ will remain in power forever. Eventually something will displace it, but I doubt that will be Java. For One Java is variation on C++, with advantages and disadvantages. C++ was designed to be a fast (near assembly fast) high-level programming language. Java was designed to be a language that would allow people familiar with C++ to be able to easily develop web apps. Now while both languages have developed, the original purpose will always be a languages strong points; so C++ will (probably) always be faster then Java, and Java will always be easier then C++. But in high-level game programming speed is the #1 concern in terms of coding.

After all speed and ease-of-use tend to be opposites in the programming world.

-- Zhypoh!
- Zhypoh!

This topic is closed to new replies.

Advertisement