Bajtek 9/1986
Bajtek 9/1986 v0.8

To był najdłużej reduksowany numer - ba, nie przez jakieś niesamowite skomplikowanie numeru tylko chroniczny brak czasu jaki mnie dopadł w AD2013 - praca, rodzina, dom... niestety proza życia to największy kat wszelkiej maści dodatkowych zajęć, jak na ...

Zobacz stronę związaną z tym artykułem w Reduksach Try2emu
Spis treści:
Listingi dołączone do numeru w ReadyRun

PRZED EKRANEM

Andrzej Pilaszek

Dobry program...

...musi spełniać bardzo wiele warunków, aby na dobra ocenę zasłużyć. Musi być szybki, łatwo modyfikowalny, zajmować możliwie najmniej pamięci.

Wymieniłem tylko kilka warunków, najczęściej stawianych w podręcznikach programowania, czyli książkach pisanych przez programistów dla programistów. Wszystkie te i podobne do nich, kryteria są słuszne i muszą być spełnione, jednak należy do nich dołączyć wymagania użytkownika, dla którego dobre programy to przede wszystkim te,z którymi współpracuje się sprawnie i przyjemnie.

Jeśli człowiek chce być lubiany, musi być dla innych ludzi miły i uprzejmy. Jeśli program ma odnieść sukces, czyli uzyskać szerokie grono użytkowników, także musi się zachowywać zgodnie z pewnymi zasadami.

Jak ma wyglądać zbiór zasad dobrego wychowania dla programów? Jednoznacznej odpowiedzi na to pytanie nie ma, bo to zawsze trochę rzecz gustu — jedni ludzie wolą towarzystwo rozmowne, inni małomówne, itd. Wydaje mi się jednak, że pewne podstawowe zasady można spróbować sformułować i dlatego postanowiłem przygotować malutki podręcznik, z którego programy będą mogły się uczyć dobrych manier. Oto on:

DOBRE MANIERY DLA PROGRAMÓW

Po pierwsze, przedstaw się człowiekowi, z którym będziesz pracował. Oprócz swojej nazwy, która być może nic mu nie powie, napisz kilka słów o sobie — w czym możesz mu pomóc. Możesz też napisać kiedy się urodziłeś i kto jest Twoim ojcem. Ale nie powinieneś być zbyt gadatliwy — może masz przed sobą kogoś, kto już Cię doskonale zna i szkoda mu czasu na czytanie tego samego po raz setny. Za to na specjalne życzenie powinieneś potrafić opowiedzieć o sobie coś bliższego.

Skoro już prezentacja została dokonana należy omówić szczegóły zadania, które masz wykonać. Może jest to rzecz całkiem prosta, np. rozwiązanie równania. Wtedy szybko poproś o podanie współczynników, oblicz i podaj wyniki. Ale nie uciekaj od razu do systemu operacyjnego. Zapytaj czy jest jeszcze coś do zrobienia i dopiero gdy wszystkie potrzebne równania będą rozwiązane możesz grzecznie powiedzieć „Do widzenia”.

Zawsze bardzo uważnie słuchaj co (za pośrednictwem klawiatury) mówi Twój partner. Jeśli coś wyda Ci się podejrzane, poproś o powtórzenie. Np. jeśli spodziewasz się podania liczby a otrzymałeś znaki: 1o (jedynka i litera o) nie możesz wypisać „SYNTAX ERROR” i uciec bez pożegnania, zostawiając osłupiałego rozmówcę z interpreterem BASIC-a, powtarzającym swoje „READY” z uporem dziecka grającego w pomidora. Należy raczej uprzejmie zasugerować:

Błędnie podana liczba, proszę powtórzyć i kontynuować pracę.

Pamiętaj też, że jako ekspert od wykonywania swojego zadania powinieneś wykrywać także bardziej skomplikowane błędy w danych. Np. jeśli wczytujesz długość i szerokosć prostokąta, to wolno Ci przyjąć tylko liczby większe  od zera. W przeciwnym przypadku zwróć uwagę użytkownikowi, że chyba się pomylił. I oczywiście nie „Do widzenia”, tylko poproś o poprawne wartości.

Czasami zdarza się, że użytkownik podłącza do Twojego komputera drukarkę i prosi o zanotowanie wyników na papierze. Nie zapomnij przed podaniem wyników wypisać najpierw danych, które podał. Jeśli tego nie zrobisz, a będziesz rozwiązywał kilka zadań, to na papierze znajdzie się kilka wyników, które będą zupełnie bezwartościowe, bo człowiek (takie są niestety zwyczaje ludzi) zapomni, które wyniki są dla których danych! I trzeba będzie wszystko liczyć od nowa. Mało tego, chociaż to jego wina — mógł nie zapominać! — to będzie z Ciebie bardzo niezadowolny. Więc napisz mu dla świętego spokoju te dane i jeszcze kilka słów objaśnienia co właściwie oznaczają wydrukowane liczby. Może to wyglądać np. tak:

