Talk:Java (programming language)/Archive 6

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Archive 1 Archive 4 Archive 5 Archive 6


Java name

Message to Sdornan: I made the "09:09, 31 August 2007" edit to document how the final name was chosen. However I noticed you changed the meaning of the sentence when cleaning it up in one of your following edits (it originally explained that the project started in June 91, but your edit make it sounds like what happened in June 91 was the decision on the final name). I am going to change the sentence to something a bit different, if you don't mind. -- R. Duxx 06:23, 1 September 2007 (UTC)

Languages Influenced By

It is apparent that Java was influenced by the Mesa language developed by Xerox. Coder1024 03:37, 2 May 2007 (UTC)

Influenced by Lisp and C#? added Lisp and C# to "influence by" in the info box. I've reverted those, as obviously the chronological order is incorrect for Java to be influenced by C#. While Gosling has mentioned Lisp, along with a number of other languages not listed, as a language from which lessons were taken, I think it is a stretch to include Lisp in the infobox. I consider the infobox to list the languages which had a strong influence that can be traced from the features and philosophy of the language. Otherwise you rightly might have to include every preceeding language as an influencer. I welcome any other opinions on the matter. —Doug Bell talk 04:12, 21 February 2007 (UTC)

Late addition to this thread: what does "influenced by" mean in the first place? I personally have a very strong expectation that a language "influence" refers to the language at the conception of its most essential features and characteristics. I expect the influence tree to be structured as a DAG, except in cases where the inception of the languages was contemporaneous to such a degree it amounted to growing up in the same crib. I can't even come up with such an example off the top of my head: Ruby postdated Python by just long enough to suspect Python wasn't much influenced by Ruby. (Second question: does "influence" include negative influences such as "no way we do that stupid thing they did over there?")
The kinds of minor influences being proposed here make the idea of an influence non-encyclopedic, degrades the concept almost to a trivia section. The influence can be ridiculously minor, even if a reference is found saying "X was aware of Y". A language feature might have been on the "todo" list for a decade before making it to the top of the list, by which point another language has delivered the feature first, whereupon the syntax is borrowed as a convenience to people who work across language boundaries. Probably every spoken human language in the world that has a term for "satellite dish" has copped at least one Anglicism. Worthless. MaxEnt (talk) 17:08, 10 December 2007 (UTC)
Java is certainly influenced by C#, witness the slew of new language feature in 1.5, after C#, which was in direct competition, brought some of its own missing from Java. It'd be pretty hard to source, though... As for Lisp, I agree. -- int19h 05:51, 21 February 2007 (UTC)
Many of those relatively minor language changes have been under discussion for a long time. I don't think it's accurate to say that they were influenced by C#, but even if they were, the language itself is not, and the additions are minor. —Doug Bell talk 06:10, 21 February 2007 (UTC)
The influence by C# was already there (note that user 216.* didn't change it), and was properly sourced and explained. (Unlike the other influences, shouldn't we explain about Eiffel's and SmallTalk's influence too?) The chronological order has little to do with which language can influence which. Language gain features that existed in other languages all the time, no matter which langauge came out first. I think it's pretty obvious that Java was influenced by C#. Most of the major feature differences between C# and Java were implemented in Java 5. And that's really not a Bad Thing, if you ask me. All of the features significantly changed the language, and the standard library would probably have been designed very differently in the presence of enums, annotations, autoboxing, and even varargs. (Generics is correctly not included in the list of features, since it has a completely different origin and implementation.) Anyway, about Lisp, I don't really recognize its influence in Java. This is the first time I heard about it. - Chip Zero 09:36, 21 February 2007 (UTC)
Other than generics, the features implemented in Java 5 were primarily "syntactic sugar" in that they didn't add any functionality, only provided alternative means of writing the same thing in the source code. They really are quite minor additions to the language, nothing on the order of the inner classes. Generics had been discussed since the early days of Java, well before C# was even a rumor (it was JSR 14, submitted in 1999). Whatever "influence" C# had on Java was quite minor. You can make a case that annotations had a significant impact on the Java environment because of how they are leveraged by tools, but their impact on the language itself is minor. Besides, my take on the languages listed in the infobox is that it means "creation influenced by", although as I point out above, it wouldn't really matter if it just means "influenced by". —Doug Bell talk 09:56, 21 February 2007 (UTC)
Besides, you can't claim that varargs and enums were influenced by C#—those were features of C, and were not implemented in a similar fashion in Java as in either C or C#. —Doug Bell talk 10:10, 21 February 2007 (UTC)
Yes, most of these features are strictly syntactic sugar. But then again, most of the Java language features are syntactic sugar over the core language (such as inner classes, most control flow statements, i++, +=, ?:, ...). It's the sugar that makes the language. And don't underestimate these features, they are all powerful features for building good application frameworks (minus perhaps the enhanced for loop). Auto-boxing for example changes the way we look at collections and methods that take a Object argument. Enums give increased typesafety with the simplicity that the old integer constants used to have. Varargs allows you to write new kinds of methods, such as the new String formatting method. (Which is implemented on basis of a typesafe array, unlike in C BTW.) Yes, technically you could do these things before, but it was all so hard or inconvenient that nobody ever did it. And yes, annotation obviously go beyond syntactic sugar, and allow all kinds of funny things such as the XMLSerializer for C# illustrated. Finally, my take on "influences", is just that, other languages that had a (notable) influence on the design of the language at one point or another. The computer languages history graph illustrates this nicely. Likewise, Ruby is also stated as an influence on C# here, even if it only influenced C# 2.0. - Chip Zero 10:41, 21 February 2007 (UTC)
I still disagree with listing C# as an influence. For now, I've removed the attribution of varargs and enums from the C# reference because these were clearly features from previous lanaguages that had been discussed as additions to Java long before C#. I don't see the connection for annotations either as these had been informally done using Javadoc comments for some time prior to be adopted as a language feature. I think the connection to C# is extremely thin and certainly falls below the level of influencer. —Doug Bell talk 19:18, 25 February 2007 (UTC)
I have to agree with you about enums; they have a different functionality and implementation in the two languages (flaggable enums vs. enums with members). (Although one could argue that they'd never have been added if it wasn't for C#, since enums have been around for ages now.) Java varargs however — even though the name comes from C — work exactly the same in Java as they do in C#, albeit with a different syntax. I hate to re-iterate myself, but both are implemented using a heap-allocated typesafe array as the underlying data structure. What other statically typed languages do you know do this? - Chip Zero 15:35, 26 February 2007 (UTC)
With enums, they had been used in Java as a pattern prior to C# being a twinkle in the eye of Microsoft. (I may actually have been the first to propose this pattern in 1996.) Like many of the added language features, formallizing it in the language was the result of careful consideration. I would certainly put varargs in this category as well, although I suppose the C# implementation of the feature my have been suggestive. Java is defined as much by what features are not in the language as it is by the features that are. The only one of the added features I think likely to have been directly influenced by C# is the autoboxing/unboxing of primitive types into their corresponding primitive wrapper classes. —Doug Bell talk 16:06, 26 February 2007 (UTC)
Well the thing is, in C# enums are really just primitive types, with language and framework support (see comparison of C# and Java). This means that they can be combined using the bitwise OR (|) operator like in C++. Before Java 5, people used constant integers on interfaces as a poor man's enumeration that also supported this. And yes, Java's minimalism is (or was) part of its philosophy. Less can definitely be more, as it prevents complexity and errors. But it seems to me that times may be changing since the advent of Java 5 (and C#). It looks like they'll be introducing closures next, which is normally a good feature, but it makes inner classes somewhat redundant. (Not to mention that it means that existing libraries will then no longer be using the preferred delegation construct.) Just like enums did for the old ints-on-interfaces. What began by copying the major feature differences with C#, may turn out to be a whole new direction for Java. In that sense I am definitely convinced Java was influenced by C#. Likewise, Java's (product) open-sourcing wasn't just the new CEO and the old "Java isn't free enough for Linux" thing, it was also influenced by competition with C# on Mono (which was free enough for Linux). - Chip Zero 17:18, 26 February 2007 (UTC)
"What began by copying the major feature differences with C#". I'm not accepting this premise at all—certainly not as a motivation for the changes. And closures have been discussed since the beginning (even as part of the initial language, and again when inner classes were being added.) —Doug Bell talk 17:30, 26 February 2007 (UTC)
I ended up removing the C# "influenced by" statement, mostly on the grounds that the note attached to it offered three cites, none of which were reliable: one was a forum post and another was a personal web page, and neither of the authors seemed to be authoritative. The third cite was to a history of programming languages page whose only related cite for this information was THIS page! Keeping the "influenced by C++" statement without any useful cites didn't seem like the thing to do, given the contraversy around the topic. SlitherM 00:37, 21 March 2007 (UTC)
While I agree we shouldn't cite forum posts, I don't think there's anything wrong with the other two sources. Both were in-depth studies of the subject. The "history" page is referenced in hundreds of web pages and in several scientific publications. And I don't know if you noticed, but the other "influences" don't have any references or explanation. What was the influence of Eiffel for example? And what sources are there for that? I think you're severely exaggerating about the lack of authority of the references. Am I sensing some hostility specific against C#? I'm no fan of Microsoft and their politics either – far from it – but I think it's wrong not to list C#'s influence on Java. That it was influenced by C# doesn't make Java inferior, it just means it's keeping up with the current trends and adapting to the new market conditions. And it did just that by adding "the enhanced for loop, autoboxing, varargs and annotations". They are all features that existed before in C#, and were some of the most notable differences between the two languages. – Chip Zero 21:53, 23 March 2007 (UTC)
Thanks for pointing out that the influence of Eiffel was lacking a citation -- I just added one. As for the influence of C#, perhaps it would be best if we try not to sense hostility in each other? My position is just that the cites given don't seem to me to be reliable, and I don't see any reason to think that there should be an influence. Tackling the first point first: The "history" page that is cited, if you look at its edit history, doesn't give any attribution and, as I said before, the only reference it gives that relates to C#'s influence is THIS page, which raises the question of whether that page only claims that C# is an influence because this one does! The other cite is to a unrefereed talk by Barry Cornelius, in which he explicitly says "In my opinion, it is C# that has caused these radical changes to the Java language" (emphasis added). Therefore, I think it cannot be taken as reliable either.
As to my second point, I don't see any reason to think C# should have been an influence. JSR 201 added these features, but doesn't claim any influence. The only two non-simple features it added were enums and autoboxing. Java's enums are VERY different from C#'s, and boxing and unboxing are old ideas that have been around well before Java. For instance, Xavier Leroy's 1992 article [1]. So, without any citations in favour of an influence, why assume that there is one? SlitherM 01:49, 24 March 2007 (UTC)
I'm not sure where you see a reference to this article, but it seems that the "history" page added this influence in May 2005,[2] while this page added it in November 2006.[3] You're right about enums, we actually discussed this (see above), and removed it from the list of features. As for autoboxing, yes, "boxing" and "unboxing" are no new concepts. What Xavier Leroy describes is a way to use recursive unboxed memory allocation as an optimization for a language that normally uses fully boxed types. The novel thing about what C# and Java did is adding (non-recursive) boxing and unboxing to a language with a type system that already supports both boxed and unboxed types, thereby introducing polymorphism for the primitives. Furthermore they still require explicit use of an object type (boxed type) in methods or data structures to make use of this. So I don't think it's really the same thing, although C# autoboxing probably had a basis in this or related papers. Anyway, try a Google search for autoboxing C# java. You'll find many articles that have made the observation that Java introduced autoboxing and other features that were present in C# before. Java 5 simply added most of the major features that introduced were in C# but were not yet in Java, and implemented them in the same way, with only some superficial differences. This includes annotations, which I would definitely consider "non-simple". Just that the JSR (which didn't make the design discussion public) didn't mention the influence doesn't mean there isn't one; that's why we have to look at external observations. Anyway, good job on the Eiffel citation. (Although I'm still not exactly sure what aspects were influenced by Eiffel, but that's probably just me.) – Chip Zero 11:56, 26 March 2007 (UTC)
I'm not even sure why we even put Influenced by here in the first place, clearly intense competition for the developer's hearts and minds influenced the JCP committee to add some features found in other languages but were not there before Java 5 (Note: Sun no longer calls it 1.5 but Java 5). Certainly C# wasn't the original language to introduce generics. If you can name at least one ORIGINAL feature in the C# language that is also found in Java as of version 6 then I will agree with you, otherwise lets just delete the whole thing as the PROGRAMMERS and DEVELOPER community ultimately influence a certain language. Daimengrui 08:22, 15 November 2007 (UTC)
All languages are influenced by previous languages - after all, Java's memory management is in response to noted issues with pointers as seen in C++.

I'd argue against C# influencing Java. If you look at things like Generics, the JSR was in progress one hell of a long time. Can research a few others, but the number of ideas from C# introduced into Java, if there are some, is negligable with regards to claiming C# influenced Java.

Minkythecat (talk) 13:49, 11 March 2008 (UTC)

Influenced by J# - is somebody seriously having a laugh / trolling? A Microsoft language intended to replace java influenced Java? Minkythecat (talk) 13:58, 11 March 2008 (UTC)


The first paragraph of the article says that

Java is an object-oriented programming language developed by Sun Microsystems in the early 1990s. Java applications are compiled to bytecode, which at runtime is either interpreted or compiled to native machine code for execution.

This makes it seem that java can run by either:

  1. Interpreting bytecode at run time
  2. Compiling bytecode to native code at run time

Thus leaving out the possibility of compiling to native code ahead of time. Jorge Peixoto 02:57, 9 March 2007 (UTC)

To the best of my knowledge, an implementation directly compiling from .java files to native machine code would not be Java (since bytecode spec is also part of the standard). Otherwise, the sentence you cited does not say anything about whether bytecode should be compiled to native code at runtime or not, so ahead-of-time compilers, such as Excelsior JET, are seemingly covered by it. -- int19h 15:39, 9 March 2007 (UTC)
Actually, the Java Language Specification is a completely separate document than the Java Virtual Machine Specification. The language spec describes how the language behaves, and says nothing about how the JVM works, or how it should be compiled other than that the compiled code should work correctly. Therefore, it would be entirely legal to compile Java code to native code. I agree with Jorge Peixoto that the first paragraph is misleading. SlitherM 00:20, 21 March 2007 (UTC)
I've considered changing that statement myself. The fact is that the language and VM specs were intentionally kept at arms-length so as to allow the widest possible latitude for environments that run the Java language. There is nothing in the language spec requiring compilation to bytecode, AFAIK, and in fact, there have been a number of implementations, esp. early when performance was a bigger issue than now, that compiled directly to native code. So I would support at least a qualification to the statement. The statement also doesn't allow for the execution of the bytecode natively—there were some early stack-based Java processors that executed the bytecode directly. My recommendation would be:

Java is an object-oriented programming language developed by Sun Microsystems in the early 1990s. Java applications are typically compiled to bytecode. At runtime, bytecode is usually either interpreted or compiled to native machine code for execution, although direct hardware execution of bytecode by a Java processor is also possible.

Doug Bell talk 05:34, 21 March 2007 (UTC)
Sounds good. You should probably add something like "or native compilation using GCJ is also possible.".Chip Zero 21:56, 23 March 2007 (UTC)
OK, I changed the wording. —Doug Bell talk 22:05, 23 March 2007 (UTC)
Great, sounds much better now. – Chip Zero 11:57, 26 March 2007 (UTC)

Too heavily criticized

This is not a neutrally or fairly written article by any stretch. There is entirely too much emphasis on criticism. Since there is an entirely separate article devoted to criticism, then there should be no mention of it here. —The preceding unsigned comment was added by (talk) 16:28, 1 May 2007 (UTC). It seems like every article on wikipedia has a criticism section. But I think that "no mention of it here" would be stupid, because it's an extension of the article. It'd be like no mention of a list of episodes on the TV show that the list of episodes is about. J'onn J'onzz 11:48, 13 June 2007 (UTC)

C# doesn't have a criticism section. And all of the criticisms about Java would apply to C# wouldn't it? I think the either Java should lose its criticism section (since most other languages don't have a criticism section). Or that the Java Criticism aricle should be changed to criticism of Java and C#. —Preceding unsigned comment added by (talk) 17:48, 6 September 2007 (UTC)

I agree that C# should be criticized as well (if youw ant to write the article go ahead). However i dont think C# and java criticisms should be combined. While it is true that the two languages are very similar they have distinct differences in both their API and the language itself. For example delegates are unique to C# and java specifically does not include these or any concept of it. So i think the articles should stay separate, despite some overlap. - Debeo Morium: to be morally bound (Talk | Contribs) 20:09, 6 September 2007 (UTC)
Maybe C# is not a heavily criticized because the wiki article is just written better for example in the goals section it is explicitly stated that C# is not intended to compete with C and C++, but it is designed to be economically efficient, it won't offend people who program in other languages or have ever had issues with java's performance (these people do exist in large numbers) if the java article was written in this style.
"Although C# applications are intended to be economical with regards to memory and processing power requirements, the language is not intended to compete directly on performance and size with C or assembly language."

done (talk) 15:05, 28 August 2008 (UTC)

Dispute with microsoft

after Sun claimed that the Microsoft implementation did not support the RMI and JNI interfaces and had added platform-specific features of their own

Was Sun's claim true? What platform-specific features? Also, encyclopaedic content must be referenced. Shinobu 20:15, 6 May 2007 (UTC)

It is more than a claim, it is the reason why a judgment prevented Microsoft to call their implementation Java. See for example this Yale University case study here. For example Microsoft made Java programs communicate through COM instead of CORBA (COM is tied to Windows). An excerpt from the referenced study: "They decided to omit the class libraries for Remote Method Invocation (RMI) and to disable generation of output for the new version of the Java Native Interface (JNI). A customer could not use RMI to communicate between Java programs on Windows and Unix. Similarly, a C language program written to extend Java would not operate correctly in the Microsoft environment". See also a synthesis of the judgment here: "The court ordered that if Microsoft ships products that include the Java technology, it must change those products within 90 days to address their failure to pass Sun's compatibility test suite". A complete list of all the proceedings (in PDF) is here Hervegirod 21:40, 6 May 2007 (UTC)

See also Visual_J++#Litigation_against_J.2B.2B . It was a subject of the 1998 DOJ antitrust trial, the 1997 trademark licensing dispute, and then Sun's private 1.6 billion dollar antitrust lawsuit against Microsoft.

Fair use rationale for Image:Duke.gif

Nuvola apps important.svg

Image:Duke.gif is being used on this article. I notice the image page specifies that the image is being used under fair use but there is no explanation or rationale as to why its use in Wikipedia articles constitutes fair use. In addition to the boilerplate fair use template, you must also write out on the image description page a specific explanation or rationale for why using this image in each article is consistent with fair use.

Please go to the image description page and edit it to include a fair use rationale. Using one of the templates at Wikipedia:Fair use rationale guideline is an easy way to ensure that your image is in compliance with Wikipedia policy, but remember that you must complete the template. Do not simply insert a blank template on an image page.

If there is other other fair use media, consider checking that you have specified the fair use rationale on the other images used on this page. Note that any fair use images uploaded after 4 May, 2006, and lacking such an explanation will be deleted one week after they have been uploaded, as described on criteria for speedy deletion. If you have any questions please ask them at the Media copyright questions page. Thank you.BetacommandBot 03:28, 3 June 2007 (UTC)

I have changed it to the BSD license --Racklever 15:31, 8 June 2007 (UTC)

External links section

This article has quite a linkfarm, I tagged it. See WP:EL for information about this and why I tagged it. Also, see WP:NOT particularly the part about WIkipedia not being a web directory. Aaron Bowen 11:46, 14 June 2007 (UTC)

"Like in C++ and most other object-oriented languages..."

I just wanted to note that in C++, there is very little distinction between user-defined and built-in types: both can be allocated on either the stack or the free store, pointers and references to both can exist, etc. Probably the only difference between them in C++ is that you can't derive a new class from a built-in type. Since this is a basic language philosophy of C++ (I can go find the part about this in The C++ Programming Language if you want), and very different from the object-primitive separation in Java, I think C++ shouldn't be used as an example (as in "Like in C++...") here. Dr. Sunglasses 18:18, 25 June 2007 (UTC)

Howto tag

I have removed the howto tag because it is inappropriate. For example the Reflection (computer science) article contains more sophisticated code than the simple Hello world of the formerly tagged section, and one cannot appreciate, much less read, that article without the ability to read code.

It is like attempting to read an article on music theory without including a few bars of music to denote the topic of discussion. It is not inappropriate to have an article on music for those who can read music. By analogy, it is not inappropriate to have a programming language article for those who can read code; if an article needs explanation, one can listen to the music, for a music article. There are entire CD's which discuss Beethoven's Ninth Symphony, for example. One can watch a program animation, or a program visualization, for a code article.

It is unjust to force the content of a code article to another venue entirely, just for the sake of an inappropriate tag. --Ancheta Wis 01:49, 29 July 2007 (UTC)

I'm restoring this. WP:OTHERSTUFFEXISTS is not a good argument. And this isn't "a few bars", it's a series of complete stub programs which are mostly completely opaque to people who don't speak the language. Seriously, we need sample code to explain Java applets? Why is that? Example code is a lazy way of expanding an article without really improving it. Chris Cunningham 11:54, 29 July 2007 (UTC)
This just came in: iPhone Hello world. It's a canonical way to learn about a language and its platform. Code samples show subtle things about a language that take a lot of text to convey, otherwise. For example, the fact that prolog returns a boolean value at every call, a nit of a detail that you have to know or your code doesn't work. --Ancheta Wis 17:02, 29 July 2007 (UTC)
I'm confused. Yes, it is obvious that when writing a tutorial, code examples are very helpful. But this isn't a tutorial. The tag explicitly states that Wikipedia is not here to teach subject matter. That Prolog returns "yes" or "no" to everything is a fundamental part of its design which is essential to understanding how the language works; that's a completely different kettle of fish to whether we need to actually provide sample code for a Java applet to explain what it is. Chris Cunningham 17:57, 29 July 2007 (UTC)
I'd agree. Anyone reading this article will be reading for the overview of the Java language - the history, notable events within Java's history et al. The examples aren't relevant in that context. If people want to read wiki to learn Java... well, they'd be far better off reading more accurate sources :p

Minkythecat (talk) 13:52, 11 March 2008 (UTC)

Editing Talk

Some users edit the wiki without addressing the comments in the Talk section.

Some of us prefer communicating via edit summaries when the issue is thought to be quite clear-cut. --Cybercobra (talk) 03:36, 24 July 2009 (UTC)
Maybe if you quit reverting it the article would get better, but I would suspect that you prefer the article to be worse, which is why you don't try to edit yourself. —Preceding unsigned comment added by (talk) 18:32, 24 July 2009 (UTC)

Sun Bias

Can we conclude that anything written about Sun about Java is non-neutral point of view? Such as the FreeTTS article and goals of the system. Specifically as it pertains to performance comparisons. (talk) 21:03, 21 July 2009 (UTC)done

About the goals, the citation is clearly presented as a citation from Sun (even up to quoting the sentences), so the citation within this context is neutral IMHO. About FreeTTS, please make remarks in the appropriate article. And also you should add new sections at the end of the page, not in the middle. Hervegirod (talk) 22:39, 23 July 2009 (UTC)
see next comment response.
Did you read the FreeTTS research paper? It's a fairly classic application-performance-improvement study that simply shows that some Java applications can be made to run faster than some similar C and C++ applications. It's well backed up with measurements and descriptions of changes. All in all, a pretty straightforward respectable paper. Not an "article", or a marketing brochure, and worthy of respect. RossPatterson (talk) 02:26, 24 July 2009 (UTC)
Look I don't know how many times I have to say this, and they didn't mention what priority mode it was in. You can't compare Java in high priority mode to C in normal priority. This is why this paper and just about everyting coming from Sun is biased, with respect to performance. (talk) 18:48, 24 July 2009 (UTC)done
might I also add that the FreeTTS was only tested on Solaris. I mean really Sun not biased about their own product. (talk) 19:26, 24 July 2009 (UTC)done
If you find reliable sources which say this, I have no problem with that, but for now, your opinion (though respectable in itself) looks to me as WP:OR and thus should not be put in the article. Hervegirod (talk) 21:45, 24 July 2009 (UTC)
That is what the article said. Tested on Solaris. I have no idea if there is a good Solaris compiler. I know for intel platforms, you can get an icc compiler that is much faster than GCC(maybe 100% to 200%), and there are extensive tests in Windows and Linux that these compilers are indeed faster than GCC. Of course you can't compare Java compilers to ICC compilers, because ICC doesn't work on Solaris, and Java hasn't been optimized for intel. NOt to mention being shipped in high priority. So maybe the statement should be that Sun's Java code is faster than Sun's C code. (talk) 21:53, 24 July 2009 (UTC)done

static / AOT compilation

What is the following sentence meant to say?

AOT could give Java something close to native performance, yet it is still not portable since there are no compiler directives, and all the pointers are indirect with no way to micro manage garbage collection.

This seems like total gibberish to me. The "lack of compiler directives" is unclear as to its meaning, and I can't imagine what the author of this phrase meant to imply with regards to being 'not portable'. Also, the text about 'pointers are indirect with no way to micro manage garbage collection' seems to have nothing to do with either portability or performance.

I'd suggest this entire (long) sentence be struck. Jonabbey (talk) 22:00, 15 July 2009 (UTC)

Seeing that this talk page isn't currently very active, I went ahead and struck the sentence. Jonabbey (talk) 22:09, 15 July 2009 (UTC)

Sorry I haven't watched it for a while so I undid it. Compiler directives are how programmers make a program compile on different platforms, that have incompatible operating systems, if you have ever tried to use jni you know what I mean. Garbage collection accounts for a majority of the over head in the language, and objects/pointers or indirection are what slow down programs again if you have ever used jni you know what I mean. (talk) 15:08, 16 July 2009 (UTC)done
I understand what compiler directives are.. I've been programming for 30 years, in Java for 14. What I meant was, what does it matter whether there are compiler directives, when the Java code is itself written to an abstract machine? It can be left to the AOT compiler to compile and optimize the code for a specific architecture. Such compilers can of course feature whatever compiler directives they like. This doesn't make the code less portable. As to garbage collection, modern JVMs actually achieve superb memory management performance.. easily superior to a naive malloc/free implementation for many purposes. Other things you cite such as object orientation, virtual methods, the ubiquitous use of immutable Strings (thereby necessitating lots of intermediate String object construction for _many_ common operations) do have performance implications. Bounds and exception checking can do also. But that's what makes Java code as reliable as it is. Jonabbey (talk) 22:47, 16 July 2009 (UTC)
Garabage still has to check for dead objects. This an inherent problem in the language it self and has nothing to do with the implementation. IE AOT compilation won't do anything to improve this. The lack of compiler directives are again a fault of the language. If I can't sysexec or load a library then Java is useless because there is so much really good code written cross platform style out there that I will never be able to use in Java. JNI can do it, but again it has no compiler directives so no cross platform for that code... Lame. Slow torpid boring java, like stale coffee. Besides with Chromium, you can run C++ in a sandboxed environment so there is no benefit to Java anymore, except the language was bought by Oracle and is currently under anti-trust review. (talk) 14:01, 17 July 2009 (UTC)done
You obviously have extremely strong feelings about this. You also seem to be confusing Java (programming language) with Java (software platform). You also are completely disregarding everything about Java other than its performance and ability to use C/C++ libraries. If that's your primary concern, why not stick to C/C++? I'm sure those wiki pages could benefit from your expertise. Jonabbey (talk) 15:52, 17 July 2009 (UTC)
Because developers seldom make choices about the adoption of software technologies, and I wouldn't want some potential CEO to be misinformed with all this nonsense about cross platform and similar performance. But mostly I wouldn't want java developers to have the same pay scale as C/C++ programmers for making obviously infereior programs. (talk) 20:36, 17 July 2009 (UTC)done

BTW I don't have to run java to know it is slower, all I have to do is read code for the libraries written in C and C++ to tell that it is slower. (talk) 15:14, 16 July 2009 (UTC)done

WP:POV + WP:OR Hervegirod (talk) 23:06, 23 July 2009 (UTC)
Hervegirod, read the libraries. They were written in were C, get over it. —Preceding unsigned comment added by (talk) 18:50, 24 July 2009 (UTC)


I find it a bit strange that 'javax' redirects in this article, but it doesn't get explained inside the article at all. It would probably make sense to either at least mention it in the article, or make it's own article. (talk) 03:38, 17 February 2009 (UTC)

Difficult for Non-Computer Science Reader

Coudl something be added to this article that would make it clear to a non-expert reader what the importance of Java is? --Girl2k 16:25, 30 July 2007 (UTC)

I'm trying to cut down on the unnecessary geekishness just now. Once the article is shorter and has more focus I'll try to add a section about Java's applications and how its use has affected the computing world. Chris Cunningham 17:45, 30 July 2007 (UTC)

I appreciate the idea of adding a section concerning use of Java, but I'm concerned about the general difficulty of the main article for a non-computer science reader. The point of Wikipedia, it seems to me, is to create articles for common folks who have, let's say, graduated high school. This article is opaque to me and I have a liberal arts MA. The article assumes far too much about my prior knowledge. Trying to understand the definitions doesn't work because the linked terms simply hyper me over to other, similarly difficult articles. The article (and many others) would benefit from a knowledgeable person adding simple metaphors. For example, is a library a toolbox and each class is a tool? Also, defining each term separately, rather than tossing six terms in a sentence would be great. Thanks. BeholdMan (talk) 05:35, 7 February 2008 (UTC)

I guess with enough education you can convince people that white is black, but they would just get hit at the next zebra crossing. done (talk) 16:54, 5 September 2008 (UTC)

Essentially Java was a marketing scheme by Sun microsystems to get businesses using their stuff. They developed a poorly thought out language, and sold the hell out of it to businsesses as an "enterprise"[1] "solution". When it was first released there were claims made that java code could be written by less skilled programmers (You can hire stupid people now!), similar to the Cobol programming language in the 60's and 70's. This of course was a disaster, resulting in poorly designed software written by people without the fundamental understanding of the problems they were trying to solve. In the end java exists entirely to soak up IT budgets and keep IT consultants' families fed. Microsoft's .NET technologies were Microsoft's attempt to counter Java. All the same criticisms apply to it. Except that it's 10 years late to the party.

"enterprise" of course means it's very expensive, slow to work in and you'll need to hire lots of consultants. And at the end of it your competition will still run rings around your using something else. —Preceding unsigned comment added by (talk) 05:10, 23 April 2009 (UTC)

Importance rating

How come that this article gets only a "Mid" importance rating, when APL (sic!) gets a "High" rating?? I can only laugh on that. While APL is nothing more than an object of ridicule nowadays, Java is one of the most important - if not THE most important - enterprise software development platforms today. —Preceding unsigned comment added by (talk) 19:13, 23 September 2007 (UTC)

Or it's not the most important enterprise software development platform today. It really depends on who you're talking to. You might make an argument for most /popular/ but if you're going to do that, include some statistics, thanks. 17:56, 8 October 2007 (UTC)

@80: Even C++ has mid-importance in the Computer Science WikiProject. For Wikipedia:WikiProject Programming languages evaluation, this article should have high importance; in terms of Computer Science; I'm not so sure. If you think that APL should also be rated as mid-importance, or that all major programming languages should be high-importance, please effect that change (ideally with discussion first here). Evaluation of importance is specific to a WikiProject's need to prioritize improving certain articles, and is a tool, not a description to help or hurt its subject's image. GracenotesT § 06:46, 14 October 2007 (UTC)
I think the importance is in terms of a need for improvment, not a relative ranking of topics merit, I assure you java doesn't deserve any more merit than some other language. The C++ article reads fairly informatively and concisely with little misinformation, therefore doesn't need improvment, unlike this article which reads like a cross between a marketing brochure and a java text book for beginning java students, with out all of the flash of the former or cohesiveness of the latter might I add. (talk) 21:16, 9 June 2009 (UTC)done

Java update

Every time I start up my laptop, I get an annoying reminder that there is a Java update ready to download and install. A few minutes ago, I finally gave in and installed it. The problem is, I don't know what the hell Java is, and this article doesn't really help. The installation set-up only said that the download will make my "Internet experience richer." So, can someone explain what the Java program or whatever really is? This article, like almost all computer-related articles on Wikipedia, is all technical jargon and doesn't make any sense to me. —Preceding unsigned comment added by (talk) 11:54, 20 October 2007 (UTC) I can download the update, and I can download a Shockwave Update. 12:11, 12 November 2007 (UTC)Kinz

What you have is a Java Plugin that runs Java applets in your browser, that are similar to Flash and ActiveX plugins. Those programs are used to create better interactive pages and normally the user will be unaware of it existence if everything is right and that is the reason for the constant updates. The other plataforms also have similar updates, but normally without notifying the user. This aspect of the Java technology is, however, a small portion (and quite francly one part in disuse) and this article had to deal with the entire aspect of the technology, making a good part of this technical jargon and doesnt making much sense to ppl outside of the software development market. Alvaroludolf 12:48, 25 October 2007 (UTC)
Not that this is a general discussion forum or anything, but for what it's worth the relevant article is Java (Sun) and the "technical jargon" here is no worse than that on random chemistry articles. For some reason, people seem to assume that computer science shouldn't be treated in a scientific manner on Wikipedia even though other sciences are. Chris Cunningham 12:58, 25 October 2007 (UTC)
I'm sorry you couldn't get the answers you needed. I agree the article is too techie. Maybe a techie will improve this. I'll try to help. In plain English, Java is a software technology that lets Web pages run programs on your computer, if you choose to allow them to. For example, if you want to play Yahoo Text Twist, you go to and click on "Play Web Game (free)". You will see the Java symbol and a progress bar as the game loads. The Java technology is what runs the game in your browser.
Java is considered much safer than its competitor, Microsoft's ActiveX technology. The United States Computer Emergency Readiness Team, a division of the US Department of Homeland Security, has noted numerous critical security flaws in ActiveX, including in MySpace and Facebook, which could allow an attacker to take control of your computer. They "are currently unaware of a practical solution to this problem", and therefore recommend that you disable all ActiveX capability in Internet Explorer. They give instructions to do so, but an easier solution is to use a browser like Mozilla Firefox that inherently does not support (run) ActiveX programs. You will still need Internet Explorer and its ActiveX to get the latest Windows security fixes from the Microsoft Update page. These are issued the second Tuesday of each month and you need them for your safety. Other than that, Internet Explorer and ActiveX are unsafe and should not be used.
The automatic updating of your Java can be controlled if you like. Going back to playing the Text Twist game, you will see a Java icon in at the bottom of your screen. I think it's supposed to represent a cup of coffee ("Java"), but it's two blue lines with a red thing above. The large version is shown in this article. If in doubt, hover the mouse pointer over it and it will say "Java (TM) Platform, Standard Edition". Right-click this icon, then click "Open Control Panel". Click the "Update" tab. If you wish, you can uncheck "Check for updates automatically". However, these updates too may be for security reasons, so it's probably better to continue to allow them and install them. has made the common error of confusing Java and Javascript. As Cynic783 points out, these are two completely different technologies. The reasons for this unfortunate confusion can be found in the Javascript article if you are interested. The important thing is that Javascript is also dangerous, the source of many current security issues for all Web browsers. The aforementioned US-CERT recommends adding the NoScript program to your Firefox browser. With this free addition, you can disable all Javascripting by default. When a trusted site (your bank) wants to run a Javascript, you can click and verify that it comes from the trusted source and allow it permanently (it won't have to ask you again). When a site (like Yahoo email) tries to run scripts from multiple sources, you can allow the script from Yahoo while forbidding the script from or This ability to discriminate among scripts coming from the same Web page is not available in Internet Explorer.
I'm not connected with Sun Microsystems, Mozilla/Firefox, or NoScript. I'm just another dumb user trying to stay safe in a shark-infested Internet. All of the above is free software and the POV is that of the US Dept. of Homeland Security. I agree that these articles should be more accessible to average users. Hope this helps. (talk) 10:54, 19 February 2008 (UTC)
What chromium? Java now obsolete because OS support the concept of sandboxing... (talk) 21:19, 9 June 2009 (UTC)done

