Talk:Java (programming language)/Archive 1

From Wikipedia, the free encyclopedia

Archive This is an archive of past discussions. Do not edit the contents of this page. If you wish to start a new discussion or revive an old one, please do so on the current talk page.

Contents

Incorrect information

There's a paragraph regarding networking facilities that bridges the "platorm independent" goal and "networking libraries" goal. It's not a correct paragraph, but I don't know the best way to split it. Help, please... -Alan D

I don't see the problem, if any. The only places those are mentioned together is where they are specifically mentioned as being the goals of the language, where "goals of the language" is the topic. —Preceding unsigned comment added by Lee Daniel Crocker (talkcontribs) 18:56, 12 November 2001
If you don't see a problem with it, then I'm happy. -Alan D

Java history

Some notes about the Java version history would be nice. An especially which version is included in which browser. -- Kwaku

Maybe you're confusing Java with JavaScript? —Preceding unsigned comment added by Kevin Saff (talkcontribs) 20:24, 23 March 2004
Java 1.1 was included with IE at some point. It's since been taken out (?). But it plugs into the current browser, but you have to DL & install it. —Frecklefoot 16:19, Apr 16, 2004 (UTC)
I just added a sentence near the beginning in an effort to disambiguate Java and JavaScript. Which is more common in web pages, and how does their function differ in web pages? I would guess javascript is used more often, but I really don't know. It would be nice if someone with more knowledge in this area than me could help amplify the distinction, since I'm willing to guess they are quite often confused by us non-computer jocks. Spalding 14:49, Feb 19, 2005 (UTC)

Reviews

Lee, have a look at this. Good reviews so far!  :-) -- LMS

This is a "How To" article

This should be moved to a howto somewhere, as it doesn't describe the language at all.

One of the most confusing concept for those just starting to learn the Java language is the notion of a ClassPath that needs to be set before anything can be either compiled or executed.

-- unsigned

With recent versions, Java features a -classpath parameter which makes it unnecessary to set a CLASSPATH environment variable. In fact, I haven't used the latter since then. --Maik 17:46, 2004 Oct 13 (UTC)

info on article changes

Hmm, I think this article would be helped with a look-thru of the old Java whitepaper. For one thing, Java is a platform as well as a language. The article as it stands is confusing on this issue. Also a major design goal is a relatively safe language for average programmers, so fingers aren't cut on the difficult parts of programming.

Still, this article is well-written, and I'd change it right now except that it would take a little time to not chop up the text terribly. Maybe I would get rid of the part that says there are "four" design decisions behind Java, and just turn it into a list.

—Preceding unsigned comment added by Forgotten gentleman (talkcontribs) 21:52, 2 December 2001

The article is titled "Java programming language", and is about the language, not the platform. If the article doesn't make this clear, then perhaps it could be reworded a bit and linked to another article about the platform. And frankly, the whitepaper is a pretty awful source of information--it's mainly a publicity piece for Sun, that contains all of their goals and ideas, but none of the day-to-day realities of the majority of working Java programmers. This is an encyclopedia, not an advertising medium. —Preceding unsigned comment added by Lee Daniel Crocker (talkcontribs) 15:51, 25 February 2002
Nonetheless, this article is currently the redirect for 'Java platform' and now we have Groovy it would be very useful to point to a summary article like the Java section in the Sun Microsystems page. I'll make the same comment on the Java platform page. webmink 18:24, 25 September 2004 (UTC)
I have made a start on this. [[User:Smyth|– Smyth]] 13:11, 13 Nov 2004 (UTC)
There is also a section on Java as a platform on the Platform (computing) page.--Jondel 18:49, 25 Sep 2004 (UTC)

Trademark instruction

This appeared in one of the articles, and I don't really think it is encyclopedia content. It's really more of an instruction for us writers, so I'll just leave it here in Talk for now:

Java is a trademark of Sun Microsystems. Like all trademarks, "Java" is an adjective; when referring to Java technology, use a generic term after the word "Java". Correct: "program written in the Java language runs on the Java platform." Wrong: "*program written in Java runs on Java." For more information, visit Sun trademark policies.

—Preceding unsigned comment added by 2001 Lee Daniel Crocker (talk • contribs) 17:57, 12 December

