Talk:Java (programming language)

From Wikipedia, the free encyclopedia

Former featured article removal candidate This article is a former featured article removal candidate. Please see the archive to see why its featured status was upheld.
Main Page trophy Java (programming language) appeared on Wikipedia's Main Page as Today's featured article on December 17, 2005.
Former featured article This article is a former featured article. Please see its original nomination page (for older articles, check the nomination archive) and why it was removed.
Java (programming language) is a former good article candidate. There are suggestions below for which areas need improvement to satisfy the good article criteria. Once the objections are addressed, the article can be renominated as a good article. If you disagree with the objections, you can seek a review.

Date of review: 8 August 2006

Archive
Archives
  1. November 2001 – mid-March 2006

Contents

[edit] COBOL

There is a section along the lines of "Java is the new COBOL or maybe ALGOL". Could the section be worded in a clearer way?

To me COBOL is (for its time) a very popular business programming language, and I mostly remember ALGOL for not having a concrete syntax. The section also talks about entrenchment which according to Webster's means "take something unfairly or unlawfully" (ignoring concrete hole digging meanings). There is also talk of resistance to change and over-inflation. So in whole to me the section reads:

Java is occasionally compared to other languages. Java will become very popular in the business sector which is unfair and/or illegal. It will change too little while simultaneously over-inflating. Some day it might not have a concrete syntax. This is a hyperbolic and/or legitimate concern.

Probably not what the critic meant. Can it be stated more directly and less ambiguously, without depending on the reader having knowledge of and a suitable negative image about COBOL et al? Weregerbil 19:31, 11 March 2006 (UTC)

Thanks for the good laugh!  :-) I love your translation... —Doug Bell talkcontrib 07:00, 20 March 2006 (UTC)

[edit] revert: the Algol60=>Algol68 comparison

I removed: A more appropriate comparison might be ALGOL 60, the Java of its day back in the mainframe era, which lost its way after it over-inflated into ALGOL 68.

Basically the problem with Algol68 centers around an "unpublished" minority report by a member of the IFIP Working Group 2.1

C. A. R. Hoare: 'The best we could do was to send with it a minority report, stating our considered view that, "... as a tool for the creation of sophisticated programs, the language was a failure."'

Algol68 is not much like Java as Algol68 only has a standardised math & io library and very elementary classes. Whereas Java has many standardised libraries and is fully object oriented.

One could say Algol68 is more like "distilled" C99, but Algol68 has OP-erator overloaded, stronger typing and the PAR-arallel clause.

NevilleDNZ 10:13, 22 April 2006 (UTC)

[edit] Java Wiki

Why there is no Java wiki tutorial where all users in the world update it ??

There is in Wikibooks.. wikibooks:Java ProgrammingPengo 08:11, 3 April 2006 (UTC)
thanks , but it is still in the beginning .

[edit] top level Java article

IMO we need a top level article with a title of say Java (computing) or Java (sun) to which incoming references to java can be directed. This would then discuss java as a whole (and take most of the incoming links from other topics) and deffer to the more specialist articles for more detail. Right now this page is an uncomfortable mismash of a java programming language article and a top level java article. What do others think? Plugwash 22:52, 10 April 2006 (UTC)

I agree with this. WP is supposed to be accessible to the layman. A top level article could be short and describe what Java is for and how the user experiences it without going into technical details. I think something more like Java applet, but less specific and covering all of Java, with wikilinks to illustrate in detail each aspect of Java. Stephen B Streater 06:37, 11 April 2006 (UTC)
Well i've made a start on an article at Java (Sun) i'll hold off changing the links to point there until its a reasonable article though. Plugwash 11:07, 12 April 2006 (UTC)
I've started to contribute to this too. Stephen B Streater 22:26, 12 April 2006 (UTC)


I think in the right side box, various implemetations of Java must be listed, the list is right now empty. eg. The implementations mentioned in external links section can be put over there. -- Mritunjai 06:23, 19 June 2006 (UTC)

[edit] Runtime.getRuntime().gc();

I see that Doug Bell reverted my edit of 21:36, 28 April 2006. I wasn't suggesting System.runFinalization(), but as above. Whenever I've run this, on GUI desktop apps, it has done the job immediately. (Was it Eclipse or Netbeans that used to have a toolbar button to do the same job, complete with progress bar to show it working wrt memory at least?). Maybe it's not so definite for busy server-side apps, is that it? I know that the JavaDoc says "Calling this method suggests that the Java virtual machine expend effort toward running the finalize methods..."[1] (My emphasis), but e counting in Java for managing non-memory resources? What is the language feature you think always took that just to mean that it runs in a lower-priority thread, not that it may not do anything at all. I do think that the paragraph is too strongly negatively worded as it is, for NPOV. --Nigelj 10:50, 29 April 2006 (UTC)

