Joshua Bloch
Joshua J. Bloch | |
---|---|
Bloch in 2008 | |
Born |
Southampton, New York | August 28, 1961
Alma mater | Columbia University, Carnegie Mellon University |
Occupation | Chief Java Architect at Google, Inc. |
Spouse(s) | Cynthia Bloch |
Children |
Matthew Bloch Timothy Bloch |
Joshua J. Bloch (born August 28, 1961) is a software engineer and a technology author, formerly employed at Sun Microsystems and Google. He led the design and implementation of numerous Java platform features, including the Java Collections Framework, the java.math package, and the assert mechanism.[1] He is the author of the programming guide Effective Java (2001), which won the 2001 Jolt Award,[2] and is a co-author of two other Java books, Java Puzzlers (2005) and Java Concurrency In Practice (2006).
Bloch holds a B.S. in computer science from Columbia University and a Ph.D. in computer science from Carnegie Mellon University.[1] His 1990 thesis was titled A Practical Approach to Replication of Abstract Data Objects[3] and was nominated for the ACM Distinguished Doctoral Dissertation Award.[4]
Bloch has worked as a Senior Systems Designer at Transarc, and later as a Distinguished Engineer at Sun Microsystems. In June 2004 he left Sun and became Chief Java Architect at Google.[5] On August 3, 2012, Bloch announced that he would be leaving Google.[6]
In December 2004, Java Developer's Journal included Bloch in its list of the "Top 40 Software People in the World".[7]
Bloch has proposed the extension of the Java programming language with two features: Concise Instance Creation Expressions (CICE) (coproposed with Bob Lee and Doug Lea) and Automatic Resource Management (ARM) blocks. The combination of CICE and ARM formed one of the three early proposals for adding support for closures to Java.[8] ARM blocks were added to the language in JDK7.[9]
Effective Java
Bloch's book Effective Java gives numerous tips on how to use Java effectively. Bloch mentions a huge number of terms and ideas, and typically defines and explains them, such as:
- static factory method
- instance-controlled classes
- interface-based framework
- service interface
- provider registration API
- service access API
- service provider interface
- type inference
- telescoping constructor
- bounded wildcard type
- singleton pattern
- serializable
- noninstantiability
- utility class
- default constructor
- immutable object
- object pool
- defensive copying
- obsolete reference
- unintentional object retention
- storage pool
- heap profiler
- bigram - pair of letters or characters
- code inspection
- Generics in Java
- type parameter
- generic type
- parameterized type
- actual type parameter
- migration compatibility
- unbounded wildcard type
- formal type parameter
- bounded type parameter
- recursive type bound
- type token
- raw type => "the name of the generic type used without any accompanying actual type parameters"
- unchecked warning
- generic method
- bounded wildcard
- class hierarchy
- tagged class
- member class
- member interface
- method signature
- inheritance and subclassing
Bibliography
- Effective Java: Programming Language Guide, ISBN 0-201-31005-8, 2001; second edition: ISBN 978-0-321-35668-0, 2008
- James Gosling, the inventor of Java, when the book came out, said, "I sure wish I had this book ten years ago. Some might think that I don't need any Java books, but I need this one."
- Java Puzzlers: Traps, Pitfalls, and Corner Cases, ISBN 0-321-33678-X, 2005 (co-authored with Neal Gafter)
- Java Concurrency in Practice, ISBN 0-321-34960-1, 2006 (co-authored with Brian Goetz, Tim Peierls, Joseph Bowbeer, David Holmes, and Doug Lea)
References
- ↑ 1.0 1.1 "About the Author", Effective Java Programming Language Guide
- ↑ 2001 Jolt & Productivity Award Winners. Dr. Dobb's Portal.
- ↑ A Practical Approach to Replication of Abstract Data Objects. Computer Science Department, School of Computer Science, Carnegie Mellon University. May 1990.
- ↑ Books & Authors: Effective Java, accessed 16 April 2008
- ↑ Heiss, Janice J. Rock Star Josh Bloch Java Sun.com.
- ↑ Joshua Bloch, After eight years at Google, the time has come for me to move on
- ↑ Geelan, Jeremy (2004-12-21). "The i-Technology Right Stuff". Java Developer's Journal.
- ↑ Klaus Kreft and Angelika Langer, "Understanding the closures debate: Does Java need closures? Three proposals compared", JavaWorld, 17 June 2008
- ↑ Darcy, Joseph D. (28 August 2009). "Project Coin: The Final Five (Or So)". Joseph D. Darcy's Oracle Weblog. Oracle. Retrieved 6 May 2014.
External links
- Bill Venners, Josh Bloch on Design: A Conversation with Effective Java Author, Josh Bloch, JavaWorld, January 4, 2002
- Janice J. Heiss, More Effective Java With Google's Joshua Bloch October, 2008
- Josh Bloch, How to design a good API and why it matters, Google Tech Talk, 2007
|