JDK versions

How do the JDK version below relate to the so called "Java 2 platform"?

  • JDK 1.0, 1995
  • JDK 1.1
  • JDK 1.2
  • JDK 1.3
  • JDK 1.4, 2002
  • JDK 2.0, 2003

—Preceding unsigned comment added by 213.3.68.161 (talk • contribs) 09:05, 25 October 2002

My understanding is that everything 1.2 and beyond is the "Java 2 Platform", but I can't find proof. Here's the Java 2 page. —Preceding unsigned comment added by P3d0 (talkcontribs) 14:58, 14 July 2003
What is this JDK 2.0???? The latest version is 1.5 Enochlau 01:39, 25 April 2004 (UTC)
Hi! Please correct me if I am wrong. JDK is SDK is API and a complete set is a platform.
For most software developers, JDK (Java Development Kit) are nothing more than SDKs but in Java. SDKs are ussually provided commercially by a company. They are also ussually called APIs. A complete set to allow you to program are ussually called platforms.
It would be good to refer to java.sun.com. For the meantime, I believe that JDK 2 is Java 2 and is the same as Java 1.2 .
Jondel 00:08, 11 May 2004 (UTC)
Java 2 is java 1.2 up, the change was made since there where significant changes to the java API's. dns 06:43, 18 May 2004 (UTC)
JDK 1.5 is called Java 5.0 and J2SE 5.0 - confusing I know, but thats what the latest version is called. J2SE/J2ME/J2EE 5.0 actually..
The reason they changed their mind and called it J2SE 5.0 instead of J2SE 1.5 was that it was such a large improvement over the previous versions. So same idea as when they increased the platform from Java to Java 2 at 1.2..
Versions
JDK   Java  Platform
1.0   1.0   1
1.1   1.1   1
1.2   1.2   2
1.3   1.3   2
1.4   1.4   2
1.5   5.0   2
Speaking of versions, I believe that Java Web Start was released in 2000 sometime, Ie at around 1.3.1 release, if that matters. Article: Announcing Java Web Start Technology
—Preceding unsigned comment added by 213.100.166.240 (talk • contribs) 19:16, 13 October 2004
If you want even more confusion: there will be no "J2SE 6.0" or "J2SE 7.0". Instead they will be "Java SE 6" and "Java SE 7". And abbreviating it "JSE 6" is considered naughty, got to spell out "Java". See Sun's article on naming. Weregerbil 15:25, 17 January 2006 (UTC)

Objectionable phrasing

I object to the phrase "actually the entities containing data" in the section on Object Orientation. It's meaningless and unhelpful. However, I have already deleted it once, and the author re-inserted it. I don't hate it enough to delete it again, so I'll leave it to the wise Wikipedia editors. —Preceding unsigned comment added by P3d0 (talkcontribs) 21:55, 29 July 2003

Language facilities

It contains language facilities and libraries for networking (more or less).

What "language facilities" are being referred to, here? —Preceding unsigned comment added by Jkominek (talkcontribs) 16:31, 13 August 2003