Java or Java Script?

Should it be called Java or should it be called Java Script? 12:09, 12 November 2007 (UTC)Kinz

The programming language is called Java. JavaScript is a scripting language used mainly for web page functionality. Java is not JavaScript - JavaScript was confusingly named to play off of the Java name.

I've not checked, but as the two are distinct entities, JavaScript should have it's own page. Minkythecat (talk) 13:56, 11 March 2008 (UTC)

JavaScript is formally a ECMAScript dialect (the first and original dialect). They have their own articles. Said: Rursus () 13:16, 20 October 2008 (UTC)

I would like to say something: JavaScript is very loosely based off of the Java language, however, it is its own separate entity and programming language. So, in regards to the argument of should this article be Java or JavaScript, it should be Java because JavaScript has its own language (similar to java, but not in its functions and their execution). --TrekCaptainUSA (talk) 14:38, 20 October 2008 (UTC)

No, Javascript is very loosely based off of C and C++, while Java is much closer to C/C++. Neither has inherited anything from the other. You are correct, though, that Javascript should only be mentioned in the article for the purpose of clearing up confusion. Incripshin (talk) 19:12, 29 July 2009 (UTC)

Java Updated

I have just updated my Java Script. 12:22, 12 November 2007 (UTC)Kinz

Javascript is a separate language with different syntax. I have never heard anyone say they have just updated their Java script...they say Java app or applet or class or jar file. I have been developing Java software for 11+ years.Cynic783 18:15, 14 November 2007 (UTC)

