[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Takie sobie refleksje..
Wydaje mi sie, ze Pan Bogdan wyjasnil cala sprawe najlepiej jak to tylko mozna.
Miedzy wierszami zas zawarl jeszcze jeden bardzo wazny element: co my wlasciwie
porownujemy? Czy wiemy co to jest jezyk 4GL -Fourth Generation Language (nie
jest to nazwa wymyslona przez Progress). Porownujmy wiec wlasciwie. Schodzac o
poziom nizej, kto mi powie co jest lepsze: C czy assembler. Moja odpowiedz:
zalezy co chcemy zrobic. Trzymajmy sie wiec pewnego poziomu. Wprawdzie to, ze
wiekszosc respondentow poronuje 4GL ze wszystkim dobrze swiadczy o Progress-ie
bo to znaczy, ze wykracza on daleko poza ramy jezyka manipulowania danymi i
mechanizmow Commintement Control czy tez tranzakcyjnosci. Najwlasciwszym
porownaniem jest wiec zaproponowany przez Pana Bogdana PL/SQL. Ja osobiscie
moge dodac ADELIA/400 4GL. Przez dlugi okres programowalem w RPG i nikt sie nie
zalil, ze jest to jezyk nie tylko nieobiektowy ale jako czysty RPG/400 byl
nawet pozycyjno zalezny (brrr..). ADELIA 4GL bardzo ulatwiala prace
developerskie (chociaz o obiektowosci nie bylo tam mowy i naprawde daleko jej
to Progress 4GL) jednakze wszystkie trudniejsze kwestie wymagaly powrotu do
zrodel. Moim zdaniem jest tu raczej kwestja umiejetnosci programistow.
Prosze wiec o wlasciwe porownania. Kazdy jezyk ma swoje zalety i wady. Prosze
sprobowac napisac obsluge jakiegokolwiek sterownika w Delphi albo obsluge
skomplikowanej transakcji (najlepiej z 2 Phase Commit przy dostepie do wielu
baz danych) za pomoca jezyka C++ lub innego HLL.
Pozdrawiam
Marek
Bogdan Brzozowski wrote:
> Szanowni Państwo,
>
> Pozwolę sobie włączyć się do dyskusji "refleksyjnej".
> Pan Rafał wyraża w niej niezadowolenie z narzędzi
> firmy PROGRESS. Niezadowolenie to nie wynika, moim
> zdaniem, z tego, że produkty firmy PROGRESS są złe,
> lecz raczej z Jego bardziej ogólnych poglądów na temat
> sposobów tworzenia oprogramowania. Wniosek taki
> wyciągnąłem na podstawie zadanego przez Niego pytania:
>
> Mam pytanie:
> Co Pan rozumie pod pojęciem programowania obiektowego w Progressie?
>
> Wyręczając adresata tegoż pytania odpowiem, że chodzi o 3 cechy,
> w które powinien być wyposażony język programowania: hermetyzację,
> dziedziczenie i polimorfizm.
>
> Język PROGRESS umożliwia uzyskanie hermetyzacji w podobny
> sposób, jak umożliwia to język C (bez swojego rozszerzenia
> obiektowego, jakim jest C++). Można to osiągnąć
> poprzez stworzenie instancji procedury zewnętrznej
> poleceniem RUN PERSISTENT, a następnie używając procedur
> wewnętrznych - przez co zmienne zadeklarowane w głównym
> bloku zewnętrznej procedury są dla programisty niewidoczne.
> Może on na nich operować jedynie za pomocą procedur
> wewnętrznych pełniących rolę metod. Jest to rzeczywiście
> proteza. Program tak napisany będzie działał ok. 2,5 raza
> wolniej przy wielokrotnym tworzeniu i niszczeniu instancji
> procedury zewnętrznej, niż program który takiej instancji
> nie tworzy (sprawdziłem to na wersji 9.1B PROGRESS-a pod
> systemem WIN 2000).
>
> Dziedziczenie i polimorfizm nie są w PROGRESS-ie dostępne.
> Nie uważam, żeby fakt ten był podstawą do krytykowania
> PROGRESS-a. Po prostu nie jest on językiem obiektowym,
> co nie wyklucza możliwości realizacji za jego pomocą
> naprawdę złożonych projektów. To właśnie dobry projekt,
> stworzony za pomocą profesjonalnych narzędzi i standardów
> (jak np. standard UML), pozwala na wytworzenie dobrego
> oprogramowania. Wybór języka implementacji i narzędzi
> nie odgrywa już tak dużej roli. Jeżeli mamy dobrych
> programistów, którzy mają duże doświadczenie w używaniu
> jęz. PROGRESS, to po co go wymieniać ?.
>
> Główną zaletą PROGRESS-a jest, moim zdaniem, bardzo dobry
> język do manipulowania danymi. Przynajmniej w porównaniu
> z takim produktem, jak PL/SQL firmy ORACLE. Napisanie
> złożonej transakcji w jęz. PROGRESS jest wg mnie
> łatwiejsze i bardziej naturalne, niż używając jęz.
> PL/SQL.
>
> Pozdrawiam
> -
> Bogdan Brzozowski
>
> ------
> Strona WWW: http://pluton.pol.lublin.pl/pugpl/index.htm
> Obsluga listy: listserv@zeto.bydgoszcz.pl
> Archiwum listy: http://www.zeto.bydgoszcz.pl/progress/index.html
> ------
--
************************************************************
Marek Bujnarowski
Senior Technical Support Engineer
Progress Software EMEA,
Schorpioenstraat 67, 3067 GG Rotterdam,
The Netherlands
E-mail: mbujnaro@progress.com Web: http://www.progress.com
Tel: +31-(0)10-2865-247 Fax: +31-(0)10-2865-225
Support: emeasupport@progress.com
************************************************************
------
Strona WWW: http://pluton.pol.lublin.pl/pugpl/index.htm
Obsluga listy: listserv@zeto.bydgoszcz.pl
Archiwum listy: http://www.zeto.bydgoszcz.pl/progress/index.html
------