Perhaps dynamic class loading? --P3d0 21:51, 13 Aug 2003 (UTC)
Which isn't really a part of the language, as defined in http://java.sun.com/docs/books/jls/index.html Reflection is provided entirely by the class libraries. If we open it up to that, then C can do the same. —Preceding unsigned comment added by Jkominek (talkcontribs) 05:43, 18 August 2003
No, dynamic class loading is not reflection. Two different things. Dynamic class loading is very much a part of the Java language. See http://java.sun.com/docs/books/jls/second_edition/html/execution.doc.html#44459 It is far more pervasive and integral to Java than to C; in fact, all classes in Java are loaded dynamically. --P3d0 15:52, 18 Aug 2003 (UTC)
Thats the way the Java virtual machine works, not the Java programming language. Sure they're muddled beyond belief, but I feel as though I can safely draw a line and say that the dynamic loading you're talking about isn't part of the language. (I certainly hope that native implementations of the Java programming language won't do the same thing!) —Preceding unsigned comment added by Jkominek (talkcontribs) 06:33, 19 August 2003
Ok, what about when I say "2+3" and the VM adds two numbers together? I guess that's also how the VM works, not the language? Honestly, we can argue about this all day, but if you really don't think dynamic class loading is a fundamental part of the Java language, then perhaps we must simply agree to disagree. As you say below, it's not like it really matters anyway. --P3d0 13:08, 19 Aug 2003 (UTC)
Besides, the fact that a language feature is implemented in a library is just good design, and doesn't mean that feature isn't part of the language. For instance, would you say that variadic functions are not part of C just because you need to #include <stdarg.h> to use them? --P3d0 15:52, 18 Aug 2003 (UTC)
I'd say they're part of C because they affect the syntax. IMO, something isn't part of the language until there are syntactic elements related to it. Up until that point, I can get rid of it and replace it. This is getting a long ways away from being something that has anything to do with language facilities for networking. How does the dynamic class loading of the Java programming language (if there are any which pertain to the language, rather than its implementation) distinguish its networking facilities from another language enough that it is worth mentioning them? —Preceding unsigned comment added by Jkominek (talkcontribs) 06:33, 19 August 2003
Because IIRC the entire motivation to add dynamic class loading was to allow programs to be loaded and run incrementally over a network. --P3d0 13:08, 19 Aug 2003 (UTC)
Java was not designed with the goal to "more or less" have facilities for networking, etc. If you are not satisfied with Java's attainment of those goals, an unbiased discussion of how and why these goals are incompletely attained should follow their detailed description. —Preceding unsigned comment added by CyborgTosser (talkcontribs) 02:25, 22 August 2003

Java humor deletion

Java humor is facing the axe at the deletion page. Please see Wikipedia:Votes for deletion for justifications and discussion. Jay 05:43, 6 Dec 2003 (UTC)

Java humor has been deleted. —Preceding unsigned comment added by Angela (talkcontribs) 05:53, 10 December 2003

Link bezerker

Someone has gone completely bezerk with links. Seriously, do we need links for "reputation", "speed", and "thing"? This change needs to be backed out. Unfortunately there have been revisions in the mean time. —Preceding unsigned comment added by P3d0 (talkcontribs) 13:39, 9 December 2003

Maybe we need to get this page protected until the revert is done and subsequent revisions incorporated. But its a pity someone's labour will go a waste. Jay 14:00, 9 Dec 2003 (UTC)
Reverting and merging of later revisions has been done. (See Wikipedia:Make only links relevant to the context for reference). Jay 14:30, 9 Dec 2003 (UTC)

Java logo

Should we be displaying the Java logo here without permission. Sun's logo website http://logos.sun.com says the terms are very strict for the use of its logos. Jay 14:10, 18 Mar 2004 (UTC)

I would say no — the logo should be removed. RedWolf 01:15, Mar 19, 2004 (UTC)
After reading the usage agreement for the Java logos, I don't believe Wikipedia can use the Java logo on its site unless approved by Sun MicroSystems. I am therefore going to remove the logo from the article.
Also see: http://www.sun.com/policies/trademarks/#20a
RedWolf 02:36, Mar 19, 2004 (UTC)
Wikipedia:Logos states: "It is not necessary to seek formal permission from a corporation in advance of using their logo, so long as the usage is fair use, does not create any impression that the logo is associated with or endorses Wikipedia or the article it appears in, and does not create any reasonable grounds for complaint by the trademark owner. The purpose of the specific guidelines above is to meet these conditions." Fredrik 14:19, 19 Mar 2004 (UTC)
If the Java logo can be used on Wikipedia, then why wasn't it properly handled as per Wikipedia:Logos? For example boilerplate text on the image description page and image caption? RedWolf 17:52, Mar 19, 2004 (UTC)
Don't ask me, I didn't upload and insert it in the first place... I merely replaced the low quality image with a better one. If deleting it seems like the right thing to do, I'm not going to defend the case further. Fredrik 19:46, 19 Mar 2004 (UTC)

Removed C/C++ break/continue statements

From the article:

This should not be confused with the
break label;
and
continue label;
statements in C and C++, which function identically to goto.

As a C++ user, I am very confused since these statements do not exist in standard C/C++. I removed this part. Perhaps the author was thinking of some nonstandard extension? —Preceding unsigned comment added by Kevin Saff (talkcontribs) 20:04, 23 March 2004

