Tom's Guide | Tom's Hardware | Tom's Games
![]() |
![]() |
![]() |
Well, after playing with JAVA's SDK and even with an IDE - CodeWarrior - then comparing to something like VB6 IDE - especially with the integration of MSDN - I find that JAVA is NOT application orientated and almost FORCING programmer to fiddle with documentation and rely on trial and errors to even get even a simple program to work. At the age where application oriented is the driven force, JAVA, though provide powerful features and platform "independency", still have a long way to go. Well that's my opinion. What do you think?

It's always interesting to see what other people think about topics that can go so far as to be called religious by some :)
Personally, I agree with you, if not for the same reasons. The Java documentation is very well done and complete, which is a big help. I know that there have been a couple times I've had to dig through MSDN looking for the info on a specific Windows API call, and it takes forever to find it. The more you use a language the less you'll have to look at the docs, until you come across something new.
As to an IDE, I just tried Eclipse yesterday and must say I'm impressed. When it comes to writing Java, I would go so far to say that it's at least as good at writing Java as Visual C++ 6 is at writing C++. Very well done, free IDE; hats off to IBM again.
I have my own reasons for disliking Java, one of which is that my school focuses on Java, and has only two or three classes that deal at all with C++. For many things I think Java is messy and does a poor, inefficient job. It does do well at some things, such as browser applets and some server-side stuff. What bugs me about Java is how slow it typically runs compared to compiled code, and how it doesn't allow you to get very close to the hardware of the machine it's running on. Both of these are just inherent to an interpreted language who's focus is cross-platform compatibility.
I guess in the end I just don't think that Java is at the point where it can be called an equal competitor with compiled languages such as C and C++. It's good at filling some gaps where C/C++ can't reach, but other than that I don't yet consider it at the level of, again, C/C++. After all, you don't see a Java OS do you?
What I'm really hoping is that Sun takes up IBM's offer to help them make Java open source. If this happened my opinion of Java would certainly change somewhat for the better, but we'll see.

While I agree with you about java running slower and using more resources(especially Swing), I have to disagree on java not being application oriented. Java is extremely application oriented.. expecially at an enterprise level. If I were given the task of creating a large application, java would be my first choice, then probably C# or VB.net. I have never used Eclipse, only Netbeans which was ok. Recently I've been using Visual Studio, and it rocks! Probably the best IDE i've ever used.
>FORCING programmer to fiddle with documentation and rely on trial and errors
Sounds like you just need more exposure to it. I've always thought java was one of easiest languages I've ever used.

Comparing Java to C++ in this context is somewhat pointless...Of course Java is slower, but that's simply the price you pay for portability. A Java OS would be silly...On what would the JVM run?
"fiddle with documentation"
I'm not sure what you mean, but never, ever, underestimate the power of documentation. "fiddling" with it can only bear good fruit."JAVA is NOT application orientated"
Any language can seem like that when you first start. Keep trying and you'll find that Java code is very application oriented.In general, Java is a great choice for many applications. Usually not the same ones C++ is a great choice for. If you need speed, use C. If you need portability, don't care too much for speed, and like very clean, well-defined languages, use Java.
-SN

As far as a Java OS being silly, that was my point exactly. I was trying to point out that there are things that you simply wouldn't even think of using Java for, guess I was a little unclear, going to the extreme.

"A Java OS would be silly...On what would the JVM run?"
Compile together a JVM and monolithic kernel. Implement message passing and resource management in the kernel and use the JVM for system calls.
Alternatively you could implement a hardware JVM. I think some ARM chips support simplistic direct-register calculation with a JVM process (treating a few CPU registers as JVM registers). This has probably advanced much further than I am aware of. (Monolithic) Kernel integration like I mentioned above is very possible. We may see it first in a micro-kernel design because the JVM would make a natural module.