Also, scripts tend to not have much boiler plate code, which means Java programs can never be called scripts. Incripshin (talk) 19:14, 29 July 2009 (UTC)
WP:POV. Talk pages are for trying to improve articles, not throwing inconsistent personal opinions. Hervegirod (talk) 22:04, 29 July 2009 (UTC)
I agree that java does have a very large amount of boiler plate code if done properly, IE using get and set methods for each object and so on. I mean there is code that is written that just doesn't need to be in there for every program, but it is required for syntax sake. Like the static main being in an object for a program that doesn't even do dynamic allocation, but to have local variables you have to .... yada yada yada ... cut and paste. —Preceding unsigned comment added by (talk) 02:51, 30 July 2009 (UTC)

Bad OOP example

I think the OddEven class is a bad OOP example. It is a bad practice to take user inputs from a constructor. I suggest that the constructor should be changed to take an int as parameter and the user input is taken from the main method. Chinhnt2k3 (talk) 04:48, 17 November 2007 (UTC)Chinhnt2k3

I tried to improve the example a bit. Hervegirod (talk) 12:38, 17 November 2007 (UTC)
Good job! Maybe you should update the explanation below it too Chinhnt2k3 (talk) 07:32, 20 November 2007 (UTC)Chinhnt2k3

"Java Class"

There is a random section, the first one, in fact, called "Java Class," explaining that anyone considering taking a Java class should not, especially "if it is the last class of the day." I am having trouble getting rid of it. Franciscoh (talk) 18:54, 21 November 2007 (UTC)

Too technical

Wiki is great for getting a quick and dirty definition (that may take hours to research via the web) - except for technical matters! I would like to urge the techies to try to speak English - at least for the intro to their topics. I hear about Java all the time, but have no idea what it is. This page on Java doesn't help. The very first sentence should explain what Java is - because that is why we are coming to wiki to search for it. How do i tell if a web page i'm looking at is written in Java or something else? torus742 (talk) 06:28, 19 January 2008 (UTC)

It explains that Java is a programming language. Programming languages have a great deal of uses, only one of which is writing web pages. There's no definitive way to tell what language a web page is "written in"; it can be manually created by an author with HTML, or it can be generated by a web server which runs programs written in Java or PHP (amongst others). There's only so much an article lead can be simplified when it deals with a complicated subject; a panda can be explained as a big bear-like thing which lives in China, because "bear" and "China" are pretty familiar concepts to people. Web servers and language compilers aren't, but it's all we can define programming languages in terms of. Chris Cunningham (talk) 10:58, 19 January 2008 (UTC)

Missing topics

I miss a topic about the evolution of Java, it's many versions, and what changed between them. A timeline would also be great. Ramiro Pereira de Magalhães (talk) 17:49, 29 January 2008 (UTC)


These are far too detailed and far too much like tutorial content. They should all be removed, and only snippets should be re-added if absolutely necessary. Chris Cunningham (not at work) - talk 19:16, 14 March 2008 (UTC)

Totally agree. People would look at this page to find out about Java the language, not for programming examples. Minkythecat (talk) 13:12, 30 April 2008 (UTC)
I agree as well. Though I do think the "Hello World" program should be kept (maybe a program for each section, just to show the differences?). Also, along with the extraneous programs, the explanation of each one (to the point where the explanation is 5 times longer than the program) should be eliminated. --Tustin2121 (talk) 21:18, 9 June 2008 (UTC)

I think the "Swing application" example need some fixes:

  • WindowConstants.EXIT_ON_CLOSE -> EXIT_ON_CLOSE
  • setLayout(new BorderLayout()); can be removed
  • new Hello().setVisible(true); should be launched on EDT using SwingUtilities.invokeLater
my take on your proposal:
  • WindowConstants.EXIT_ON_CLOSE : You are technically right, but I think it is clearer to see WindowConstants.EXIT_ON_CLOSE here (it's then clear that you use a particular swing constant, not some magic thing coming with JFrame)
  • setLayout(new BorderLayout()): on one hand it adds some unneeded complexity to a Hello World program (what is a BorderLayout, etc..), but on the other hand approx. every Swing program has to use layout managers at one point, so I don't know what's better
  • SwingUtilities.invokeLater: I think your proposal would add unnecessary complexity. There is no no action here, so I don't think it is a good thing to add this (we should keep a Hello World program simple, and it is not needed here IMHO). Hervegirod (talk) 21:30, 29 October 2008 (UTC)


This section should be removed: It is clearly POV, and using a very old reference (Java 1.2.1, benchmarks seem to be from 1999) whose conclusion are also very questionable, even at the time. Some quotes:

  • In terms of run time and memory consumption, (scripting languages) often turn out better than Java and not much worse than C or C++. On the contrary, the last Computer language Shootout shows a factor 13 between Java and Python or Perl, 29 between Java and Tcl, 15 between Java and PHP, etc... I don't present the figures with C / C++ because it would be ridiculous,
  • The article deal with some very specific types of programs (string manipulation and search in a dictionary). The section makes a generalization that is not in the original source conclusions.
  • It is an interesting observation that despite the existence of hash table implementations in both the Java and the C++ class libraries none of the non-script programmers used them (but rather implemented a tree solution by hand) : I never saw anyone redesigning by hand collections implementations in Java since a lot of years, except for very specific cases (for example Hashtables with an exceptionally huge number of key-value pairs)
  • In contrast, essentially all of the non-script programmers chose either of the following solutions. In the simple case, they simply store the whole dictionary in an array : No real Java programmer would do that. I bet that they asked C programmers with no experience in other languages do the programming in Java (which I may understand, there were less Java programmers in 1997 !!)
  • The Java work times appear to be a bit pessimistic, probably due to the lower language experience of the 1997/1998 Java programmers. : sic !!!
  • Even in the group-aggregated view with its much larger groups, the difference between C/C++ and scripts is not significant, only Java is less productive than scripts. Hervegirod (talk) 22:25, 18 March 2008 (UTC)
Finally removed this part, we need to find a reference which is less flawed and also deals about a version of Java greater than Java 1.2.1 Hervegirod (talk) 09:28, 29 March 2008 (UTC)


Wow! did you see the shoot out results. Java 6 static was as bad as 30 times worse than C. I could tell by using java that it wasn't good but ouch! (talk) 02:56, 30 July 2009 (UTC)done

You already quoted this in the article, but your example is not significant. You used the specific Java -Xint results of the shootout. -Xint is purely interpreted Java, meaning no JIT, meaning performance of the 90's era for Java. On the contrary, it shows Java performance has improved a lot over time. But I don't think this is even worth mentioning, because comparing nowadays Java using Hotspot / JIT with interpreted Java is comparing apples to rice noodles (oranges are closer) ;) Hervegirod (talk) 21:57, 30 July 2009 (UTC)