Pole prostokąta o bokach a = 5, b = 6 wynosi 30 (5 i 6 to dane, które podał, 30 wynik działania programu).

Jeśli Twój komputer ma kalendarz i zegarek, to czasami warto na początku lub na końcu wydruku napisać aktualną datę i godzinę — ludziom potrafią się przydać najdziwniejsze rzeczy. (O tym, że na początku wydruku trzeba się przedstawić nie muszę Ci chyba przypominać).

Co prawda z tymi wydrukami to trzeba bardzo uważać. Jeśli jesteś np. specjalnym programem do pisania listów, czyli Twoje wydruki to będą listy wysyłane później do innych ludzi. To chyba użytkownik będzie wolał żeby na papierze nie zostawały Twoje wizytówki.

Bardzo często zdarza się, że jesteś programem wszechstronnym i potrafisz robić wiele różnych rzeczy. W takim wypadku bądź również uczynny — zaoferuj od razu wszystkie swoje możliwości. Możesz np. wypisać na ekranie: 

POTRAFIĘ OBLICZYĆ

A — objętość kuli
B — objętość sześcianu
C — objętość stożka
Co mam zrobić dla Ciebie?

 

To ostatnie pytanie jest w zasadzie uprzejme, ale i kłopotliwe, bo teraz człowiek nie wie jak ma powiedzieć, że chciałby akurat stożek. Więc jak zapytać?

Pomoże nam tutaj następna ogólna zasada: nie daj się długo prosić! Pozwól, aby użytkownik wydawał Ci polecenia jak najprościej, np. jednym naciśnięciem klawisza. W naszym ostatnim przykładzie, po wyświetleniu oznaczonych literami możliwości, zamiast pytania „Co mam zrobić dla Ciebie?”, możesz zaproponować:

Wciśnij wybraną literę.

Inna możliwość usprawnienia komunikacji, to wyświetlenie dostępnych czynności, a użytkownik niech wybiera przez naprowadzenie kursora na jedną z nich. Może to wyglądać np. tak: piszesz „OBLICZANIE OBJĘTOŚCI” i wyświetlasz symboliczne rysunki brył. dla których potrafisz

policzyć objętość. Kursor ustawiasz pod pierwszym z nich. Użytkownik naciska na klawiaturze strzałkę — przesuwasz kursor pod następny obrazek. Gdy już kursor znajdzie się pod właściwą bryłą, użytkownik, naciskając np. RETURN, poinformuje Cię, że to jest jego wybór.

Jesteś już uczynny i gotów do pracy na każde skinienie? Tak. To świetnie. A pamiętasz niedźwiedzią przysługę, czyli historyjkę o misiu, który z nadmiaru uczynności rozbił przyjacielowi głowę? No właśnie, z uczynnością trzeba bardzo uważać. I to właśnie Ty masz uważać. Twój partner to przecież Człowiek, istota omylna, która czasami nawet nie potrafi dobrze trafić palcem w klawisz. Jeśli widzisz, że prosi Cię o coś co może spowodować straty (np. cały wieczór pisał list, a teraz nacisnął klawisz oznaczający „skasuj wszystko, zaczynamy od początku”), to warto upewnić się, że to nie pomyłka, tylko świadomy krok.

Nie myśl tylko, że namawiam Cię do nieposłuszeństwa. Jeśli partner prosi Cię o coś i stanowczo tę prośbę podtrzymuje, to musisz ją wykonać bez wahania. Chyba, że jest niewykonalna. Np. dzielenie przez zero, lub wyciąganie pierwiastka kwadratowego z ujemnej liczby. Ale w takiej sytuacji trzeba go poinformować: To się nie da zrobić!!!.

Następne cechy bardzo potrzebne w kontaktach z ludźmi to cierpliwość i wyrozumiałość. Byliśmy już niedaleko od nich mówiąc o korygowaniu błędnych danych. Będą Ci nieraz potrzebne także w innych okolicznościach. Skoro ludzie z niezwykłą łatwością o wszystkim zapominają, to nietrudno przewidzieć, że nieraz w trakcie pracy Twój partner zapomni jak ma wydawać Ci polecenia, albo w ogóle co jeszcze potrafisz dla niego zrobić. Najlepiej by było gdyby mógł wtedy napisać „POMOCY”, lub po prostu wcisnąć klawisz „?” i w odpowiedzi otrzymać krótką informację o tym co może od Ciebie uzyskać i w jaki sposób.

Właściwie doszliśmy już do końca naszego samouczka. Jeśli nie przypadł Ci do gustu, bo na przykład nie lubisz stosować się do sztywnych reguł i chcesz kierować się tylko własnym rozumem (to się często zdarza dorastającym programom), to może chociaż zaakceptujesz przynajmniej jedną ogólną zasadę: „PROGRAMY SĄ PO TO, ŻEBY LUDZIOM BYŁO WYGODNIEJ, a nie na odwrót”.