I agree. "break;" and "continue;" statements are part of standard C and C++, but they do not have any sort of label after them in standard C or C++. Only in Java do they have that label. --DavidCary 17:45, 19 Oct 2004 (UTC)

To describe the language constructs or not?

I feel strongly that articles on programming languages should focus on their development and history, and on what sets the language apart from all others. This article does a great job of setting those things forth. However, as a programmer with eir hands in several other disciplines, I think that an article like this is not the place to go into any detail on the language constructs. I personally skim over such descriptions, and the non-l33t reader will certainly do likewise. The intricacies of, say, exception handling or string manipulation simply cannot be conveyed in one or even ten paragraphs of text in a Wikipedia article. Besides, "real" reference materials abound to cover the mechanics of the language, on the Web and in print.

In summary, programmers don't need syntactic information (they already have it), and non-programmers don't need it. I do think the "hello world!" program should have a space, since it can offer a quick glimpse into that language's world that both programmers and non-programmers would find useful.

That said, perhaps articles on programming languages should link to articles that cover their particular syntactic or semantic nuances in more depth, or link to Wikibooks.

Jeeves 14:35, 25 Mar 2004 (UTC)

I am completely agree with you. I am very surprised that the article does not mention important issues like open-sourcing of Java and tools like gcj and classpath projects while going into mere syntaical explanations of loops. Never hesitate to make a change. Most of the time, it looks bad to you because it is bad. -- Taku 05:16, Mar 28, 2004 (UTC)

TakuyaMurata edits

This is regarding the 2 edits by User:TakuyaMurata:

  • The one with comment "(oh boy; the article is terrible)": Has he just deleted the contents or moved them over to a new/existing article ? If it has been moved pls provide the new article name, if it has been deleted based on the above discussion, then I disagree. Language syntax is as important to the article as anything else.
  • The one with comment "(=Versions= -> =History)": What is the basis of removing a bulleted section that was rich in information ?

Jay 07:05, 28 Mar 2004 (UTC)

I disagree with the changes. This article became a featured article with all that information. I think we should at least put in the stuff about versions back in. Sasha Slutsker 12:51, Mar 28, 2004 (UTC)
Ok both of you why? As discussed above there is no reason to go detail about the syntax. Wikipedia is not a language manual. Besides the language syntax section is awfully incomplete. I have settup the new article so that I can put it in VfD. Give us comments. Also there is no reason to provide detailed information about which version supports which platforms. I know it was featured but I have just improved the article by eliminating redundancy. -- Taku 15:09, Mar 28, 2004 (UTC)
What does this mean : "I have settup the new article so that I can put it in VfD"
Why do you think "there is no reason to provide detailed information about which version supports which platforms"
Redundancy is not an issue as long as the same information is presented in different ways. A bulleted list is useful when the reader wants to casually browse through a long article. Jay 15:35, 28 Mar 2004 (UTC)
I moved some syntax information to brief overview of the syntax of Java. Sorry I have forgotten to mention it. The issues is: is the table of versions against years really useful? The history section still mention when each version was released and it doesn't take much to skim the section. -- Taku 15:49, Mar 28, 2004 (UTC)
There is no reason to delete the bulleted information, it was very useful. I am putting it back in, please don't take it out again. Sasha Slutsker 23:29, Mar 28, 2004 (UTC)

Poll

I propose reverting this article to the form it was in before Taku's edits of 28 March and later, on the basis that the content which has been removed or modified has made the article significantly less useful. If there's something Taku wants to remove, Taku can then try seeking consensus for the changes first. Please indicate your support or opposition. Jamesday 15:26, 6 Apr 2004 (UTC)

which has been removed or modified has made the article significantly less useful.

Can you specify how so? You mean the syntax of Java? -- Taku 16:05, Apr 6, 2004 (UTC)
The sections:
  • Control structures
  • Unstructured control (the early exits from loops and methods portions)
  • Primitive data types table
  • Input/output
That is, what Jay and Sasha appear to be objecting to the removal of just above this poll. The removals removed the core of the ability to compare the control and data handling capabilities of this language to those of others. Jamesday 20:06, 6 Apr 2004 (UTC)

