Чтение онлайн

на главную - закладки

Жанры

Кодеры за работой. Размышления о ремесле программиста
Шрифт:

Сейбел: Но в результате естественного отбора могут появиться и довольно причудливые формы.

Ингаллс: Да, например Beta и VHS. Но ничто действительно хорошее не теряется.

Сейбел: Еще один аспект Smalltalk, что в последние годы постоянно подчеркивает Алан Кэй, — это язык не об объектах, а о передаче сообщений. C++ и Java не могут похвастаться такой передачей сообщений, как Smalltalk. Почему эта идея столь важна?

Ингаллс: Потому что она дает подлинную независимость. Последнее высказывание Алана — мне оно тоже нравится — гласит, что язык должен во многом напоминать Интернет. Мы всегда заботимся о безопасности и придумываем самые разные механизмы

безопасности в программах, с которыми постоянно могут случаться всякие нехорошие вещи. Но независимость по типу Интернета — это реальный и наилучший вариант.

Итак, чем же так хороша пересылка сообщений? Дело вот в чем: она обеспечивает полное разделение внешнего и внутреннего, на 100%. По крайней мере, если ее сделать правильно. Есть и другие системы, которые в этой области продвинулись дальше, и думаю, что в этом направлении мы еще увидим многое.

Сейбел: Итак, ничто хорошее не забывается. Есть ли другие идеи из Smalltalk или откуда-то еще, которые, по вашему мнению, стоило бы взять на вооружение всем?

Ингаллс: Я вообще-то не думаю обо всех: у меня есть то, что я хотел бы сделать, или то, работу над чем хорошо бы облегчить. Единственное мое желание по этому поводу, с точки зрения компьютерных наук, состоит в том, чтобы люди вернулись к изначальным принципам, дабы хоть как-то удержать вычислительную технику и специалистов в интеллектуальном пространстве.

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

Порой мне кажется, что мы сами бессознательно сдерживаем этот прогресс. До 1980 года в этой области было сделано многое. А компьютеры сейчас на порядки мощнее, умнее и быстрее. На моем последнем компьютере можно запустить музыкальный синтезатор на Smalltalk, способный рассчитать радиосигнал для радиостанции. Это трудно понять тому, кто еще помнит трудности простых арифметических вычислений.

Если сравнить нынешние достижения с возможностями в логическом программировании, в системах на основе продукционных правил, в искусственном интеллекте, то надо сказать, что тут еще есть куда идти. Я бы хотел проследить тот тип мышления, который привел в конце концов к Lively Kernel, — что такое ядро в отрыве от языка и пользовательского интерфейса? Какие еще ядра бывают? Что будет, если построить ядро на основе логического программирования, и что на основе этого можно сделать? Не думаю, что все, кто вокруг этого крутится, работают вхолостую. Господи, да с теми машинами, которые у нас есть сейчас, даже самое маленькое открытие ведет к совершенно невероятным вещам!

Сейбел: Smalltalk изначально планировался как образовательная платформа?

Ингаллс: Предполагалось, что это будет язык для детей — ребят любого возраста, если точно процитировать Алана. Думаю, всему проекту — и притом долгосрочному проекту, — среди прочего, помогло то, что мы не ставили задачу создать лучшую в мире среду для программирования. Мы собирались создать программное обеспечение для обучения, поэтому ориентировались главным образом на простоту и моделирование реального мира.

Эта образовательная цель побудила нас также сделать низкоуровневую часть насколько возможно проще. Поэтому там было множество вещей, которые работали не так быстро, как, возможно, вам бы этого хотелось. Первая система Smalltalk-72 была очень медленной; ее вторая редакция работала в 20-25 раз быстрее. Но у нас, слава богу, все заработало, мы использовали ее при работе с детьми и многому

научились еще до того, как приступили ко второй версии.

Мы уделили серьезное внимание работе растровой графики и музыки, а также их сведению в относительно простом языке. Мы многому научились в ходе работы, и в итоге получился действительно хороший язык. После Smalltalk-72 мы сделали Smalltalk-76, который фактически представлял собой Smalltalk-80. И я понял, что это может быть серьезной программной средой для всей индустрии. У нас даже возник некий конфликт с Аланом, поскольку он не хотел углубляться в этом направлении.

Спустя некоторое время он ушел из Xerox, и наши пути разошлись. Это произошло, потому что мы кое-что выяснили. Например, время на внесение изменений в систему теперь исчислялось секундами, а вскоре должно было составить доли секунды. Система была жива и полностью функционировала. А это то, что мне, как и многим другим, очень нравится. Давайте строить такие же живые системы. Именно такой системой стал Smalltalk. Затем возникла новая цель, что породило Smalltalk-80. Squeak был в какой-то мере возвращением к той же концепции, но с добавлением возможности писать его на нем самом.

