Skip to: Site menu | Main content

Autor

Chłopak z Bałut (Dołów), po uniwerku i stypendium. Wiecznie zestresowane, przemądrzałe bezguście. Więcej na stronie domowej.

Informatyczna Ściema Wszech Czasów

Wynurzenia

Postanowiłem zorganizować konkurs na Informatyczną Ściemę Wszech Czasów. Konkurs odbył się na przełomie lutego i marca 2007 roku w mojej głowie. Ponieważ nie obowiązywały w nim żadne reguły, a zwycięzca nie otrzymał żadnej nagrody, nie będziemy się rozwodzić nad zawiłościami regulaminu, tylko od razu przejdziemy do przedstawienia kandydatów.

Pierwszym pretendentem jest najnowszy system operacyjny Microsoftu - Windows Vista. Zapowiadany na koniec 2003 roku flagowy produkt firmy z Redmond, którego wydanie wielokrotnie przekładano, a funkcjonalność obcinano, zdaniem krytyków wnosi bardzo niewiele innowacji w stosunku do istniejących systemów. Przyznam, że miałem zaledwie minimalny kontakt z tym cudem techniki, więc trudno mi się na jego temat rzeczowo wypowiadać. Ale nawet gdyby ktoś chciał określić Vistę mianem ściemy, trudno byłoby uzasadnić jej wszech czasowość. Ta bowiem oznacza nie tyle ilość nabranych dotąd ludzi (która byłaby cokolwiek trudna do zmierzenia), co pewnego rodzaju ponadczasowość, uniwersalność i... zapewne również wieczność, niestety. I z tego właśnie powodu z konkursu odpadają nie tylko Windowsy, ale w ogóle wszelkiego rodzaju oprogramowanie. Bez względu na to, czy powstało, czy też nie. Bez względu na skalę swojego oddziaływania.

Drugi kandydat, który zgłosił się do konkursu, to polityka cokwartalnego (lub, nie daj Boże, jeszcze częstszego) zmieniania hasła, jako metoda podnoszenia bezpieczeństwa systemów komputerowych. Jest to praktyka, która oferuje złudne poczucie bezpieczeństwa, doprowadzająca zwykle użytkowników do zapisywania swoich haseł na karteczkach, monitorach i innych łatwo dostępnych miejscach. Password aging stosowane i polecane jest bodajże od lat 70. ubiegłego wieku i na razie nie zapowiada się, aby miało odejść w niepamięć. Jednak ofiarami tego pomysłu padają zazwyczaj zwykli użytkownicy. Nie wystarczy zostać stworzonym przez programistów, żeby zasłużyć na miano Informatycznej Ściemy Wszech Czasów. Tytuł ten przyznawany jest bowiem tym ściemom, które są od programistów, dla programistów.

Chciałbym wreszcie przedstawić ostatniego kandydata, zwycięzcę mojego konkursu. Niestety nie wiem, jak się nazywa. Brak jednej nazwy jest bowiem jego najsilniejszym atutem. Informatyczna Ściema Wszech Czasów jest niczym wirus, przeciwko któremu należy się regularnie szczepić, bo co chwila pojawiają się jego nowe mutacje i odmiany.

Zacznijmy więc od... lat czterdziestych ubiegłego stulecia. Wtedy to Saul Gorn napisał artykuł pod tytułem "Is Automatic Programming Feasible?", w którym odpowiada twierdząco na postawione sobie pytanie. Około 40 lat później (w 1985r.), prof. David Parnas demistyfikuje pojęcie automatycznego programowania jako eufemizmu dla języków wyższego poziomu niż aktualnie dostępne. Dwa lata później, jego zdanie podziela Fred Brooks (autor słynnego mitycznego osobomiesiąca), powątpiewając, czy automatyczne programowanie może przynieść przełom w metodyce tworzenia oprogramowania.

Sam pomysł odrodził się na nowo dziesięć lat później za sprawą (niegroźnego samego w sobie) języka (?) UML. Sformalizowany sposób opisywania programów przy pomocy diagramów, abstrahujący od sposobu wykonania programu na maszynie, dawał nareszcie nadzieję na uwolnienie się od sztucznych języków programowania i umożliwienie tworzenia systemów komputerowych przez osoby nie znające żadnego z nich. Ta przesłanka wystarczyła do stworzenia nowego klona automatycznego programowania, nazwanego tym razem Model-Driven Architecture. Nienależący do konsorcjum OMG Microsoft używa natomiast nazwy Software Factories.

Pomysł stary jak programowanie: nie programować. Programowanie jest żmudne, nudne i powtarzalne, więc zająć się tym powinny komputery. Należy w tym celu stworzyć nadprogram, który będzie generował programy na podstawie opisów innego typu, których (dla zmylenia przeciwnika) nie nazywa się już programami.

Cały problem polega jednak na tym, że stworzenie takiego nadprogramu jest niemożliwe. Zwróćmy uwagę, że nadprogram taki musi rozumieć generowany przez siebie program (o ile oczywiście zakładamy, że wynik ma być poprawny). Niestety, możliwość analizy programów przy pomocy innych programów została zakwestionowana przez Henry'ego Rice'a w 1953 roku.

Na koniec dodam tylko, że założenia twierdzenia Rice'a obejmują między innymi nietrywialność analizowanego programu, co, naturalnie, dopuszcza istnienie generatorów tak oczywistych fragmentów kodu, jak np. warstwa transportowa protokołu zdalnego wykonania.

04 marca 2007, 00:44:31

Komentarze

tuwlos, 04 marca 2007, 19:45:16

nie ściemniaj :)

Treść komentarza można formatować zgodnie ze składnią Textile.
Odpowiedzi śledzić można przy pomocy RSS RSS .