I may be new to JAVA, and possibly don't really know what I'm talking about, but here is a very simple example: Let's say I need a small program to do some simple conversion, ie. money - take for granted that my local currency is English Pound (£) - I will need a field for input amount in £, a list of target currency, (ie. USA,Spain,Australia etc..), a label to display the converted amount, a button to perform the conversion, and a button to exit the program.
The condition with input field, however, requires that I am only allowed to enter digits (0-9), decimal point, negative/positive sign (+/-).
In VB, I just select TextBox, draw on the form, select a ListBox, draw on the form, and add 2 command buttons.
Then double clicks on the TextBox, select the KeyPress event and code something like:
Private Sub txtInputAmount_KeyPress(KeyAscii As Integer)
Dim isNumber As Boolean
If (KeyAscii <> vbKeyBack) Then
isNumber = isRealNumber(KeyAscii)
If Not isNumber Then
KeyAscii = 0
End If
End If
End SubWhere isRealNumber is obvious from reading the specification above.
The Exit command button click event is coded with a single keyword, "End". Compile from the command line or F5 run in the IDE and I got the first part of the spec complete. Explain to me then how many steps would you have to go through to get the same job done in JAVA.

I'm going to have to agree with you Hoang. Maybe its the IDE a little too, but I've coded guis in both VB and java, and the ones I've written in java are always a pain.. whereas VB is a piece of cake to use. When is comes to web dev. though, I still prefer java.

"Compile together a JVM and monolithic kernel."
Well that would be cheating. :-)"As far as a Java OS being silly, that was my point exactly."
I figured that since you mentioned you know Java, but I guessed that other people might not be familiar enough with the language to know why it would be silly."In VB, I just select TextBox, draw on the form, select a ListBox, draw on the form, and add 2 command buttons."
Again...Apples and oranges. This is a function of the development tool, not the language. You're trying to do the same thing in Java from scratch, which is hardly the same as using a GUI building program."VB and java, and the ones I've written in java are always a pain.."
Yeah, you really can't compare Java with a limited language like VB when it comes to making quick and dirty windows applications. If all you need is a simple front end to a windows app, by all means go with VB. But for many projects that require even a little flexibility, Java can't be beat.I predict (as anonproxy did) that VMs, in some form or another, are the wave of the future. Computers are only getting faster, and someday soon speed won't be nearly as big of an issue with VMs as it is today.
-SN

"Well that would be cheating."
Not in the least. All system calls could threads of the JVM. The OS libraries would all interact with the JVM, if not executed by it. You could even map the registers to JVM registers, like the ARM situation I mentioned. Go back to the PARC labs in the 70's where workstations were built around OO design. Now combine a more generalized hardware approach for performance and a completely OO environment, effectively the OS. Remember the Apple Newton's NewtonScript and the soup data structures? Finally, merge this with .NET's pooling of different languages for shared objects and other benefits.
Imagine it all coming together. It's a big idea, to say the least.

" .. when it comes to making quick and dirty windows applications .."What do you really mean by "dirty"?

"What do you really mean by 'dirty'?"
Code lacking a flexible design, not intended to be maintained or documented, which might only work in a limited context, or that you don't want to see again. It's dirty because everytime you try to do anything with it (assuming it is reliable), you end up spending time fixing or working around problems. Clean code is documented and/or simple, usually small and modularized, easy to read, and extendable.
Of course, if the software is unreliable, poorly documented, or difficult to interface with dirty code may be the only practical solution.

OK! it took me 2 days to read up and find out a way of writting a similar keyboard event routine, but look at the statement. From the reader's point of view, I see that all the key listed are acceptable, else throw away, but the return statement means (NOT OK) .. How well documented is my code?
/** Handle the key pressed event from the text field. */
public boolean keyDown(Event e, int key) {
if (e.id == Event.KEY_PRESS) {
boolean OK = (((key >= VK_0) && (key <= VK_9)) || (key == VK_BACK_SPACE) || (key == VK_DELETE));
return !OK;
} else
return false;
}

![]() |
Vb 6
|
OpenGL in Borland C++ Bui...
|

This post is quite old and has been locked from receiving new replies. Please create a new posting instead.
| Ads by Google |