Budujemy wieżę Babel

Paradoksem - podobnie jak w przypadku odmian języka XML - jest, że głównym wrogiem struktur i obiektów są zmiany, czyli czynniki przed niekorzystnym wpływem, których metodyki te miały programy chronić. Złożoność tych zmian powoduje "spychanie" obiektów do coraz niższego poziomu, czego skrajnym skutkiem może być podważenie sensu ich stosowania. Należy jednak zastrzec, że ta - niewątpliwie kontrowersyjna - opinia, dotyczy niektórych tylko dziedzin, obsługiwanych przez systemy informatyczne. Przodują pod tym względem systemy taryfikacji i naliczania należności w telekomunikacji oraz operacyjnej obsługi banków detalicznych.

Wszystko to stanowi kolejny przykład budowy tytułowej wieży Babel - te same z pozoru systemy, z grup stosowanych przez operatorów telekomunikacyjnych czy przez banki, po wyczerpaniu skromnych - w stosunku do potrzeb - możliwości parametryzacji, ulegają w każdym indywidualnym przypadku dalece idącym zmianom w kodach programów. W efekcie każdy z takich systemów staje się systemem stworzonym na miarę i może obsługiwać tylko jedną, konkretną instytucję.

Ten sam los grozi rozwiązaniom z zakresu Web Services, będącym dopiero w początkowym stadium rozwoju. Podobne do wspomnianych uwarunkowania praktyczne oraz względy bezpieczeństwa (nie dopracowane, by nie rzec - ignorowane) spowodują, że rozwiązania te staną się bardzo szybko własnym zaprzeczeniem, czego wyrazem będzie ich powielanie w odrębnych, odseparowanych od siebie, jak obecnie Internet i intranety, systemach tego rodzaju usług.

Nie widać innej drogi

Przeciętny twórca czy użytkownik systemów informatycznych nie ma zbyt wielkiego wpływu na kierunek rozwoju dziedziny, jaką są języki programowania. Poza jego możliwością oddziaływania pozostaje też zakres związany z kształceniem (chociaż już nie - doskonaleniem umiejętności) programistów.

Proces takiego kształcenia, jeszcze na poziomie uczelni, jest kosztowny i stanowi koszt społeczny. Równie kosztowne jest utrzymywanie licznych specjalistów w firmach informatycznych i u tych użytkowników, którzy sami zajmują się tworzeniem i testowaniem programów oraz sprawują nad nimi bieżącą opiekę. Ponoszone tam koszty obejmują również doskonalenie umiejętności tych specjalistów.

Oba te procesy - kształcenia formalnego i nabywania umiejętności praktycznych - są tym kosztowniejsze, im większej liczby języków dotyczą. Z innej strony - programiści omnibusy, potrafiący posługiwać się kilkoma językami, nie uzyskują na ogół wysokiej sprawności w każdym z nich.

Sytuacja zbiorowego i systematycznego budowania informatycznej wieży Babel, z coraz pojawiającymi się nowymi językami programowania, zmusza użytkowników (włączając do nich również firmy informatyczne) do podejmowania prób sensownego znalezienia się w tej sytuacji. Podstawowe znaczenie mają przy tym, a przynajmniej powinny mieć, kryteria jakościowe i ekonomiczne.

Z punktu widzenia rozpatrywanej tu sprawy kryteria te mają wiele wspólnego: stworzenie systemu informatycznego, w trakcie tworzenia którego stosuje się szczególnie dużo języków programowania, jest kosztowne. Źródłem kosztów są konieczne w tym celu narzędzia programowe, sprzęt i specjaliści. Jednocześnie trudniejsze (i także droższe) jest zapewnienie odpowiedniej jakości takiego systemu. Odnosi się to również do przyszłych nakładów, związanych z bieżącym utrzymaniem systemu i jego ewentualnym rozwojem. Osobne i wpływające przede wszystkim na jakość znaczenie ma stosowanie nowych języków programowania, które nie są tworami dostatecznie sprawdzonymi w praktyce i powodują liczne, będące tego skutkiem, problemy.

Nowe języki programowania bądź nowe ich wersje powstają i zapewne będą powstawać. W wielu przypadkach to wynik celowych działań producentów sprzętu i oprogramowania, którzy chcą tą drogą pozyskać klientów. Obszarem szczególnie rozwijającym się są języki przeznaczone do programowania tzw. warstwy klienta w rozwiązaniach sieciowych. Związane z nimi ograniczenia techniczne powodują, że widoczna jest tendencja do odchodzenia od modelu systemu, w którym znaczny udział ma przetwarzanie na komputerze użytkownika. Zastępują go rozwiązania, gdzie jedynym programem wykorzystywanym po stronie użytkownika jest przeglądarka internetowa, pełniąca jednocześnie rolę interfejsu oraz kompilatora i wykonawcy programu.

Nie bez znaczenia są również inne, niż wspomniana klientowska, warstwy stosowanego systemu.

To właśnie do narzędzi i metod stosowanych przy ich budowie odnoszą się przede wszystkim formułowane tu uwagi. Wiele nadziei wiąże się z językiem XML, który, nie będąc tworem żadnego z producentów (i który - powtórzmy - nie jest typowym językiem programowania), ma realne szanse na wejście również w obszar tych warstw. Sprzyjają temu rosnąca moc obliczeniowa komputerów i utrzymująca się niska cena ich pamięci operacyjnych - dwa czynniki o krytycznym dla tego rodzaju rozwiązań znaczeniu. Wrogiem jest mnożenie się odmian tego języka. To ostatnie może być źródłem problemów o skali znacznie większej od tych, jakie już dziś dla użytkowników powodują różne wersje przeglądarek internetowych, a kierującym ośrodkami obliczeniowymi sprawia narastający i nie mający dotąd dobrego rozwiązania problem współdziałania różnych systemów.

O ile problem stwarzany przez wielość narzędzi do tworzenia programów daje się, przy pewnej konsekwencji, rozwiązać bądź ograniczyć, o tyle sprawa integracji systemów pozostaje nie rozwiązana i dotąd nie widać nawet zapowiedzi realnego postępu w tym zakresie. Tu budowa wieży Babel trwa w najlepsze - budowniczowie nie rozumieją się wzajemnie, a wieża ledwo odrasta od ziemi.


TOP 200