Języki programowania: Twórca Javy James Gosling ujawnia więcej na temat Javy i Androida

, Author

Popularność języków programowania: Python bije Javę, a Rust nadal się wspina

James Gosling, ojciec Javy, jednego z najczęściej używanych języków programowania na świecie, rozmawiał z naukowcem Lexem Fridmanem o początkach Javy i jego motywacjach do stworzenia języka, który byłby używany na dziesiątkach miliardów urządzeń i stał się centralnym elementem rozwoju Androida w Google.

Gosling zaprojektował Javę 25 lat temu podczas pracy w Sun Microsystems. W 2009 roku, Java będzie jednym z kluczowych powodów Oracle nabył Sun. Według Oracle, dziś istnieje 51 miliardów aktywnych maszyn wirtualnych Java (JVM) wdrożonych na całym świecie.

Ale na długo przed przejęciem firmy Sun przez Oracle, Gosling powiedział, że on i zespół w Sun „martwili się, że w świecie komputerów dzieje się coś, co przemysł komputerowy przegapił” – co stało się dzisiejszym Internetem Rzeczy.

SEE: Hiring Kit: Programista Python (TechRepublic Premium)

„Chodziło o to, co działo się w zakresie sprzętu komputerowego, procesorów i sieci, które były poza branżą obliczeniową”, powiedział.

„To było wszystko, od wczesnych przebłysków telefonów komórkowych, które miały wtedy miejsce, do – spójrz na windy i lokomotywy i systemy kontroli procesów w fabrykach i wszelkiego rodzaju sprzętu audio i wideo.

„Wszystkie one miały w sobie procesory, wszystkie robiły z nimi rzeczy i czuło się, że dzieje się tam coś, co musimy zrozumieć.”

Na tym etapie, C i C++ „absolutnie posiadały wszechświat” i wszystko było pisane w tych językach.

Gosling mówi, że jego zespół odbył kilka „epickich podróży drogowych” około 1990 roku, aby odwiedzić Toshibę, Sharpa, Mitsubishi i Sony w Japonii, Samsunga i kilka innych firm południowokoreańskich, a także udał się „do całej Europy”, aby odwiedzić takie firmy jak Philips, Siemens i Thomson.

„Jedną z rzeczy, która rzuciła mi się w oczy było to, że robili oni wszystkie typowe rzeczy związane z komputerami, które ludzie robili 20 lat wcześniej”, wspomina.

„Wymyślali na nowo sieci komputerowe i popełniali wszystkie błędy, które popełniali ludzie z branży komputerowej.

„Ponieważ dużo pracowałem w dziedzinie sieci, odwiedzaliśmy firmę X, która opisywała to, co robiła w dziedzinie sieci, i po prostu bez niczego mogłem im powiedzieć o 25 rzeczach, które były kompletnymi katastrofami.”

Odkrycie, że przemysł spoza tradycyjnego świata komputerów powtarzał wcześniejsze błędy, było jednym z kluczowych powodów, dla których Gosling i jego koledzy pomyśleli, że mogą zaoferować coś użytecznego w Javie.

Jednakże zdał sobie również sprawę, że przemysł elektroniki użytkowej i przemysł komputerowy mają zupełnie inne spojrzenie na klientów, co pomogło mu określić, w jaki sposób będzie projektował Javę.

„Wysoko na liście było to, że postrzegali swoje relacje z klientem jako święte. Nigdy, przenigdy nie byli skłonni do kompromisów na rzecz bezpieczeństwa. Jedną z rzeczy, która zawsze mnie denerwowała w branży komputerowej było to, że ludzie byli skłonni do kompromisów w zakresie niezawodności, aby uzyskać wydajność” – powiedział Gosling.

„Właśnie zastanawiając się … jak upewnić się, że jeśli włożysz kawałek tostu do tostera, nie zabije on klienta. Nie stanie w płomieniach i nie spali całego domu” – dodał.

Po tych podróżach drogowych Gosling i spółka zbudowali prototypowy system sterowania w kodach C i C++ dla domowych urządzeń elektronicznych, takich jak telewizor i magnetowid. Bezpieczeństwo było kluczowym czynnikiem w jego celach dotyczących tego, co miało się stać Javą.