The article claims:

Dynamic recompilation can achieve optimizations superior to static compilation because the dynamic compiler can base optimizations on knowledge about the runtime environment and the set of loaded classes, and can identify the hot spots (parts of the program, often inner loops, that take up the most execution time)

This is bogus. You can profile a static compiled programm and give this input to your compiler to recompile your programm with this information. —Preceding unsigned comment added by (talk) 23:11, 14 May 2008 (UTC)

GPL license.. which version?

The article is ambiguous in its reference to GPL. I see some press releases from 2006 that say that its released under the GPLv2 but then Sun relicensed OOo under the GPLv3 recently. Is this still GPLv2? (talk) 07:21, 28 July 2008 (UTC)

According to Java is provided under the "Sun Binary Code Licence Agreement." —Preceding unsigned comment added by (talk) 13:13, 4 August 2008 (UTC)
Java is released by Sun under several licenses: Because Sun owns the copyright for the open-source code base, Sun is able to license each copy of this code base distributed by Sun, under any license, including a commercial software license. This right is inherent in copyright law. Several Free and open-source communities also follow this practice. (see FAQ here. It means that you can download the regular JDK under this proprietary binary code license agreement, but also, as OpenJDK, under GPLv2. Hervegirod (talk) 18:44, 4 August 2008 (UTC)

Java and wikimedia software

If anyone is kind and has a moment, I'm just wondering if you could point me in the right direction, perhaps to a help page or FAQ somewhere: I want to put a java menu on the mainpage of a wiki. I'm very new at this. I don't know how this might be done in a wiki. Everything I do either breaks it or just doesn't work. ——Martinphi Ψ Φ—— 06:10, 15 August 2008 (UTC)

Reference POV

Can this reference possibly be anymore POV.

"I didn't bother debugging the C++ because I didn't know how."

Please. —Preceding unsigned comment added by (talk) 21:53, 20 August 2008 (UTC)

You're kidding? But it says it's the "The Java is Faster than C++ and C++ Sucks Unbiased Benchmark" o_O;; You're absolutely right. Removing it. Mfb52 (talk) 07:47, 22 August 2008 (UTC)
Thank you, now if we could just get java programmers to realize that 90% of the JRE code is written in C and C++, thank you GNU and the Gimp toolkit and so the whole comparison of Java to both C and C++ is really just shooting themselves in the foot.
"We've added subpixel font rendering and improved our GIMP Toolkit (GTK+) and Windows look and feel."
Ah, but what can be expected from the language that was designed to replace COBOL. —Preceding unsigned comment added by (talk) 16:13, 22 August 2008 (UTC)


It looks to me that the Criticism section of this article is written in a very defensive tone. Instead of stating the criticisms of Java in a neutral light, it looks like it was written by a single user to defend criticisms that other people have made. This needs to be fixed, if Java is really as great as the current Criticism section makes out then it shouldn't need to be defended like that. (talk) 12:54, 25 August 2008 (UTC)

There's no need to have a "criticism" section at all. The various criticisms should be addressed in the course of the article, not lumped into one place for random people to air their grudges with the language. Chris Cunningham (not at work) - talk 13:26, 25 August 2008 (UTC)
I see this continuously with Java, a theoretical concept with large gaps between the theory and practise. This article conveniently forked the conversation Java language and theory and Java JRE or impelementation. Ultimately I have only ever used one or some online simple applets, and a java student web protal, which has been replaced, so in the course of my computer experience java plays a very small role, and I believe this to be the case with most computer users experiences. Yet Java is very extensively taught at most universities to undergraduate business students. The language is continuously changed by the business sector, and is not standardized, so arguing against any one point and there are very many, is probably useless as is java.
Too easy for beginners and too difficult for professionals, I suggest this article "Keep It Simple!" Discussing the language with a proprietary standard is useless, eliminate the philosophical section about the language, and focus on the chronological development of the JRE, and giving credit to the GNU libraries that were used in the construction. (talk) 16:20, 25 August 2008 (UTC)done
Not gonna happen. Chris Cunningham (not at work) - talk 17:42, 25 August 2008 (UTC)
Sure it is with their fingers. (talk) 19:11, 25 August 2008 (UTC)done

Abstract Syntax

Since many languages can be compiled to a Java Virtual Machine. The operational definition in the last sentence of the first paragraph, needs to be rephrased. 1) Many languages Ada, C, C++ can be compiled to run on the JVM. 2)Java can be compiled directly to machine code.

Furthermore for the naive reader, Virtual Machine may be better discussed elsewhere in the article, since to understand the first paragraph, one would already have to be familiar with the Virtual Machine. —Preceding unsigned comment added by (talk) 19:52, 27 August 2008 (UTC)

Yes, it's true that many language may run on the JVM, but that's not relevant to the lead section of the Java article. It's certainly appropriate to the JVM article, and indeed, it is mentioned in the lead there.
I'm afraid that that would make this article NPOV.
I guess it's also true that Java may be compiled to machine code, but this isn't common practice, not by a long stretch. The lead describes compilation to JVM bytecode as "typical", which I think is all that needs to be said at that point, as the lead is supposed to be a synopsis, not an enumeration of all possibilities.
The JVM is described at the JVM article, which is linked in the lead. An in-depth discussion isn't appropriate for this article, because it's not a part of the language. However, you're right, perhaps a brief summary of what a JVM is may help set the scene a little better. Oli Filth(talk|contribs) 19:59, 27 August 2008 (UTC)
If it is not possible for the sake of brevity to enumerate all the problems with a statement, then it is better not to say it, IE that sentence should be removed because there are problems with its validity. Is it a definition wiki of Java for java programmers or a wiki of java for the rest of us? —Preceding unsigned comment added by (talkcontribs) 21:18, 27 August 2008
I'm not sure you necessarily understand what WP:NPOV is about. It is not about mentioning things that are irrelevant (e.g. the fact that Ada compiles to JVM is irrelevant to an article about the Java programming language). It is also not about providing equal weight that are overwhelmingly less common that the norm (e.g. compiling Java to machine code), especially in the article lead; see WP:UNDUE and the like.
The sentence as it stands is completely valid, as it is completely true, and doesn't purport to be a "definition". I see no reason to remove it. Oli Filth(talk|contribs) 20:27, 27 August 2008 (UTC)
Are you trying to wiki Java or wiki wiki lets talk about relevance and NPOV. I said that if you can't enumerate everything that is wrong with a statement then you better not say it. Java is not the end all be all language... Java is not the definition of language, Java is a subset of Computer Languages, and as are most Computer Languages architecture independent so is Java. This concept is very relevant to this article. If Java is not a computer language what is this article about anyway?
Please prove that any other language is architecture dependent? —Preceding unsigned comment added by (talkcontribs) 21:51, 27 August 2008
I have no idea what your point is, if indeed there was one at all. What on earth does "Java is not the definition of language" have to do with anything? If you have nothing useful to say, I suggest we terminate this discussion. Oli Filth(talk|contribs) 21:03, 27 August 2008 (UTC)
Furthermore, you've still failed to provide any meaningful reason for why this sentence should be removed. So please stop removing it. Oli Filth(talk|contribs) 21:13, 27 August 2008 (UTC)
Nothing from nothing leaves nothing. (talk) 21:23, 27 August 2008 (UTC)done

Compiled vs. interpreted

Deary me, are we really having this discussion?

Typically, Java source code (i.e. the stuff you write your application in) is compiled to Java bytecode. The bytecode is then interpreted by the JVM. This is obvious from the fact that one has to run javac (the "Java compiler") on the source code before you obtain something that's executable by the JVM. To say otherwise is incorrect, no matter what that early reference says (look, I can find a reference that disagrees with yours: [4] !), and contradicts the article later on (Java (programming language)#Platform independence). Oli Filth(talk|contribs) 16:38, 29 August 2008 (UTC)

Now we are getting somewhere perhaps. I will remove the philosphy section supported by the contradicting reference. done128.206.82.41 (talk) 16:44, 29 August 2008 (UTC)
Nice Oli, bot my account. Sure philosophy section says its supposed to be interpretted but its not. I still conclude that Java is bad. Get a real language! done128.206.82.41 (talk) 16:59, 29 August 2008 (UTC)
Bots are automated; nothing to do with me. Oli Filth(talk|contribs) 18:42, 29 August 2008 (UTC)
Well I guess whatever you say and a buck will buy you a cup of java. done (talk) 18:46, 29 August 2008 (UTC)

Automatic memory management

I think this section can be largely removed/rewritten, the second paragraph is useful but the majority of the rest is general information on garbage collecting (i.e. not java specific) and/or has too much comparison with c/c++. Superfly Jon (talk) 10:08, 10 September 2008 (UTC)

Primary goals v cite

The five primary goals listed in the article don't obviously match the 5 goals listed in the citation given? Regards, Ben Aveling 04:45, 10 September 2008 (UTC)

I agree that it doesn't seem to match exactly. Here are the paragraph headings from the article:
  1. Simple, Object Oriented, and Familiar
  2. Robust and Secure
  3. Architecture Neutral and Portable
  4. High Performance
  5. Interpreted, Threaded, and Dynamic
The first 3 roughly match points 5, 4 and 2. Point 1 is also covered in the first part and point 3 seems wrong. None of the points mention high performance.Superfly Jon (talk) 10:07, 10 September 2008 (UTC)
These are all goals that C and C++ have already attained, and are all short falls of java except perhaps interpreted.
Using goals as facts is a fallacy, garbage collection is not DYNAMIC! done128.206.82.41 (talk) 18:56, 11 September 2008 (UTC)
Also note that no where is Java designed to work well with other languages.
  1. C and Java are simple, C++ is not. Neither C nor C++ is really OO. Java basically is OO, pretty much. C is familiar, C++ gets pretty weird in places. Java is pretty familiar, though it seems to get a bit weirder with each new release - arguably, as it tries to be more like C++.
  1. Java too easy for beginners too difficult for professionals.
  1. No language that allows ints and pointers to be used interchangeably is robust or secure (but you can still write robust and secure programs in them).
  1. I thought you meant secure from hackers. But really we meant secure from poor programming. Why is it that all the Java programs require relaxing of my security standards?
  1. C and C++ are reasonably portable, but not completely. For example, resolving a null pointer isn't fatal on some platforms. C/C++ are certainly are much less architecture neutral than Java - they need to be recompiled for each new platform. For a large program, that's not a trivial exercise, though it's probably better than it used to be.
  1. bottom line is if C and C++ is portable Java isn't portable, thank you JRE. I think you are confusing portability with cross platform. Java doesn't have compiler directives, so you can't port it, or you can port it but you have to maintain two different version of said program, which is definitely not portable.
  1. Yes. C beats Java hands down. C++ also, unless your programmer goes too deep into the box of magic tricks.
  1. I can link C libraries to my C++ code so fast you can't imagine, so there is always a way to get it done fast, the line between C and C++ is faint, unlike Java where it is a memory management nightmare, every object has to be wrapped and unwrapped to get C to work with Java, and then you still have issues of in Linux its a .so file and Windows its a DLL, and there doesn't seem to be a way to tell Java that hey you need to load a different library ... see portability point above.
  1. Interpreted has pluses and minuses. Java threading is out of the box. Dynamic, I'll let you decide.
  1. Java still can't decide interpretted or compiled, it disagrees with the lead of the article.
Regards, Ben Aveling 20:59, 11 September 2008 (UTC) (talk) 16:47, 12 September 2008 (UTC) done, this is not a general discussion forum for you to vent your issues with Java. Please either keep your comments solely to discussion of direct improvements to the article, or else stop derailing threads which are. Chris Cunningham (not at work) - talk 17:39, 12 September 2008 (UTC)
Are you suggesting a meta conversation? Or do you have someother point about java that I'd like to pick apart? (talk) 18:00, 12 September 2008 (UTC) done
No, I'm warning you to cease using the talk page to "pick apart" people's comments about Java. Doing so in a way which is not conductive to article improvement is a distraction from the project's goal, and will get you blocked. Consider this to be yet another final warning, to go with the handful you've already picked up for your disruption here. Chris Cunningham (not at work) - talk 18:10, 12 September 2008 (UTC)
Java is not a nice program in the sense that it ships in preemptive task mode. done (talk) 20:47, 12 September 2008 (UTC)
I agree completely with user:thumperward. It is completely out of the subject. It is like saying "Red is not nice because it is not White". Hervegirod (talk) 13:52, 13 September 2008 (UTC)
Actually preemptive task switching is relevant to the discussion of measuring performance of a language. A program can gain apparent performance by starving other processes of system resources. So comparing a java program to a C program is not accurate, as Java may be receiving more system resources, and even causing lowlevel IO to appear faster since java doesnt wait. Preemptive task switching also has the negative side effect of causing the entire system to appear to thrash, when in fact it is one poorly programmed Java program. Other programs that are guilty of this are MySQL. In gerenal programs that ship in this mode or use this behavioural marketing tactic are considered "Not Nice". done (talk) 14:42, 13 September 2008 (UTC)
Preemptive task switching is at the basis of all modern Operating Systems, in whatever language they are programmed. You may think its cool to throw your own personal war using alternate IPs, but it's not. You should stop this now. Hervegirod (talk) 16:23, 13 September 2008 (UTC)
Preemptive task switching is good for OS's, and bad for third party web applets written in languages like Java. I see the point that Java ships what equates to an operating system for the JVM(add a couple gigabytes per version might I add), however there is still no way to run Java programs at different priorities within the context of the JVM the scheduler just isn't there. It is also true that this is a cross platform issue in that java is not nice in all operating systems, and OS programmers have had to make explicit attempts to keep java from not only using high priority scheduling for all of its threads, but also locking other resources. I also believe attempts to obscure such issues to be bad faith evangelism, that happens to effect all processes not just java. Sorry about the IP, maybe if my service provider didn't charge extra for a static IP, I wouldn't have to worry about it. (talk) 16:22, 14 September 2008 (UTC) done
As for the dynamic IP, it would be much better to create an account, the actual state of your contributions appear as dubious, even if they are not.
A weakness in wiki or a strength in java, I don't understand what you are talking about.
BTW it is possible to assign priorities to Java threads (see here).
Priorities to threads not to programs. IE there is no way to set an entire java program at any other prioity compared to other java programs, (can you imagine running more than one java program simultaneously?).
If you don't assign a priority to a Thread, it has by default a normal priority (not the highest as you wrote).
This is for the thread priority. The Java JRE still runs at high priority in the OS kernel as was standardly shipped, which is by definintion Not Nice, just like if I were to run all my java threads in high priority... Not Nice.
Yes but the Java Freezing behavior for Applets is not coming from the Threading behavior of the JVM, but to the fact that the Applet code must be downloaded prior to execution, and also because of the initialization of the virtual machine (on my PC PDF documents take more time to open than Java applets, I think more or less for the same reasons). If you find reliable sources saying the contrary, I have no problem with that, but for now it looks like POV to me. Hervegirod (talk) 17:17, 14 September 2008 (UTC)
What java freezes my computer no way dude, do the marketroids let you say that? All I am saying is that it would take a little longer for java to load, but it wouldn't lock my computer and cause my system to drag if it weren't shipped in high priority mode. done (talk) 14:28, 15 September 2008 (UTC)


