Введение
Helix – это система управления базами данных для платформы Apple Macintosh, созданная в 1983 году. Helix использует графический "язык программирования" для добавления логики в приложения, позволяя людям без опыта программирования создавать сложные приложения. Helix была первой многопользовательской базой данных на любой платформе ПК, первым объектно-ориентированным инструментом визуального программирования и первой реляционной базой данных на платформе ПК.
История
Первоначально созданный Odesta Corporation в Нортбруке, штат Иллинойс, в 1983 году на оригинальном Macintosh, Helix дебютировал с восторженными отзывами, когда он был впервые выпущен в конце 1984 года. В то время Mac поддерживал только дискеты объемом 440 КБ в качестве носителя информации. Пользователи изначально запускали Helix с дискеты, на которой Helix был установлен на "системном диске" – месте, где операционная система находилась до появления жестких дисков. Эта конфигурация оставляла мало места для приложений или данных. Предполагалось, что пользователи добавят вторую дискету для реального использования, с ОС и Helix на одной дискете и данными на другой. Несмотря на эти первоначальные ограничения, Helix был мощной реляционной базой данных. В мае 1986 года Odesta выпустила Double Helix. Основной новый функционал позволял создавать пользовательские меню и панели меню, что привело к появлению "автономных" приложений. В отличие от этого, оригинальный Helix создавал приложения, которые явно работали внутри Helix. Выпущенный как часть более крупного пакета программного обеспечения, пакет Helix также включал автономную версию времени выполнения, известную как RunTime Helix, которая позволяла пользователям запускать приложения Double Helix без установки полной версии, а также MultiUser Helix, работавшую в режиме клиент-сервер. В 1980-х годах продуктовую линейку Helix постоянно обновляли, но компания потратила огромное количество времени и денег на разработку версии, известной как Remote Helix, которая работала с базовой системой разработки Helix на базе баз данных VAX. Идея заключалась в том, чтобы предложить пользовательский опыт, похожий на Mac, на "мощных" системах, что было распространенной темой в начале 1990-х годов. Компания также выпустила ряд связанных инструментов, GeoQuery и Data Desk, для анализа баз данных. Однако популярность VAX вскоре угасла, и продукт не имел большого успеха. В 1992 году Odesta распалась, а оригинальные приложения Helix были выделены в отдельную компанию. Double Helix возродился как Helix Express в Helix Technologies, позиционируясь как лидер по производительности, а не как "простой в использовании". Материнская компания оказалась вовлеченной в дорогостоящий судебный процесс, не связанный с Helix, и Helix пришел в упадок. В 1998 году Helix Technologies была приобретена компанией The Chip Merchant, поставщиком памяти из Сан-Диего, которая выпустила крупное обновление в 2000 году, добавив поддержку TCP/IP в Helix Client/Server и значительно улучшив производительность всей линейки продуктов. Однако падение цен на память и экономический спад привели к банкротству The Chip Merchant в 2002 году, что погрузило Helix в юридическую неопределенность. В 2004 году Helix был приобретен двумя людьми, руководившими его повседневной деятельностью, Гилом Нумероффом и Мэттом Стрэнджем, при финансовой поддержке неназванного бизнесмена и давнего пользователя Helix, которые основали новую компанию: QSA ToolWorks. QSA вернула со-создателя Helix Ларри Аткина и позже вернула Стива Кейзера, оригинального архитектора MultiUser Helix. Эта новая команда управления и программирования, получившая название Helix Recovery Team, приступила к переписыванию продуктов Classic Helix для работы на Mac OS X. OS X Helix Server, вместе с тремя собственными диагностическими и инструментами обслуживания, был выпущен в декабре 2005 года. Через месяц Apple объявила о первых продуктах, основанных на переходе с процессоров PowerPC на процессоры Intel, что заставило QSA "сменить курс" и начать процесс преобразования своего кода в универсальный бинарный формат. Это потребовало перехода с CodeWarrior IDE на Xcode, после чего были выпущены нативные версии Intel своих трех продуктов "для конечных пользователей". Ранние версии (известные как "Preview Releases") были неполными и нестабильными, но частые обновления (пять только в 2008 году) устраняли эти проблемы. Еще девять обновлений в 2009 и 2010 годах были сосредоточены на завершении набора функций, устранении оставшихся ошибок и повышении производительности. В то же время QSA начала работу над переносом Helix IDE (известной как "Helix RADE") на OS X. Первоначально объявленный в декабре 2009 года, проект имел кодовое название Europa, как отсылка к фильму "2010". В июне 2011 года QSA начала поставки "предварительных версий" – версий с некоторыми, но не всеми функциями, перенесенными на OS X. Перенос функций продолжался до завершения в июне 2013 года. В сентябре 2022 года QSA Toolworks продала семейство программного обеспечения Helix компании Big Giant Donut Inc. из Нью-Мексико, которая внедрила решения на основе Helix в нескольких производственных и технологических компаниях. Ларри Аткин и Стив Кейзер присоединились к Big Giant Donut для работы над новой программной платформой под названием "Donut", основанной на концепциях Helix. Donut предназначен для работы на современном 64-битном оборудовании и для запуска клиентского программного обеспечения в браузере. В настоящее время Big Giant Donut предоставляет последние версии программного обеспечения Helix для бесплатной загрузки со своего веб-сайта.
Описание
Проект Helix известен как Collection, «документ», созданный Helix RADE (что означает «Rapid Application Development Environment» – Среда быстрой разработки приложений). Он представлен в системе своеобразным «псевдо-рабочим столом», похожим на Macintosh Finder. Коллекция может содержать тысячи отдельных баз данных (также известных как отношения или таблицы). Приложения Helix открывают одновременно только одну Collection. Однако лицензии можно приобрести для одновременного доступа к множеству Collections, что ограничивается, прежде всего, доступной памятью. Открытие Collection приводит к появлению окна проекта, состоящего из двух основных частей, полностью управляемых уникальным набором объектов графического интерфейса. Слева расположены наборы иконок, представляющих новые объекты, которые можно создать, а в прокручиваемом окне справа (известном как окно Collection) отображаются объекты, созданные пользователем. Иконки перетаскиваются из наборов слева в окно для создания новых объектов в Collection. Эти объекты включают отношения (таблицы) для хранения данных, последовательности (макросы) для автоматизации задач и пользователей для создания пользовательских меню для конечного пользователя. Это одна из самых необычных и мощных возможностей Helix. В Relation создаются таблицы баз данных (группы связанных данных). Отношения содержат поля для определения типов данных, «абак» для определения взаимосвязей между данными и создания информации, которую нельзя представить только полями, индексы для организации данных и повышения производительности, запросы для поиска данных, «шаблоны» для визуальной структуризации информации и для ввода, изменения, удаления и печати из «Видов», которые объединяют шаблоны, запросы и индексы, чтобы предоставить пользователю доступ к информации и контроль над ней. Абак использует полностью графическую систему для создания вычислений. Вы описываете желаемое вычисление, перетаскивая иконки, представляющие операции и поля, в окно редактора абака, а затем располагаете их в диаграмме потока данных. Например, чтобы сказать «имя, за которым следует пробел, за которым следует фамилия», вы перетаскиваете иконку «следует за», затем перетаскиваете поле «имя» в ее первую часть и устанавливаете пробел в качестве второй части; затем вы перетаскиваете вторую иконку «следует за», подаете выходную стрелку из первой в первую часть второй и перетаскиваете поле «фамилия» во вторую часть. Helix RADE работает в двух режимах: режиме проектирования и пользовательском режиме. В пользовательском режиме Collection 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 весь код необходимо создавать графически, поэтому конструкция «если – то – иначе» строится с использованием виджетов, напоминающих элементы блок-схем, таких как ромбы решений, а циклы реализуются с помощью соединителей. Хотя визуальное программирование в Helix, вероятно, проще для начинающих (поскольку оно использует парадигму блок-схем, которая интуитивно понятна людям без технического образования), оно может стать утомительным при значительном объеме кода, особенно для тех, кто может писать код гораздо легче и удобнее, чем перетаскивать значки из палитры. С этой целью, когда Helix RADE был обновлен для нативной работы на компьютерах Intel Mac, был добавлен «язык выражений «Абак»», чтобы предоставить такую возможность тем, кто в ней нуждается.