As to how finalization works, it isn't a matter of desktop vs. server, but rather the semantics required of the JVM. You can't make a statement that is based on something you've observed in some circumstances when referring to the general case. As to the current wording, the only issue I have is with "Java lacks the language features needed to implement automatic reference counting". Reference counting is neither restricted (you could implement a JVM using reference counting, but it is so much more inefficient that nobody does) nor a language feature, so this needs to be removed, or if you were trying to make a different point, then reworded. —Doug Bell talkcontrib 17:00, 29 April 2006 (UTC)
What i mean is for example C++ you can implement reference counting in your own code to deal with memory and non-memory rescources. Javas garbage collection takes away the resposibility for managing memory rescources but javas language design takes away the tools needed to manage non-memory rescources any way other than manually. Plugwash 17:07, 29 April 2006 (UTC)
With all respect, Doug, I'm basing my question to you on the principle that it "Walks like a duck, sounds like a duck, it's named 'duck', it's described as a duck in the spec...": There is a method called gc(), that always invokes the GC, and Sun's JavaDoc says "When control returns from the method call, the virtual machine has made its best effort to recycle all discarded objects." Yet you tell me "You can't make a statement that is based on something you've observed in some circumstances when referring to the general case." What general case is that, then? I'm sorry, but the phrase "but rather the semantics required of the JVM" doesn't really explain your point to me. We are all very clear about circular and cyclic dependencies, weak, soft and phantom references etc, but all that is not relevant - we can assume here that if a designer is intending to invoke GC to help clear resource-holding objects, he will first have made sure that they are unreachable. I agree that if it were essential that these resources were freed in total and immediately, this would not be the best way to do it. I'm taking issue with the way you wanted the paragraph in the article worded, your dismissive revert of my edit and your dismissive tone above, as if I'm making a schoolboy error by extrapolating some dubious personal experience without reading the spec. I assure you I have read widely, but I'm always ready to learn something new and I wonder if you know something I don't, and if so what it is. It may be that the article would benefit from it being included explicitly. --Nigelj 18:00, 29 April 2006 (UTC)
I have limited experience, being involved only in Java applets on various JVMs. My experience is that the garbage collect routines behave inconsistently between JVMs. Some are quick, some are slow. Most seem to take a time depending on the number of objects. But none of them seem to work properly when you ask them to. Quite a few don't release all the available memory for many seconds, or even after the web page has been closed, which is a bit annoying. If there is a specific issue here which needs another opinion, I'll ask the guys at work next week who understand the detail. Stephen B Streater 21:42, 29 April 2006 (UTC)
First, please don't read anything into my reply as being dismissive or disrespectful, ok? Let's not even start in that direction—I'm not intending any of that. My last comment above was made quickly as I was headed out the door, so it was rather more abbreviated than I would normally make, and I apologize if it gave the wrong impression.
By saying that "you can't make a statement that is based on something you've observed in some circumstances when referring to the general case," what I mean is that there are many JVM implementations. Observing how some specific JVMs choose to implement the specification may lead to incorrect assumptions about how how all JVMs behave. (This was particulary true in regards to threading, which is why JSR 133 was needed, and even now getting acceptable behaviour for multi-threaded apps across JVMs is challenging.) The fact is that the selection and implementation of garbage collection algorithms varies considerably from JVM to JVM and many do not behave the way you might expect when System.gc() (or equivelantly, Runtime.getRuntime().gc()) is called. And calling System.runFinalizers() (or equivelantly, Runtime.getRuntime().runFinalizers()) is even less likely to accomplish what the "programmer intended" because, perhaps unintuitively, the entire process of gc and finalization is often performed in stages by a number of different threads. The statement in the JavaDoc for gc() "When control returns from the method call, the virtual machine has made its best effort to recycle all discarded objects" is almost misleading as some JVMs (especially JVMs that implement the Real-time specification for Java) don't do ANYTHING when this is called, because the garbage collection routines are incremental and NEVER do stop-the-world gc. By referring to "the semantics required of the JVM", I am referring to the latitude intentionally allowed the JVM by the JVM spec and the JLS, which is intended to allow a wide range of JVM implementations.
One final issue, not related to the statement in the article but related to using finalizers, is that instances of classes that have implemented (overridden) finalize() are often handled much differently by the garbage collector. The cost of reclaiming objects with finalizers can be an order or two of magnitude more expensive than reclaiming objects without finalizers, so there are other good reasons not to rely on finalizers. —Doug Bell talkcontrib 23:00, 29 April 2006 (UTC)

[edit] Reference counting

First comment copied and second (which was inserted out of order) comment moved from section above

What i mean is for example C++ you can implement reference counting in your own code to deal with memory and non-memory rescources. Javas garbage collection takes away the resposibility for managing memory rescources but javas language design takes away the tools needed to manage non-memory rescources any way other than manually. Plugwash 17:07, 29 April 2006 (UTC)

I guess I don't follow. Why can you not implement reference counting in Java for managing non-memory resources? What is the language feature you think is available in C++ that is missing? —Doug Bell talkcontrib 23:00, 29 April 2006 (UTC)

The constructor/copy constructor/destructor system. Sure you could implement reference counting if you consider manually incrementing and decrementing the reference counts acceptable but if your going to force your users to do that you may as well not bother with the reference counting in the first place. Plugwash 23:15, 29 April 2006 (UTC)

Actually, you can use a ReferenceQueue to do what you are suggesting. The constructors for the class would create and maintain a PhantomReference for each constructed object. This will allow the program to track when the garbage collector changes the reachability of an object to phantom reachable, which happens before it is garbage collected. —Doug Bell talkcontrib 23:43, 29 April 2006 (UTC)

Now that I understand the point you were trying to make, I think the entire bullet point should just be deleted. It's simply a misunderstanding—what you are talking about can be done in Java. J2SE 1.2 added the ReferenceQueue and PhantomReference to provide a better alternative to finalizers. You can still have explict dispose() methods in a class to facilitate having the resources released explicitly, to overcome the uncertainty with finalizers. The combination of an explicit dispose with PhantomReferences actually provides a better solution to the problem than destructors in C++ because the possibility of the object becoming dereferenced without the desctructor being called, and thus the resource never being reclaimed, is removed. —Doug Bell talkcontrib 00:13, 30 April 2006 (UTC)

OK, I'm taking the silence to mean agreement, so I deleted the bullet point about reference counting from the "Criticisms:General" section in article. —Doug Bell talkcontrib 02:41, 2 May 2006 (UTC)

[edit] Text matching support

Java's support of text matching and manipulation is not as strong as languages such as Perl, Ruby, or PHP, although regular expressions were introduced in J2SE 1.4 => I don't think this is true. There's almost no differences from perl regular expressions (see regex Pattern documentation), 4 Perl constructs are not supported, but 2 additional Java constructs are not supported by Perl, I don't think that minus two constructs can make for "not as strong" . Also there are some limitations in PHP regex support, see for example [2] Hervegirod 09:35, 20 May 2006 (UTC)

[edit] Criticism

I think that the Look and Feel and Performance sub-chapters should be separated from the Criticism chapter, because their scope is wider than just Criticisms about the language - Hervegirod 10:19, 20 May 2006 (UTC)

I thik that it is important to mention that non-opensource nature of Java is only partially true. SUN makes just one of the implementations and other competing implementations exist from IBM and BEA Systems. However, none of them are truly open source (SUN's is partially, IBM and BEA's not at all!). So saying that Java, the language, is not open source will not be factually correct. Implementations like Blackdown and GCJ are freely available, though not mature and feature complete yet. So, as a matter of fact, non-inclusion of Java on open source platforms is because open source implementations are not complete yet. Mritunjai 06:06, 19 June 2006 (UTC)

[edit] Removing links

HI , I added a very useful link , but a guy or other is removing them . Can they provide us with the reason for that ? a tutorial better than SUN itself ! http://www.alnaja7.org/Programmer/393/ITCS-393.htm Alhoori 00:09, 21 May 2006 (UTC)

the useful site was there since month http://en.wikipedia.org/w/index.php?title=Java_programming_language&oldid=50732240#Tutorials Alhoori 01:19, 21 May 2006 (UTC)
This has already been discussed in your talk page. Your contribution history suggests an attempt to use Wikipedia to promote your personal site. OhNoitsJamieTalk 03:13, 21 May 2006 (UTC)
Sorry , but this tutgfyhfyorial was there for weeks , and your removed it with no useful reason ! Can you provide a useful easy tutorials for members like this ? WE ARE WAITING .Alhoori 09:13, 21 May 2006 (UTC)

[edit] Update the article

The article states that libgcj is being merged with classpath, but the webpage of libgcj states that "libgcj has been merged with GNU Classpath". Jorge Peixoto 01:30, 27 May 2006 (UTC)

[edit] Are the criticisms outdated?

"Java failed to deliver industry standard arithmetic capabilities. The IEEE 754 Standard for Binary Floating-Point Arithmetic had appeared in 1985 and has remained an industry standard since then. While Java's floating point arithmetic is largely based on the standard, certain features are not supported. Details about this kind of criticism can be found below in the external links section."

