Helisa (baza danych)
Helix to system zarządzania bazą danych dla platformy Apple Macintosh , stworzony w 1983 roku. Helix używa graficznego „ języka programowania ”, aby dodać logikę do swoich aplikacji, umożliwiając nie-programistom konstruowanie zaawansowanych aplikacji.
Helix była pierwszą bazą danych dla wielu użytkowników na dowolnej platformie PC, pierwszym narzędziem programowania wizualnego opartym na obiektach i pierwszą relacyjną bazą danych na platformie PC.
Historia
Pierwotnie stworzony przez Odesta Corporation z Northbrook, IL w 1983 roku na oryginalnym komputerze Macintosh, Helix zadebiutował z entuzjastycznymi recenzjami, gdy został wydany po raz pierwszy pod koniec 1984 roku.
W tamtym czasie Mac obsługiwał tylko dyskietki 440kB jako miejsce do przechowywania. Użytkownicy początkowo uruchamiali Helix z dyskietki z Helixem zainstalowanym na „dysku systemowym”, na którym znajdował się system operacyjny , zanim rozpoczęła się era przechowywania na dysku twardym. Ta konfiguracja pozostawiała niewiele miejsca na aplikacje lub dane. Założono, że użytkownicy dodadzą drugą dyskietkę do dowolnego użytku w świecie rzeczywistym, z systemem operacyjnym i Helixem na jednej dyskietce, a danymi na innej. Pomimo tych początkowych ograniczeń Helix był już bardzo potężną iw pełni relacyjną bazą danych które migrowały z łatwością, gdy maszyny stały się szybsze i potężniejsze, a opcje przechowywania ewoluowały w przepastne narzędzia, które są dziś oczywiste.
W maju 1986 Odesta wydała Double Helix . Główny nowy zestaw funkcji pozwolił na tworzenie niestandardowych menu i pasków menu, w wyniku czego powstały „niezależne” aplikacje. Dla porównania, oryginalny Helix tworzył aplikacje, które wyraźnie działały w Helix, podobnie jak Microsoft Word wyraźnie działa „wewnątrz Worda”. Wydany jako część większego pakietu oprogramowania pakiet Helix zawierał również samodzielną środowiska wykonawczego znaną jako RunTime Helix , która umożliwiałaby użytkownikom uruchamianie aplikacji Double Helix bez instalowania pełnej wersji, a także MultiUser Helix , który działał w trybie klient-serwer .
Aktualizacje linii produktów Helix były ciągłe w latach 80., ale firma poświęciła ogromną ilość czasu i pieniędzy na pracę nad wersją znaną jako Remote Helix , która obsługiwała podstawowy system programistyczny Helix na bazach danych opartych na VAX . Pomysł polegał na zaoferowaniu doświadczenia podobnego do Maca na systemach „ big iron ”, co było częstym tematem na początku lat 90. Firma wydała również szereg powiązanych narzędzi, GeoQuery i Data Desk , do analizy baz danych. Jednak nie minęło dużo czasu, zanim przeciętny Mac mógł przewyższyć minikomputer , popularność VAX wyblakła, a produkt nigdy nie odniósł większego sukcesu.
W 1992 roku Odesta rozpadła się, a oryginalne aplikacje Helix zostały wydzielone. Double Helix pojawił się ponownie jako Helix Express w Helix Technologies , sprzedawany jako lider wydajności, a nie „łatwy w użyciu”. Niestety, firma macierzysta uwikłała się w niepowiązaną, ale kosztowną batalię prawną, a Helix marniał. W 1998 roku firma Helix Technologies została zakupiona przez The Chip Merchant, dostawcę pamięci z siedzibą w San Diego, który w 2000 roku wypuścił dużą aktualizację, dodając możliwości protokołu TCP/IP do klienta/serwera Helix i znacznie poprawiając wydajność całej linii produktów. Jednak spadające ceny pamięci i załamanie gospodarcze razem doprowadziły The Chip Merchant do bankructwa w 2002 roku, pogrążając Helix w prawnym zawieszeniu. Został zakupiony w 2004 roku przez dwie osoby, które prowadziły jego codzienną działalność, Gil Numeroff i Matt Strange, przy wsparciu finansowym anonimowego biznesmena i wieloletniego użytkownika Helixa, tworząc nową firmę: QSA ToolWorks .
QSA przywrócił współtwórcę Helix, Larry'ego Atkina, z powrotem do Helix, a później przywrócił Steve'a Keysera, oryginalnego architekta MultiUser Helix. Ten nowy zespół zarządzający i programistyczny, nazwany Helix Recovery Team , rozpoczął przepisywanie produktów Classic Helix tak, aby działały natywnie w systemie Mac OS X. Serwer OS X Helix wraz z trzema natywnymi narzędziami diagnostycznymi i konserwacyjnymi został dostarczony w grudniu 2005 roku.
Miesiąc później Apple ogłosił pierwsze produkty oparte na przejściu z procesorów PowerPC na procesory Intel , co spowodowało, że QSA musiała „zmienić biegi” i rozpocząć proces konwersji swojego kodu do formatu Universal Binary . Wymusiło to konwersję z CodeWarrior IDE na Xcode , po czym wyprodukowali natywne dla Intela wersje swoich trzech „ użytkowników końcowych ”. Wczesne wersje (znane jako „Wersje zapoznawcze”) były niekompletne i niestabilne, ale częste aktualizacje (pięć w samym 2008 r.) rozwiązywały te problemy. Dziewięć kolejnych aktualizacji w latach 2009 i 2010 koncentrowało się na uzupełnieniu zestawu funkcji, wyeliminowaniu pozostałych błędów i poprawa wydajności.
W tym samym czasie QSA rozpoczęło prace nad przeniesieniem Helix IDE (znanego jako „Helix RADE”) do OS X. Pierwotnie ogłoszony w grudniu 2009 projekt nosił kryptonim Europa, jako pośrednie nawiązanie do filmu 2010 . W czerwcu 2011 r. firma QSA rozpoczęła dostarczanie ″wstępnych wydań″ — wersji z niektórymi, ale nie wszystkimi funkcjami przeniesionymi do systemu OS X. Przenoszenie funkcji trwało aż do zakończenia w czerwcu 2013 r.
Opis
Projekt Helix jest znany jako Collection , „dokument” stworzony przez Helix RADE (co oznacza „Rapid Application Development Environment”). Jest reprezentowany w systemie przez swego rodzaju „pseudopulpit” podobny do Macintosh Finder. Kolekcja może zawierać tysiące pojedynczych baz danych (znanych również jako relacje lub tabele). Aplikacje Helix otwierają jednocześnie tylko jedną kolekcję. Można jednak kupić licencje, aby umożliwić dostęp do wielu kolekcji jednocześnie, ograniczonych przede wszystkim dostępną pamięcią.
Otwarcie kolekcji skutkuje wyświetleniem okna projektu z dwiema głównymi częściami sterowanymi całkowicie przez unikalny zestaw obiektów GUI . Po lewej stronie znajduje się kilka pól ikon reprezentujących nowe obiekty, które można utworzyć, a przewijane okno po prawej stronie (znane jako okno kolekcji ) wyświetla obiekty utworzone przez użytkownika. Ikony są przeciągane z pól po lewej stronie do okna w celu utworzenia nowych obiektów w kolekcji. Obiekty te obejmują relacje (tabele) do przechowywania danych, sekwencje (makra) do automatyzacji zadań i użytkowników do tworzenia niestandardowych menu dla użytkownika końcowego. Jest to jedna z najbardziej niezwykłych i potężnych funkcji Helix.
W Relacji tworzone są tabele bazy danych (grupy powiązanych ze sobą danych). Relacje zawierają pola do definiowania typów danych, liczydło do definiowania relacji między danymi i tworzenia informacji, których same pola nie mogą przedstawiać, indeksy do organizowania danych i poprawy wydajności, zapytania do wyszukiwania danych, „szablony” do wizualnej struktury informacji oraz do wprowadzania, modyfikowania, usuwanie i drukowanie z „Widoków”, które łączą szablony, zapytania i indeksy, aby zapewnić użytkownikowi dostęp do informacji i kontrolę nad nimi.
Liczydło wykorzystuje całkowicie graficzny system tworzenia obliczeń. Pożądane obliczenie opisujesz przeciągając ikony reprezentujące operacje i pola do okna edytora liczydła, a następnie układasz je na diagramie przepływu danych. Na przykład, aby powiedzieć „imię, po którym następuje spacja i nazwisko”, należy przeciągnąć ikonę „po której następuje”, a następnie przeciągnąć pole „imię” do jego pierwszej części i ustawić znak spacji jako drugą część; następnie przeciągasz drugą ikonę „po której następuje”, wprowadzasz strzałkę wyjściową z pierwszej do pierwszej części drugiej i przeciągasz pole „nazwisko” do drugiej części.
Helix RADE działa w dwóch trybach, trybie projektowania i trybie użytkownika. W trybie użytkownika kolekcja Helix otwiera się na jednym ze zdefiniowanych pasków menu użytkownika, umożliwiając użytkownikowi korzystanie z bazy danych tak, jak w przypadku każdej innej aplikacji. Tryb projektowania pozwala programiście (lub zaawansowanemu użytkownikowi) zmieniać projekt bazy danych, dodawać pola, tworzyć nowe raporty itp.
Chociaż mają na celu uproszczenie programowania, kultowe języki programowania często „chybią sedno”: programowanie jest trudne nie dlatego, że trzeba pisać, ale dlatego, że złożoność bardzo szybko osiąga poziom, na którym nie można już zrozumieć projektu. Teoretycznie język graficzny może znacznie zmniejszyć tę złożoność (patrz programowanie celowe dla przykładów). W niektórych przypadkach tak, ale w wielu przypadkach pogarszają problem. Helix jest bardzo wyrozumiałym narzędziem, umożliwiającym wiele dróg prowadzących do tego samego rezultatu. W rękach niewykwalifikowanego użytkownika, tak jak w przypadku każdego narzędzia, złożone obliczenia mogą szybko stać się nieporęczne, co wymaga od programisty posiadania dużego monitora (lub dwóch) do wydajnej pracy. Jednak zręczni użytkownicy uważają, że jego wizualne podejście zarówno oszczędza czas, jak i wyzwala z kilkoma poważnymi ograniczeniami.
Chociaż Helix jest dość biegły w obsłudze małych i średnich baz danych, powszechnym problemem dla Helix jest to, że przez większość swojego życia działał tylko w kooperacyjnym środowisku wielozadaniowym klasycznego systemu Mac OS, co czyni go raczej niestabilnym w przypadku dużych baz danych. Chociaż sam język programowania ma skalowalność wymaganą do tworzenia złożonych baz danych, niezdolność do niezawodnego działania w trybie 24/7 środowisko przenosi Helix do grup roboczych liczących maksymalnie 100 użytkowników. Jednak te ograniczenia szybko przechodzą do historii. QSA wydała wersję OS X swojego Helix Server w grudniu 2005 roku i wprowadza resztę swojej linii produktów w wersjach OS X w 2006 i 2007 roku.
Dla kogoś zaznajomionego z Helixem oszczędność czasu programowania może być znacząca. Jeden z ekspertów, który jest również wiodącym trenerem/programistą Microsoft Access, szacuje, że w zależności od wielkości projektu, projekt Helix może zostać ukończony w 30-70% czasu jako ten sam projekt Access. Oszczędności wynikają w szczególności z braku „języka” programowania, a więc z wyeliminowania wszelkich błędów składniowych. Ponieważ sama Helix zapobiega popełnianiu przez programistów błędów składniowych lub programistycznych, pozostałe źródła problemów wynikają z błędów w logice biznesowej. Wszystkie języki napotykają ten problem, ale Helix po raz kolejny łagodzi trudności w śledzeniu problemów ze względu na swój obiektowy i graficzny charakter. Ponieważ wszystkie obiekty są ze sobą powiązane (poprzez ikony, a nie poprzez kodowanie), system „wie”, jakie obiekty są używane przez inne obiekty iw jaki sposób, co upraszcza śledzenie błędów logiki biznesowej, a także zapewnia prostą metodę określania wszystkiego, co jest na które ma mieć wpływ proponowana zmiana dowolnego obiektu.
Ograniczenia programowania wizualnego Helix
W Helix cały kod musi być skomponowany graficznie - dlatego konstrukcja if...then...else jest budowana przy użyciu widżetów typu schemat blokowy, takich jak diamenty decyzyjne, a pętle są implementowane za pomocą konektorów.
Podczas gdy wizualne programowanie Helix jest prawdopodobnie łatwiejsze do nauczenia się dla nowicjuszy (ponieważ wykorzystuje paradygmat schematów blokowych, który jest intuicyjnie zrozumiały dla osób nietechnicznych), może stać się nużące, gdy ilość kodu do napisania staje się znacząca, szczególnie dla osoby, która potrafi pisz kod znacznie łatwiej i wygodniej, niż gdybyś był zmuszony przeciągać ikony z palety.
W tym celu, kiedy Helix RADE został zaktualizowany, aby działał natywnie na komputerach Mac z procesorem Intel, dodano „język wyrażeń liczydła”, aby zapewnić tę możliwość tym, którzy jej potrzebowali.
Chociaż są tacy, którzy mogą twierdzić, że Helix ucierpiała z powodu braku wsparcia programistów i aplikacji innych firm, prawda jest taka, że Helix, który był jedną z oryginalnych aplikacji Macintosha, nadal istnieje właśnie dzięki wsparciu programistów.