Support:

  1. Jamesday. Jamesday 15:26, 6 Apr 2004 (UTC)

Oppose:

  1. Kevin Saff. I don't see what has been "removed". If anything, I think the history should now be broken out into a separate article, History of the Java programming language. Kevin Saff 16:10, 6 Apr 2004 (UTC)
I think he is referring to this one [1] though I am still not sure what he means by modified or significantly less useful. -- Taku 16:18, Apr 6, 2004 (UTC)
I see. I didn't look at edits before March 28, since he only mentioned 28 March and later. I think that info could go into a Syntax of the Java programming language if that doesn't already exist. How do other long programming language articles deal with specific syntax? Kevin Saff 16:27, 6 Apr 2004 (UTC)
It varies. C has it in C syntax, with very little about the language itself in the main C article. This one (Java) was much more informative. The main C article looks pretty weak, describing the history and such but not the language itself. At some point I'll take a look and see how to put the description of the C language in the main article and the history in a subsidiary article. Jamesday 20:37, 6 Apr 2004 (UTC)
I see; it looks like a philosophical battle over whether the syntax or the history of a language is more fundamental. What's wrong with putting an overview in the main article, and creating separate articles for each? Languages like C and Java certainly seem important enough to justify multiple articles. Putting all the syntax in the main article seems to limit the things one can say about it (such as the history and parseability of the syntax, which is quite interesting for C!) Kevin Saff 22:55, 6 Apr 2004 (UTC)
Completely in favor. Let's do it. Jeeves 08:28, 7 Apr 2004 (UTC)

Abstain:

  1. Taku. Taku 16:05, Apr 6, 2004 (UTC)

Comments:

  • The poll is meaningless because whenever we revert to whatever version, someone including me will make a further edit that might contradicts the reverted version. Taku 16:05, Apr 6, 2004 (UTC)
  • The poll is meaningless because this is wiki, not democracy. Kevin Saff 16:10, 6 Apr 2004 (UTC)
  • Refer Talk:Java syntax. User:fredrik suggested the incorporation of syntax related info into the curly brace family. Though I can't visualise how it can be done, I'd be happy if he or someone else does it. Jay 19:46, 7 Apr 2004 (UTC)

Pronunciation

Does Sun specify how the word "Java" should be pronounced? Merriam-Webster [2] says that both "Java" (a's pronounced as the 'a' in "hat") and "Java" (a's pronounced as the 'o' in "body") are correct. I've always heard and used the second form, but a coworker of mine uses the first version and it drives me nuts! Does Sun actually dictate hwo they expect it to be phonated? - Frecklefoot 16:19, Apr 16, 2004 (UTC)

Americans tend to pronounce it Jova ('o' sort of as in body) while most(?) Canadians tend to say it with a hard 'a'. James Gosling, the inventor of Java, is a Canadian living in the US who pronounces it Jova. Steve-o 03:27, 17 Apr 2004 (UTC)
As in "hat" and "body"? Neither of these sound right to me. In New Zealand we use the "a" sound in park, but without any r (we don't pronounce the r in park anyway). Thinking about Canadian pronunciation, maybe this is what you mean by the "o" in "body". We use a very sound in body and park, so it can be confusing.
To put it simply I pronounce Java to rhyme with lava, and that makes sense to me. Presumably an Indonesian would be able to give the most accurate pronunciation, or am I making incorrect assumptions about the etymology of the name.
To use "a" as in "hat" just sounds crazy to me, even when I assume a thick US drawl.
Ben Arnold 11:13, 25 April 2004 (UTC)
It's because Americans say body like baaahhdeee... Dysprosia 11:21, 25 Apr 2004 (UTC)
Well, I pronounce java with an a as in hat. If you think about it, I don't say novigator, I say navigator. I don't say hove, I say have, (though I am a Jay-Z fan:)). So it's pronounced java, not jova. That's just what I say and what I've heard here in Southwestern Ontario (2 cents from a wikimember in training). --204.101.190.5 00:42, 7 May 2004 (UTC)
A tiny section on this in the article might be interesting, I live in NZ as Ben does and we pronounce it Jahva. The only other way to pronounce it I can think of is Javva. (Assuming Dysprosia is correct in saying how US citizens pronounce Java as body.) porge 23:19, 23 Aug 2004 (UTC)
I live in Germany and I (even though I´ve quite limited abilities in english ;) ) would pronounce it like *yarwa* with an "a" like park... —Preceding unsigned comment added by 84.139.14.243 (talk • contribs) 00:33, 17 December 2005

