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. "About the Author", Effective Java Programming Language Guide He is the author of the programming guide Effective Java (2001), which won the 2001 Jolt Awards, 2002 Jolt & Productivity Award Winners. Dr. Dobb's Portal. 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. His 1990 thesis was titled A Practical Approach to Replication of Abstract Data Objects A Practical Approach to Replication of Abstract Data Objects. Computer Science Department, School of Computer Science, Carnegie Mellon University. May 1990. and was nominated for the ACM Distinguished Doctoral Dissertation Award. Books & Authors: Effective Java, accessed 16 April 2008
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.Heiss, Janice J. Rock Star Josh Bloch Java Sun.com. On August 3, 2012, Bloch announced that he would be leaving Google.Joshua Bloch, After eight years at Google, the time has come for me to move on
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.Klaus Kreft and Angelika Langer, "Understanding the closures debate: Does Java need closures? Three proposals compared", JavaWorld, 17 June 2008 ARM blocks were added to the language in JDK7.
Bloch is currently a faculty member of the Institute for Software Research at Carnegie Mellon University, where he holds the title "Professor of the Practice". In addition to his research, Bloch teaches coursework in Software Engineering, course 15-214.