Перестрелка в OK Corral
Джим Грей
: Я не понимаю ту часть, которая связана с появлением того, что называлось QBE.
Майк Блазген
: О, это совсем другая история. Для обсуждения запросов мы имеем целую сессию.
Джим Грей
: Нет, это стоит обсудить раньше.
Майк Блазген
: OK, давайте займемся этим; это хорошая тема, ты прав.
Джим Грей
: Был QBE, потом VS/QUERY и перестрелка в OK Corral; все это предшествует ...
Майк Блазген
: OK, давайте это сделаем. Бред, можешь ли ты справиться с QBE?
Бред Вейд
: Мне потребуется значительная помощь, поскольку по освященной веками традиции IBM мы имели группу System R, работающую над реляционными системами баз данных в Сан-Хосе, и мы имели Мойше Злуфа (Moshe Zloof), работающего над Query by Example - другой реляционной системой баз данных - в Йорктауне. Поэтому возникал вопрос, почему мы имеем в IBM две группы на противоположных побережьях, делающие в точности одно и то же. А точных данных о том, откуда появились Мойше и его группа и как они стартовали, у меня нет.
Майк Блазген: На самом деле, я знаю ответ и расскажу об этом только потому, что это интересно. В Йорктауне была группа, которая работала над некоторым проектом под названием Programming by Example. Идея состояла в том, чтобы можно было производить обработку бизнес-данных, таких как платежные ведомости, путем предоставления примера того, что требуется, да, это было нечто вроде получения похожего выходного результата. Если вы показывали системе заготовку программного обеспечения, которое хотели получить на выходе, она определяла, как получить его.
Джим Грей
: Модель RPG.
Майк Блазген
: Это было так: "Покажи мне, что ты хочешь получить на выходе и я определю, как получить это на основании доступных данных". Это никогда ни к чему не приводило. Знаете, что такое программирование по примеру на самом деле? Это реально произошло; это VisiCalc. Эта вещь наиболее близка к программированию по примеру, она очень близка, это именно то, о чем они думали. Но они никогда этого не получили, они никогда не получили VisiCalc. Но они получили нечто похожее, то, что называлось Query By Example. Это не программирование по примеру, но по крайней мере запросы по примеру. И идея состояла в том, чтобы можно было нарисовать картину ответа и сказать: "Вот ответ, которого я хочу", а затем система определяла как получить это и выдавала ответ. Это был Query By Example; Мойше Злуф был ключевой фигурой, а Петер де Джонг (Peter de Jong) - менеджером.
Бред Вейд: Query By Example был ранним графическим интерфейсом, если хотите, потому что можно было нарисовать картину таблицы на своем экране, и если хотелось "Salary = 10000", то нужно было бы написать "10000" в столбце Salary. И я думаю, что если были нужны люди с зарплатой больше 10000, нужно было бы написать в столбце Salary ">10000". Вместо раздела SELECT языка SQL нужно было написать "P." В столбце, к которому адресовался запрос. Я смутно помню игры в запросы с людьми из штата Злуфа, но по моим ощущениям простые вещи выражались на Query By Example просто, а сложные были невозможны; в то же время их можно было выразить на SQL.
Но в любом случае, в освященных веками традициях IBM мы имели две группы, делающие одно и то же. Вставал вопрос производительности. Выращивание побегов в OK Corral возникло из прямого сравнения производительности.
Джим Грей
: Бред, я думаю, что до этого кое-кто полюбил QBE, и они на самом деле поставляли его.
Джим Мехл
: Как RPQ или что-то вроде этого.
Джим Грей
: Были люди в этой области, которым наравился QBE. Они рассказывали про ленточных библиотекарей, которые автоматизировали свои ленточные библиотеки с помощью этой системы, и Жене Триветт (Gene Trivett) наблюдал за этим и устранял некоторые проблемы, связанные с производительностью, и система получила неожиданное распространение по всей планете. У нее были очень верные приверженцы. Для каждого было очевидно, что система делает нечто замечательное. Это была программа для конечного пользователя. Поэтому возникали вопросы: "А почему бы нам не прекратить проект System R" или "Почему мы не развиваем эту вещь?". Я думаю, что Бобу [Джойллсу] эти вопросы задавались многократно.
Боб Джойллс: Группа VS/QUERY постоянно старалась взять все лучшее и из SQL, и из QBE, и позже это получилось. Но когда я управлял этой группой, нам определенно требовалось урегулировать все это. Но я никогда не участвовал в чем-либо, где QBE рассматривался бы как производственная замена SQL.
Джим Грей
: Так в чем же заключалась цель перестрелки?
Пат Селинджер
: Я думаю, что это направлялось исследовательским управлением.
Майк Блазген
: Я расскажу вам, чем была перестрелка. Это было очень неприятное и интересное противоборство. Гомори беспокоил тот факт, что он серьезно инвестировал два проекта, в которых, как казалось, делаются примерно одинаковые вещи. Одним из наших аргументов было то, что у нас работают все эти сильные люди, такие как Франко и Джим, которые сделали RSS, а RSS был действительно хорошей вещью, действительно хорошим кодом, он до сих пор входит в SQL/DS; тот же самый код.
К. Мохан
: Примерно когда это происходило?
Майк Блазген
: У меня нет точной даты, но где-то в 1978 г., верно? Когда происходила перестрелка? 1978 г.? Гомори попросил Дика Кейса (Dick Case) произвести проверку работы. Дик Кейс привлек Ашока Чандру, который теперь возглавляет отделение Computer Science - он представлет собой поздний вариант Фрэнка Кинга - и еще одного человека; все они были незаинтересованными, но технически подготовленными людьми. Они поехали в Йорктаун и выучили все насчет QBE, а потом двинулись в Сан-Хосе, чтобы выучить все про System R, и я прочитал им длинную лекцию про то, как работает менеджер блокировок, как могут работать блокировки на основе Compare-and-Swap, как мы все это сделали и как можно реализовать Compare-and-Swap-Double. Дик Кейс был впечатлен, поскольку, видимо, именно он придумал Compare-and-Swap. Присутствовал Ашок, и обсуждался этот вопрос, можно ли реализовать QBE на SQL. Это был другой подход, если хотите, наш подход, который мы хотели применить в VS/QUERY и который заключался бы в том, что не следует писать QBE над интерфейсом RSS. Это означало бы наличие нескольких сред. Мы хотели иметь QBE как графический интерфейс, подчеркивая его сильные стороны - графику - и слабые стороны: XRM, отсутствие многопользовательского режима, плохое управление памятью и плохую производительность. Не было компилятора, только интерпретатор. Поэтому Ирв Трейджер выполнил гигантскую работу, трехмесячную работу, чтобы показать деталь за деталью, как можно отобразить QBE на SQL. Был спор относительного того, является ли язык QBE по-настоящему правильно специфицированным. В языке имелись двусмысленности, и у меня есть записи с собрания, на котором Петер де Джонг сказал: "Да, я не могу доказать, что вы не правы, но я уверен, что вы не правы. Я не приму вашего утверждения о том, что у нас есть двусмысленности, даже если вы задокументируете двусмысленности восемью разными способами". В любом случае, было показано, что это можно сделать. И эти ребята завершили там оценку системы, и одним из вопросом была производительность, поскольку мы утверждали, что наш способ реализации, помимо прочего, обеспечит гораздо лучшую производительность. Люди с дальнего востока сказали: "Нет, это неправильно, потому что речь идет о непредвиденных запросах, а для них больше подходит интерпретация". Они хотели программировать прямо над RSS.
Бред Вейд
: Спасибо, Майк. Мои воспоминания далеко не так глубоки. Я помню, что все скатилось к производительности. System R работала на одной из 3270 в терминальном зале. Мы исталлировали QBE под другим идентификатором пользователя и имели доступ к системе с другого терминала в терминальном зале. Мы вставляли запал; мы вводили некоторый SQL-запрос; я не помню, что он должен был делать. Тот же самый запрос задавался с помощью QBE, после чего выполнялась самая сложная часть работы: мы одновременно нажимали на клавиши ENTER и с секундомерами в руках следили за тем, какая система первой выдаст результат. Не помню, через тридцать секунд или через минуту тридцать секунд System R выдала результат, мы повернулись к другому терминалу и - увидели крах системы. После этого звезда System R взошла более высоко.
Майк Блазген
: Мы дали им возможность составить некоторые запросы, потому что они пришли ...
Брюс Линдсей
: Ты имеешь в виду, что они не могли завершить выполнение никакого запроса?
Майк Блазген
: Нет, могли. Имелась большая разница в производительности. Даже при том, что мы компилировали непредвиденные запросы
...
Джим Грей
: Наиболее убийственная разница в производительности заключалась в том, что Бред умел вводить текст, а человек, который отвечал на QBE, вводил двумя пальцами и с массой ошибок. [смеется] Так что, когда они говорили: "Следующий запрос", Бред делал "Жжжжж". [смеется]
Майк Блазген
: Ну, в любом случае, обнаружилась драматическая разница в производительности, и в наших головах звучали аплодисменты, хотя мы и не слышали их ушами. У всех было очень приподнятое настроение, поскольку разница в производительности была так велика; даже на запросах, которые Ашоку и Кейсу дал де Джонг, потому что он надеялся, что это наше слабое место, даже на этих запросах мы были существенно быстрее, в некоторых случаях, я думаю, на порядок.
???
: Это делалось на UFI?
Майк Блазген
: Да, мы использовали UFI против интерфейса QBE.
Джим Грей
: А что такое OK Corral?
Майк Блазген
: Терминальный зал, в котором была разработана RSS.
Бред Вейд
: После того, как все закончилось и наши визитеры уехали, кто-то - я не помню, кто - сделал табличку. Я думаю, на ней было написано "The OK Corral". И кто-то наклеил ее на дверь. Была такая картина, которую я смотрел в десятилетнем возрасте; знаменитый вестерн со стрельбой.
Ирв Трейджер
: Wyatt Earp, Doc Holiday и Hirsh Cohen. [смеется]
Джим Грей
: High Noon (Высокая луна).
Майк Блазген
: Итак, вот что произошло, и это было здорово, и мы всегда потом называли это перестрелкой в OK Corral. Проект QBE был продолжен как IUP, но эта система реально никогда нигде не работала; она не была существенно усовершенствована. В Санта-Тереза ее взять не захотели. DP, являющееся отделением продаж, которое поддерживало IUP, продолжало продавать ее, но без инвестиций.
Разные участники
: QMF.
Майк Блазген
: Прошу прощения. Да.
Роджер Миллер (Roger Miller)
: Даже в виде QMF это средство не стало слишком популярным.
Роджер Бемфорд (Roger Bamford)
: Мы клонировали его.
Майк Блазген
: Это интересно.
Пол МакДжонс
: Теперь это называется Microsoft Access. [смеется]
Майк Блазген
: Возможно, некоторая версия одержит победу.
К. Мохан
: Но другие компании реализуют это, правда? Paradox и другие ребята выполняют свою реализацию.
Роджер Бемфорд
: Я думаю, что исходные цели правильны: недопустимы никакие сложные вещи. Наши заказчики используют операторы SQL размером в страницы. В QBE это поставило бы вас перед стеной??? ... взять хотя бы все эти соединения и тому подобное.
Майк Блазген
: Итак, появился отчет. Насколько я помню, в нем содержалось одобрение RSS.
Джим Грей
: В особенности компонента индексации. [смеется]
Майк Блазген
: Я думаю, что им особенно понравились блокировки; я думаю, что им понравилось использование Compare-And-Swap-Double. [смеется] И там содержалась некоторая неопределенная рекомендация, я не знаю, оказала ли она какое-нибудь влияние, но насколько мне известно, Злуф так никогда и не взял RSS. Петер де Джонг перешел в MIT и до сих пор там работает.
Бред Вейд
: А Мойше; где теперь Мойше?
К. Мохан
: В HP Labs. Он основал собственную компанию, которая не получилась, потом нанялся в Ashton-Tate; а теперь работает в HP Labs.
Джим Грей
: А Петер в Apollo делает транзакции в CORBA; в HP Apollo.
Майк Блазген
: С Мойше Злуфом произошло то, что он занялся некоторой вещью под названием Office by Example. На самом деле после того доклада, который я делал про SQL/DS, высупал Мойше с сообщением про Office by Example - OBE. Он получил целую группу из примерно двадцати пяти молодых настоящих программистов - не проектировщиков, он действительно заботился о том, чтобы нанять программистов. Так что у него была куча людей, и он добился того, чтобы ему дали собственное здание - Bernen House в Йорктауне, обустроился там и принялся за разработку продукта для PC. Гомори это полностью поддерживал. А потом в один из дней сменилось руководство - я думаю, что это было связано с уходом Бэнбаума (Birnbaum) и возвращением Херба Шора (Herb Schorr), а затем, возможно, Абе Пеледа (Abe Peled). И в какой-то момент эти люди напали на Мойше и сказали: "Мы не собираемся поддерживать эту работу на том уровне, на котором она поддерживается", а этот уровень составлял по сто тысяч на каждого из тридцати человек - три миллиона долларов в год. И Мойше это не понравилось, и он в конце концов ушел из IBM. Он образовал собственную компанию, которая так и не заработала, перешел в Ashton-Tate; потом компания Ashton-Tate была куплена компанией Borland, и он ушел в HP.
К. Мохан
: Теперь он делает Rendering by Example - простое для использованию средство программирования по примеру. Так что, возможно, он возвращается к чему-то типа системы автоматизации бизнеса.
Перерыв