Talk:Java (programming language)/Archive 5

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)

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)


 * The syntax of ECMAScript is clearly influenced by Java. What more, this was deliberate - see this edit by the person who designed it, and note the "make it look like Java" goal. Semantically, of course, they are very much different, but "influence" is a broad term, and I would say it should include syntax as well. -- int19h 19:42, 25 February 2007 (UTC)

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)

Rendering errors?
3.1.1 Stand-alone application: has what appears to be rendering errors in the text, It shows out. in the output, the source wiki is  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)

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)

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)

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

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)

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)

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)

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

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. OhNo itsJamie 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

Requested move
Java programming language → Java (programming language) – Conformance with WP naming conventions

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. —Preceding unsigned comment added by Oatmealcookiemon (talk • contribs)


 * 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)

Lack of OO purity
I deleted the part about tuples, operator overloading, etc... and put it in the specific article, in the Java criticisms 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)

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)
 * This hasn't happened at the moment though, right? It seems as though the class libraries at least are still not free software, though they don't seem very eager to inform people about it... Rōnin 01:27, 2 March 2007 (UTC)
 * They have opensourced the JVM and compiler but not the class libraries yet. Since the compiler and VM are pretty much useless without the class libraries this isn't in itself too significant. Hopefully they will follow through with thier promise and finish opensourcing the rest of the JDK but i'm not holding my breath. Plugwash 17:02, 2 March 2007 (UTC)

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 talk•contrib 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)


 * In a variation on interpreted languages, Java use an intermediate step. Other languages that use this type of intermediate step are Perl and Python. Microsoft's Common Language Runtime (CLR) is the functional equivalent of Java's JVM in the .NET versions of Microsoft's languages. The CLR interprets the Microsoft Intermediate Language (MSIL) code the compiler creates when you compile VB.NET, C#, and the other .NET languages. - Jani Syed —The preceding unsigned comment was added by 192.223.163.5 (talk) 20:55, 6 March 2007 (UTC).

Whether Java is interpetive or compiled, there remains a serious performance issue that needs to be addressed and resolved in an objective fashion. I believe that it is generally quite evident that typical Java applications require an inordinate amount of processor time and produce noticable interactive latency, especially when compared to similar C language programs. This is even true with many commercial programs.

I suggest three reasons for this is 1) Java's portable nature prevents it from being tailored to a specific platform 2) Its object-oriented nature prevents low-level optimization and 3) Its automatic garbage collection causes a major performance hit because of inefficient use of memory.

It would be a great service and benefit to the user community if someone more knowledgable than myself could investigate this performance issue and report on it. I fear that too many programers are misguided and consequently make the wrong decision in choosing a language for a new application. Roesser 22:26, 6 July 2007 (UTC)
 * Wouldn't that be original research?? What would seem to be in scope for Wikipedia would be to find a reliable source that already discusses this, which you are encouraged to do.  And you should of course try to keep preconceptions to a minimum.--NapoliRoma 23:54, 6 July 2007 (UTC)

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 talk•contrib 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: . -- int19h 11:33, 2 November 2006 (UTC)

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)

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 talk•contrib 16:40, 9 November 2006 (UTC)

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 []:

"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 talk•contrib 15:51, 13 November 2006 (UTC)

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)

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. —Preceding unsigned comment 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)


 * if you ran the swing code sample it will simply terminate without showing any window.
 * Here is my suggestion of a swing sample:


 * Bpfurtado
 * I've just tested the example from the article and it works fine. The only significant differences i see between your code and that in the article are:
 * the article uses the content plane explicitly whereas you rely on a shortcut
 * the example in the article calls setvisible after the constuctor whereas you call it in the constructor
 * You build the combination of components in the awt event thread rather than the main thread


 * None of theese seem like significant differences to me. Plugwash 18:28, 28 June 2007 (UTC)


 * I've tested the current example with a Windows XP (Service Pack 2) Box and a Java SE Runtime Environment (build 1.6.0_01-b06) and no window was displayed. My intention was only to provide another equal example that in my test showed the JFrame window as expected.


 * Regarding the differences you pointed out as having no relevance here are my arguments to show that they all should be present in the code:
 * The shortcut for the content pane is encouraged to be used, so I think it's really relevant to and swing basic example as it make the code much less verbose. See the Java 5.0 release notes for an explanation:
 * http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4753342
 * http://java.sun.com/j2se/1.5.0/docs/guide/swing/1.5/index.html item 4753342: Swing's top level component should redirect add/remove methods to ContentPane


 * The use of  should also be in any swing application as it appears in all Swing Tutorials samples from Sun.
 * As your swing application's main frame should always be visible there is a very good reason to put it inside the frame's constructor.
 * Bpfurtado 18:05, 29 June 2007 (UTC)

Blu-ray
Java is also used as BD-J in Blu-ray, maybe someone can add this to the java article (I'm not that good with writing :). —The preceding unsigned comment was added by 87.213.0.34 (talk) 12:50, 12 January 2007 (UTC).

Compiling
"Note that, although there's an explicit compiling stage, at some point, the Java bytecode is interpreted or converted to native machine instructions by the JIT compiler."

There is a third option - the bytecode can be compiled to machine code prior to execution, resulting in a stand-alone native application.

Also, this section might mention that the bytecode is as specified in the "Java Virtual Machine Specification".

Paul Murray 02:19, 15 January 2007 (UTC)