Wikibooks:Featured books/Nominations/Addition/Java Programming

Java Programming

 * [[Image:Symbol neutral vote.svg|15px]] Neutral Many of the pages in this book are listed at 75%, but they tend to contain very little information. Many pages are only a paragraph or two long, and there are far more code snippets then there are explanations. This book is definitely off to a good start, but I dont think it's quite there yet. --Whiteknight (Page) (Talk) 01:21, 21 June 2007 (UTC)
 * [[Image:Symbol neutral vote.svg|15px]] Neutral This is a good book, and I nearly voted in support. However, it could / should be better, and as Whiteknight observes, needs fleshing out in a number of places. Also, the navigation is somewhat inconsistent, varying between styles and completeness from chapter to chapter. Just a little more work would make this ready for Featured status. Webaware talk 02:13, 21 June 2007 (UTC)
 * [[Image:Symbol oppose vote.svg|15px]] Oppose not finished but when it is it will be suitable for nomination again. Xania [[Image:Flag_of_Italy.svg|15px]]talk 19:23, 4 July 2007 (UTC)

Not done This nomination has failed to generate any support in a few weeks. Opposition cites the large quantity of stub pages, the lack of sufficient explanations, and the inconsistencies in the page navigation. --Whiteknight (Page) (Talk) 15:41, 5 July 2007 (UTC)

Java Programming
I have reviewed this book during the three last years. All the duplicate content has been merged, sorted and organized. Ftiercel (discuss • contribs) 20:25, 20 November 2013 (UTC)
 * The wikibook is readable for beginners and advanced developers.
 * A 75% page is complete and a 100% page is complete with exercises.
 * The navigation is easy.
 * The code examples have been tested.
 * All the missing content is flagged by a TODO.


 * I can't review in detail right now; however, the first impression is positive. One issue is the 25% chapter on Inheritance. As of now, it does not explain what inheritance is, or how does it show up in Java - for instance, there is no mention of superclass, a concept which is used in the following chapters. The best approach, I guess, depends on how much you want to rely in other books (such as Object Oriented Programming, which is mentioned in the foreword) for a deeper coverage of the basic concepts, and also on the intended order of the topics (the current arrangement of the chapters hints at emphasising interfaces over implementation inheritance, which is a perfectly defensible choice). --Duplode (discuss • contribs) 10:24, 26 November 2013 (UTC)
 * I will take it into account. Ftiercel (discuss • contribs) 21:20, 27 November 2013 (UTC)
 * Fixed. Ftiercel (discuss • contribs) 20:14, 29 November 2013 (UTC)
 * I am / was in two minds. There are quite a lot of pages 75% complete or less.  I also felt that we have too many IT, Programming or Computing featured books and that we really must make more of an effort to encourage a more diverse range of books and discouraging further IT books.  That said, this is a well-written book and the subject is suitably broad and covers one of the most popular computing topics.--ЗAНИA [[Image:Flag_of_Estonia.svg|15px]]talk 21:13, 20 February 2014 (UTC)

I am unable to comment on the technical content of the work, since i am learning Java by reading it :-) I do find many places where the expressions used, while they are correct English construction, are not what a native speaker would use and will, for many, hamper clarity and may impede understanding. One instance (where i happen to be reading right now) is the last sentence in the first paragraph of the "Methods" section after Example 3.60: "However, as Java is not hundred percent object-oriented and differentiates between [[Primitive Types|primitive] and "complex" types, the result of using final will have different effects." After puzzling over this for a few minutes, i think i have figured out that the author meant: "However, since Java is not one hundred percent object-oriented and distinguishes between primitive types and complex types, using "final" will have different effects in Java than in those languages."
 * Indeed, this section is absolutely messy. Additionally, it is badly formed (primitive]). I have removed this section as it is explained [[Java Programming/Keywords/final|further. What the sentence wanted to say is: "Java is not fully object-oriented. As a consequence, there are both primitive types and classes. The final keyword can be applied to both but the effect is not exactly the same."

Not perhaps _very_ different, but i believe that Again, the paragraph after Example 3.69 (in the section oddly named "API/java.lang.String" insead of just "Strings"). reads: "As StringBuilder isn't thread safe (see the chapter on Concurrency) you can't use it in more than one thread. Use StringBuffer instead, which does the same and is thread safe. However, as StringBuffer is slower, only use StringBuffer in a multi-thread environment. Moreover, only StringBuffer exists before Java 5." the use of the present tense will cause many readers to "stumble" and have to re-read the last sentence to get the meaning.
 * I have rewritten the text. I hope it's easier to understand.

A little further down in the same section (just after Example 3.76) the author says: "The string returned by substring would be "port". Please note that the endIndex is not inclusive. This means that the last character will be of the index endIndex-1. Therefore, in this example, every character from index 3 to index 6, inclusive, was copied into the substring.". As before, there is nothing technically wrong with this, it is just a somewhat cumbersome way to put it. "Recalling from before that the string index values start with 0, we note that index 3 denotes the (second) 'p' and so forth up to 6, denoting the 't'; the endIndex 7 denotes the 'i', the first character after the extracted partial string."
 * I have added visual explanation. Is it easier to understand now?

There are a number of occurrences of this sort of difficult-to-assimilate expression throughout the text. I would be happy to review all of them in detail, AFTER i have completed my Java language study :-).
 * Thank you for your feedback. It contributes to improve the book. The more you warn, the more we can improve the book. Edit the book anyway, we will fix the mistakes. Ftiercel (discuss • contribs) 20:20, 25 February 2014 (UTC)