I think, wait till you learn .NET, you will find it is cooler than Java. To me, Java is not a very easy programming language. Probably I am .NET trainned because .NET is really easy to program. No much complicated programming skills are need for .NET. In my school, I was taught .NET in the first 2 years. In the 3rd year, I was taught with a brand new programming platform, Java. I find it not easy to get the hang out of it. Java is really sensitive, in which the fact that Java is case-sensitive and more. .NET however issn't case sensitive. If it is, the IDE for .NET will automatically change to the correct case so the programmer can basically not bother about it.
I don't really like the use of extended classes in Java as it gets complicated when the program gets bigger. Sometimes a "null exception" happens for no reason. And this error basically halts the entire programming work. Sometimes I restarted the computer, the null exception error just go away. Weird, but it's true. Such disadvantages made me think bad about Java.
Of course on the other hand, Java is a free programming language that is used quite commonly now adays. However I believe once Windows Vista is launched, Java may be supported lessly on the Vista operating system. Vista will be fully a .NET compatible software. Since .NET is from Microsoft, we all have to pay a price for it, otherwise Java will be an alternative.
Pro and cons.. The programmer have to decide on preferences, compatibility and scalability.
1. we were taught java during our first years....well, to be exact, not taught, but rather we were "forced" to self study it
2. You're comparing the IDE and not the language.
3. extend classes are found in most OOP Languagees. And it's only daunting for beginners, but very useful for amateurs and beyond
4. Programming Language is free ! Even .NET is free! ...However, their IDEs are not.
5. Java is OS independent (at least, it's almost is). The java community would only have to make a java compiler and virtual machine and it'd be alright.
6. MS is not as strong as before. In fact, the delay in vista's launched has cost them greatly. If open office gets more acceptance in the years to come. we might see the end of MS monopoly.
I'll agree to Saint. I think Java has really a lot of advantages about C++. One of the main problems of Java, the speed, is improving more and more an I think it won't take very long and ths speed problem is no problem any more.
But today one shouldn't compare Java to C++, it's better to compare it to C#. With the .NET environment there are a lot of advantages you didn't had with C++, like for example the pointer stuff which has been replaced by C#.
But generally I think Java is at present the best programming language to use! And I also think it's a good choice for beginners to start with, cause you can achieve first results relatively easy.
Greets, Chris
1. Yes, speed-wise C++ is definitely better. But then again, why stop there? why not go for assembly? - the reason, because the bigger your project becomes, the lesser that difference in speed becomes.
2. Pointers are very useful. Eventhough i specialize in java, i never forget my pointers. it will help you understand a lot of things
3. For beginners, i prefer teaching C. But if you want output right away, go for .NET. I'm in java because i love the huge opensource community (plus a few more reasons) !!!
I would definitely go with Java, its got more power and compatibility than anything else. I couldnt help but notice a little noobishness about the difference between the languages themselves and an ide, and the null exception was prolly the ide as well. Also, Java will still be quite prominent when Vista comes in - Microsoft doesnt make their software on Java, instead Java makes their libraries on Windows. Oh yeah, and if you get a Java license you are actually entitled to modifying Java itself (add another point to the list - it does have applications).
precisely ! well said !
Even though this may be considered an old topic, I feel I have a few pennies worth of ideas.
If it is such a simple job don't use a pointer in the first place. Also, problems with pointers is is a problem of the coder not understanding. Pointers are crucial to so many things.
If you aren't going to use multiple inheritance than don't use it. Having it allows flexibility. Think about other things in life, isn't it always better to have something even though you think you'll never use it, just in case.
Once again, if you don't want to overload the function, then don't. Nothing in C++ keeps you from giving functions different names.
What is so hard about
CODE
int (*function)(int c);
? Also, for the third time, if you don't want to use it then don't.Once again, for the fourth time, if you don't want to use it then don't (like almost every C++ programmer), it was probably kept to keep compatibility with some C stuff.
You're complaining about a comma, a simple comma, when in Java just do a simple little program, you have to do
CODE
public class Hello
{
public static void main(String args[])
{
System.out.println("Hello World");
}
}
as opposed to C++ {
public static void main(String args[])
{
System.out.println("Hello World");
}
}
CODE
#include <iostream>
int main()
{
std::cout << "Hello World\n";
return 0;
}
or Perl, one of the most powerful languages int main()
{
std::cout << "Hello World\n";
return 0;
}
CODE
#!/usr/bin/perl
print "Hello World\n";
print "Hello World\n";
Also, Hiko Haieto, I'm sorry but Java is nowhere close to being more powerful than anything else.
Also, speed is horrible. Using the unix time utility I timed a Hello World program written in Java and time output this:
real 0m0.305s
I've written much more complex programs in C or C++ and they never even go above 0m0.100s and rarely above 0m0.50s
I only agree with WindandWater, let us pray a operating system is never written in Java.
I leave with these articles: http://www.joelonsoftware.com/articles/The...avaSchools.html
http://www.paulgraham.com/javacover.html
i agree with most of what you said, with a few exceptions:
1. speed-wise...read my msg above
2. OS written in java? highly unlikely
There are numerous things that are great about java and numerous things that are better in c++. Java for one is very portable and very OOP oriented. However, because of the JVM java also is slower than natively compiled C++ programs since machine code runs fast than a JVM that has to compile on the spot. Also, C++ is much better at numerical calculations than java.
As for no pointers in Java you could not be any more wrong. In Java, everything is a pointer and there are numerous ways you can use pointer arithmetic and other pointer operations that are very useful in C++ also in java.
Overall, you have to look at what you are going to do and then decide on a language. Just because you like one language better than another does not mean you should always use it. Use a language because the strengths that you are using out weight the negatives.
1. Yes, JVM slows down the app a lot. I do hope they can make one which is similar to that of .NET
2. Numerical calculations? I'd go for Mathematica or Matlab
3. Umm...in java, not everything is actually a pointer. im not really sure what you mean. but if you're refering to passing params by reference, then no. Java only supports pass by value, never by reference (although it may look like its by reference,it's not). If you mean everything is being accessed through their address because they're objects...not quite. java is not a full OOP Language (haven't tried 6 yet though). it still has some primitive data types, as opposed to .NET which has none.
IMHO, use the language the best suits your needs. For me? - java, because of the numerous open source community out there
...just my 2 cents worth



