Marcin Stefaniak:
To ten wasz COBAEX to jest 4GL? http://pl.wikipedia.org/wiki/4GL[edited]Marcin Stefaniak
Można by odpowiedzieć - i tak, i nie :)
A bardziej szczegółowo - w momencie gdy jest konieczność zrobienia developmentu - jest on robiony przede wszystkim w PHP - czyli języku 3 generacji.
Jednakże dostępny jest zestaw "klocków" z których się korzysta przy developmencie - i te klocki obejmują zarówno sam kod, bazę danych jak i interfejs użytkownika (tutaj według mnie główna różnica w stosunku do frameworka - gdzie dużo więcej rzeczy trzeba zrobić ręcznie).
Aby może to lepiej zobrazować - przykład:
Chcemy zrobić nowy tzw. wariant klienta (generalnie jeden obiekt może mieć wiele tzw. wariantów - czyli perspektyw obiektu z punktu widzenia różnych zastosowań - klient może mieć np. wariant marketingowy, gdzie mamy jakieś jego atrybuty marketingowe, wariant sprzedażowy, gdzie mamy podpięte np. FV, czy wariant serwisowy, gdzie mamy podpięte maszyny w ramach serwisowania - jednak cały czas to jest ten sam obiekt) który będzie zawierał dodatkowe dane.
Jak to robimy ? Używamy wbudowanego narzędzia do stworzenia sobie wariantu z określonego obiektu, a następnie tam dodajemy mu pola, powiązania etc. System automatycznie generuje sobie np. ekrany szczegółów, modyfikacji czy tzw. nawigatory obiektu (przedstawienie obiektu wraz z subobiektami jak i różnymi zestawami danych w formie drzewa), funkcje dodawania, modyfikacji czy też funkcje dostarczane np. z obiektem-rodzicem (w przypadku obiektów biznesowych - to jest np. dodawanie notatek czy mechanizm kontroli dostępu do obiektów/rekordów na podstawie modelu organizacyjnego)
Jak jednak chcemy dodać temu obiektowi dodatkowe akcje (metody/operacje) - kod tych metod piszemy juz w PHPie (co nie zmienia faktu, że możemy się odwoływać do określonych obiektów/metod z innych komponentów czy mechanizmów wbudowanych w platformę - najprostszy przykład - metody związane z lokalizacją, które już automatycznie stwierdzają, w jakim języku należy sobie jakiś opis pobrać).
Jeśli chodzi o przykładowe klocki dostarczane ze środowiskiem - są to np. BizObject (parent dla wszystkich obiektów biznesowych w systemie), BizObject_Account (parent dla wszystkich wariantów klientów - np. BizObject_Account_Person czy BizObject_Account_Company), BizObject_Doc (parent dla wszystkich dokumentów w systemie) jak i również model organizacyjny (odzwierciedlenie struktury firmy w ramach systemu), mechanizmy praw dostępu do funkcjonalności i wiele innych.
Trochę bliżej 4GL (chociaż też nazwanie to 4GL w 100% uważałbym za nadużycie) jest w przypadku interfejsu użytkownika. Tam używamy komponentów wstawianych w HTML, których konfiguracja odbywa się w pewnym pseudo-języku. Następnie komponenty te są kompilowane przez środowisko do HTMLa z odpowiednimi wstawkami PHPowymi i na poziomie użytkownika jego przeglądarka korzysta już ze skompilowanej wersji.
Więc - jak widać powyżej - trudno to jednoznacznie określić jako 4GL - ja bym sie raczej skłaniał ku "brakującemu ogniwu pomiędzy frameworkiem 3GL a 4GL" :)