Doesn't the strictfp keyword (there since Java 1.2) support strict IEEE754? If not, please explain how. Or please, at least, cite which external link explains this criticism.

"Java's support of text matching and manipulation is not as strong as languages such as Perl, Ruby, or PHP, although regular expressions were introduced in J2SE 1.4."

Can someone list what text matching and manipulation support is lacking in Java since the addition of regex?

"Java code is often more verbose"

Is this still true? The criticism cites manual casts and then says that isn't an issue.

"Java is predominantly a single-paradigm language. Historically, it has not been very accommodating of paradigms other than object-oriented programming. As of J2SE 5.0, the procedural paradigm is somewhat better supported in Java with the addition of the ability to import static methods and fields so that they can be referenced without prepending the class name."

So is Java still a single-paradigm language? It sounds like the answer is "somewhat". Can't we be a little more precise to what the problem is?

"Java's semi-proprietary nature, supposed inflexibility to change, and growing entrenchment in the corporate sector, have caused some to refer to Java as "the new COBOL". Many consider this to be a somewhat hyperbolic assertion, although it does allude to some legitimate concerns with Java's prospects for the future. However, Sun announced in JavaOne 2006 that Java will become Open Source. The statement was issued by Sun Software Executive Vice President Rich Green : "It's not a question of whether, it's a question of how, and so we'll go do this."

Huh? Yes, there are some issues people have with Java licensing, but this ("inflexibility to change", "growing entrenchment", "the new COBOL") is unhelpful. The criticism even says that it is somewhat hyperbolic. Well, this is an encyclopedia if it is somewhat hyperbolic it should be changed. Please cite some concerns with the licensing (e.g., not in Debian main and not quick to add new features) instead of the unhelpful comments that are there right now. There are people who think that GPLing Java would be a bad thing (e.g., multiple incompatible versions of Java).

This section reads as if one person wrote a criticism and then someone else wrote a "however" afterwards to say the opposite of the criticism. I don't know what criticisms are still valid and what ones are addressed.Chiok 19:34, 27 May 2006 (UTC)

Java references across WP were quite hostile before I came along. I have worked with a few other editors to update a lot of articles to reflect more recent innovations from an applet end-user point of view, but my expertise is limited to what I can get my applets to do. I'm not an expert on comparisons with other languages, but it wouldn't surprise me if the more detailed programming sections need updating too given the progress is other areas. Stephen B Streater 22:37, 27 May 2006 (UTC)
I've been editing the criticisms and while they are better, I'm still not happy with them. The main problem is that most of them aren't criticisms, but rather they are statements of fact. Java isn't a strictly pure object-oriented programming language, does not support user-definable operator overloading, and doesn't have true multiple inheritance. Okay, well, so what? _Why_ are these bad things (esp. since they were all intentional)? I'm tempt to just delete these as they are not criticisms. They might belong somewhere in the article as clarifications, but not here as they stand.
The IEEE criticism is similar. This one is much more technical, but I'm not completely clear on what the problem is. I don't exactly know why not being IEEE compliant is a problem. Is the floating point arithmetic less accurate? Is it slower? Can it give you wildly wrong answers. Sun surely knows about this and they made the intentional decision to part with IEEE in certain ways and I'm not sure what their reasoning was. (I'm also not quite positive why strictfp and Math.IEEEremainder don't make it IEEE compliant. The cited workshop slideshow presentation is 8 years old, so I'm not sure if the floating-point handling has improved since then.)
There are some valid criticisms of Java that aren't mentioned. I'm sure the way Java handle Generics (esp. erasure) can bring up a few criticisms. I seem to remember Bruce Eckel making several "What were they thinking?" comments in Thinking In Java. I'd much rather see criticisms from the likes of Eckel, Bloch, Sierra & Bates, and other published Java authors here.Chiok 05:14, 29 May 2006 (UTC)

In the criticism section there are currently three items under "memory management":

  • Programmer skills for dealing with leaks. Is there a source for this statement? Memory leaks are so very different beasts in C and Java. I don't find my C experience helpful for memory leak hunting in Java (though I recall doing that only once in my life...) With the biggest C programs I worked on I was lucky to have Purify; there is nothing remotely like that needed in Java.
  • Stack vs heap, giving the programmer the choice. Escape analysisplease expand this article if you know about the subject and register allocation make the statement about stack/heap storage incorrect. A JIT that does register allocation stores primitives on stack or in registers, and escape analysis allows objects to be kept on the heap, stack, or in registers. I'd say this is an advantage rather than criticim, much like a C/C++ compiler that does automatic register allocation is an advantage.
  • GC is inefficient. The good old myth... With escape analysis (if/when you have that), register allocation, and new+GC being up to ten times faster than the typical malloc()+free() this statement would need some verifiable sources. Or wording that mentions the criticism might be more superstition than fact. Weregerbil 18:31, 29 May 2006 (UTC)
From our escape anlysis article "Notably Java Standard Edition 7 ("Dolphin") is expected to implement escape analysis". Two versions into the future != current situation. Plugwash 18:38, 29 May 2006 (UTC)
Yeah, the Sun JDK doesn't have EA. (Or: it does! Mustang, currently in Beta 1, has it. AFAIK it just doesn't have any optimizations based on it :-) I recall seeing conference slides that discussed the implementation of EA in another vendor's Java runtime. Can't recall the vendor and quick googling doesn't find it either. And the EA article: it has ever had only one contributor (and he is not an expert on the subject) so take it with a grain of salt; it hasn't gone through any peer review.
The wording in the stack vs heap criticism could use tuning: the language does not mandate objects on heap. The currently shipping version of the currently most popular implementation happens to work that way. Weregerbil 18:52, 29 May 2006 (UTC)
Maybe memory leaks was a bad example. I just hear a lot of complaints from people about what people who only study Java don't know. See Joel on Software's The Perils of JavaSchools Chiok 19:06, 29 May 2006 (UTC)
The language requires that all objects allocated have the semantics of a garbage collected heap allocation. The jit compiler may in some cases be able to determine that this isn't really required but at this time its anyones guess as to how effectively this determination can be made.
Sun has done a sterling job of improving the performance of a language that was never designed for good performance but it has come at the cost of complexity and predictability (the performance of java code can be significantly effected by what other code is loaded). Plugwash 19:11, 29 May 2006 (UTC)

[edit] Out of place criticisms

The License section of the Criticisms section refers solely to Sun's implementation of Java stating that "Java [...] cannot be included in projects [...] such as Debian". This is not true, Debian does include a Java compiler, albeit an incomplete one, in the form of GCJ.

I'm not suggesting that the problems of Sun's Java implementation and its decendands which is the predomenant one should be downplayed, merely that the distinction between the two needs to be made clear to the reader, and the article does a very poor job of informing the reader about which it is referring to at any time, using the blanket term "Java" for everything, which is ambiguous. --Ævar Arnfjörð Bjarmason 18:59, 29 May 2006 (UTC)

