2402

Как Borland просрали все полимеры2

В 90-е годы это название знали все. Даже те, кто не пользовался Паскалем. В течение почти 20 лет Турбо Паскаль преподавали в школах и техникумах, иногда в институтах.
Как минимум полтора десятка лет другой их продукт - Delphi - был одной из самых известных и популярных у нас в России сред разработки. И, кстати, живет до сих пор.

Как же получилось так, что фирма, создавшая два, можно сказать, революционных продукта - исчезла без следа? Я расскажу свою версию. С моей точки зрения, это рассказ о роли личности руководителя в судьбе фирмы.

Моя первая встреча с Turbo Pascal

Я впервые увидел Turbo Pascal 5.0. в 1989 году, на первой “своей” IBM PC XT. Тогда для меня это было что-то на грани чуда.

Ведь как в те времена делалось "в норме":

  1. Запускаем текстовый редактор и пишем/правим текст программы.
    Сохраняем, закрываем редактор.

  2. Запускаем транслятор (сейчас говорят компилятор), указывая в виде аргумента файл с текстом программы.
    Если в программе нет ошибок - получаем так называемый объектный модуль, содержащий алгоритмы нашей программы в машинных кодах, но без привязки к адресам в памяти.

  3. Запускаем линкер (редактор связей), указывая ему файл(ы) с объектными модулями, он собирает их в готовую программу, устанавливая адреса для каждой переменной и каждой подпрограммы, и указывая эти адреса там, где эти объекты вызываются.
    Теперь программу можно запустить на выполнение.

  4. Запускаем программу, проверяем, как она работает.

Ну, если работает не так - понятное дело, правим. Т.е. повторяем весь цирк сначала.
А чаще всего уже на шаге 2 сталкиваемся с тем, что транслятор обнаруживает ошибки в тексте, и выдает в отдельный файл - в строке ХХХ у вас какая-то фигня, а в строке YYY нет точки с запятой. И теперь надо открыть редактор, найти эту строку, и исправить ее.

Запустив Турбо-Паскаль, ты работаешь в текстовом редакторе. И не выходя из него, можешь нажать одну клавишу - чтоб программа откомпилировалась и запустилась.
Завершив прогон программы - возвращаешься в редактор.

Так выглядела среда разработки Turbo Pascal 5.0

Так выглядела среда разработки Turbo Pascal 5.0

Если у тебя в тексте программы что-то не так - тебе не сообщают об этом. Не заставляют искать в тексте ту ошибочную строку. Тебя сразу автоматически отправляют на ту строку, где ошибка, остается только исправить ее.
В общем, если до этого задача “скомпилировать написанную программу” занимала неделю, то теперь это делалось за два часа.

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

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

За его скорость и удобство ему можно было бы простить многое - даже если бы это был “игрушечный” компилятор, способный откомпилировать и собрать только маленькую учебную программу - популярность была бы ему обеспечена. А уж если этот инструмент мог создавать более-менее крупные программы с приличным качеством - его производитель, наверное, должен был бы озолотиться? Ну, давайте познакомимся с теми, кто это сделал.

1981 Основание фирмы Borland

Сама фирма началась с того, что в 1981 Нильс Енсен (Niels Jensen), Оле Хенриксен (Ole Henriksen) и Моргенс Глад (Mogens Glad)  основали компанию MIT - Market In Time.
Чем именно они будут заниматься - парни и сами пока не знали, они просто верили в персональные компьютеры, в свои силы и в свою удачу. И поначалу они просто писали программы для малых машин под управлением ОС CP/M.

В 1982 они посетили выставку CP/M-82, проходившую в Сан-Франциско. И сделали вывод, что если они хотят продавать свои программы в США - им надо иметь американскую компанию, располагающуюся в США, а не в Ирландии.

Кан-варвар из дикого леса