„We wczesnych latach 90. dobrze rozumiano, że źródłem numer jeden luk w zabezpieczeniach były właśnie wskaźniki, były same błędy, jak 50% do 60% do 70% to błędy, a ogromna większość z nich to przepełnienia bufora. Musimy się upewnić, że to nie może się zdarzyć. I to była dla mnie pierwotna rzecz: 'To nie może trwać dalej'”.

Ale na początku tego roku Gosling przeczytał wiadomość o tym, że zespół Chromium odkrył, że 70% błędów bezpieczeństwa w bazie kodu Chrome było błędami związanymi z zarządzaniem pamięcią i bezpieczeństwem.

„Chrome jest jak gigantyczny kawałek kodu C++. I 60% do 70% wszystkich luk w zabezpieczeniach to głupie sztuczki z wskaźnikami. I pomyślałem, że to już 30 lat później, a my wciąż tam jesteśmy” – powiedział Gosling.

Poza względami bezpieczeństwa i ochrony Javy, chciał zapewnić „szybkość pracy programistów”.

„Stałem się naprawdę religijny w tej kwestii, ponieważ spędziłem bezbożną ilość czasu w moim życiu polując na tajemnicze błędy wskaźnika. Tajemnicze błędy wskaźnikowe są zwykle najtrudniejsze do znalezienia, ponieważ … te, które ranią, są szansą jedną na milion”, zauważa.

„Kiedy wykonujesz miliard operacji na sekundę, oznacza to, że coś się wydarzy. Stałem się religijny w kwestii tego, że jeśli coś zawiedzie, to dzieje się to natychmiast i w sposób widoczny. Jedną z rzeczy, która była prawdziwą atrakcją Javy dla wielu sklepów deweloperskich było to, że wiemy, że nasz kod będzie działał dwa razy szybciej.”

SEE: Stephen Hawking mylił się co do AI zabijającej ludzi (mówi robot)

Object-oriented programming był również ważną koncepcją dla Javy, według Goslinga.

„Jedną z rzeczy, które można uzyskać z programowania obiektowego, jest ścisła metodologia dotycząca tego, jakie są interfejsy między rzeczami i naprawdę jasne, jak części odnoszą się do siebie nawzajem.”

Pomaga to rozwiązać sytuacje, w których programista próbuje „przemknąć się z boku” i łamie kod dla innego użytkownika.

Przyznaje, że zdenerwował niektórych ludzi, uniemożliwiając programistom korzystanie z backdoorów. To była „inżynieria społeczna”, ale mówi, że ludzie odkryli, że ograniczenie robiło różnicę podczas budowania dużych, złożonych kawałków oprogramowania z wieloma współpracownikami w wielu organizacjach. Dało to tym zespołom jasność co do tego, jak te rzeczy są zorganizowane i „ratuje ci życie”.

Oferował krótką krytykę byłego szefa Androida, Andy’ego Rubina, dotyczącą obsługi Javy w rozwoju Androida. Gosling w 2011 roku miał krótki stint w Google po przejęciu Oracle’a z Sun. Pozew Oracle przeciwko Google o jego wykorzystanie Java APIs nadal nie jest w pełni rozstrzygnięty po dekadzie rozpraw sądowych.

„Cieszę się, że to zrobił,” Gosling powiedział, odnosząc się do jego stosowania Java w Androidzie. „Java została uruchomiona na telefonach komórkowych przez kilka lat i to działało naprawdę, naprawdę dobrze. Były rzeczy o tym, jak to zrobili, w szczególności różne sposoby, że oni jakby naruszyli wszystkie rodzaje umów.”

„They guy who led it, Andy Rubin, he crossed a lot of lines. Linie zostały przekroczone, które od tego czasu grzyby w gigantyczne sprawy sądowe. nie musiał tego robić i w rzeczywistości byłoby to o wiele tańsze dla nich, aby nie przekraczać linii,” dodał.

„Doszedłem do przekonania, że to nie ma znaczenia, co Android zrobił, to miało wybuchnąć. Zacząłem myśleć o nim jak o producencie bomb.”

jamesgoslingusergroupsatgoogleyoutubeb.jpg

James Gosling: „Ludzie byli skłonni do kompromisów w niezawodności, aby uzyskać wydajność”.

Image: James Gosling/UserGroupsAtGoogle/YouTube

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.