This is more a critisism of the java platform really. (its unfortunate that there was no top level java article for so long, cleanup of that mess is still needed.....) but java is an open specification in the same sense win32 is an open specification. Sure there is public documentation availible but its nowhere near adequate to reimplement without reverse engineering (or doing a clean room with two groups of programmers and the sun source). Plugwash 19:11, 29 May 2006 (UTC)

This Criticisms section really has gone too far. This section needs to be stripped of what does not belong in it (roughtly, almost all the text), and present a real SYNTHESIS of common critics about Java. I don't think the "language irregularities" is in the right place too (for example, why putting in irregularities the fact that the Iterators can not be reset ? What is irregular in that ?). Regardless of what editors think about Java as a language, this section can only confuse readers. At least, what I suggest is : strip the article to the bone, just making a list of important issues (real or perceived), like speed, memory consumption, L&F, and link to another created article, with all the Criticisms. Hervegirod 23:12, 9 June 2006 (UTC)

Yeah. "Language irregularities" seems original research. Minor points of syntax, misunderstanding what ResultSet.getInt() returns, strange expectations of what object oriented means, ...? A lot of unsourced stuff in criticism. Weregerbil 12:05, 10 June 2006 (UTC)
Done, I created a new article, with ALL stuff taken from the original, and tried to keep only a synthesis of critics on this article. Hervegirod 09:38, 11 June 2006 (UTC)

[edit] java influenced javascript?

the infobox lists java having influenced javascript. The text itself admits java and javascript are only distantly related. Shouldn't javascript be removed from the infobox? Ideogram 22:43, 29 May 2006 (UTC)

The names suggest they are related but that is just misleading marketing rubbish, is is enlightening to clarify the difference. Gene Thomas 14:39, 4 June 2006 (UTC)

in Javascript the definitive guide (published by Oreilly) 4th edition in the first chapter it says that javascript and java are not related whatsoever. javascript was going to be named LiveScript but they changed the name at the last moment. this might want to be added, but probably not in the exact words as the book because i'm quite sure that if you did that you would get in a lot of copyright trouble. Javawizard 22:20, 19 October 2006 (MDT)

[edit] Featured article candidate: Forth

I have put up Forth as a featured article candidate. Please participate in discussing how it can be improved to match this article in quality. Ideogram 07:21, 4 June 2006 (UTC)

[edit] Rendering errors?

3.1.1 Stand-alone application: has what appears to be rendering errors in the text, It shows