А еще они познакомились с Филиппом Каном. Который в то время имел хулиганские склонности, ездил на мотоцикле, играл на саксофоне, имел высшее образование в области математики и оконченную консерваторию, жил в США нелегально, поскольку не имел грин-карты… Зато он очень хорошо представлял, чем он хочет заняться для того, чтоб заработать денег.
Так что наши три датчанина приняли его в свою фирму. И саму фирму переназвали. Вроде как именно Кан предложил название Borland, означавшее на кельтском “лесная страна”.

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

Филипп Кан. В виде исключения, без мотоцикла и в костюме

Филипп Кан. В виде исключения, без мотоцикла и в костюме

Одна из статей о нем (к тому времени уже директоре Борланда, богатом и знаменитом) так и называлась - “Кан-Варвар” (Kahn the Barbarian).

Доли капитала в Borland были распределены так: Niels Jensen (250,000 акций), Ole Henriksen (160,000), Mogens Glad (100,000), and Kahn (80,000). Т.е. вроде как младший партнер. Филипп Кан становится президентом и генеральным директором (CEO) фирмы Borland, и в этой должности он будет 12 лет, до 1995.

1983 Появление Turbo Pascal

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

Итак, в 1982 Кан начинает двигать свое направление, и находит талантливого программиста, тоже увлеченного этой идеей. А самое главное - этот программист уже сделал свою версию компилятора Паскаля под ОС CP/M. Теперь они начинаю делать Паскаль под MS DOS, и не просто компилятор, а именно среду разработки. И в 1983 у них выходит первая версия.

1982 В Borland приходит Андерс Хейлсберг (Anders Hejlsberg), разработчик Blue Label Pascal.

Андерс Хейлсберг, разработчик Turbo Pascal

Андерс Хейлсберг, разработчик Turbo Pascal

1983 Выпущена первая версия Turbo Pascal.

Название хорошо отражает основную суть. Компилятор был очень быстрым. У нормальных людей компиляция программы занимала от 5 минут до получаса, в Турбо Паскале же компиляция занимала не более 5 секунд. Надо сказать, Борланд всегда отличалась меткими названиями.

Новый продукт предполагалось продавать учебным заведениям. По недорогой цене. $49.99. При стоимости нормальных профессиональных компиляторов порядка $300.

Емкость рынка в первом приближении оценивалась в 30 000 потенциальных покупателей. Ну, т.е. если все они купят новую программу, то фирма получит полтора миллиона долларов. В реальности, естественно, купят далеко не все.

В реальности в первый месяц продаж Борланд набрал 3000 покупателей. Соответственно, 150 000 долларов.
Местные банки даже стали отказываться оплачивать чеки и кредитные карточки, подозревая компанию в мошенничестве.

Через два года (1985) журнал Байт сообщил о “поразительной для компьютерного языка цифре” в 250 000 экземпляров. (Т.е. в 8 раз больше максимальной первоначальной оценки!)
Это 12 с половиной миллионов долларов. Определенно, это был оглушительный успех!
Еще через полгода цифры достигли 400 000 проданных экземпляров и, соответственно, 20 миллионов долларов.

1985-1990 Рост и развитие

Последующие годы фирма активно развивает направление средств разработки. Появляются несколько языков со знакомой средой разработки - Turbo Basic, Turbo Assembler, Modula 2, Turbo Prolog, Turbo C (позже Borland C).
Идет активное соревнование с Microsoft в этой области, до середины 90-х.

В 1990-92 в Паскале появляется объектно-ориентированное программирование. И следом - объектно-ориентированная библиотека Turbo Vision, предназначенная для разработки современных (на то время) программ с окнами, меню, контекстной гипертекстовой подсказкой и т.д.

В Turbo Vision содержится красивая стройная концепция управления окнами, элементами окна, проверки вводимых в окно данных, взаимодействия элементов. В результате разработка таких программ становится намного проще и быстрее. В то же время сам Turbo Vision мог служить прекрасным примером - что такое ООП, зачем оно нужно, и как его применять. Многие программисты на нем учились, несколько программистов пытались сделать из него графический пакет. Одна из крупнейших программистских фирм нашего города продолжала писать программы с использованием Turbo Vision аж до начала 2000-х, когда уже всюду стоял Windows.