warning, java newbie alert!

under "Java Platform" theres a sentence...

"AOT could give Java something like performance"

is there meant to be a word between "like" and "performance" and if so what?

thanks The Elves Of Dunsimore (talk) 05:42, 20 October 2008 (UTC)

I think the sentence is jargon, treating an objective measure, "performance", like a quality ranking. I understand it immediatelly, but cannot say what's missing, the word could be "acceptable", "good", "better" or some such. Said: Rursus () 14:05, 20 October 2008 (UTC)
well now i've thought about it a bit i think it probably means to say "AOT could give Java something like the performance a more traditional compiler would give". what do you think? The Elves Of Dunsimore (talk) 01:10, 21 October 2008 (UTC)

Poor or Irrelevant Examples??

The section Examples is marked {{examplefarm}} but nobody tells us why, on this talk page. That's poor templating! Now are the examples poor? IMHO: Maybe – I got warnings when compiling them with gcj, but they executed. They're IMHO not so poor, but needs improvement. Are the examples irrelevant? IMHO: somewhat – they happened to be exactly what I needed, just now, thank You very much someone, but they belong to Java applet and Java servlet, technically – they don't explain the language Java, which IMHO is what the article should treat. Have opinions! (Or if hungry: onions). Said: Rursus () 13:27, 20 October 2008 (UTC)

i agree (mostly), when reading the examples they where just what i wanted so i'm going to delete the tag. but i'm slightly confused by your comments cos the applet/servlet stuff is under a different section, ie Special Classes which seems fine to me. tho i'd probably like to see those examples in the Java applet and Java servlet pages too. cheers. The Elves Of Dunsimore (talk) 01:17, 21 October 2008 (UTC)

I think this article should include instance methods

I think this article should include instance methods, such as operators, import statements, import statement locations, dot notation, and the API. —Preceding unsigned comment added by (talk) 00:28, 19 November 2008 (UTC)

Nothing on Android?

While there are many folks who feel that Android is not "pure Java", I think it warrants a mention because Android has numerous constructs from the Java language, including its syntax. I also think Java users would be interested in hearing about Android if they're not already familiar with it. —Preceding unsigned comment added by Wikigameshow (talkcontribs) 18:29, 19 January 2009 (UTC)

Improved Hello World Example

The Hello World example should demonstrate object creation and the calling of an instance method. It should also probably have a field. Alas a balance between example and brevity must be struck.

 * Outputs "Hello, World!" and then exits