Powyższy zbiorek, trafił do „Bajtka”, bo choć adresowany do programów, może dostarczyć pożytecznych informacji także naszym Czytelnikom. Mam na myśli zarówno tych, którzy nastawiają się raczej na korzystanie z gotowego oprogramowania, jak i tych, którzy sami chcą oprogramowanie tworzyć.

Użytkownicy powinni sobie zdawać sprawę czego należy wymagać od dobrych programów. Choćby po to żeby nie dać sobie „wcisnąć” byle czego. Nawet w sytuacji gdy rynek oprogramowania jest bardzo ubogi i trudno zdobyć jakikolwiek program, warto mieć wysokie wymagania, bo właśnie wymagania użytkowników są jednym z czynników określających co znajdzie się na rynku za rok czy dwa lata.

Natomiast programiści muszą pamiętać, że na nich, jako na „rodzicach” spoczywa obowiązek wpojenia programom zasad dobrego tonu. To, czy dokładnie takich jak wyżej wymienione, może być przedmiotem dyskusji, wiele zależy od konkretnego przypadku. Nasz zbiór reguł można potraktować jako podstawę do dyskusji lub do stworzenia podobnego, na użytek własnych programów.

Na zakończenie chciałbym przedyskutować wątpliwości jakie może budzić postulat tworzenia programów: „życzliwych dla użytkownika”. Przecież napisanie takiego programu wymaga dużego nakładu pracy. Czy nie jest to praca zmarnowana? Przecież jeśli napiszę sobie program, to doskonale wiem jak z niego korzystać

Moja odpowiedź jest następująca: owszem, wiesz, ale jeśli zechcesz skorzystać ze swojego programu po dłuższej przerwie, to już raczej nie będziesz pamiętał. Drugi,znacznie ważniejszy argument jest taki: sytuacja, w której każdy pisze programy sam dla siebie, jest sytuacją przejściową. Jest to możliwe gdy wszyscy traktują programowanie tylko jako dobrą zabawę, gdyż największym zyskiem z napisania programu jest satysfakcja. Przecież na ogół napisanie i przetestowanie programu rozwiązującego konkretne zadanie trwa dłużej niż rozwiązanie zadania „ręcznie”! Czyli, jeśli mając coś do rozwiązania musimy zacząć od napisania programu, zauważamy rzecz niezwykle przykrą: zastosowanie kosztownego komputera miało nam zaoszczędzić czasu i pracy, a tymczasem stało się wręcz przeciwnie!! Przecież tak być nie może! Dlatego właśnie jest tylko jedno wyjście — trzeba pisać programy tak, aby w przyszłości mogły być wykorzystywane przez wiele osób. Oczywiście sama forma nie decyduje o wszystkim. Pozostaje jeszcze treść. Najuprzejmiejszy program nie wzbudzi mojego zainteresowania jeśli nie da się zastosować do rozwiązywania moich problemów. Ale o tym co należy robić, aby jeden program nadawał się do rozwiązywania wielu podobnych do siebie zadań, porozmawiamy innym razem.

Andrzej Pilaszek

Czytaj także w dziale PRZED EKRANEM
„Rachunki i tabelki”
Andrzej Pilaszek - Bajtek 11/1986

Wymagają skupienia i dokładności. Pochłaniają wiele czasu i niestety nie dają żadnej satysfakcji bo są praca zupełnie bezmyślna. Znają ten problem wszyscy ludzie, którzy co miesiąc sumują długie kolumny liczb w planach, kosztorysach czy sprawozdaniach.

Rachunki i tabelki
„Dobry program...”
Andrzej Pilaszek - Bajtek 9/1986

...musi spełniać bardzo wiele warunków, aby na dobra ocenę zasłużyć. Musi być szybki, łatwo modyfikowalny, zajmować możliwie najmniej pamięci.

„Najtrudniejszy zawód”
Andrzej Pilaszek - Bajtek 12/1986

Prezentując typowe zastawania mikrokomputerów prędzej czy później musimy trafić do szkoły. Nie po to. żeby znów dyskutować o tym jak uczyć informatyki. Przed ekranem interesują nas głównie korzyści, jakie może mieć z komputera człowiek, który umie tylko włączyć go do sieci i uruchomić zapisany na taśmie czy dyskietce program.    

„Mikroewolucja”
Sławomir Polak - Bajtek 12/1986

Mikrokomputer ośmiobitowy, który stawiamy na biurku, wykonany techniką lampową, w latach czterdziestych, byłby wielkości czteropiętrowego domu.

„Naprawdę nie święci garnki lepią”
a.p. - Bajtek 3/1987

Propozycja stworzenia własnej bazy danych („Bajtek” 8/86) przypadła do gustu części naszych Czytelników.