Cобственно, на том же Turbo Vision была сделана новая интегрированная среда Turbo Pascal 6.0. Это характерный для Borland подход - самим пользоваться тем, что они разрабатывают на продажу. При таком подходе продукт действительно получается удобным и качественным, потому что разработчик сам видит, что в его изделии удобно, а что можно улучшить, и он же имеет все средства чтоб улучшить его. Наверное, именно поэтому все продукты Борланда отличаются высоким качеством и удобством.

Кроме того, развиваются еще несколько продуктов совершенно других направлений:
Eureca - пакет для решения дифференциальных уравнений;
SideKick - нечто вроде пакета офисных программ, включая текстовый редактор, календарь, калькулятор, адресную книгу и телефонный номеронабиратель;
Quattro Pro - электронная таблица.

Похоже, что руководители фирмы, заработав на Турбо Паскале, хотят вложить эти деньги в развитие, и пытаются развивать любое направление, потенциально сулящее перспективы. Вот только не могут выбрать - в каком именно направлении развиваться? - и пытаются развиваться во всех направлениях одновременно.

Конкурируют с Microsoft в области языков разработки. Надо сказать, достаточно успешно. Аж до конца 90-х. (И даже, пожалуй, до конца 2000х, но это уже другая история.)

Осваивают область разработки баз данных, в которой на то время катастрофически не хватает нормальных языков разработки алгоритмов и весьма бедно по части средств ввода данных. Тут Борланд предпринимает несколько крупных шагов, невзирая на затраты.

Приобретается Ansa Software и ее СУБД Paradox. Через некоторое время появляется выделенный пакет библиотечных функций Paradox Engine, который можно использовать для работы с Парадоксовскими таблицами из программ на C и Паскале.

В 1991 покупается Ashton-Tate - производитель знаменитого DBase. А значит, надо либо как-то объединить эти два продукта - DBase и Paradox - в одну концепцию, либо они будут конкурировать между собой, съедая деньги фирмы.

(Помимо этого, Ashton-Tate на тот момент владеет еще одной СУБД - InterBase, это уже полноценный сервер баз данных, работающий в клиент-серверной архитектуре, поддерживающий большие СУБД и способный на тот момент конкурировать с недавно появившимся MS SQL Server. Но работать с ним надо уже принципиально по-другому, не так, как с DBase и Paradox: если первым надо давать команды типа “перейди на следующую запись”, “удали запись”, “прочитай поле Х текущей записи” и т.п. - то взаимодействие с InterBase полностью основано на отправке SQL-запросов, которые уже выполняются этим сервером БД, при необходимости посылая в ответ небольшую порцию данных. Т.е. совсем другая логика построения программы, другие возможности. Можно сказать, что DBase и Paradox - это “игрушечные” СУБД, упрощенно реализующие функции работы с таблицами на уровне файлов; InterBase же - уже вполне “взрослая” СУБД, работающая по современным стандартам и сравнимая по возможностям с ведущими на то время Oracle, DB/2, и пытающимся дотянуться до них MS SQL Server.)

Кан пытается объединить направление языков разработки и направление баз данных, команду Turbo и команду DBase, но это ему не удается. Слишком разные команды, слишком много людей, слишком много функционала нужно объединить и привести к какому-то общему знаменателю. Это в конце концов приводит к финансовым проблемам и вынужденным сокращениям персонала в начале 90-х.

Microsoft же активно включается и в это соревнование, приобретя Fox Software и его Fox Pro - клон DBase, который он далее много лет развивает. (Параллельно разрабатывая MS SQL Server и MS Access)
В общем, в области разработки СУБД у них идет конкуренция, сравнимая с Курской Дугой…

А еще один фронт конкуренции разворачивается в области офисных пакетов. Microsoft начинает продвигать свой MS Office. Borland заключает соглашение с Word Perfect и начинает разработку и продвижение Borland Office, включающих в себя текстовый процессор Word Perfect и электронную таблицу Quattro Pro.

Надо сказать, меня удивляет то, что Borland, при несопоставимости размеров, мало того что конкурировал с Microsoft - он в некоторых сферах еще и конкурировал более успешно!

