Интервью создателя Java Джеймса Гослинга

25 март | 11 : 03

Главные мысли из интервью создателя Java Джеймса Гослинга.
Джеймс Гослинг придумал изначальную архитектуру языка программирования Java, написал для него первый компилятор и виртуальную машин.
А DevRel Evrone Григорий Петров поговорил с ним о взглядах на языки, их возможности и решения, которые ежедневно используют тысячи разработчиков. Полный текст интервью вы можете прочитать по ссылке, а здесь мы публикуем самые интересные высказывания Джеймса Гослинга.
О пользе исправлений
«Каждое новое изменение, которое что-то ломает, делает больно всему сообществу. Если у тебя не так много программистов, такие изменения не проблема. Кроме того, нужно думать о балансе стоимости и пользы от этих изменений. Меняя что-то, ты добавляешь боли, но одновременно добавляешь и новые возможности».
О разнице статических и динамических языков
«Для однократных применений динамические языки работают довольно хорошо. Если важно постоянство, то стоит использовать все инструменты для статического анализа, какие найдешь. Но не всегда это нужно. Например, если ты физик и хочешь прямо сейчас получить результат какого-то вычисления, то достаточно сделать его ровно один раз. Всё зависит от контекста. Чем более надежным должен быть софт, тем больше помогают статически типизированные языки».
О производительности
«Чтобы действительно получить повышенную производительность, очень помогает иметь статически типизированный язык. Для динамических языков, вроде Python, это очень сложно. Обычно люди справляются с этим, добавляя аннотации: так получился TypeScript, который, по сути, все тот же JavaScript, но с аннотациями типов. И это вдвойне забавно, потому что JavaScript — это Java без объявлений типов. По сути, TypeScript — это Java с другим синтаксисом».
О скорости
«Делать микросервисы нормально, но они как минимум в миллион раз медленнее вызова метода. Подумайте, к чему это приводит. Для большинства людей, самый простой способ добиться производительности — сделать чистую масштабируемую архитектуру и масштабироваться. Но есть и люди, которым важны низкоуровневые детали».
О корутинах
«Когда в начале 70-х я изучал Simula, у неё был хороший, естественный стиль. Ты просто программируешь и думаешь о вычислении как о самозамкнутой сущности. Если сущности пересекаются, для тебя это выглядит прозрачно. Я пришел к выводу, что как концепция этот подход куда лучше, чем программирование вокруг обработки сообщений. Такой подход сложно реализовать, но, когда он реализован, думать в этом формате проще».
О подходе к обучению
«Не думаю, что очень важно, какой язык ты изучишь первым. Многие люди учат что-то одно и потом используют всю жизнь. Я думаю, каждый университет должен иметь у себя курс, в котором изучается сравнение языков программирования. Например, в семестре у тебя пять задач на пяти разных языках программирования. Это позволяет людям быстро их изучать, они ведь не настолько разные, и позволяет понять, что из них лучше подходит».
О pattern matching
«Думаю, если назвать эту конструкцию „type case“, это будет отлично. Но если называть это „pattern matching“, это звучит как обман или ложная реклама, ведь оно не дает столько же возможностей, как настоящие регулярные выражения. Но как возможность — это здорово».
О приоритетах
«Когда я начинал делать Java, одно из моих личных правил состояло в том, что я не хочу отлаживать странные проблемы с испорченной памятью. Я слишком много дней жизни отдал на починку таких багов. Которые зачастую заключаются в том, что кто-то в цикле перезаписал конец массива на один лишний элемент, и ты обнаружишь это много позже, через миллион инструкций. Ненавижу искать такие баги».

Еще новости от компании Evrone

1 декабрь

UseStdLibVars: используйте переменные стандартных библиотек. Go-разработчики часто пишут свои собственные переменные или константы, а затем используют их в коде, который обращается к стандартной библиотеке. Поэтому наш Go-разработчик Саша...

1 декабрь

Ruby Russia’22: как мы сделали 12 докладов с нуля. Конференция — это прежде всего место, где полторы тысячи рубистов могут собраться и поговорить о своей работе. Но как создать живое общение в онлайне? ​ В конце сентября состоится 14-я ежегодная...

Как прошел второй Evrone Fest. Для нас корпоратив не просто неформальное общение. Evrone — удалённая команда, которая собирается вместе всего раз в год. И для многих это единственный шанс увидеть реального человека, который прячется за буквами в мессенджере...

Лучшее из интервью создателя JSON Дугласа Крокфорда. Мы поговорили с соавтором JavaScript и создателем JSON Дугласом Крокфордом. В интервью Джейсон поделился своим видением настоящего и будущего JavaScript, своим подходом к код-ревью и советами...

Тогда мы идём к вам. Модель пользователя в Django по умолчанию включает в себя электронную почту, имя пользователя и пароль. Но нередко бывают ситуации, когда эту модель необходимо расширить или заменить. Например, вам не нужно имя пользователя...

Большая ложь о Python. В этом году PyConDE и PyData Berlin объединили усилия, чтобы провести самую крутую конференцию для разработчиков Python. PyConDE, немецкая конференция по языку Python, проводится с 2011 года. PyData Berlin — это одно...

Как читать штрихкоды с помощью браузера. На каждой упаковке, в чеках, и даже в рекламе — QR и штрихкоды сегодня повсюду. Распознать их с помощью мобильного телефона не составляет труда, а вот делать это с помощью веб-приложений значительно сложнее...

Советы против выгорания от топ-разработчиков. В старой шутке говорится, что если вам третий день не хочется работать, значит сегодня среда. Но если это повторяется каждую неделю, нужно что-то менять. Выгорание — популярная проблема увлечённых...

Интересные мысли создателя С++ из интервью Evrone. Бьёрн Страуструп (Bjarne Stroustrup) спроектировал и разработал C++. Он также написал ряд книг об этом языке и больше ста научных статей. В интервью Evrone он рассказал, что думает о разнице...

Подходы и практики написания кода разнятся от компании к компании и от команды к команде. В Evrone мы создали собственную подборку гайдлайнов, чтобы привести к общему стандарту корпоративные правила написания кода на Python. Здесь мы подробно описали...