Joshua J. Bloch (born August 28, 1961) is an American
software engineer
Software engineering is a systematic engineering approach to software development.
A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term ''p ...
and a technology author, formerly employed at
Sun Microsystems and
Google
Google LLC () is an American Multinational corporation, multinational technology company focusing on Search Engine, search engine technology, online advertising, cloud computing, software, computer software, quantum computing, e-commerce, ar ...
. He led the design and implementation of numerous
Java platform
Java is a set of computer software and specifications developed by James Gosling at Sun Microsystems, which was later acquired by the Oracle Corporation, that provides a system for developing application software and deploying it in a cro ...
features, including the
Java Collections
The Java collections framework is a set of classes and interfaces that implement commonly reusable collection data structures.
Although referred to as a framework, it works in a manner of a library. The collections framework provides both inte ...
Framework, the package, and the mechanism.
["About the Author"](_blank)
''Effective Java Programming Language Guide'' He is the author of the programming guide ''Effective Java'' (2001), which won the 2001
Jolt Award, and is a co-author of two other Java books, ''Java Puzzlers'' (2005) and ''Java Concurrency In Practice'' (2006).
Bloch holds a
B.S.
A Bachelor of Science (BS, BSc, SB, or ScB; from the Latin ') is a bachelor's degree awarded for programs that generally last three to five years.
The first university to admit a student to the degree of Bachelor of Science was the University ...
in
computer science
Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to practical disciplines (includi ...
from
Columbia University
Columbia University (also known as Columbia, and officially as Columbia University in the City of New York) is a private research university in New York City. Established in 1754 as King's College on the grounds of Trinity Church in Manhatt ...
's
School of Engineering and Applied Science and a
Ph.D.
A Doctor of Philosophy (PhD, Ph.D., or DPhil; Latin: or ') is the most common degree at the highest academic level awarded following a course of study. PhDs are awarded for programs across the whole breadth of academic fields. Because it is ...
in computer science from
Carnegie Mellon University.
His 1990 thesis was titled ''A Practical Approach to Replication of Abstract Data Objects'' and was nominated for the
ACM Distinguished Doctoral Dissertation Award.
Bloch has worked as a Senior Systems Designer at
Transarc
Transarc Corporation was a private Pittsburgh-based software company founded in 1989 by Jeffrey Eppinger, Michael L. Kazar, Alfred Spector, and Dean Thompson of Carnegie Mellon University.
Transarc commercialized the Andrew File System (AFS), ...
, and later as a Distinguished Engineer at
Sun Microsystems. In June 2004, he left Sun and became Chief Java Architect at
Google
Google LLC () is an American Multinational corporation, multinational technology company focusing on Search Engine, search engine technology, online advertising, cloud computing, software, computer software, quantum computing, e-commerce, ar ...
. On August 3, 2012, Bloch announced that he would be leaving Google.
In December 2004, ''Java Developer's Journal'' included Bloch in its list of the "Top 40 Software People in the World".
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
Douglas S. Lea is a professor of computer science and current head of the computer science department at State University of New York at Oswego, where he specializes in concurrent programming and the design of concurrent data structures. He was ...
) 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. ARM blocks were added to the language in JDK7.
Bloch is currently an affiliated faculty member of the Institute for Software Research at
Carnegie Mellon University, where he holds the title "
Adjunct Professor of the Practice
Adjunct may refer to:
* Adjunct (grammar), words used as modifiers
* Adjunct professor, a rank of university professor
* Adjuncts, sources of sugar used in brewing
* Adjunct therapy used to complement another main therapeutic agent, either to i ...
".
Bibliography
* ''Effective Java: Programming Language Guide'', , 2001; second edition: , 2008; third edition: , 2017
* ''Java Puzzlers: Traps, Pitfalls, and Corner Cases'', , 2005 (co-authored with Neal Gafter)
* ''Java Concurrency in Practice'', , 2006 (co-authored with Brian Goetz, Tim Peierls, Joseph Bowbeer, David Holmes, and
Doug Lea
Douglas S. Lea is a professor of computer science and current head of the computer science department at State University of New York at Oswego, where he specializes in concurrent programming and the design of concurrent data structures. He was ...
)
*
References
External links
*
* Janice J. Heiss
More Effective Java With Google's Joshua BlochOctober, 2008
Josh Bloch, How to design a good API and why it matters, Google Tech Talk, 2007
{{DEFAULTSORT:Bloch, Joshua
1961 births
Living people
Columbia School of Engineering and Applied Science alumni
Columbia University alumni
Carnegie Mellon University alumni
American computer programmers
American software engineers
Sun Microsystems people
American technology writers