Gilad Bracha - Gilad Bracha

Gilad Bracha
Gilad Bracha lang.NET 2006.jpg
Gilad Bracha 2006
Alma Mater Uniwersytet w Utah
Kariera naukowa
Praca dyplomowa Język programowania „Jigsaw”: domieszki, modułowość i wielokrotne dziedziczenie  (1991)
Doradca doktorski Gary Lindstrom
Strona internetowa http://www.bracha.org/

Gilad Bracha jest twórcą języka programowania nowomowy , inżynierem oprogramowania w F5 Networks i byłym inżynierem oprogramowania w Google, gdzie pracował w zespole języków programowania Dart . Jest współautorem drugiej i trzeciej edycji Java Language Specification oraz głównym współautorem drugiej edycji Java Virtual Machine Specification.

W latach 1994-1997 pracował nad systemem Smalltalk opracowanym przez Animorphic Systems, firmę kupioną przez Sun w 1997 roku. W latach 1997-2006 pracował w Sun Microsystems jako teolog obliczeniowy, a od 2005 roku jako wybitny inżynier przy różnych aspekty specyfikacji i implementacji Javy. Następnie był wybitnym inżynierem w Cadence Design Systems w latach 2006-2009, gdzie kierował zespołem programistów projektujących i wdrażających Newspeak .

Bracha uzyskał tytuł licencjata. doktorat z matematyki i informatyki na Uniwersytecie Ben Guriona w Izraelu oraz jego doktorat. w informatyce na Uniwersytecie w Utah . Bracha zdobyła Senior Dahl-Nygaard Prize w 2017 roku.

Zamknięcia BGGA

W 2006 Gilad Bracha wraz z Neal GPo , James Gosling , i Peter von der WSHE (zbiorowo BGGA) przygotowała specyfikację do dodawania zamknięć do języka programowania Java w wersji 6. Wniosek został skrytykowany przez Joshua Bloch na warunkach bycia niepotrzebnie skomplikowane (dodając typy funkcji i nielokalne zwroty), zapewniając jednocześnie niewielkie korzyści dla przeciętnego programisty Java w porównaniu z innymi prostszymi propozycjami. Do Javy 8 dodano zamknięcia , ale w oparciu o inną propozycję niż BGGA.

Systemy typu wtykowego

Bracha zaproponował, aby wybór systemu typów był niezależny od wyboru języka; że system typów powinien być modułem, który można „podłączyć” do języka zgodnie z wymaganiami. Uważa, że ​​jest to korzystne, ponieważ to, co nazywa obowiązkowymi systemami typów, sprawia, że ​​języki są mniej ekspresyjne, a kod bardziej kruchy. Wymóg, aby typy nie wpływały na semantykę języka, jest trudny do spełnienia; na przykład konstrukcje, takie jak przeciążanie oparte na typie, są niedozwolone.

W praktyce systemy typu pluggable są różnie nazywane opcjonalnym wpisywaniem, podpowiedzią typu, adnotacjami typu lub stopniowym sprawdzaniem typu. Zwykle są one konstruowane przez dodanie statycznego systemu typów do istniejącego języka z typowaniem dynamicznym bez zmiany jego semantyki i zwykle również z zachowaniem niezmienionej składni. Przykładami są Smalltalk, Python 3, Ruby, Clojure i PHP 5. Dla większości języków istnieje tylko jedna implementacja systemu typów. Wyjątkiem jest Python 3, gdzie system typów jest naprawdę podłączalny, ponieważ istnieje kilka implementacji i programista może użyć tej, która najlepiej pasuje. Jedynym językiem zaprojektowanym od początku z myślą o systemie typu pluggable jest nowomowa. Java 8 zapewnia możliwość rozszerzenia systemu typów, ale nie pozwala na elastyczność w podstawach systemu typów, takich jak wybór między typowaniem statycznym a dynamicznym.

Ogólna Java

Artykuł z 1998 roku autorstwa Bracha twierdzi, że odlewy wstawione przez tłumaczenie [ogólne] na pewno nie zawiodą. Chociaż początkowo była to prawda, dodano symbole wieloznaczne i zepsuły system typów .

Bibliografia

Zewnętrzne linki