Jump to content

Gilad Bracha

From Alfawiki
Gilad Bracha
Occupation(s)Software engineer, programming language designer
Years active1994–present
Known forCreator of Newspeak, co-author of the Java Language Specification (2nd and 3rd editions), contributor to Java Virtual Machine Specification (2nd edition)
Notable workNewspeak, Java Language Specification, BGGA closures proposal

Gilad Bracha (Hebrew: גלעד ברכה) is a software engineer currently employed at F5, Inc., having previously been part of the Google team responsible for the Dart project. He is the creator of the Newspeak language and co-wrote both the second and third editions of the Java Language Specification. Additionally, he played a major role in developing the second edition of the Java Virtual Machine Specification.

Between 1994 and 1997, Bracha contributed to the Smalltalk system while at Animorphic Systems, which was acquired by Sun Microsystems in 1997. Following this acquisition, he held the position of distinguished engineer at Sun until 2006, concentrating on Java’s specification and implementation efforts. From 2006 to 2009, he was a distinguished engineer at Cadence Design Systems, where he led the development of Newspeak.

Bracha earned his B.Sc. degree in mathematics and computer science from Ben Gurion University and completed his Ph.D. in computer science at the University of Utah. In recognition of his contributions, he was awarded the Senior Dahl–Nygaard Prize in 2017.

BGGA closures

In 2006, Bracha collaborated with Neal Gafter, James Gosling, and Peter von der Ahé (collectively known as BGGA) to propose a specification introducing closures into Java 6. This proposal faced criticism from Joshua Bloch for its complexity—particularly due to including function types and non-local returns—while delivering minimal advantages compared to simpler alternatives. Ultimately, closures were incorporated into Java 8 based on a different design than that of BGGA.

Pluggable type systems

Bracha promotes the concept of decoupling type system selection from the programming language itself by advocating for modular, "plug-in" type systems. He contends that enforcing a fixed type system diminishes expressiveness and can increase code fragility.[1] Achieving type systems that do not alter language semantics is complex; for example, overloading based on types is prohibited.

Unlike related ideas such as optional typing, type hinting, or gradual typing, pluggable type systems enable multiple distinct type systems to coexist within a single codebase. Languages adopting similar strategies include Smalltalk,[2] Python 3,[3][4] Ruby,[5] Clojure,[6] and PHP 5.[7] Most support only one implementation except Python 3, which offers several implementations allowing developers to select the most appropriate one. Newspeak stands out as the sole language designed from its inception with a pluggable type system architecture. Although Java 8 permits extensions to its type system, it lacks comprehensive flexibility regarding fundamental aspects such as static versus dynamic typing.[8]

External links

  1. ↑ Bracha, G.: Pluggable Types
  2. ↑ Google Code Archive – Strongtalk
  3. ↑ PEP 3107 – Function Annotations
  4. ↑ PyContracts documentation
  5. ↑ Gradual Type Checking for Ruby
  6. ↑ clojure/Core.typed Wiki
  7. ↑ PHP Type Hinting
  8. ↑ Oracle: Type Annotations and Pluggable Type Systems