[http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html#out out]

.

in the output, the source wiki is

'''{{Javadoc:SE|name=out|java/lang|System|out}}'''

but is being rendered wrong, I didn't know Wikipedia(media) knew about Javadoc, is the engine broken or are the tranformations configured somehere. Either way it is broken. Gene Thomas 14:43, 4 June 2006 (UTC)

[edit] Language irregularities

I have removed the entire section because it is already verbatim in the Java criticisms article, which is linked in this article. The length of the criticism section was surely confusing for newcomers, especially this particular section. Plus this section seems original research Hervegirod 19:47, 12 June 2006 (UTC)

[edit] external links

Hi all -- You might want to be aware of a situation with an anonymous user who is inserting external links to his site at vias.org into various articles. He seems to take online, copylefted books, and mirror them on his own site, with ads. There's nothing illegal about what he's doing, provided he complies with the terms of the license, but I think it's more appropriate to link to the version of the book on the author's own site. This happened in this article with Downey's book, and I've changed the link so it points to the copy maintained by Downey himself.--Fashionslide 21:17, 15 June 2006 (UTC)

I have renamed external links section "Alternatives" to "Java Implementations". The section was giving an impression that the ones mentioned are "second class" to some "One true Java". However it is not the case. There are a number of Java implementations, some are proprietary and some are free/open source. I have classified them as such. Mritunjai 06:10, 19 June 2006 (UTC)

[edit] Implementations

I reverted the change to the 'Major Implementation' part of the info box at the top, but forgot to leave a comment saying why - my feeling is that netbeans and jbuilder are just development environments, not implementations of Java. As I understand it, if this field is to filled out, it should include the Sun implementation, the IBM one, probably Kaffe and some of the other free versions, and maybe Classpath and the gcc/java toolchain. Batneil 11:41, 18 July 2006 (UTC)

[edit] Ironic edit

Shouldn't this edit have taken care of itself: [3] :-) kenj0418 18:50, 27 July 2006 (UTC)

[edit] Pathway back to FA

Folks, it is really simple: get rid of the lists. Turn them into prose or axe them. If you want this article to get back to FA, think "Tiger Book". The O'Rielly introductory book on Java does have some lists, but the content is not 50% lists. Think prose. List-oriented Java programmers should not contribute if they are tempted to create another list in the prose. See Johnny Cash lists for one way to get the lists out of the main FA-track article. -- 75.26.4.200 23:24, 1 August 2006 (UTC)

[edit] Lack of OO purity

I think that the claim that primitive types are not objects does not belong in this section (I'm not saying that the lack of tuples, operator overloading, multiple inheritance, and class properties can not be criticized) Hervegirod 11:01, 7 August 2006 (UTC)

seems like "primitive types are not objects" would belong in a section called "lack of OO purity" to me. Justforasecond 16:46, 7 August 2006 (UTC)
sorry, I just made a mistake when I wrote my comment. What I wanted to say is : the only thing that truly belong in this section is the claim that primitive types are not objects. Lack of tuples, operator overloading, multiple inheritance, and class properties do not. Hervegirod 23:16, 7 August 2006 (UTC)

[edit] Reasons for not promoting

Hi all,

I am not promoting this article for a few reasons. The History section could use improvement (e.g. more details/references), especially the claim that Java is "fairly secure" (what is meant by this, who said it). I've heard of the five goals before but where did they come from, this needs a citation or source. Beyond these two issues I see no other major problems with article, so feel free to renominate the article when these issues are addressed.

Cedars 14:23, 8 August 2006 (UTC)

[edit] Java History and Sources

I object to the following inaccurate statement (second paragraph of the page):

"The language itself borrows much syntax from C and C++ but has a simpler object model and fewer low-level facilities."

Wikipedia's article on Java (Sun) directly contradicts that statement in its History section.

 http://en.wikipedia.org/wiki/Java_%28Sun%29#History

which says:

"Back in 1990, Engineer Patrick Naughton had become increasingly frustrated with the state of Sun's C++ and C APIs (application programming interfaces) and tools. While considering moving to NeXT, Naughton was offered a chance to work on new technology and thus the Stealth Project was started."

Java largely grew out of a rejection of C++ and its syntax. Naughton and Gosling largely patterned the language after Objective-C (not C++), SmallTalk and Simula68.

As further evidence of this, check Patrick Naughton's own words, here:

  http://www.cs.umd.edu/~seanl/stuff/java-objc.html

Jwisa 03:55, 23 August 2006 (UTC)Jerry W. Walker

[edit] External links review

I was reviewing the links in the article and noticed that a few of the portals have Google-ads; I know that Google ads don't automatically disqualify a site from inclusion, but I'm wondering if we really any of them. (A Google search will turn up scores of Java and programming portals). Below is a case-by-case review of the current links. Comments are appreciated. OhNoitsJamie Talk 20:04, 1 September 2006 (UTC)

  • Computer-Books.us Google ads, but does include some notable (and good) books. Weak keep.
  • Javapedia project "Official" (under java.net) keep
  • The Java.net Wiki (under java.net, though we probably only need one of the java.net links)
  • Sun Certification Resource Advertising for exam prep materials. Delete.
  • JavaRSS.com Google ads, though it is a nice selection of content from good sources. I'd be OK with keeping this
  • developerWorks Java Zone—Java resource community I've always like IBM's alphaworks project; though it's arguably commercial, it is quite notable, so I'm fine with keeping it.
  • JavaWhat.com Google ads; once you start digging into it, you find that there's not a lot of content; links to products and Sun pages mostly. I'd ditch it.
  • Java at CodeCodex Google ads; a wiki collection of code samples (though almost all that I sampled were copied from elsewhere. Given that most of the material could be found easily via Google, I'd say delete

[edit] Requested move

Java programming languageJava (programming language) – Conformance with WP naming conventions

The following discussion is an archived debate of the proposal. Please do not modify it. Subsequent comments should be made in a new section on the talk page. No further edits should be made to this section.

The result of the debate was move as outlined. -- tariqabjotu 02:43, 7 September 2006 (UTC)

Note: This poll has been transcluded onto the talk pages of a number of individual programming languages, but is in fact a subpage of Wikipedia talk:WikiProject Programming languages. When you comment, please note that this survey is for multiple programming languages, not just the one you saw it on.

Some editors have proposed a general rename of articles named with the pattern "FOO programming language" to the pattern "FOO (programming language)". Please note that this poll only is applicable to those programming languages whose names alone would introduce ambiguity. For example, programming languages such as Java and C , whose names alone are ambiguous, would be at Java (programming language) and C (programming language), respectively. Unique names such as Fortran and COBOL, should remain at their respective simple names.

For instructions on how to add a poll participation request to additional applicable article talk pages, please see: Wikipedia talk:WikiProject Programming languages#Poll procedure

Please add "* Support" or "* Oppose" followed by an optional brief explanation, then sign your opinion with ~~~~

[edit] Voting

  • Abstain Support - I initially abstained because I just wanted to get a procedure rolling. Looking at the first few comment, I support the rename. As with other editor, I only want this where ambiguity exists in the name: e.g. for "Python" but not for "Perl". Also, something like "Python programming language" would still redirect to "Python (programming language)" under the proposal, so existing links would not break. LotLE×talk 22:32, 1 September 2006 (UTC)
  • Support - However, I would object to specifying "programming language" anywhere in the title, as parenthetic remark or not, if the name of the language itself does not have any ambiguity issues. For example C programming language should change to C (programming language) (since C is already taken), but Fortran should stay at Fortran. --Serge 23:24, 1 September 2006 (UTC)
  • Support - originator of the request; it would also meet the common names policy and also meet the disambiguation guideline. atanamir 23:32, 1 September 2006 (UTC)
  • Oppose. The convention has been "<name of language> programming language" for quite a while and I don't think it helps by changing it now. There are already redirects in place for "<name> (programming language)" and it would only add more work to move them all there. Also, it goes against conventions in other media. In books related to programming on the copyright page where it sometimes has sorting information for the book many books say "Computers & Internet - <name> programming language I. Title" or something similar. - DNewhall 23:32, 1 September 2006 (UTC)
  • Oppose. To quote Wikipedia:Disambiguation, "When there is another word (such as Cheque instead of Check) or more complete name that is equally clear (such as Titan rocket), that should be used.". It is undeniable that the "C programming language" is a widely-understood name, not just a description. There's a reason K&R's book is called The C Programming Language rather than C, a Programming Language. Diverse examples from other areas include French language, Titan rocket, sticking plaster, bread roll, contract bridge. What makes programming languages different from these topics? Deco 23:44, 1 September 2006 (UTC)
    • If those articles were named like the programming languages are currently, they would have been something like sticking plaster dressing, bread roll food, and contract bridge card game. Titan rocket, in fact, is a redirect to Titan (rocket family). The natural languages are a slightly odd exception to the normal convention, but i'm not a linguist, and not about to argue with them. (I do know, however, that many non-English Wikipedias use the normal (parenthesized) disambiguation convention for natural languages.) --Piet Delport 13:40, 2 September 2006 (UTC)
      • Apologies for the bad example - Titan rocket was moved since it turned out to be a rocket family, but others such as Angara rocket were not. The controlling question here is whether "C programming language" is a "more complete name" for C. I argue that it is, and so standing guidelines strongly support the current name. Deco 10:12, 3 September 2006 (UTC)
        • I would argue that isn't. You can say "I play contract bridge" and "I use C", but not "I use C programming language". You can expand the names into noun phrases, as in "I play the contract bridge card game" and "I use the C programming language", but in both cases "the * card game" and "the * programming language" are not part of the name itself, anymore. --Piet Delport 06:04, 4 September 2006 (UTC)
          • The presence or absence of a leading article is not a reliable indicator of whether it's a name or not, as indicated by French language, unless you wish to expand this proposal to move X language -> X (language) as well. Deco 06:28, 4 September 2006 (UTC)
            • Definitely not something i'm interested in pursuing; let the linguists and editors involved with natural languages worry about their own naming convention. --Piet Delport 12:09, 4 September 2006 (UTC)
  • Support - due to its name being "Ruby". --Yath 01:31, 2 September 2006 (UTC)
  • Support - this is the standard way that most Wikipedia articles are named. Use the common name and disambiguate appropriately using parentheses when necessary. --Polaron | Talk 01:43, 2 September 2006 (UTC)
  • Oppose - For the same reasons as DNewhall. Chris Burrows 02:11, 2 September 2006 (UTC)
  • Oppose — Per Deco, I don't see how adding parentheses to an article title which is already clear is an improvement. --Craig Stuntz 02:47, 2 September 2006 (UTC)
  • Support -- Crypotography has had much the same problem for some time. It has adopted the "<topic> (cryptography)" approach which has worked well. Not elegant perhaps, but ... ww 05:20, 2 September 2006 (UTC)
  • Oppose — Either way, there should be a second link so that both "C (programming language)" and "C programming langage" produce the C article. My main reason for opposing is that it isn't really consistent with the new "C programming language, criticism" page that was spun off the main C article; what would that name turn into? By the way, the official standard name is "programming language C", but to me that sounds too much like "PL/C" which would be wrong. Deco's remark is quite right. — DAGwyn 07:56, 2 September 2006 (UTC)
  • Comment. This proposal is different from the original proposal, found here, which is now understood as having unanimous consensus in favour. Please do not interfere with the original proposition by misrepresenting it and opening a straw poll here, which can only serve to undermine the usefulness of the original proposal. It would have been much better to simply post a link. - Samsara (talkcontribs) 09:40, 2 September 2006 (UTC)
The original proposal seems pretty wacko to me, and I don't see any evidence of a consensus. As I understand it, this current section is not a "straw poll", but a genuine attempt to determine whether or not to move the C article to a new name, independently of whether that wacko proposal is accepted. — DAGwyn 09:53, 2 September 2006 (UTC)
  • Oppose - As per Deco, if syntactically correct name is enough for disambiguation, it should be preferred. And also, without parentheses it's more pythonic (readability counts). Samohyl Jan 10:24, 2 September 2006 (UTC)
  • Strong Support — The current convention is at odds with the rest of Wikipedia, and as cumborsome as it would have been to have things like Quicksilver novel, Manowar band, and Darwin operating system. --Piet Delport 13:28, 2 September 2006 (UTC)
  • Support. Needs disambiguating, and the name seems to be to be currently misleading. --maru (talk) contribs 19:25, 2 September 2006 (UTC)
In what way is "C programming language" misleading? I can't think of a more natural title for such an article. — DAGwyn 05:48, 4 September 2006 (UTC)
  • Support. Those opposing often Some of those opposing assume that the poll is about deleting the "X programming languages" links - this is not correct. Nor is the intention to move names which are unambiguous, such as Fortran. Aaron McDaid (talk - contribs) 23:06, 2 September 2006 (UTC)
    • For the record, I do not make either of these assumptions, and continue to oppose on the stated grounds. Deco 10:10, 3 September 2006 (UTC)
      • I didn't intend to imply that there weren't other reasons for opposing. Thanks for pointing that out Deco. Aaron McDaid (talk - contribs) 10:33, 3 September 2006 (UTC)
        • Don't worry about it - I appreciate your clarification that these are not valid grounds for opposition. Deco 10:38, 3 September 2006 (UTC)
  • Support per Piet Delport. -- Earle Martin 23:35, 2 September 2006 (UTC)
  • Support per Earle Martin. -- Fredrik Johansson 12:54, 3 September 2006 (UTC)
  • Support per Piet Delport. – Smyth\talk 14:33, 3 September 2006 (UTC)
  • strong support. Piet Delport puts it well. Programming language articles should be disambiguated the same way that other Wikipedia articles are. brighterorange (talk) 18:15, 4 September 2006 (UTC)
  • EMPHATIC Support I've wanted this to happen for a long time now. Per Piet Delport. RN 10:34, 5 September 2006 (UTC)

[edit] Discussion

[edit] Response to DNewhall's comment

In order to reduce clutter in the voting section, i've deicded to respond to DNewhall's vote here. If you're afraid of the amount of work it would take to move the articles, I can move most of them and i'm sure there are other editors willing to take up the task. Also, most books about programming languages simply have the title or common name of the programming language as the title of the book -- the Wrox series uses "Professional PHP" or "professional Java", not "professional PHP programming language" or "professional Java programming langauge". Many of the books I have also have the sorting information as "Computers -- Programming languages -- X," where X is the programming language. atanamir 23:36, 1 September 2006 (UTC)

The main issue is not that I'm afraid of the work but that it'll be a lot of work with next to no perceived benefit. Both "Euphoria programming language" and "Euphoria (programming language)" go to the same page and I (and others apparently) fail to see how that is an improvement over the current convention. The text is exactly the same, you're just adding parentheses. No one is going to get confused about the lack of parentheses (also remember that the names with parentheses already have redirects in place). Is "<name> (programming language)" a more correct title for the article? Arguably. Is it worth the effort of moving all the pages over from their perfectly understandable title to a title that already has a redirect in place for it? No. - DNewhall 16:10, 2 September 2006 (UTC)
I think you misunderstand the point of stylistic consistency on Wikipedia. Any one article in isolation would be fine under either convention; in fact, if the project was only the one article on, e.g. "C programming language" there would be no contrast with all the other uses of parens for disambiguation. But if WP (or some subset) was prepared for print or other syndication, having relatively consistent stylistic choices helps a lot (article naming is, of course, just one small issue among many others, of course). The work involved in a rename would, obviously, be a tiny fraction of the work involved in discussing the question, so that is "vanishingly insignificant". LotLE×talk 16:42, 2 September 2006 (UTC)
When it comes to C, we need to clear and distinct names for the articles on the programming language article and for the book. C (programming language) and The C Programming Language (book) are those two names. They are unambiguous and (or is that because?) they conform with the Wikipedia standard. Anything else should be a redirect to one or disambig page to both. 'C programming language' should redirect to the language and 'C Programming Language' to the book or a disambig page. The existence of a book called 'The C Programming Language' is actually an argument in Support. Aaron McDaid (talk - contribs) 12:49, 4 September 2006 (UTC)
... Appending to own comment ... It's never referred to directly as 'C programming language'. It's always 'C' or 'the C programming language. Note the ' the '. The latter is of the form 'the X Y' where X is the name and Y is the type of object. 'the X Y' (or even 'X Y') is not a new name for the object, simply a way to refer to X where there may be some ambiguity. Aaron McDaid (talk - contribs) 13:07, 4 September 2006 (UTC)

[edit] Repsonse to Deco's comment

Imagine if you have a set of objects which all fall under the same category -- let's say they're all different types of Widgets. The types are Alboo, Kabloo, Hello, Wawoob, Baboon, Choogoo, Chimpanzee, etc. Because some will cause ambiguity -- Hello, Baboon, and Chimpanzee -- they need to be disambiguated. However, since the common name (in this case, the real name) is "Hello," "Baboon," and "Chimpanzee," wikipedia has an established precedent of using parentheses. Thus, the unique widgets, Alboo, Kabloo, Wawoob, Coogoo, can have articles simply at the name itself; but the ambiguous names should have articles at Hello (widget), Baboon (widget), and Chimpanzee (widget). Thus, the article titles will be uniform in that they are all "at" the name itself, but with a disambiguator on several of them. This is easier than making all of the articles at Alboo widget, Kabloo widget, Hello widget, etc. Also, it allows for the pipe trick, so links can easily be made with [[Hello (widget)|]] --> Hello. atanamir 23:54, 1 September 2006 (UTC)

  • an example of this that's currently on wikipedia is colours. Some colours, such as Blue, Brown, and Red are at their articles, but colours like Orange (color) need the disambiguation part on them. It isn't at Orange color, althouh there is a redirect -- we can do the same thing with redirects. atanamir 23:57, 1 September 2006 (UTC)
  • also, your examples -- Titan rocket is a redirect for Titan (rocket family). Your other examples do not incite ambiguity, otherwise they'd be at places like Contract bridge (card game) atanamir 00:33, 2 September 2006 (UTC)
  • Titan rocket may now be a redirect, since it turned out to be a family of rockets rather than a single rocket, but there are still many rockets named that way (e.g. Angara rocket) and it's still cited on Wikipedia:Disambiguation specifically. The miniscule convenience of the pipe trick is not a reason for anything. My point is that this is a much wider concern than programming languages alone and represents a significant departure from the disambiguation guidelines. It would be radical to make such changes in a single area without raising them to the wider community, when your argument seems to apply to everything. The point of contract bridge and bread roll is that the more common names for these topics are "bridge" and "roll". Deco 07:48, 2 September 2006 (UTC)

[edit] Simpler disambiguation

Even if we add the parentheses, the guideline at Wikipedia:Disambiguation#Specific topic makes sense to me:

If there is a choice between disambiguating with a generic class or with a context, choose whichever is simpler. Use the same disambiguating phrase for other topics within the same context.

For example, "(mythology)" rather than "(mythological figure)".

In this case, we could have the simpler and more widely applicable "(computing)" instead of the long "(programming language)". --TuukkaH 10:04, 2 September 2006 (UTC)

I agree with the sentiment, but i think "(computing)" is too wide, with way too much opportunity for clashes:
"(programming language)" might lean towards the long side, but i don't think any alternative class comes close to being as simultaneously large, well-defined and well-populated. --Piet Delport 15:14, 2 September 2006 (UTC)
I agree that if we were to use parentheses, "(computing)" is not specific enough. Your examples are excellent, particularly "Icon", which clashes with an already-existing article! Deco 10:40, 3 September 2006 (UTC)
Perhaps you're right in that it's not specific enough. On the other hand, the disambiguation can never be perfect as there are several programming languages that share a name: NPL has three programming languages, The Language List has four programming languages called G. What about "(language)" then? --TuukkaH 22:02, 3 September 2006 (UTC)
"Language" connotes something rather different from "programming language". "Lisp (language)" for example. "Programming language" is the accepted category in the industry, abbreviated to "PL" quite often in discussions (whereas "L" is never used for this). — DAGwyn 05:59, 4 September 2006 (UTC)
What about just "(programming)"? Or is that too ambiuguous as well? atanamir 02:39, 5 September 2006 (UTC)
The above discussion is preserved as an archive of the debate. Please do not modify it. Subsequent comments should be made in a new section on this talk page. No further edits should be made to this section.

[edit] Pages like C programming language, criticism

To meet the new standard, the pages should be moved to something like Criticism of C (programming language), right? examples are Georgia (U.S. State) and Politics of Georgia (U.S. state). atanamir 02:42, 5 September 2006 (UTC)

Depends on the page in question, most likely; some would work like above, some (like C syntax) wouldn't require any changes, and some might want to use a different method to disambiguate. --Piet Delport 05:55, 5 September 2006 (UTC)
Agreed with Piet; only the ones that would incite ambiguity -- simply "Criticism of C" would have ambiguity, but "C syntax" or "Syntax of C" are both rather unambiguous and would not need change. atanamir 06:01, 5 September 2006 (UTC)
Surely, criticism of C is pretty unique and should be the article? Are there any other C's that would be criticized? Aaron McDaid (talk - contribs) 21:41, 5 September 2006 (UTC)
I agree that the most likely "C" to be criticised is the programming language, but some may be looking for a criticism of the letter or magazine. Unlikely, but possible. This decision would be left up to the community, though. atanamir 01:57, 6 September 2006 (UTC)
As of now, there is only one C that is criticized on Wikipedia, and I am not aware of anyone wanting to write an article criticizing any other Cs. Therefore, criticism of C is unique. The Wikipedia standard is to only disambiguate when necessary. That article should be moved to criticism of C at some point, but we should let this debate finish first. Aaron McDaid (talk - contribs) 09:16, 6 September 2006 (UTC)
For the record, "Criticism of C" didn't even exist until I created the redirect yesterday. Was kind of surprised because it was at that wierd, longish name and is a pretty good article :). RN 10:19, 6 September 2006 (UTC)
The C criticism article was split off from the main C article, where it had previously been embedded, in response to a requirement in order for the main C article to be designated a "Good Article". I picked the name with the idea that it was a sub-article of the main one. Once the discussion has settled, I don't object to some reasonable renaming, so long as the links between the two articles are fixed up so they still point to each other. — DAGwyn 21:51, 6 September 2006 (UTC)
Aaargh! Whoever just renamed the main C article ignored this linking issue. I have edited the C criticism article so its link to the C article does not have to redirect. — DAGwyn 20:20, 7 September 2006 (UTC)
The term "criticism" should not be used (I've stated reasons for this on Talk:C (programming language); the more accurate term of "analysis" or something similar should be used. Dysprosia 03:54, 7 September 2006 (UTC)
You also received feedback to the effect that criticism doesn't have to be negative, that the article is fairly balanced, and that a list of limitations has to seem somewhat negative no matter how well-intentioned it may be. The C criticisms article is not at all a complete analysis of the language, just a description of the many characteristics of C that have drawn reasonable criticism. Since C is so popular and wide-spread, it is a target for a lot of sniping and second-guessing, and it is undeniable that that has happened, which is part of what the C criticism article specifically addresses. One of the useful functions of the C criticism page is to bring some balance to that criticism. — DAGwyn 20:20, 7 September 2006 (UTC)
I also responded to that comment by saying (and I'll repeat the comment here for the benefit of readers of this page) that the term "criticism" still has primarily a negative connotation and that because of this it is an undesirable term. The article in question has the potential to contain discussion on design points on the language and opinions on those who comment on these design points. That is an analysis of the design of the language, and has the potential to encompass views from all points on the spectrum on the matter. Dysprosia 07:43, 8 September 2006 (UTC)
I just want to chip in that i agree with DAGwyn that "criticism" does not carry negative any primarily negative connotations in this context. As the criticism article says:
"In literary and academic contexts, the term most frequently refers to literary criticism, art criticism, or other such fields, and to scholars' attempts to understand the aesthetic object in depth."
There are certain fields ("In politics, for instance [...]") where "criticism" connotes mainly negative criticism, but it should be reasonably clear that encyclopedias won't limit themselves to that. --Piet Delport 23:32, 10 September 2006 (UTC)
Technically, it shouldn't carry any as you suggest but most seem to think it is a dumping ground for it. I would recommend "Analysis" as that's what I'm doing for criticism page I watch. RN 23:43, 10 September 2006 (UTC)
"Analysis" usually implies something more formal, complete and reductionistic, though. Is that what the article is aiming for? --Piet Delport 00:00, 11 September 2006 (UTC)
It doesn't need to imply that. The article in question however should aim to examine as many viewpoints on as many language points as possible. Dysprosia 02:33, 11 September 2006 (UTC)

[edit] Few questions

Question 1: What is "runtime?" This term is mentioned at the beginning of the article, but it is not explained. There definitely needs to be an article about it.

Question 2: What is "compilation overhead?" This term is mentioned in the "Platform Independence" section, but it is not explained. Perhaps there should be an article about it.

Question 3: What is a "widget" in this context? This term is mentioned in the "Look and feel" section, but it is not explained. Perhaps there should be an article about it. —The preceding unsigned comment was added by Oatmealcookiemon (talkcontribs).

You should try searching before assuming there aren't articles already, and then linking to those articles would be helpful to others having a similar problem as yourself. However, the second question should be addressed. --Kamasutra 19:50, 6 September 2006 (UTC)

[edit] Lack of OO purity

I deleted the part about tuples, operator overloading, etc... and put it in the specific article, in the Java criticisms#Language choices section. I did this because I think that the main criticims about Java is about the fact that there are primitive types, not all is Object. I really think we ought to delete this part from the main article, because is obscures what is important for the reader (plus it is easily accessible in another article linked to this part). Explaining why it is important / not important to have tuples, operator overloading, multiple inheritance would not be possible in the limited space of this section. People still argue about whether it is important or not to have multiple inheritance, for example... Hervegirod 19:37, 17 September 2006 (UTC)

[edit] is it java opensource and/or freeware

sir i want to know wheteher the java is opensource and/ or freeware any body know this plz clear this

Sun Java (the original and de-facto standard java) is freely downloadable and the source is availible as part of the JDK, however there are pretty severe restrictions on redistribution. There have been some attempts at creating a Free (as in meets stallmans free software definition) implementation of java but theese tend to lay some way behind the original java and also app developers don't tend to care about them. Plugwash 07:32, 20 October 2006 (UTC)
Sun has said that that will release Java under the GPL soon, so this might change. --Apoc2400 08:51, 29 November 2006 (UTC)

[edit] Performance criticisms

The performance criticisms refer to Java as an interpreted language. This is not correct. Java is a compiled language that is compiled (in the typical case) to Java byte code. The byte code is executed by a virtual machine, that can be implemented in a number of ways, interpreted execution being only one of those. So it seems to me that this criticism should be in article on the Java virtual machine and not here. Criticisms here should focus on the language itself, and not on the execution environment—if the execution environment is going to be discussed, it needs a more comprehensive treatment than some criticisms of some implementations. If I don't hear any objections in the next couple days I'm going to refactor the performance criticisms to remove discussion of Java as an interpreted language. —Doug Bell talkcontrib 16:28, 30 October 2006 (UTC)

I don't see how the term "interpreted language" is sensible to begin with -- a language's definition is typically independent of any particular implementation of it. Compilation vs. interpretation (vs. bytecode generation + JIT) are attributes of the implementation, not the language definition. There are C interpreters and Java native-code compilers, for example -- and there are many languages that are implemented on both interpreters and compilers. So I agree any criticism on the grounds Java is "interpreted" is wrong on its face. (There are plenty of legitimate grounds on which to criticism Java's performance, in any case...) Neilc 06:54, 31 October 2006 (UTC)

[edit] Coding style

I suggest to keep the code examples in the article conforming to the standard convention on coding style as defined by Sun. In particular, the curly braces should not be on their own line. -- int19h 09:37, 1 November 2006 (UTC)

The brace that ends a block should certainly be on its own line. Anyway, using the Java conventions sounds reasonable to me -- how does the article's code not comply with them? Neilc 13:57, 1 November 2006 (UTC)
I agree on following the Sun standard. The article does comply with the standard at the moment, but it has been changed to place the opening brace on its own line several times recently. I've been changing it back to the Sun standard. —Doug Bell talkcontrib 16:44, 1 November 2006 (UTC)
There were a couple of edits recently which seem to deliberately change the coding style to ANSI C conventions: [4] [5]. -- int19h 11:33, 2 November 2006 (UTC)

[edit] Remove OOP section?

OOP is under Object-oriented programming. The section discussing OOP does not pertain directly to Java, but is simply a summary of the concept. I linked it to the main page, but I would suggest removing it completely Jabberrock 10:01, 4 November 2006 (UTC)

[edit] Links Galore

Extensions and related architectures, Java Specification Requests, the list of IDEs, and many of the other external links need to be cut down. However, would it be a better idea to instead place them into their own articles (ie: List of Java Integrated Development Environments)? Gimmekat 15:45, 9 November 2006 (UTC)

I agree, and in fact just yesterday started to move the IDE links out. There is an existing List of integrated development environments page, but it's organization is a mess compared to the link organization here. I started to clean it up, but gave up for now...feel free to jump in. :-) —Doug Bell talkcontrib 16:40, 9 November 2006 (UTC)

[edit] History of Java is missing the early history and why it was created. Java team started in 1991

I believe that Java was originally created for small devices like PDAs. Gosling et al wanted to create a language to address what looked like a plethora of possible operating systems with the "write once run anywhere" solution. At some point they realized that the idea provided a larger solution than just PDAs and phones.

Below is a quote from a Sun article verifying this. You can find the article here [[6]]:

"Java technology was created as a programming tool in a small, closed-door project initiated by Patrick Naughton, Mike Sheridan, and James Gosling of Sun in 1991. But creating a new language wasn't even the point of "the Green Project."

To demonstrate what they saw as a possible future in digital devices, the Green Team locked themselves away in an anonymous office on Sand Hill Road in Menlo Park, cut all regular communications with Sun, and worked around the clock for 18 months. In the summer of 1992, they emerged with a working demo, an interactive, handheld home-entertainment device controller with an animated touchscreen user interface.

In the demo, the now familiar Java technology mascot, Duke, was shown waving and doing cartwheels on the screen. The device was called *7 ("StarSeven"), named after an "answer your phone from any extension" feature of the phone system in the Green Team office. Duke was actually a representation of the *7's "agent", a software entity that did tasks on behalf of the user. "

Regards, H. Hall

Sometime back the history got moved to the related article Java (Sun). —Doug Bell talkcontrib 15:51, 13 November 2006 (UTC)

[edit] Class Libraries

Are the java class libraries GPL and/or publicaly available? mrholybrain's talk 02:33, 20 November 2006 (UTC)

Not yet, but Sun claims they will be released under GPL in 2007. -- int19h 05:28, 20 November 2006 (UTC)
Yes, the JDK contains src.zip which has many of the public API implementations. The rest is in the JDK source; google for something like JDK source to find the licensing terms and the download. Weregerbil 08:20, 20 November 2006 (UTC)
The source is out there but the license pretty much a case of look but don't touch at the moment. Hopefully sun will follow through with thier promise to GPL this stuff. Plugwash 09:21, 20 November 2006 (UTC)

[edit] Problem with code sample

i just noticed that the explanation of what happens in the swing sample isn't exactly accurate with what is in the sample itself. someone might want to update the description of the code sample. —The preceding unsigned comment was added by 67.182.233.113 (talk • contribs). could you tell us where you think the inconsistancy is? i've had a quick look and i can't spot anything. Plugwash 01:30, 23 November 2006 (UTC)