Portability

The initial paragraph in "Platform independence" conflates 'binary' and 'source' portability. Java programs are portable in terms of their specification because the language (with some exceptions like jni) does not depend on the form of the underlying architecture. Compiling programs into JVM gives you a portable binary transport layer, but this is fundamentally irrelevant to Java itself, and to Java program portability. —Preceding unsigned comment added by 203.231.161.129 (talk • contribs) 07:42, 30 April 2004

Java: a platform and a middleware too

I'd like a description as platform too. Java is not only a 1)platform and 2) a language it is also a middleware. Some how thid categories or definitions must be inserted or made. Jondel 10:14, 10 May 2004 (UTC)

Java is platform independent

is a myth, misleading and misnomer.

Rather, the JVM is ubiquitous on all types of devices and chips. When they say platform-independent it is really because the Java interpreter or JVM can be found almost everywhere(on all devices/chips/sw packages). The installation of an interpreter or JVM has become an industry standard. Java is not the platform independent, Java is the platform( or the ubiquitous JVM or Java interpreter is the platform). Jondel 04:09, 13 May 2004 (UTC)

I think of a programming language as its syntax, its semantics and its standard libraries. For Java, these three things are in large part platform-independent. In real life most Java applications will execute the same way on all platforms. Ben Arnold 04:50, 13 May 2004 (UTC)
The standard libraries are the issue here. The syntax and semantics of high-level languages tend to be platform independent, but sometimes standard libraries are not. So the two relevant things to say about platform independence are 1) the intepreter is ubiquitous (that does matter--compare SmallTalk). 2) the standard libraries are platform-independent. Anybody see how to say this without screwing up a nice article? -BK 207.96.29.129 14:16, 9 September 2005 (UTC)
It's true that Java requires a platform-dependent interpreter, but I wouldn't characterise the interpreter as part of the "language". Just as I wouldn't regard the compiler as part of the language for a compiled language.
It's also true that there are platform-specific APIs in Java, but these tend to be discouraged or deprecated in the documentation. It is quite possible to avoid these APIs for almost all applications, and in practice they are avoided most of the time. The Java programming language isn't perfectly platform-independent but it does a very good job of it.
Ben Arnold 04:50, 13 May 2004 (UTC)
Different category ?
Agreed on the language and it does a pretty good job of being platform independent. You seem to be a programmer.
I am targetting beginners and newbies. Also I wanted to focus on the platform aspect.
The term 'platform independence' may lead to confusion. If Java is to be described, it is important to explain or examine its aspect as a platform and the Java interpreter. What if a new OS does not have a JVM? The programmer would need to know that all bytecode actually needs an interpreter. People tend to think that the platform is where program was compiled?
Maybe this should be under a different category (Java software?Java platform? Java API?) as the interpreter really is not part of the Java programming language.
Jondel 05:49, 13 May 2004 (UTC)~~
I'm of the (extreme) opinon that the intrepreter or compiler is absolutely nothing to do with the language, and that languages should be thought of as abstractly as the colour red, rather than a pot of red paint. CGS 19:20, 13 May 2004 (UTC).
I feel quite different about it. While I appreciate the difference between a language and how it's used, understanding how the language is typically used (in the sense of whether it's typically compiled or interpreted, etc.) is crucial to understanding what it is. In the case of this article, I think it might be a mistake not to mention in a discussion of platform-independence that java is usually compiled to platform-independent bytecode and that the bytecode is executed on JVM (with the option of using JIT). --BK 65.213.77.129 14:24, 9 September 2005 (UTC)

Quote about Java

Java: The blinding speed of Smalltalk combined with the simple elegance of C++.

Kenneth C. Dyke, Apple Computer

—Preceding unsigned comment added by N328KF (talkcontribs) 01:19, 12 September 2004