(продолжение следует)

Вы смотрите срез комментариев. Показать все
201
Автор поста оценил этот комментарий

Ох, Delphi 7, как же это было прекрасно программировать не зная по сути программирования)

раскрыть ветку (29)
17
Автор поста оценил этот комментарий
Иллюстрация к комментарию
31
Автор поста оценил этот комментарий

Если вы про VCL, то накидать кнопок на форму это еще не программирование. Вся мощь языка D7 (именно языка с этой версии) - WinAPI, возможности VLC, ассемблерные вставки и уборка мусора под своим контролем. Можно написать простую утилиту на VLC, можно написать очень быструю и маленькую утилиту на WinAPI и асме.

Минус серьезный был в базе (не считая уже удобств в IDE на текущий момент) - работа с юникодом, особенно в контролах, например юзали библиотеку TNT.

раскрыть ветку (27)
24
Автор поста оценил этот комментарий

Подождите, а почему именно 7 версия? Вроде, все это можно было с первой же версии?


Насчет ассемблерных вставок не помню, но к любым функциям Windows можно было обращаться всегда.

Насчет юникода - да, он у них появился поздно, и входил с трудом. Ну, это исторически так сложилось. На момент появления Delphi он был экзотикой, и они придумали свою реализацию String, а потом уже (где-то в 2007?) вводить юникодовскую строку как основную было, конечно, сложно.


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

раскрыть ветку (21)
12
Автор поста оценил этот комментарий

а почему именно 7 версия?

потому что начиная с D7 язык стал называться официально Delphi. В том числе из-за дополнений в языковые конструкции, ооп.

Про Winapi - вопрос не в обращении, а полностью написании программы на winapi с интерфейсом, что позволяло сделать программу с окнами не 450кб размером, а 120кб. С ручной обработкой событий. В то время наезды на дельфи были в том числе и за большие по размеру программы.

VLC очень бустило желаение написать программу, когда избавила от рутины новичков, особенно с дополнительными компонентами, которые можно было настроить и связать через проперти даже не написав руками код. Например мне Дельфи (еще вроде 5й версии) дал больше пинка в это направлении, чем асм (и бейсик в школе), причем именно vlc, а не контрольные работы типа "выполните слияние двух текстовых массивов с не повторяющимися строками и результат выдайте в консоль".


Сейчас, переключаясь на D7 руки приходится выламывать, так как по удобству студии она начисто проигрывает современным.

раскрыть ветку (20)
10
Автор поста оценил этот комментарий

Что только не узнаешь. Только вот я 10 лет работал на delphi 5 и 6 ))

раскрыть ветку (10)
6
Автор поста оценил этот комментарий

Но, язык был object pascal, а среда разработки Delphi
Тогда, кст, похерили немного совместимость, либы которые работали с 6 версией, перестали работать на 7.
И кмк проблемы с запуском на XP были, запамятовал уже, да и так больше баловался, а не работал ещё.

0
Автор поста оценил этот комментарий

Только я до сих пор в них работаю, параллельно с другими ЯП.

раскрыть ветку (8)
2
Автор поста оценил этот комментарий

А в какой версии? Что делаете? Можно хоть в нескольких словах?

раскрыть ветку (6)
4
Автор поста оценил этот комментарий

Чисто свои пет-проекты, утилитки - сервисы мониторинга рейд-массивов, мониторинг упса и выгрузка данных на сайт и тп. Были сделаны давно виндовой службой, уж 20 лет прошло, иногда надо добавить что-то.

В конторах, что последний раз застал, уже минимум 2006 была.


Ну и висит это на виртуалке с ХР, конечно.

раскрыть ветку (2)
1
Автор поста оценил этот комментарий

Т.е. службы Windows на Delphi? Респект )

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Так там же все просто, и на дотнете тоже удобно, у служб сразу по дефолту еще параметры установки/удаления существуют. Я на дельфи в основном всё системное и писал.

0
Автор поста оценил этот комментарий

