Helix - это система управления базами данных для платформы Apple Macintosh , созданная в 1983 году. Helix использует графический « язык программирования » для добавления логики в свои приложения, позволяя непрограммистам создавать сложные приложения.
Helix была первая база данных многопользовательской на любой платформе PC, первый объектно-ориентированный, визуальный инструмент программирования и первые реляционная база данных на платформе PC.
История
Первоначально созданная Odesta Corporation из Нортбрука, штат Иллинойс, в 1983 году на оригинальном Macintosh, Helix дебютировала с восторженными отзывами, когда впервые была выпущена в конце 1984 года.
В то время Mac поддерживал только гибкие диски емкостью 440 КБ в качестве хранилища. Первоначально пользователи запускали Helix с дискеты с установленной Helix на «системном диске», на котором операционная система жила до начала эпохи хранения на жестких дисках. Эта конфигурация оставляла мало места для приложений или данных. Предполагалось, что пользователи добавят вторую дискету для любого вида реального использования, с ОС и Helix на одной дискете, а данными - на другой. Несмотря на эти первоначальные ограничения, Helix уже была очень мощной и полностью реляционной базой данных, которая легко переносилась по мере того, как машины становились быстрее и мощнее, а варианты хранения эволюционировали до обширных инструментов, которые сегодня считаются само собой разумеющимся.
В мае 1986 года Одеста выпустил Double Helix . Основной новый набор функций позволял создавать настраиваемые меню и строки меню, в результате чего создавались «автономные» приложения. Для сравнения: исходная версия Helix создавала приложения, которые явно работали в Helix, так же как документ Microsoft Word явно работает «внутри Word». Выпущенный как часть более крупного пакета программного обеспечения, пакет Helix также включал автономную версию среды выполнения, известную как RunTime Helix, которая позволяла пользователям запускать приложения Double Helix без установленной полной версии, а также MultiUser Helix, которая работала в клиент-серверная мода.
Обновление линейки продуктов Helix было непрерывным в течение 1980-х годов, но компания потратила огромное количество времени и денег на работу над версией, известной как Remote Helix, которая запускала базовую систему разработки Helix поверх баз данных на основе VAX . Идея заключалась в том, чтобы предложить Mac-подобный опыт работы с системами « большого железа », распространенной темой в начале 1990-х. Компания также выпустила ряд связанных инструментов, GeoQuery и Data Desk , для анализа баз данных. Однако вскоре средний Mac смог превзойти миникомпьютер , популярность VAX пошла на убыль, и продукт никогда не пользовался большим успехом.
В 1992 году Odesta распалась, и были выделены оригинальные приложения Helix. Double Helix вновь появилась как Helix Express в компании Helix Technologies , позиционируясь как лидер производительности, а не «простой в использовании». К сожалению, материнская компания оказалась втянутой в несвязанную, но дорогостоящую судебную тяжбу, и Helix зачахла. В 1998 году Helix Technologies была приобретена компанией Chip Merchant, поставщиком памяти из Сан-Диего, который в 2000 году выпустил крупное обновление, добавив возможности TCP / IP в Helix Client / Server и значительно улучшив производительность всей линейки продуктов. Однако падение цен на память и спад экономики в совокупности привели к банкротству The Chip Merchant в 2002 году, в результате чего Helix оказалась в состоянии правовой неопределенности. Он был приобретен в 2004 году двумя людьми, которые руководили его повседневными операциями, Гилом Нумероффом и Мэттом Стрэнджем , при финансовой поддержке неназванного бизнесмена и давнего пользователя Helix, образовав новую компанию: QSA ToolWorks .
QSA вернула соавтора Helix Ларри Аткина в лоно Helix, а позже вернула Стива Кейзера , первоначального архитектора MultiUser Helix. Дублированный Helix Recovery Team , это новое управление и программирование команда начала задачу переписывания продуктов Классический Helix запустить изначально под Mac OS X . Сервер OS X Helix вместе с тремя встроенными инструментами диагностики и обслуживания был выпущен в декабре 2005 года.
Месяц спустя Apple анонсировала первые продукты, основанные на их переходе с PowerPC на процессоры Intel, в результате чего QSA пришлось «переключить передачи» и начать процесс преобразования своего кода в универсальный двоичный формат. Это вызвало преобразование IDE CodeWarrior в Xcode , после чего они выпустили собственные версии для Intel своих трех продуктов для « конечных пользователей ». Ранние версии (известные как «предварительные версии») были неполными и нестабильными, но частые обновления (пять только в 2008 году) решали эти проблемы. Еще девять обновлений в 2009 и 2010 годах были посвящены дополнению набора функций, устранению оставшихся ошибок и повышению производительности.
В то же время QSA начала работу над переносом Helix IDE (известной как Helix RADE) в OS X. Первоначально анонсированный в декабре 2009 года проект носил кодовое имя Europa , что косвенно отсылает к фильму 2010 года . [1] В июне 2011 года QSA начала поставки ″ Предварительных выпусков ″ - версий с некоторыми, но не всеми функциями, перенесенными на OS X. [2] Перенос функций продолжился до июня 2013 года. [3]
Описание
Проект Helix известен как Коллекция , «документ», созданный Helix RADE (что означает «среда быстрой разработки приложений»). Он представлен в системе своего рода «псевдо-рабочим столом», похожим на Macintosh Finder. Коллекция может содержать тысячи отдельных баз данных (также известных как отношения или таблицы). Приложения Helix открывают только одну коллекцию за раз. Однако можно приобрести лицензии, чтобы разрешить одновременный доступ к многочисленным коллекциям, ограниченный, главным образом, доступной памятью.
Открытие коллекции приводит к открытию окна проекта с двумя основными частями, полностью управляемыми уникальным набором объектов графического интерфейса . Слева находится ряд ячеек со значками , представляющих новые объекты, которые можно создать, а в прокручиваемом окне справа (известном как Окно коллекции ) отображаются объекты, созданные пользователем. Иконки перетаскиваются из лунок слева в окно для создания новых объектов в коллекции. Эти объекты включают отношения (таблицы) для хранения данных, последовательности (макросы) для автоматизации задач и пользователей для создания пользовательских меню для конечного пользователя. Это одна из самых необычных и мощных функций Helix.
В Отношении создаются таблицы базы данных (группы связанных данных). Отношения содержат поля для определения типов данных, счеты для определения отношений между данными и создания информации, которую сами по себе поля не могут представить, индексы для организации данных и повышения производительности, запросы для поиска данных, «шаблоны» для визуальной структурирования информации и для ввода, изменения и т. Д. удаление и печать из «Представлений», которые объединяют шаблоны, запросы и индексы, чтобы предоставить пользователю доступ к информации и контроль над ней.
Abacus использует полностью графическую систему для создания расчетов. Вы описываете желаемый расчет, перетаскивая значки, представляющие операции и поля, в окно редактора счеты, а затем размещаете их на диаграмме потока данных. Например, чтобы сказать «имя, за которым следует пробел, за которым следует фамилия», вы перетаскиваете значок «за которым следует», затем перетаскиваете поле «имя» в его первую часть и устанавливаете символ пробела в качестве второй части; затем вы перетаскиваете второй значок «за которым следует», вставляете стрелку вывода из первого в первую часть второго и перетаскиваете поле «фамилия» во вторую часть.
Helix RADE работает в двух режимах: режиме проектирования и режиме пользователя. В пользовательском режиме коллекция Helix открывается в одной из определенных полос пользовательского меню, что позволяет пользователю использовать базу данных, как любое другое приложение. Режим дизайна позволяет разработчику (или опытному пользователю) изменять дизайн базы данных, добавлять поля, создавать новые отчеты и т. Д.
Хотя иконические языки программирования предназначены для упрощения программирования, они часто «упускают суть»: программирование сложно не потому, что вам нужно печатать, а потому, что сложность очень быстро достигает уровня, когда проект больше не может быть понят. Теоретически графический язык может помочь значительно снизить эту сложность (см. Примеры преднамеренного программирования ). В некоторых случаях это так, но во многих случаях они усугубляют проблему. Helix - очень щадящий инструмент, позволяющий использовать множество маршрутов к одному и тому же результату. В руках неквалифицированного пользователя, как и в случае с любым другим инструментом, сложные вычисления могут быстро стать громоздкими, требуя, чтобы программист имел большой монитор (или два) для эффективной работы. Однако опытные пользователи находят его визуальный подход экономящим время и освобождающим с некоторыми серьезными ограничениями.
Несмотря на то, что Helix довольно хорошо справляется с базами данных малого и среднего размера, общая проблема заключается в том, что на протяжении большей части своего срока службы он работает только в среде совместной многозадачности Classic Mac OS, что делает его довольно нестабильным для больших баз данных. Хотя сам язык программирования обладает масштабируемостью, необходимой для создания сложных баз данных, неспособность надежно работать в среде 24/7 превращает Helix в рабочие группы из 100 или менее пользователей. Однако эти ограничения быстро становятся историей. QSA выпустила версию своего сервера Helix Server для OS X в декабре 2005 года, а остальную часть своей линейки продуктов выпускает в версиях OS X в 2006 и 2007 годах.
Для тех, кто знаком с Helix, экономия времени на разработку может быть значительной. По оценке одного эксперта, который также является ведущим инструктором / разработчиком Microsoft Access, в зависимости от размера проекта проект Helix может быть завершен за 30-70% времени, как и тот же проект Access. Экономия достигается, в частности, за счет отсутствия «языка» программирования, что устраняет все синтаксические ошибки. Поскольку Helix сама по себе не позволяет разработчику совершать синтаксические или программные ошибки, остальные источники проблем связаны с ошибками в бизнес-логике. Все языки сталкиваются с этой проблемой, но Helix еще раз смягчает трудность отслеживания проблем из-за своей объектной и графической природы. Поскольку все объекты связаны (через значки, а не посредством кодирования), система «знает», какие объекты используются другими объектами и каким образом, и упрощает отслеживание ошибок бизнес-логики, а также предоставляет простой метод определения всего, что является на него может повлиять предлагаемое изменение любого объекта.
Ограничения визуального программирования Helix
В Helix весь код необходимо составлять графически - таким образом, конструкция if..then..else строится с использованием виджетов типа блок-схемы, таких как ромбы принятия решений, а циклы реализуются с помощью соединителей.
Хотя визуальное программирование Helix, возможно, легче освоить новичкам (поскольку оно использует парадигму блок-схем, интуитивно понятную нетехническим специалистам), оно может стать утомительным, когда объем кода, который нужно написать, становится значительным, особенно для человека, который может писать код намного проще и удобнее, чем если бы вы вынуждены перетаскивать значки из палитры.
С этой целью, когда Helix RADE был обновлен для работы на Intel Mac, был добавлен «язык выражений абакуса», чтобы предоставить эту возможность тем, кто в ней нуждался.
Хотя есть те, кто может возразить, что Helix страдает от отсутствия поддержки разработчиков и сторонних приложений, правда в том, что Helix, которое было одним из первых приложений Macintosh, все еще существует сегодня именно благодаря поддержке разработчиков.