Gilad Bracha - Gilad Bracha
Gilad Bracha | |
---|---|
Alma mater | Universidade de Utah |
Carreira científica | |
Tese | The Programming Language 'Jigsaw': Mixins, Modularity and Multiple Inheritance (1991) |
Orientador de doutorado | Gary Lindstrom |
Local na rede Internet | http://www.bracha.org/ |
Gilad Bracha é o criador da linguagem de programação Newspeak , engenheiro de software da F5 Networks e ex-engenheiro de software do Google, onde trabalhou na equipe de linguagem de programação Dart . Ele é coautor da segunda e terceira edições da Java Language Specification e um dos principais contribuidores da segunda edição da Java Virtual Machine Specification.
Entre 1994 e 1997, trabalhou no sistema Smalltalk desenvolvido pela Animorphic Systems, empresa que foi comprada pela Sun em 1997. De 1997 a 2006, trabalhou na Sun Microsystems como teólogo computacional e, a partir de 2005, engenheiro de destaque, em vários aspectos da especificação e implementação de Java. Em seguida, ele foi engenheiro destacado na Cadence Design Systems de 2006 a 2009, onde liderou uma equipe de desenvolvedores projetando e implementando o Novilíngua .
Bracha recebeu seu B.Sc. em matemática e ciência da computação pela Ben Gurion University em Israel e seu Ph.D. em ciência da computação pela Universidade de Utah . Bracha ganhou o Prêmio Dahl – Nygaard Sênior em 2017.
Fechamentos BGGA
Em 2006, Gilad Bracha juntamente com Neal Gafter , James Gosling e Peter von der Ahé (coletivamente BGGA) elaboraram uma especificação para adicionar fechamentos à linguagem de programação Java versão 6. A proposta foi criticada por Joshua Bloch por ser desnecessariamente complexa (adicionando tipos de função e retornos não locais) enquanto fornece poucos benefícios para o programador Java médio em relação a outras propostas mais simples. Os closures foram adicionados ao Java 8 , mas com base em uma proposta diferente da BGGA.
Sistemas de tipo plugável
Foi proposto por Bracha que a escolha do sistema de tipo seja feita independentemente da escolha do idioma; que um sistema de tipo deve ser um módulo que pode ser "plugado" em um idioma conforme necessário. Ele acredita que isso é vantajoso, porque o que ele chama de sistemas de tipos obrigatórios tornam as linguagens menos expressivas e o código mais frágil. O requisito de que os tipos não afetam a semântica da linguagem é um desafio de cumprir; por exemplo, construções como sobrecarga baseada em tipo não são permitidas.
Na prática, os sistemas de tipos conectáveis são chamados de tipagem opcional, sugestão de tipo, anotações de tipo ou verificação gradual de tipo. Eles tendem a ser construídos adicionando um sistema de tipo estático a uma linguagem existente dinamicamente tipada sem alterar sua semântica e geralmente mantendo a sintaxe inalterada também. Os exemplos incluem Smalltalk, Python 3, Ruby, Clojure e PHP 5. Para a maioria das linguagens, há apenas uma implementação do sistema de tipos. A exceção é o Python 3, onde o sistema de tipos é verdadeiramente plugável, porque existem várias implementações e o programador pode usar aquela que melhor se ajusta. A única linguagem projetada com um sistema de tipos plugável em mente desde o início é o Novilíngua. Java 8 fornece a capacidade de estender o sistema de tipos, mas não permite flexibilidade nos fundamentos do sistema de tipos, como escolher entre tipagem estática e dinâmica.
Java genérico
Um artigo de 1998 de autoria de Bracha afirma que os moldes inseridos pela tradução [dos genéricos] têm garantia de não falhar. Embora inicialmente verdadeiro, curingas foram adicionados e tornaram o sistema de tipos incorreto .