Сейбел: Итак, вы с Кэем пошли по разным дорогам. Разочаровались ли вы в изначальной концепции Smalltalk?

Ингаллс: Нет, ни в коем случае. Я уже говорил, что по образованию я физик, и в моей натуре, думаю, заложена привычка глядеть на мир и думать, как он работает, каковы действующие в нем силы, как движутся планеты, как дуют ветры и все такое, задавать вопросы об этом и ощущать тесную связь со всеми явлениями. В физическом мире, во всяком случае, это просто. Можно войти в явление с нулевым пониманием и выйти, полностью представляя себе, как оно работает.

В компьютерах, полагаю, происходит то же самое. В вычислительной среде вы можете ничего не понимать в музыке и ее синтезе, но при этом понимать, как все работает. Это должно быть доступно. То же самое с графикой. Очень похожий вариант. У вас есть какие-то крошечные вещи — различные графические эффекты, есть какие-то более структурированные вещи, вы сводите это вместе. То же и с математическими вычислениями.

Когда я ввожу в Smalltalk новичка, я обычно говорю: «Что вас интересует здесь: разбор текста? Работа с числами? Графика? Или работа с музыкой?» И потом мы начинаем углубляться в материал. Это во многом по-прежнему моя страсть — уверен, и Алана тоже: мы любим погружаться с новичками в том направлении, которое им интересно, а выныривают они оттуда уже с такими идеями, которые Алан называет мощными, — теми «Ага!», позволяющими оценить поразительное разнообразие, которое на деле получается из пары-тройки простых, самых общих работающих элементов.

Это же можно видеть и в музыке, и в графике, и в численном анализе, и в операциях с текстом. И мне очень нравится делать это доступным.

Squeak — это среда для ученого, компьютерного специалиста. eToys — среда для детей, но, к сожалению, не столь понятная, как могла бы быть. Я до сих пор считаю, что мы ее не доработали, не добавив элемент, который мог позволить чисто интуитивно погрузиться внутрь и вынырнуть с физическим пониманием этих впечатляющих идей.

Я до сих пор ношусь с этим так же, как и со всем остальным. Почему я продолжаю заниматься подобными вещами — JavaScript и браузером? Мы уже очень близки к тому, чтобы поместить материал вроде Squeak на веб-страницу, которую можно просматривать любым браузером и с которой можно взаимодействовать каким-нибудь удобным и понятным образом. Это часть общей картины. Уверен, вскоре она изменится. Браузеры должны измениться. Мы возьмем другие языки, не только JavaScript. Я по-прежнему поддерживаю контакт с Аланом и его группой, которые предпринимают новую попытку зайти дальше и решить некоторые из текущих проблем более серьезно. Но подход при этом остается совершенно тем же самым.

Поделиться:
Популярные книги

Камень. Книга восьмая

Минин Станислав
8. Камень
Фантастика:
фэнтези
боевая фантастика
7.00
рейтинг книги
Камень. Книга восьмая

Новый Рал 3

Северный Лис
3. Рал!
Фантастика:
попаданцы
5.88
рейтинг книги
Новый Рал 3

Бастард Императора. Том 4

Орлов Андрей Юрьевич
4. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Бастард Императора. Том 4

Право на месть

Ледова Анна
3. Академия Ровельхейм
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Право на месть

Охота на попаданку. Бракованная жена

Герр Ольга
Любовные романы:
любовно-фантастические романы
5.60
рейтинг книги
Охота на попаданку. Бракованная жена

Законы Рода. Том 11

Андрей Мельник
11. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 11

Светлая тьма. Советник

Шмаков Алексей Семенович
6. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Светлая тьма. Советник

Бестужев. Служба Государевой Безопасности. Книга вторая

Измайлов Сергей
2. Граф Бестужев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бестужев. Служба Государевой Безопасности. Книга вторая

Идеальный мир для Лекаря 20

Сапфир Олег
20. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 20

Гардемарин Ее Величества. Инкарнация

Уленгов Юрий
1. Гардемарин ее величества
Фантастика:
городское фэнтези
попаданцы
альтернативная история
аниме
фантастика: прочее
5.00
рейтинг книги
Гардемарин Ее Величества. Инкарнация

Болотник

Панченко Андрей Алексеевич
1. Болотник
Фантастика:
попаданцы
альтернативная история
6.50
рейтинг книги
Болотник

Энфис 4

Кронос Александр
4. Эрра
Фантастика:
городское фэнтези
рпг
аниме
5.00
рейтинг книги
Энфис 4

Идеальный мир для Лекаря 14

Сапфир Олег
14. Лекарь
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 14

Идеальный мир для Лекаря 22

Сапфир Олег
22. Лекарь
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря 22