public class HelloWorld {
    public void greetWorld(PrintStream stream) {
        stream.println("Hello, World!");
    public static void main(String[] args) {
        HelloWorld worldGreeter = new HelloWorld();

--DataSurfer (talk) 11:00, 15 January 2009 (UTC)

Would this be overkill?
package org.wikipedia.examples;
import;  {{subst:Unsigned|1=DataSurfer|2=11:24, 15 January 2009 (UTC)}} <!--Autosigned by SineBot-->
 * Outputs "Hello, World!" and then exits

public class Greeter {
    String salutation;
    public Greeter(String salutation) {
        this.salutation = salutation;
    public void greet(PrintStream stream, String target) {
        stream.println(salutation + ", " + target + "!");
    public static void main(String[] args) {
        Greeter englishGreeter = new Greeter("Hello");
        englishGreeter.greet(System.out, "World");

--DataSurfer (talk) 11:08, 15 January 2009 (UTC)

IMO, no. In general, a Hello World example should be the simplest possible program that displays "Hello world". Oli Filth(talk|contribs) 19:30, 15 January 2009 (UTC)

Eh I think that a simple system.out statement is easier. This is not a friendly welcoming to java for beginners. (talk) 21:46, 1 May 2010 (UTC)armynavy123


I've heard both ['dʒɑvə] (American) and ['dʒævə] (Canadian). I'm pretty sure the American pronunciation is closer to the original since the real name of the island, Jawa, is awkward to pronounce the Canadian way. Incripshin (talk) 19:00, 29 July 2009 (UTC)

Oracle vs. Google

It seems the Davlik text in the primary paragraph is a little preliminary in light of the Oracle Google law suit. —Preceding unsigned comment added by (talk) 16:43, 11 September 2010 (UTC)

User spreading unsourced POV views on the article

An unregistererd user signing doneon many of his contributions (he is often using Special:Contributions/ IP) is spreading FUD on Java performance, and repeatedly revert other people edits in order to give his own personal view. He is obviously convinced that Java is very slow compared to C, and has started to modify this article according to his own views. He has recently edited (and already reverted) the Performance optimizations paragraph with the sentence: "however there are cases where Java is more than 30 times slower than C"[1]. The problem is that the benchmark he quote compares GNU GCC with Java with the -Xint flag, so with purely interpreted Java. When I reverted this with this explanation, he replied on the Talk page:You obviously didn't read the reference. There is also a server mode. This article reports best case scenario, there are also worst case scenarios (which he did not provide of course). I don't want to engage in an edit war, but I think that something needs to be done to stop his WP:POV behavior on this article. Hervegirod (talk) 22:15, 30 July 2009 (UTC)

Is someone maybe going to protect the article then so he can't edit it and is forced to get a real username to edit on Wikipedia? --Tustin2121 (talk) 14:51, 31 July 2009 (UTC)
I am glad I didn't donate to the wiki if this is the kind of article that is promoted. Maybe I should file litigation with the wikipedia for spreading false information about the performance of computer language. I have used java and seldom is java, "as fast" as C, in fact I know there are simple programs that can stump java and take many minutes compared to seconds with C. I think the Ubuntu shoot out is a good article that compares many languages. I also believe that this is a marketing based article. If you look at people like Olifilth and cybercobar, you will see that they actually are or were paid by Sun. This is not a marketing brochure. —Preceding unsigned comment added by (talk) 18:52, 31 July 2009 (UTC)
You have the right to think what you want about Java or any other subjects, but wikipedia is not about what editors think. Original research and Personal views are banned here. Also speculating on the real life identity of another editor may constitute WP:OUTING, which is a serious offense here. I strongly advise you to stop this. This means you should immediately revert your speculation about their identities from the Talk page. Hervegirod (talk) 22:28, 31 July 2009 (UTC)
I didn't speculate it is on their wall. And meat puppets are prohibited. —Preceding unsigned comment added by (talk) 03:35, 1 August 2009 (UTC)
Sorry about that only thumperward, also known as chris cunningham is sun microsystems, I think Oli used to be but his page no longer has anything on it. —Preceding unsigned comment added by (talk) 03:41, 1 August 2009 (UTC)
I don't know where you got that idea from! I have never been employed by Sun, nor did it ever say so on my user page... Oli Filth(talk|contribs) 08:43, 1 August 2009 (UTC)
Ditto. Ironically, I dislike Java on the whole (I'm a Python guy myself, as referenced by my username); but I recognize that doesn't merit making its article potentially biased/inaccurate. But more relevant than any possible POV-pushing, the problem was that sources/sourcing weren't being followed quite closely enough. --Cybercobra (talk) 09:13, 1 August 2009 (UTC)
Sigh still having this converastion still thing java is fast as C yadda yadda, it all comes down to rate of fire. The bottom line is C is faster in every case, every time. You want to discuss more lets go. Not original research not personal experience its just plain Sun garbage, and the prosyltization. Do they really call them java evangelists, yes they do. —Preceding unsigned comment added by (talk) 03:48, 1 August 2009 (UTC)
I have signaled your behavior to the noticeboard. Hervegirod (talk) 08:54, 1 August 2009 (UTC)
That seems a tad excessive, although I agree he violated wikiquette in the above comments. --Cybercobra (talk) 09:18, 1 August 2009 (UTC)
I consider WP:OUTING a serious offense. The outing attempt is the only reason I put it on noticeboard. Hervegirod (talk) 09:42, 1 August 2009 (UTC)
Whats the matter Herv you want to be anonymous? —Preceding unsigned comment added by (talk) 15:46, 1 August 2009 (UTC)
quote from WP:OUTING: Posting such information about another editor is an unjustifiable and uninvited invasion of privacy and may place that editor at risk of harm in "the real world". This applies whether the person whose personal information is being revealed is a Wikipedia editor or not. It also applies in the case of an editor who has requested a change in username, but whose old identifying marks can still be found. Any edit that "outs" someone must be reverted promptly, followed by a request for Oversight to delete that edit from Wikipedia permanently. Hervegirod (talk) 16:40, 1 August 2009 (UTC)
Look those are wiki's rules, if people are allowed to maintain an anonymous stance about questionable material, then wiki is responsible for the content of the web site. IE if the person spreading the misinformation IE java performs as good or better than C with no qualification about its severe performance deficits, then Wiki is liable for the spread of misinformation. —Preceding unsigned comment added by (talk) 17:36, 1 August 2009 (UTC)

Furthermore, while it is some people's job to evangelize and sell Java. It is not my job to correct the eroneous statements. I shouldn't have to do it, it makes me upset that the wiki resource is being used in this manner, and I don't care if I upset people using the resource for the purpose of evangelizing Java. —Preceding unsigned comment added by (talk) 18:15, 1 August 2009 (UTC)

Get a good language to sell. —Preceding unsigned comment added by (talk) 19:10, 1 August 2009 (UTC)
I reverted a couple more edits from (talk, who seems intent on slanting the article to their own POV. The "evangelism" stuff is inappropriate to an article describing a program language; if Sun/Oracle is engaged in Java "evangelism" (and, as Java is a part of their product strategy, they probably are to the extent of "advertising" it), anything notable about this activity is more apropos to Sun/Oracle company pages than to a general description of a language that has also been implemented by independent FOSS projects. If there are issues with the wording of the performance section, go to town on fixing it, but the info that's there pretty much matches up with what's been published. evildeathmath 15:48, 23 September 2009 (UTC)
This seems to have be reverted again by the IP user; I have at this point incorporated the one actual fact from the "Evangelism" section into "History" (a quote from Rich Green that I'm not actually sure is all that relevant), and removed the rest, which remains idle speculation about what "some" may "believe". The IP user has also removed half of the performance section again; since the missing paragraph is an exact duplicate of part of the lede of the Java performance article, I've left that alone other than restoring the link to Java performance. evildeathmath 20:06, 23 September 2009 (UTC)

Comparison of ABAP and Java

This article was proposed for deletion on the grounds of unfixable original research. I deprodded as it seemed to me that a comparison between the two was reasonable, but I don't know enough about computer programming to properly assess and fix the article. Any assessments of it and editing would be welcome. Fences&Windows 16:05, 8 August 2009 (UTC)

The problem for me is: these two languages are so different that is it really possible to compare them effectively ? And further: it seems that there is an interest in comparing the two languages because I see that one of the links is a wiki just about this comparison. What are the use cases that make such a comparison interesting, or even switching from one language to another interesting (it is obvious for general purpose languages) ? Perhaps the comparison would be really a useful article if it shows that some of the use cases for the two languages overlap (i.e., for ABAP, because I think hat Java is a more general purpose language) ? I'm not trying to say that one language is better than the other, I'm just asking (even myself) questions that pop in my mind whose answers could improve this comparison article IMHO. Hervegirod (talk) 16:20, 8 August 2009 (UTC)
The idea that java is more general is a farce promoted by naive programmers and Sun executives. Its not more general, becuase it lacks several key features that prevent this.
  1. Java is slower.
  2. Java lacks compiler directives so it isn't actually cross platform.
  3. Java lacks the ability to do memory allocation, see why java is slower.

These are defects in the language itself, and not implmentaion specific, IE a mature language needs to be able to adapted to the environment it is run in to ensure similar behavious, java operates under the assumption that all environements should be the same. There are reasons why some DLL's and SO's operate differently and it is foolish to try claim that they are the same or make them be the same. The one technical reason for using java being that it can be run under a restricted security model is no longer an advantage, since any language can be run in a sandbox with modern operating systems. —Preceding unsigned comment added by (talk) 16:32, 10 August 2009 (UTC)

this is blatant WP:OR and WP:POV. ABAP is a language for programming SAP Web application Server, it seems a little (to say the least) more restricted than Java. It is not a default in ABAP however, the two languages have different use cases. And the article proposal was not even about Java speed, but a language comparison. Hervegirod (talk) 17:22, 10 August 2009 (UTC)
Now at AfD. Fences&Windows 00:14, 15 August 2009 (UTC)

Stuff removed from Boolean data type article

The following section was removed from the article Boolean data type:
begin removed text

In the Java programming language, Boolean variables are represented by the primitive type boolean. The Java Virtual Machine (JVM) abstracts away from the actual representation in memory, so JVM writers can represent Boolean values in whatever manner is convenient (for example, one byte, or one word).

The Java Language Specification does not permit any explicit or implicit casts to or from boolean. Thus, it requires the compiler to reject this code:

int i = 1;
if (i)
  System.out.println("i is not zero.");
  System.out.println("i is zero.");

because the integer variable i cannot be cast to a Boolean type, and the if statement requires a boolean condition.[2]

In Java, boolean values (like other primitive types) can be appended to Strings. This feature provides a default visual representation of a Boolean value (true is displayed as "true" and false as "false").[2]

Another way to use Boolean values is to set a variable type as a Boolean type. This can be done in the following:

boolean i;       //the variable i is boolean
i = true;          //sets the value to true
if (i){
     System.out.println("i is true");
}else {
     System.out.println("i is not true");

boolean used with a switch statement:

boolean i = true;     //we can also set the  value of the variable in the same line that it is being declared
     case true:
          System.out.println("i is true");
     case false:
          System.out.println("i is not true");

end removed text
Is there a place for this text in the Java-related articles? Perhaps in the Wikibook? Thanks, and all the best, --Jorge Stolfi (talk) 23:37, 30 December 2009 (UTC)

Optimized OddEven

import javax.swing.JOptionPane;
public class OddEven {
    public static void main(String[] args) {
	  (new Integer(
		JOptionPane.showInputDialog("Please Enter A Number")
	  ) & 1
	)==0 ? "Even" : "Odd");

I don't think this could help users to understand Java. It looks like something coming from Perl or C obfuscated programs contests. Plus it does not handle inputs that are not integers. Hervegirod (talk) 20:20, 14 March 2009 (UTC)

The aboce given syntax doesn't seems to be correct. Anyone can check and need to correct the code mentioned above.  —Preceding unsigned comment added by (talk) 04:22, 26 November 2010 (UTC) 

Automate archiving?

Does anyone object to me setting up automatic archiving for this page using MiszaBot? Unless otherwise agreed, I would set it to archive threads that have been inactive for 30 days and keep ten threads.--Oneiros (talk) 22:31, 24 January 2010 (UTC)

 Done--Oneiros (talk) 19:48, 27 January 2010 (UTC)

"syntax" merge / examples section

two questions:

  1. what's w/the "merge" notice on the article Java syntax, yet it's linked as a "main article" in the section on this page? i think it should remain separate and be fleshed out.
  2. is the "examples" section supposed to be a subheader of the syntax section, esp. in that it discusses primarily syntax and keywords?

Kevin Baastalk 14:37, 17 March 2010 (UTC)

anyone? Kevin Baastalk 13:33, 31 March 2010 (UTC)
I agree. Java's syntax, though similar to C++'s, warrants a separate article.  dmyersturnbull talk 00:07, 11 April 2010 (UTC)
I also think that merger is inappropriate. I will try to bring the article to the normal size with decent contents based on other languages' syntax pages, it won't look like it should be merged. HotXRock (talk) 12:35, 18 April 2010 (UTC)


Criticism of Java used to be a standalone article (albeit a very stub-like one). With as much Java-bashing as goes on on the Internet, are there really so few legitimate problems with it that this article needs none? I don't see any criticism at all, aside from the description of the garbage collector potentially causing a pause in execution.

Everything has some flaws and thus criticism. In my most humble opinion, some java weenies removed the criticism. I'm not saying we should post stuff like "Java sucks because" and other *bashing*, but we should focus on shortcomings, perceived or otherwise. One legitimate criticism I have is lack of Multiple-Inheritance. If you zip over to the equivalent C++ article, you'll note that this specific feature is a Criticism of that language. Really, it all depends on who you are, what you're doing and why you choose a language. Another criticism is quite simply it doesn't always live up to its "cross platform" claims, as everybody except Windows seems to be lagging behind a whole version (we'll only examine the "mainline distribution" for this particular argument) while they're off developing a WHOLE NEW version. This in my opinion is also a huge failure in them to uphold a basic tenant that they've built their advertising and advocacy upon. So there you have it, two very legitimate criticisms (without citations mind you) that I have to offer. And let's not turn this into a language-war please, I'm merely stating the FACTS about every language having it's pitfalls - perceived or otherwise. (talk) 17:37, 2 September 2010 (UTC)

I am not asking to prove a point; I'm not experienced enough with Java to answer this question myself. Mhoskins (talk) 15:59, 17 May 2010 (UTC)

It got merged, but the merge wasn't executed in the best way, imo. I keep meaning to re-do it myself, but haven't gotten around to it. --Cybercobra (talk) 18:36, 17 May 2010 (UTC)
'Merged'? It was effectively deleted Alliumnsk (talk) 06:59, 17 June 2010 (UTC)
Would anyone care to explain to me why the whole criticism section or article pertaining to Java is completely wiped out? I tried to find the criticism article but it's redirected here and apparently criticism section wasn't merged into this article right here but rather wiped out. Thanks in advance. --Legion (talk) 16:52, 23 July 2010 (UTC)
Er, did you read the above? It was merged (badly) by User:Dmyersturnbull. Relevant diffs:

I think we've got enough XXX sucks articles (pun intended), so why not explore alternatives? Mr T has suggested using Y instead because of ... Hcobb (talk) 18:14, 2 September 2010 (UTC)

The merge was done poorly. I also can't find much discussion about the merge either before it happened. The content was effective removed by effectively working around the standard AfD process. Any one apposed to reverting the redirect and changes to the original page by User:Dmyersturnbull and reinstating the page? From there we can work on fixing it or proposing an AfD if the content is not salvageable. --ZacBowling (user|talk) 15:38, 25 September 2010 (UTC)

No need. All the content is 'salvageable'. Just go to and find the material you want, make sure it's properly sourced and bring it here. Oh, too late, I see you've already undone the community decision. There was no need for that. --Nigelj (talk) 16:18, 25 September 2010 (UTC)
There was no discussion by the community. I undid only to repropose the merger. A bunch of dead links to that page. --ZacBowling (user|talk) 16:35, 25 September 2010 (UTC)

About "write once run everywhere" in the introduction

I am not sure if write once run everywhere should be allowed to continue on wiki.Infact the major problem JAVA faces is that of portability and the slogan should be "Write once debug everywhere" comments anyone? SuperU (talk) 05:28, 24 May 2010 (UTC)superU —Preceding unsigned comment added by SuperU (talkcontribs) 05:19, 24 May 2010 (UTC)

Split Java Examples to make room for content?

Seems like the Java examples are eating up the available space for content and could easily be forked.

Then we could say something about how java is more than just for beginners. —Preceding unsigned comment added by (talk) 00:12, 17 April 2011 (UTC)

Product advertising

The text said "To boost even further the speed performances that can be achieved using the Java language, Systronix made JStik,[29] a microcontroller based on the aJile Systems[30] line of embedded Java processors."

However this is not quite accurate. The text implies that a certain speed is not achievable using Java alone, but that Systronix makes that speed possible. However, such a certain speed is possible using many processors; for example a modern Intel CPU (or even an old CPU) will easily run fast enough to beat Systronics figure of 15M byte codes/sec. —Preceding unsigned comment added by (talk) 04:08, 20 January 2011 (UTC)

Merge Criticism of Java

The following discussion is closed. Please do not modify it. Subsequent comments should be made in a new section. A summary of the conclusions reached follows.
Articles were not merged per consensus below. Guoguo12--Talk--  19:41, 12 May 2011 (UTC)

Back in April, the article Criticism of Java was proposed for merger into this article. However proper protocol wasn't used and no actual real discussion took place that I can find. The merger was then performed, however most of the content was not salvaged in the process (effectively deleted without AfD proposal). For now, I have reverted the redirect on the page to re-propose this merge again. Criticism pages are always difficult monsters on Wikipedia because they attract a lot of bad apples. If it's decided that the content is verifiable and neutral then the page's contents should remain intact, either in its own article or merged into this one. --ZacBowling (user|talk) 16:32, 25 September 2010 (UTC)

I think that merging it with this article is a good idea. Sae1962 (talk) 09:49, 7 October 2010 (UTC)

I dont see a criticism section in Ruby or Visual Basic. I think most good software engineers would see Java lightyears ahead of Visual Basic. Anyway the main criticisms of Java are kind of moot anyway, particularly performance : it lists a big Performance heading, and then the first thing it says is that it really isn't an issue anymore. —Preceding unsigned comment added by (talk) 12:30, 11 October 2010 (UTC)

There is plenty of criticism of other programming languages. For example, C++#Criticism and .NET Framework#Criticism have dedicated criticism sections. Ruby (programming language)#Deviations_from_behavior_elsewhere and Perl has had their criticism integrated into their articles. --ZacBowling (user|talk) 21:07, 12 October 2010 (UTC)

I think merging the criticism with the article was a very bad idea, as the criticism itself seemed to be hidden away, which is a subtle editorializing in and of itself. To me it gave the impression that Java was above criticism, which, again to me, it certainly is not. This was it remains out in the open. Light years ahead of anything? (talk) 09:50, 31 October 2010 (UTC) should be able Java itself. Not the criticism of it, nor lawsuits, etc. —Preceding unsigned comment added by (talk) 16:00, 26 November 2010 (UTC)

This article is already at the size limit thus merging is certainly a bad idea.1exec1 (talk) 20:20, 3 November 2010 (UTC)
I was just going to say, that for size reasons, it is better if the Criticism article is kept separate, but linked up here and there so that a critical eye might "get its pleasures". About's comment: every proficient programmer knows that every programming language is inferior to every other, making all programming languages an equivalence set of general deteriority, and the pain of the programmer. Rursus dixit. (mbork3!) 12:18, 10 December 2010 (UTC)

Against merging. in the main Java article, valid criticism points will get easier "lost" like in former merges Shaddim (talk) 11:29, 29 December 2010 (UTC)

  • Do not merge; given the size, the resulting article would immediately be an excellent candidate for WP:SPLITTING: "If ... a section of an article has a length that is out of proportion to the rest of the article it is recommended that a split be carried out." TJRC (talk) 01:06, 22 January 2011 (UTC)
  • Don't Merge; I agree with TJRC. The "it attracts bad apples" or "its hidden" are strange arguments to merge an article. IHMO, only a valid reason is the size of the article. --MarsRover (talk) 18:50, 14 March 2011 (UTC)
I think that is 2 for vs. 8 against. Close case and remove templates? Rursus dixit. (mbork3!) 15:59, 3 April 2011 (UTC)

The above discussion is closed. Please do not modify it. Subsequent comments should be made in a new section.

External links

I think this link is too specific: "How Java's Floating-Point Hurts Everyone Everywhere, by W. Kahan and Joseph D. Darcy, University of California, Berkeley" and there at least 4 link to oracle's sites (java and sun are oracle sites) I think we can leave only one know that sun is an oracle company — Preceding unsigned comment added by Aludstartups (talkcontribs) 16:41, 20 February 2011 (UTC)


Can there be a numbering section to explain the different versions? (Or the articles themselves clarify which version they are talking about).

The Java syntax page talks about Java 7, but I have no idea what that means. Given the Java 1.6 was launched 40 days ago, it's difficult to understand what Java 7 might be referring to. (talk) 05:02, 26 March 2011 (UTC)

There is an entire article about Java version history: Java version history Is this what you are asking for? It is in the "See Also" section, do you have any ideas on how to make this clearer? Sabbott1877 (talk) 22:50, 6 April 2011 (UTC)

Launching a Java Program

A new section explaining how to "launch" a Java program would be of benefit, with examples across the spectrum from the simple "Hello, world" example, to more complex, "real-world" examples (e.g, use as an example a popular Open Source program). I request this for "launching" a program is mentioned in the article, but no specifics are provided. At a minimum, I would hope for an example "launch" for each code piece that appears in the article. Dan Aquinas (talk) 19:32, 1 June 2011 (UTC)

RfC Doubt about Java name

About a week ago I corrected the origin of the Java name. It was said that it was from a list of random words, while the true origin is from the brand of coffee called Java. The former reference was pointing to a suspicious website, that apparently had a copy of an article extracted from a Sun employee's blog, called Jonathan.

I've got a couple of probable hypothesis:

  • the creators of the previous website copied Jonathan's post, published on their site and linked wikipedia in order to increase their pagerank
  • Sun's employee, Jonathan, was said to spread this false history to "change the past" and avoid legal problems with Java coffee brand
  • me and several hundred websites including are wrong about Java deriving its name from coffee's one

In cases like this, how can we find the truth? if all means go through the web, a few linked websites and a good SEO do the job in creating a new truth, because all investigation goes through first results of a google search.. what do you think about this? Atti (talk) 19:28, 2 August 2011 (UTC)

  • What are the sources? - Atti: can you give some sources for the origin of the name (copied from the word for coffee?). I see the article has one source already, but that is just an online dictionary, which is not the best source. Is there some Java textbook? Or a history of Sun corp? Don't worry about "truth" ... see WP:Truth: the key thing is to find reliable sources (WP:RS) that talk about the origin of the word, and incorporate those, even if they indicate multiple origins. After you find some sources, it will be easy to fix the text in this article to reflect the sources. --Noleander (talk) 21:07, 11 August 2011 (UTC)
Here is one source: Machine vision algorithms in Java: techniques and implementation, by Paul F. Whelan, Derek Molloy, p 21. But it just repeats the coffee story and does not give details from an actual person that was there. It should be adequate, but it would be better to find a book that actually quotes one of the Java creators. --Noleander (talk) 21:12, 11 August 2011 (UTC)
  • Here is another one - Walter J. Savitch, Java: an introduction to problem solving & programming, Pearson Prentice Hall, 2005, p. 22: "The question of how Java got its name does not have a very interesting answer. The current custom is to name programming languages in pretty much the same way that parents name their children. The creator of the programming language simply chooses any name that sounds good to her or him. The original name of the language was "Oak." Later the creators realized that there already was a computer language named Oak, so they needed another name, and "Java" was chosen. One hears conflicting explanations of the origin of the name "Java." One traditional, perhaps believable, story is that the name was thought of when, after a fruitless meeting in which they tried to come up with a new name, the development team went out for coffee, and the rest is, as they say, history." Alex Harvey (talk) 07:43, 18 August 2011 (UTC)
  • Proposed text The origins of the name Java are unknown, but one theory is that it's named after the slang term for coffee. D O N D E groovily Talk to me 23:36, 26 August 2011 (UTC)
Is Java a slang term for cofee? And more importantly does the sources state that it is named after the slang term, rather than the brand name? (talk) 04:45, 24 October 2011 (UTC)
Java coffee Xcrivener (talk) 10:13, 24 October 2011 (UTC)

Version number

here: Java Standard Edition 7 Update 1(1.7.1)

german wiki: 7.0.1

what is right??? — Preceding unsigned comment added by (talk) 13:01, 12 November 2011 (UTC)


Under the "Notes" section their is a refence with an old/broken link .

"17 ^ "JAVAONE: Sun – The bulk of Java is open sourced". Retrieved 2010-06-09."

Bad/old/broken link:

Good link: — Preceding unsigned comment added by LinuxDoooood (talkcontribs) 19:26, 30 April 2012 (UTC)

Edit request on 18 May 2012

Please change the hello world Program for Java in Swing which is not getting compiled even.

Change the line in the code

JOptionPane.showConfirmDialog(null, "Hello World!", "Hello World");


JOptionPane.showConfirmDialog(null, "Hello World!", "Hello World", 0);


Sundarrajan - Java Developer

sundarrajan 04:05, 18 May 2012 (UTC)

I have removed that example on the grounds that it's duplicative and superfluous. --Cybercobra (talk) 05:13, 18 May 2012 (UTC)

Edit Request

In the external uses section, The article claims that Google was found guilty of unauthorized use of the Java API (a claim that is half true). The jury did find that if APIs could be copyrighted, then Google infringed. However, Hon. William Aslup ruled that APIs cannot be copyrighted. So, in the end, Google has been found innocent on all counts. ( has a detailed report) (talk) 23:59, 2 June 2012 (UTC)

Minor update needed to follow legal developments (section "Use by external companies")

Old Text:

On May 7, 2012, a San Francisco jury found that if APIs could be copyrighted, then Google had infringed Oracle's copyrights by the use of Java in Android devices. Oracle's stance in this case has raised questions about the legal status of the language. However, Hon. William Alsup ruled on May 31, 2012, that APIs cannot be copyrighted.[37]

Suggested Text:

On May 7, 2012, a San Francisco jury found that if APIs could be copyrighted, then Google had infringed Oracle's copyrights by the use of Java in Android devices.[37] Oracle's stance in this case has raised questions about the legal status of the language. However, Hon. William Alsup ruled on May 31, 2012, that APIs cannot be copyrighted.[38]

New Reference:


Mazrick (talk) 19:33, 12 July 2012 (UTC)

Write Once Compile twice?

It seems the statement that Android can run Java in the Google section is technically inconsistent with the write once run anywhere statements, since the code has to be recompiled for that platform. — Preceding unsigned comment added by (talk) 15:50, 3 August 2012 (UTC)

Edit Request (July 30, 2012)

The latest stable version is not 1.7.5 but — Preceding unsigned comment added by (talk) 09:07, 30 July 2012 (UTC)

Edit request on 15 October 2012 (talk) 06:18, 15 October 2012 (UTC)

Please be more specific as to what you want to be changed in the article. -- Nczempin (talk) 06:25, 15 October 2012 (UTC)

Controlled by?

"Editons" Controlled by Sun Microsystems?? — Preceding unsigned comment added by (talk) 14:06, 13 December 2012 (UTC)

Edit request on 24 November 2012

add Dart(programming language) to "influenced" in summary area. Sorenbladesinger (talk) 20:44, 24 November 2012 (UTC)

Not done: please provide reliable sources that support the change you want to be made. Callanecc (talkcontribslogs) 10:15, 25 November 2012 (UTC)
  • Also, as influences on Dart, please look at the differences between Java and JavaScript. Andy Dingley (talk) 16:34, 31 December 2012 (UTC)

Edit request on 31 December 2012

Dogoteacher (talk) 16:07, 31 December 2012 (UTC)[ User:dogoteacher] Add link in:

External links

Dogoteacher (talk) 16:07, 31 December 2012 (UTC)

  • oppose Not English language, see WP:NONENGEL. It might be appropriate for es:WP, but not for en:WP. Andy Dingley (talk) 16:29, 31 December 2012 (UTC)
Thanks Dogoteacher, but Andy is correct, so I've closed this request. Adrian J. Hunter(talkcontribs) 10:06, 1 January 2013 (UTC)

Too many examples

I think the article has too many examples and feels to much as a programming textbook. I don't see why there needs to be example code for Applets, Swing GUIs, Servlets with detailed explanations. If you compare it to the C++ or C articles it becomes apparent that the amount of code in the article has to be reduces for readability. What are your opinions on this? -- (talk) 10:25, 15 January 2012 (UTC)

I disagree. I just read this article in full in order to get an understanding of the Java language, and feel that: the source code examples in the Syntax section very much enhance the quality of the article and do not take lengthen the article significantly. I think it is valuable and important to describe the syntax of the language, because syntax is a fundamental component of a programming language. I also think that it would inappropriate to attempt to describe the syntax without examples, and that the examples given are pretty good.
Likewise, I think that the examples in the Special Classes section are each justified in that they describe a significant aspect of Java with minimal and tidy source, and concise comments.
The line between factual exposition and training is grey, and when the topic is a tool, an example or description of its use constitutes both. The examples in the article enhance the factual description of Java in areas which are fundamental to programming languages, and do not, I believe, make the article overly cumbersome or hard to read. For readers without any knowledge of programming, those sections would be hard to read, but the exposition is well partitioned. Articles describing similarly specialised content in different fields typically adopt a similar style, and I believe this is sensible. (Unsigned comment by
I agree there are too many examples (see my comment below that this article is horrible). For this article to be effective,, you would have to be a programmer with considerable experience in another language, who happened not to know Java, and who was terribly interested in often trivial differences in programming syntax. That probably constitutes <1% of Wikipedia's general readers. For the other 99% it's either a boring repetition of what they already know, or an incomprehensible barrage of facts they can't understand and probably wouldn't care about if they could.
I also disagree that this sterile, unidirectional style is common in Wiki articles on biology, sociology, history, economics, ecology, physics .... (talk) 21:03, 28 May 2012 (UTC)

I believe the article is front loaded with examples to prevent criticisms of Java section from expanding, IE the purpose of the extent of the code examples is to take up space so that factually based negative statements cannot be included for example limitations of expression in the Java language preventing portability of code across Java run-time versions either on different platforms or same platforms with different JRE versions, performance of Java implementations, or limitations in the independence of the language specification committee. — Preceding unsigned comment added by (talk) 15:45, 3 August 2012 (UTC)
The amount of criticism in the article is fine. Go look at the C or C++ article and compare the criticism sections. Mm32pc (talk) 20:30, 1 November 2012 (UTC)
I did and if you look at the C++ article, they don't have code examples in the article. I wonder what they have instead, maybe content, but C++ is an older more widely adopted language with more code in use, so maybe they have something to put there instead. — Preceding unsigned comment added by (talk) 20:23, 11 January 2013 (UTC)

Simpler object model than C++

This is clearly true, because of no multiple inheritance. What level of RS do you want to back this up? Hcobb (talk) 02:20, 17 October 2012 (UTC)

I'm not sure if it's 'clearly true'. Sure Java doesn't have M.I., but there's more to an object model than that.
Compared to C it's a no contest - Java has classes for a start, but also inheritance, interfaces, references, different rules for fundamentals and class types, generics, type coercion (auto boxing and unboxing), exceptions and garbage collection.
Compared to C++, Java still has interfaces (instead of MI), different rules for fundamentals and class types, generics instead of templates, type coercion (auto boxing and unboxing) and garbage collection.
I haven't see any RS that says that 'Java has a simpler object model than C++'. There's plenty that say that Java is simpler, but that's another story.
Let me know if you find any decent, clear, RS quotes.
peterl (talk) 04:21, 17 October 2012 (UTC)
It's best to state facts only, such as "in Java, multiple inheritance is only supported for interfaces" (or a clearer explanation than that blurb that just came off the top of my head). Comparing two programming languages on the basis of "simplicity" is very much a judgement call, and it is difficult to avoid WP:OR. Even where WP:RS have stated such things (and assuming there are no other WP:RS that disagree), trying to work such things into WP articles usually involves a lot of WP:Weasel Words; "some say that Java is simpler...bla bla etc.". -- Nczempin (talk) 06:56, 17 October 2012 (UTC)
What do Java programmers do without friendship? — Preceding unsigned comment added by (talk) 20:33, 11 January 2013 (UTC)

Is java langauge is less powerful then c language in chip programming

Is java langauge is less powerful then c language in chip programming — Preceding unsigned comment added by Raja.m82 (talkcontribs) 15:45, 6 January 2013 (UTC)

This is not a forum for general discussion of the article's subject. You could start with Google or Stackoverflow.
peterl (talk) 03:19, 7 January 2013 (UTC)

Edit request on 13 January 2013

link in footnote 23 is broken.. replace with (talk) 18:46, 13 January 2013 (UTC)

Also Influenced by Perl

Java's regular expression engine is influenced by Perl, see the official doc section on regexp's — Preceding unsigned comment added by (talk) 13:45, 20 January 2013 (UTC)

DHS says do not use "Unless it is absolutely necessary to run Java in web browsers, disable it even after updating to [Java 7 update 11]," the US-CERT team said in an update yesterday. "This will help mitigate other Java vulnerabilities that may be discovered in the future."

Important enough to put in the lead? Hcobb (talk) 18:32, 15 January 2013 (UTC)

This information is important

The current implementations of the Java Runtime are considered insecure by the US-CERT team

but not that specific information should be included in the article in my opinion. It should be more generic:

The Java language has been criticized for being insecure. It is for this reason that some security organizations, including US-CERT and Sophos, recommend that Java not be enabled by default in web browsers.[3][4]

  1. ^ {{cite web |url= |title=The Computer Language Benchmarks Game
  2. ^ a b Java Language Specification, 3rd edition - online at
  3. ^ "Alert (TA13-032A)". United States Computer Emergency Response Team. Retrieved 8 February 2013. 
  4. ^ Howard, Fraser. "Protect against latest Java zero-day vulnerability right now: Mal/JavaJar-B". Sophos. Retrieved 8 February 2013. 

Emilymab (talk) 14:34, 8 February 2013 (UTC)

Proposed an edit based upon this section.

Emilymab (talk) 15:03, 8 February 2013 (UTC)

Edit request on 30 January 2013

Under Java (programming language)#Performance, can someone change [[ARM]] to [[ARM architecture]]? "ARM" is now redirecting to Arm (disambiguation), and is not the primary meaning for ARM architecture. (talk) 06:23, 30 January 2013 (UTC)

Done --Jnorton7558 (talk) 06:43, 30 January 2013 (UTC)

Edit request on 8 February 2013

Please add the following sentence:

Despite being popular, Java has been criticized for being insecure; some security organizations, including US-CERT and Sophos, recommend that Java not be enabled by default in web browsers.[1][2]

to the article lead, the first paragraph then becoming

Java is a general-purpose, concurrent, class-based, object-oriented computer programming language that is specifically designed to have as few implementation dependencies as possible. It is intended to let application developers "write once, run anywhere" (WORA), meaning that code that runs on one platform does not need to be recompiled to run on another. Java applications are typically compiled to bytecode (class file) that can run on any Java virtual machine (JVM) regardless of computer architecture. Java is, as of 2012, one of the most popular programming languages in use, particularly for client-server web applications, with a reported 10 million users.[3][4]Despite being popular, Java has been criticized for being insecure; some security organizations, including US-CERT and Sophos, recommend that Java not be enabled by default in web browsers.[5][6] Java was originally developed by James Gosling at Sun Microsystems (which has since merged into Oracle Corporation) and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++, but it has fewer low-level facilities than either of them.

Emilymab (talk) 15:03, 8 February 2013 (UTC)

  • Oppose. Java has no more of a security issue than most other programming languages - certainly not at a level that belongs in a discussion of the fundamental language. This proposed edit is highly partisan – are we planning a similar edit to Visual Basic for Applications or Windows Scripting Host? There is a security issue certainly. This isn't about the Java language though, it's about the way that the JVM is deliberately made accessible to a browser, and whether the browser JVM's sandbox model is adequately secured. As other languages don't have such a browser-accessible JVM at all, then this issue doesn't arise (not that their language is in any way "more secure"). A very similar issue arises with JavaScript, although that one is even more related to the language, and less about the execution environment. Andy Dingley (talk) 15:23, 8 February 2013 (UTC)
  • Not done: I can agree that the statements about Java having security flaws are negative, but I don't consider them anymore partisan than saying that Java is Object-oriented. It's simply a fact about the language's implementations. I did consider not requesting this edit on the basis that it isn't a flaw in the language itself, but rather the JVM, and I failed to do enough looking to realize this edit isn't appropriate for this particular page. I will be marking this edit as answered(not done) and attempting to see if the information expressed in this edit would fit better into the Java_(software platform) page instead. Emilymab (talk) 17:14, 8 February 2013 (UTC)
The only place this would really be relevant (and even then I might question the phrasing) would be at Java applet. Andy Dingley (talk) 19:08, 8 February 2013 (UTC)

Edit request on 21 February 2013

core java (talk) 06:44, 21 February 2013 (UTC)

Seems to be a test, so marked as answered. Feel free to open it again. --Makecat 09:01, 21 February 2013 (UTC)

"From an informed point of view" - Java - The General Platform

Over "Ode to Joy" to all (other) nations (from where you are)... That Java has been constructed in reaction to PHP (and other) and that Java highlights some OS issues and of course the democratic issues connected to programming in being "between" the OS and other computing powers and providing separate scripting and programming code where the scripting would be used only rarely... and only because... (talk) 06:57, 19 March 2013 (UTC)

By this text, to insiders, "Code: TTY/tty" ;-) (talk) 06:59, 19 March 2013 (UTC)
Question: wasn't it so too that PHP had a connection to it that has read "I don't want to be parsed!", thus the action of establishing the programming language has been a hazy one, i.e., "no, now the programming language should look like this, also with its own parser to go!" Agree/remember? (talk) 16:23, 20 April 2013 (UTC)

Java and the Cryptation Issues

There has also been a cryptation issue with Java, providing cryptation "as high as you want", fx. 128-bit, being a kind of HTTPS-2, a secondary HTTPS route, being the client-side to the server-side on par with how HTTPS works in the internet world today.
That the client-side to the server-side Java delivering HTTPS-services with browser-built-in-compliance, such as embedded "Java-code -> Send information or information capsule" or whatever, transparency preserved by the nature of the transfer of information, withholding the important client-side aspect. This has been discussed on the news-server back then along with the idea of Java itself, but "powers of USA" have had other opinions.
This is another side of Java-force, much the same as HTTP and other internet protocols because it has no political agenda, allowing other tasks as well, the programs much like the classics of C and C++. (talk) 10:54, 25 April 2013 (UTC)

Derived from C and C++?

Article states that the “language derives much of its syntax from C and C++, but it has fewer low-level facilities than either of them.”

Patrick Naughton said:

“When I left Sun to go to NeXT, I thought Objective-C was the coolest thing since sliced bread, and I hated C++. So, naturally when I stayed to start the (eventually) Java project, Obj-C had a big influence. James Gosling, being much older than I was, he had lots of experience with SmallTalk and Simula68, which we also borrowed from liberally.
The other influence, was that we had lots of friends working at NeXT at the time […] They all joined us in late '92 - early '93 […] I'm pretty sure that Java's 'interface' is a direct rip-off of Obj-C's 'protocol' which was largely designed by these ex-NeXT'ers... Many of those strange primitive wrapper classes, like Integer and Number came from Lee Boynton, one of the early NeXT Obj-C class library guys […]”

Source: (Java Was Strongly Influenced by Objective-C)

(Maybe someone will be able to look up the original usenet posting.) --Udoschmitz (talk) 14:40, 16 August 2013 (UTC)

Java is 100% OOPS Language

Java is 100% OOPS language. All java code will follow encapsulation always. No program can be written without class in java. All java code is encapsulated in class template. Java allows all feature except multiple inheritance due to security issue.

— Preceding unsigned comment added by Mohd.aaftab (talkcontribs) 08:48, 27 August 2013 (UTC)

Java is not 100% OOP as it still has fundamental types (e.g. int).
peterl (talk) 11:05, 27 August 2013 (UTC)

Remove the Java Tutorial Entirely

There is a banner on the section that is essentially an introductory Java tutorial saying that the content should be revised or moved somewhere else. There is already a very nice Java tutorial on Wikibooks, so I think this section should be removed entirely. Does anyone else agree?

Tbodt (talk) 00:58, 23 December 2013 (UTC)

Yes, I agree. However there probably should be some syntactic overview present in the article.
Mm32pc (talk) 11:33, 24 December 2013 (UTC)
I decided to be bold and removed quite some stuff. (talk) 00:43, 13 January 2014 (UTC)


I've read many times that Java HotSpot JIT can optimize code to the point of being faster than static native code compiled with a good C/C++ compiler. At the great expense of 10x memory use and the time taken to generate said code. Maybe the article should reflect this. Bmg300 (talk) 08:18, 18 January 2014 (UTC)

Fake Java update

This article should have a section, Fake Java update and under it, it should mention a bit of stuff about it and have a link to the article Java update virus and once that article becomes much bigger, it should say at the top Main article: Java update virus. Blackbombchu (talk) 20:31, 10 November 2013 (UTC)

Agreed, this should be mentioned. --Ronnie42 (talk) 23:57, 8 June 2014 (UTC)
The Java update virus page has been deleted previously, so is therefore considered not-notable. If more information came to light so that page could support creation, then it would make sense to link to it.
peterl (talk) 20:34, 9 June 2014 (UTC)

It's a known issue that is a threat to Java users then it should be publicly mentioned, to make sure users are aware of this issue then link it to a separate article to help them find a fix, any other related information in case their machine is infected, it's unclear why this would be deleted when it's an important issue, there already reports across the internet about the virus, the reason we don't post links is because of the virus spreading further, the virus seems to be a pop up type that can easily be blocked by using anti-pop up blocker. (I believe this should be mentioned, even if this article only briefly mentions it with a link). I can even provide a random link to prove it's existence here. This can easily be replicated, I have already tested it with a pop-up blocker to stop it from showing. --Ronnie42 (talk) 20:26, 23 June 2014 (UTC)

Once: Intrusive Perhaps. Twice? Moronic.

The following silly text is in its pretty little box in the article:

This article contains instructions, advice, or how-to content. The purpose of Wikipedia is to present facts, not to train. Please help improve this article either by rewriting the how-to content or by moving it to Wikiversity, Wikibooks or Wikivoyage (January 2012)


Could we have a senior editor rein all these little jerks in, maybe?

David Lloyd-Jones (talk) 06:30, 25 December 2013 (UTC)

I watch this page, its developments make me laugh. The reason they keep dragging the how to's into it is essentially to filibuster the criticisms sections, by filling the maximum document length with meaningless and trivial java syntax. Though I think it is fairly clear that the page is junk through and through, so I don't have a problem with it. — Preceding unsigned comment added by (talk) 13:40, 25 June 2014 (UTC)

Programming Language vs. APIs vs. Platform

With examples like the Dalvik VM and Groovy as counterexamples, it's clear this article conflates the Java programming language with the Java Runtime Environment and APIs. Not only would it be more accurate, but if we focussed on Java's language features and syntax in this article we'd be able to go in to a bit more depth for those who aren't concerned about stuff like stack machines vs. register-based VMs. -wʃʃʍ- 07:26, 26 September 2014 (UTC)

Is Java a "C family" programming language?

Please see Wikipedia:Categories_for_discussion/Log/2014_October_24#Category_talk:C_programming_language_family. Andy Dingley (talk) 12:18, 24 October 2014 (UTC)

Java influenced by / influenced Python

If one edge is listed (influenced), the other should be listed as well (influenced by).

Will you please stop adding these tenuous claims.
The various forms of for-each loop construct have been around in many languages, not just the ones you've heard of.
To show that "<foo> influenced <bar>" it would be necessary to show that <bar> took its inspiration from <bar>, not merely that both <foo> and <bar> had lifted it from the same place, usually Smalltalk or Scheme.
There is almost nothing original in any language you've heard of. Popular and long-lived languages are those with the wrinkles ironed out. Almost always this means that they weren't the ones that innovated a feature (in a way that's probably slightly awkward and hindsight would change), they're the ones that borrowed a feature from a language nearer the bleeding edge of language development.
Also, Stackoverflow is a place for first year students in Indian colleges to crib answers from their supposed experts: second year students. It's far from an accurate source, either technically or historically. Andy Dingley (talk) 10:39, 5 November 2014 (UTC)

Special classes section

Is there anything (worth keeping) in the Special classes section that belongs in its own section, as opposed to the Class libraries section or an expansion thereof? As far as I can tell the special classes section is more or less an incomplete list of class library features, with code examples. --Richard Yin (talk) 20:58, 17 December 2014 (UTC)

Off topic tag in Editions section

I put an off topic tag in the Editions section. The bit I applied it to is a three-sentence paragraph that I'm fairly certain a) should be expanded quite a lot and b) fits under Syntax. --Richard Yin (talk) 16:42, 18 December 2014 (UTC)


I'm considering removing the entire Examples section per WP:NOTHOWTO. I don't think there's anything in there that isn't covered in WikiVersity. Objections? --Richard Yin (talk) 16:16, 24 November 2014 (UTC)

I'd certainly keep an examples section, and the Hello World that's there is OK pretty much as it stands.
There is room for improving the Examples though. Examples should be strongly relevant and should illustrate "typical Java" - maybe a Servlet? Their point would be to illustrate some flavour of the language, and to contrast what it does differently from other languages, particularly C++. I'm not keen on the current examples that are largely comments (that indicates they're an example that's too much about a narrow specific aspect, not about "Java" broadly at this level). Nor am I keen on the long dissection of these examples following them and being used to explain each language statement.
This is an encyclopedic article on Java. It's not a tutorial, it's not even the introduction to a tutorial. It should remain an overview. What is Java, what is it typically used for, which language family does it fit into, how do similar commonplace tasks (and I think a Servlet is good) look different in Java from a similar task in C++ / .NET families.
I don't see Wikiversity as relevant. WP articles should set out to be workable encyclopedia article in isolation. We should link to Wikiversity, not rely on it. For as far as an example is useful to the encyclopedic goal, it belongs here. For anything more, such as becoming an introduction to a detailed tutorial, that belongs entirely, and from the start, elsewhere. Andy Dingley (talk) 17:46, 24 November 2014 (UTC)
Yes, I have this article in mind every time I consciously ignore the wiki java programmers solicitations for funding at the top of the page, it seems like they should know how to write a wiki article about java. — Preceding unsigned comment added by (talk) 18:06, 6 February 2015 (UTC)

Concurrent? (Well, sort of, but...)

In "Java is a general-purpose computer programming language that is concurrent, class-based, object-oriented...". Whilst Java is certainly a language that includes support for concurrent programming it is not one of the languages that puts it up front and centre as a main or major feature of the language. In fact, in Java 8, you need to program in a different style (using streams and lambda style) to get the most benefit out of concurrency - and this is not the prevalent style of most existing Java software, libraries, etc. Java doesn't feel very 'concurrent' compared to, say, Clojure or Erlang. Java has slowly developed and included more and more features (and libraries) for concurrent programming over time, as concurrent programming has become more important. It also retains (necessarily) a set of low-level concurrency mechanisms, which are probably the most used - even though they are the least abstracted and scalable. (For example, a preference for direct use of threads, 'synchronized' and locks, over the higher-level java.util.concurrent library. Put another way, Java seems to carry with it a good deal of concurrency baggage.) Granted that other languages, more concurrent in nature do exist on the JVM - but the JVM is not Java. Therefore, it seems odd to list 'concurrent' first. I think it is fair to say that Java is about as concurrent as it is functional (as of Java 8), so why not list 'functional' too? (But please don't - it is no more functional than Python, Ruby or Groovy.) (talk) 13:54, 8 April 2015 (UTC)

Cross-platform? (Well, sort of, but...), Fast? (Well, sort of, but...), More productive? (Well, sort of, but...) ... . Its a consistent theme in Java philosophy, Baggage?(not a problem...) — Preceding unsigned comment added by (talk) 18:59, 5 May 2015 (UTC)

Vulnerability to malware

Not much on here about Java's vulnerability.

Even low tech publications now recommend uninstalling Java because it is vulnerable to hacking.Wythy (talk) 05:05, 18 September 2015 (UTC)

So basically I should trust your grandmother on computer security? what exactly makes java bytecode more dangerous than say, native code? should i also remove my cpu since it can run native code? and why would i trust a low tech publication on a high tech subject? — Preceding unsigned comment added by (talk) 06:19, 16 November 2015 (UTC)

Semi-protected edit request on 1 February 2016

I would like to submit a citation for the statement: "particularly for client-server web applications, with a reported 9 million developers." A reliable source that supports this is from Thank you. Edmadrigal (talk) 22:28, 1 February 2016 (UTC)

Pictogram voting question.svg Question: Is there any third-party/independent source that says this? --allthefoxes (Talk) 23:21, 1 February 2016 (UTC)
Red information icon with gradient background.svg Not done: please provide reliable sources that support the change you want to be made. Tom29739 [talk] 21:11, 2 February 2016 (UTC)

Semi-protected edit request on 16 March 2016

Can someone change the Start date and age template from its current {Start date and age|1995} to {start date and age|1995|05|23} to correspond to Java's official formation?[7] (talk) 21:46, 16 March 2016 (UTC)

Yes check.svg Done EvergreenFir (talk) Please {{re}} 04:04, 18 March 2016 (UTC)


  1. ^ "Alert (TA13-032A)". United States Computer Emergency Response Team. Retrieved 8 February 2013. 
  2. ^ Howard, Fraser. "Protect against latest Java zero-day vulnerability right now: Mal/JavaJar-B". Sophos. Retrieved 8 February 2013. 
  3. ^ "Programming Language Popularity". 2009. Retrieved 2009-01-16. 
  4. ^ "TIOBE Programming Community Index". 2009. Retrieved 2009-05-06. 
  5. ^ "Alert (TA13-032A)". United States Computer Emergency Response Team. Retrieved 8 February 2013. 
  6. ^ Howard, Fraser. "Protect against latest Java zero-day vulnerability right now: Mal/JavaJar-B". Sophos. Retrieved 8 February 2013. 
  7. ^ "OracleVoice: Java's 20 Years Of Innovation - Forbes". Forbes. 2015-05-20. Retrieved 2016-03-16. 

Discussion going on at Java


Please convince those idiots to move the article. (talk) 20:29, 15 October 2015 (UTC)

How can i take glasses regularly? Ain.Bukhari (talk) 13:33, 20 March 2016 (UTC)

Semi-protected edit request on 10 August 2016

The access level modifier example have one value missing. And, it'll also be better if we provide the official link of the access level details for the four types.

Nilanjan13 (talk) 10:04, 10 August 2016 (UTC)

Not done for now: default is at least mentioned at List of Java keywords. It's unclear whether the passage here needs to be comprehensive about the modifiers. The passage currently says, Other access level modifiers include the keywords private and protected, which suggests that not everything is covered. If you're still suggesting the change, re-phrase your request here in a "Change X to Y" format and re-open the request (change answered=no) — Andy W. (talk ·ctb) 14:26, 10 August 2016 (UTC)

Is Java still licensed under the GPL?

This seems to suggest otherwise: and I realize Java was GPL at one point (under Sun) and OpenJDK is still a GPL *implementation* of Java, but Java itself?

Also, how could Oracle have sued Google if Java were GPL? — Preceding unsigned comment added by Dmtucker233 (talkcontribs) 17:46, 9 October 2016 (UTC)

Interesting.. a) Java is at least three things, and while I'm not a lawyer, I note this "Appendix A. Limited License Grant", doesn't seem to apply to the *language* Java, at least for Java 7 (and I can't find anything similar for Java 6), having, it seems, all the same clauses stating with "1. License for Evaluation Purposes" as for Java 8; there are however differences at the top:

Specification: JSR-000924 Java® Virtual Machine Specification ("Specification")

Version: 7
Status: Final Release

while for Java 8 at the top:

Specification: JSR-337 Java® SE 8 Release Contents ("Specification")

Version: 8
Status: Maintenance Release

That is, at least for Java 7, this applies to the VM, I guess the bytecode, but maybe they are trying to cover more for Java 8. But probably not, as I see this not linked from "The Java Language Specification, Java SE 8 Edition", only "The Java Virtual Machine Specification, Java SE 8 Edition" (as with Java 7)[5]
b) The GPL protects you and would have Google, if they had used Oracle's GPLed code (they did reimplement an incompatible replacement for the JVM, called Dalvik, that they no longer use). Google wasn't sued for violating the GPL (that is also about allowing you to use the patents; and the source and binary code). See the Java trap on this, and how it applied; then Stallman was ok with Java, possibly no longer..? comp.arch (talk) 19:37, 9 October 2016 (UTC)

Semi-protected edit request on 25 October 2016

The website in the column to the right is deprecated, should be Gittigitt (talk) 18:14, 25 October 2016 (UTC)

Partly done: I think you're correct about, but I'm not convinced is the correct page either, because it's primarily concerned with downloads for the JRE, and less with the language. seems like a better option since it seems more holistic and has some resources discussing the language. —Laoris (talk) 21:37, 25 October 2016 (UTC)

Most popular language ....

"As of 2016, Java is one of the most popular programming languages in use, ..." The stats on Java have shown it to be most popular for quite a few years now; not starting in 2016. I suspect this is a simple matter of a poorly constructed phrase that could be corrected easily with a bit of work checking its history of popularity. — Preceding unsigned comment added by (talk) 21:35, 2 November 2016 (UTC)