Win a copy of Head First Android this week in the Android forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Tim Cooke
  • Campbell Ritchie
  • Paul Clapham
  • Ron McLeod
  • Liutauras Vilda
Sheriffs:
  • Jeanne Boyarsky
  • Rob Spoor
  • Bear Bibeault
Saloon Keepers:
  • Jesse Silverman
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
Bartenders:
  • Piet Souris
  • Al Hobbs
  • salvin francis

97 Things Every Java Programmer Should Know

 
Ranch Hand
Posts: 515
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi,
It looks like this is a part of a "97 Things ...." series of books. So, by definition, you have to have exactly 97 things. What were the challenges with that and how did you prioritize the "things" ?

thanks,
Paul
 
Marshal
Posts: 74374
334
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I would have thought getting ninety‑seven computer people to write something all at the same time is enough of a challenge Even if a few wrote two articles.
 
Author
Posts: 13
7
IntelliJ IDE Java
  • Likes 2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
As Campbell suggests, getting 97 Things (or more!) was quite a challenge! A few people did write 2 or 3 pieces, I think we had 80 or so contributors in the end.

One challenge was that we wanted the book to represent a number of different viewpoints, from the code level to the macro level, and from developers of all experiences and people who work with developers who might not write code themselves. To get this diversity of opinion, we not only had to open up the call for authors in a general way, but we also had to use our network of friends, colleagues, contacts, and people-we-vaguely-know-on-Twitter to reach out to people personally and get pieces on topics that we felt were important to Java developers.

We were also interested in balance, where appropriate. Some things are well understood, for example we didn't think there should be a piece in there saying it's fine to write terrible, unreadable, unmaintainable, untested code! But some points of view were very much "this depends upon your situation", and so we sometimes found ourselves reaching out to people to write pieces with an opposing opinion to one of the other pieces, in order to provide more than one point of view on the same topic (it helps that Kevlin and I know a lot of people with strong opinions, and it helps even more that almost everyone we asked was more than happy to write a piece in time for the deadline).

Another challenge was once we had the pieces, we had too many! Trying to narrow down the ones that made it was really hard. We managed some of it with the three-piece-maximum rule, so each author couldn't have more than 3 (Jeanne submitted six and I loved all six of them, and picking the three to leave out was genuinely one of the most difficult decisions of the book). Sometimes a piece didn't make it because it was a topic that was already covered. I don't think anything got left out because we didn't agree with it! I think we actually put stuff in that we disagreed with, again in the interest of balance (at least if it was a point of view that we felt developers should consider).
 
paul nisset
Ranch Hand
Posts: 515
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thank you Trisha . Your process was interesting. One of the great things about forums like this is you post a question and you get a variety of answers and more than one may be correct . It leads to a better depth of understanding. It seems your book is in the same vein. The possibility of there being more than one correct answer to a  situation can be a hard concept to accept in a field that is based in binary .
 
Bartender
Posts: 361
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
First of all thanks for writing this book.
I looked preview at amazon.com for two topics:
11. But it works on my machine
12. The case against the fat jars

Nice to know some of your points/recommendations.
Do you have something for folks who are using Java since 1997 or so? Current Java syntax is complex and it resembles more of C++ and other functional language. I found that not that easy.
 
paul nisset
Ranch Hand
Posts: 515
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I would argue that the syntax hasn't changed that much . What has changed is that the language has expanded and added tons of new libraries and frameworks. Just because functional programming is an option ,it doesn't mean you have to use it   . It is a style/design choice of programming rather than something that you must implement to have a modern application. There are better ways to implement things within a design choice than  in 1997 ie. hardly anybody uses Vectors anymore becasuse the Collection framework is just a better way of doing things. That is not syntax .
 
Campbell Ritchie
Marshal
Posts: 74374
334
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Enumerated types? Generics? Try with resources? Streams? Lambdas? Different forms of switch? Different form of for loop? Covariant return type?
Not many changes?
 
Marshal
Posts: 8124
572
Mac OS X VI Editor BSD Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

paul nisset wrote:Just because functional programming is an option ,it doesn't mean you have to use it  


True, but this is where the paradigm shifts.

paul nisset wrote:It is a style/design choice of programming rather than something that you must implement to have a modern application.


Maybe not modern, but arguably less prone to errors.
 
paul nisset
Ranch Hand
Posts: 515
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Not many changes?



Yes ,there have been extensions to the syntax like a new for each loop or Lambdas but wouldn't say the basic syntax has changed . The original syntax of for loops still work and I still see it in code that compiles with newer compilers. I still see and work with new code that could use new syntax idioms but don't .  In that sense, I would say the syntax hasn't changed that much.
It also depends on how you define syntax.
Things like  Streams, I think of as a new framework  .
 
Campbell Ritchie
Marshal
Posts: 74374
334
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Much of the unchanged syntax goes back to C in 1972, and maybe even earlier.
 
author & internet detective
Posts: 40797
829
Eclipse IDE VI Editor Java
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Trisha Gee wrote:Jeanne submitted six and I loved all six of them, and picking the three to leave out was genuinely one of the most difficult decisions of the book[


Aww. That reminds me. I have three blog posts from the three you didn't choose.

I know I submitted "too many". But I figured they would be future blogs of mine. And I thought giving you more choices would
  • make things *easier* becuase invariably others would write about some of the same topics
  • increase my chances of getting three selected (this seems to have worked)
  •  
    Trisha Gee
    Author
    Posts: 13
    7
    IntelliJ IDE Java
    • Likes 1
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    Jeanne Boyarsky wrote:

  • increase my chances of getting three selected (this seems to have worked)


  • Honestly if we hadn't had that rule, we would have taken all of them! They were all excellent, and all things that I believe Java developers need to know.

    And it pained me not to include "Know Your Tools", it was so good and I agree with it so much! You'll have to publish it elsewhere and I will promote it via Annotated Monthly etc.
     
    Campbell Ritchie
    Marshal
    Posts: 74374
    334
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    Both your bullet points sound like good ideas, Jeanne, and very crafty
     
    author
    Posts: 44
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    We used the limit of no more than three included in the book because this ensured that more voices were heard. I introduced this limit for 97 Things Every Programmer Should Know after I observed that contributions roughly followed a power law (actually, IIRC, it was an inverse square law), so a few people submit many (two people contributed nine pieces each!) and most people submit one. If you place a threshold on a skew distribution, it shifts the mean hugely. As a result, 97 Things Every Programmer Should had 73 contributors, where other books in the series tend to have contributors numbering in the fifties. When we started 97 Things Every Java Programmer Should Know, it made sense to be upfront about the publication limit. By an extraordinary coincidence, we also ended up with 73 contributors. That limit of three has meant that these two books have the greatest representation of any of the books in the 97 Things series.
     
    You showed up just in time for the waffles! And this tiny ad:
    Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop
    https://coderanch.com/wiki/718759/books/Building-World-Backyard-Paul-Wheaton
    reply
      Bookmark Topic Watch Topic
    • New Topic