На Delphi не знаю правда, какой версии, есть большой успешный проект автоматизации АЗС, украинской или беларусской разработки

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

А еще программа ТурбоБухгалтер и ТБ-Корпорация.

Как у них запросы к итогам по счетам реализованы - это ж просто праздник!

Это ж можно в учебник вставлять и 1С-ников мордой тыкать - Смотри, как это должно делаться!

0
Автор поста оценил этот комментарий
Где я сейчас работаю, так же весь софт написан на делфи. Моему начальнику 75 лет и он все еще могёт в разработке. Застал полную историю становления паскаля, а дальше делфи вплоть до сегодня. Так же начинал свои первые БД на Парадоксе, но люто плюется какое это было не удобство.
Но к сожалению, все это только легаси проекты с поддержанием рабочего софта и прикручивание новых функций к старому скелету.
0
Автор поста оценил этот комментарий

Охранка или банки?

6
Автор поста оценил этот комментарий

потому что начиная с D7 язык стал называться официально Delphi

Хрен его знает, когда там официально, но...

Иллюстрация к комментарию
Иллюстрация к комментарию
раскрыть ветку (3)
2
Автор поста оценил этот комментарий

За картинки плюс. А книга называет "... среда разработки". Использующая Object pascal. А вот с 7 версии Delphi стало названием не только среды, но и языка.

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

Тем не менее это RAD, как мне кажется.

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

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Конечно, это RAD. Один из первых. За что мы его и уважаем.

0
Автор поста оценил этот комментарий

А, после Вижуал Студио на Дельфах непривычно? Есть такое )

раскрыть ветку (4)
2
Автор поста оценил этот комментарий

У Д7 очень старая студия, даже автоформата нет, что уж про подсветку мест использования методов и прочего удобства говорить. Плюс родные болячки, когда по Ctrl переход идет поиск только вверх, всякие уже непривычные дважды-декларируемые методы (сам код и в секции приват/паблик и тп, а в дотнете/яве/котлине с этим проще).

раскрыть ветку (3)
1
Автор поста оценил этот комментарий

Что имеется ввиду под дважды декларируемые методы ?

раскрыть ветку (2)
5
Автор поста оценил этот комментарий

сначала пишешь название метода в секции декларирования (в типе), а потом сам метод после имплементации. Вот тут конструктор http://www.delphibasics.ru/Implementation.php


А во всяких дотнетах ты просто пишешь метод у которого видимость прописывается сразу, типа:

public void Pupa(){

return;

}

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Да типо и в си и в ++ в хедере так же пишется декларация, а реализацию выносят в отдельный файл. Там это связано со спецификой инклуда, но странно записывать это в минусы. По сути отдельно можно посмотреть весь интерфейс класса и не смотреть его кишки.

2
Автор поста оценил этот комментарий

Если не склероз, я еще в дельфи 4 нашел где то в закоулках возможность создать еще один, параллельный процесс.

Вот это оказалась знатная фича...


Представьте: аналоговый сигнал, АЦП, пишет данные в буфер, буфер заполнился - ставит флаг и пишет во второй такой же буфер.

И так по кругу.

И вот не, чтобы прерывание какое сгенерить - нет, он флаг пишет!

А у меня других задач полно, чтобы постоянно этот флаг читать.

И вдруг - параллельный процесс, в котором я тупо читаю этот флаг и, при необходимости, генерю исключительную ситуацию, которую по быстрому и обрабатываю в основном потоке.


Это получился единственный способ не терять данные.

раскрыть ветку (2)
4
Автор поста оценил этот комментарий

Может не процесс, а поток? Ну Thread запустить и через критическую секцию в основной поток прокидывать событие, главное чтобы хватило прав прочитать занятый файл.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Блин, само собой - поток.

Степень склероза растет вместе с возрастом... :)

2
Автор поста оценил этот комментарий

о, я помню ту попаболь, когда впервые добавлял Indi и какая-то либа для темизации окошек он русского разраба, где пароль к архиву был основан на русской раскладке, а остальные - платите бабки)

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

нашёл! alphaskins

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества