Artykuł: Czy niewidomy może programować?

Zasadnicza kwestia, przed którą na pewnym etapie użytkowania komputera staje osoba niewidoma, dotyczy efektywniejszego, a co za tym bardziej przystosowanego dla screenreaderów wykorzystywania oprogramowania. Niestety, jak powszechnie wiadomo, większość specjalistycznych programów i gier komputerowych jest w większym lub mniejszym stopniu nieprzystosowana do współpracy ze screenreaderami. I nie pomaga tutaj fakt, iż wciąż intensywnie rozwijane są programy udźwiękawiające, które z założenia powinny poradzić sobie z każdą aplikacją komputerową.

Te ograniczenia wymuszają na niewidomych użytkownikach stosowanie rozwiązań alternatywnych, poszukiwanie w sieci odpowiednich programów, zastępników, które będą lepiej współpracowały z gadaczami.

Drugim bardziej ambitnym rozwiązaniem jest napisanie potrzebnego oprogramowania przez samego zainteresowanego. Do tego ostatniego gorąco zachęcam, ponieważ tylko my sami będziemy wiedzieli, czego nam brakuje. Dodatkowo samo programowanie i później ukończenie projektu daje programiście bardzo dużo satysfakcji oraz pomaga nabywać doświadczenie, które będzie można spożytkować w pracy zawodowej. Dlatego w niniejszym artykule postaram się przedstawić praktyczne wskazówki, które będą przydatne dla początkującego niewidomego programisty.

Dobrze, a co to jest programowanie?

Za programowanie powszechnie uznaje się wszelkie działania związane z tworzeniem, modyfikowaniem itp. programów komputerowych. W zasadzie praca programisty ogranicza się do dwóch podstawowych czynności.

Pierwszą z nich jest pisanie kodu programu w pliku tekstowym. Na tym etapie w edytorze tekstu wpisuje się odpowiednie instrukcje, określone przez składnie każdego języka programowania. Warto w tym miejscu dodać, że składnia większości języków programowania jest do siebie bardzo podobna, a języki różnią się między sobą wyłącznie detalami np. zawartością bibliotek.

Drugi etap rozpoczyna się po ukończeniu edycji, programista zamienia swój plik z instrukcjami na kod zrozumiały dla komputera ? etap ten zwany jest kompilacją. Proces ten wykonywany jest przez specjalny program tzw. kompilator, który jest głównym narzędziem każdego programisty. W Internecie dostępnych jest wiele różnych kompilatorów. Warto wiedzieć, że bardzo często bywa tak, że dla jednego języka programowania dedykowanych jest kilka kompilatorów. Przykładem takiej sytuacji jest np. c++, który posiada takie kompilatory, jak VC i GCC.

Początki

Pierwszy dylemat, przed którym staje początkujący programista już na początku swojej przygody z programowaniem, dotyczy wyboru konkretnego języka programowania do nauki i pracy. Ten wybór jest szczególnie ważny dla niewidomego programisty, bowiem pula dostępnych języków ograniczona jest przez możliwość dobrej współpracy programu udźwiękawiającego z środowiskiem, w którym będziemy tworzyć oraz dostępność materiałów pomocniczych w sieci w formie elektronicznej. Dlatego w moim przekonaniu wybór konkretnego języka powinien się ograniczyć do tych najbardziej popularnych. Takimi językami są niewątpliwie Delphi, Visual Basic, C/C++, c#, a dla aplikacji internetowych - PHP.

Przegląd języków

Język programowania Delphi jeszcze niedawno tj. kilka lat temu był bardzo ceniony przez nieprofesjonalnych programistów. Jednak z uwagi na rozwój innych konkurencyjnych języków, a także skierowanie Delphi przez firmę Borland (dewelopera tego środowiska) do dużych firm, profesjonalnych podmiotów jego popularność w zdecydowany sposób zmalała. Dla osoby z dysfunkcją wzroku, która zdecyduje się pisać w tym języku istotny będzie fakt, że składnia Delphi jest bardzo prosta. Większość tzw. słów kluczowych, a także znaków specjalnych jest wyrażana słownie, co pozwala za pomocą screenreaderów wygodnie przeanalizować napisany kod. Oczywiście słowna reprezentacja praktycznie wszystkich elementów języka w zdecydowany sposób wydłuża czas programowania i zwiększa możliwość popełnienia błędu tzw. literowego. Dodatkowo Delphi uznawany jest za język mało optymalny i powolny w wykonywaniu kodu. Z językiem programowania Delphi ściśle związane są zaprojektowane przez Borland narzędzia RAD (Rapid Application Development ? szybkie tworzenie aplikacji), które umożliwiają zaprojektowanie wizualnego interfejsu programu za pomocą myszki (metoda przeciągnij i puść). Niestety najnowsze aplikacje tj. Delphi 2010, 2006 i 2005 raczej źle współpracują z programami mówiącymi. Dlatego najlepiej, aby osoba niewidoma wymienionych przeze mnie środowisk nie pobierała. Ostatnim RAD dobrze współpracującym z screenreaderami był Delphi 7, który można np. pobrać za darmo ze strony Borlanda. Narzędzie to umożliwia, między innymi osobie niewidomej, łatwe i szybkie zaprojektowanie w pełni wizualnego interfejsu. Oczywiście na naukę tego środowiska trzeba poświęcić trochę czasu, jednak wbudowane w Delphi 7 narzędzie Object Inspektor w zdecydowany sposób ułatwia projektowanie.

Visual Basic swój początek wywodzi z języka programowania Basic. W chwili obecnej język ten rozwijany jest przez Microsoft. Od jakiegoś czasu, tj. od wersji Visual Studio 2005, Visual Basic zaliczany jest do rodziny języków platformy .net, co zostało dobrze przyjęte przez środowisko programistów. Budowa Visual Basic (VB) jest bardzo zbliżona do Delphi, tj. w składni używa się bardzo często słów zamiast znaczników znakowych typu ?{?. Łączy się to z podobnymi zagrożeniami, na jakie zwrócono uwagę przy Delphi. Jednak warto zaznaczyć, że VB od produktu Borlanda jest bardziej zoptymalizowany i efektywniejszy. Wspomniane powyżej Visual Studio jest sztandarowym środowiskiem programistycznym firmy Microsoft, które obsługuje kilka języków programowania, a co za tym idzie, posiada kilka wbudowanych kompilatorów. Rozwiązanie zastosowane w Visual Studio sprawia, że w jednym miejscu można tworzyć różne projekty, dedykowane odmiennym systemom operacyjnym i przeznaczone dla innych odbiorców. Dodatkowym atutem wbudowania kilku kompilatorów w jednym miejscu jest ułatwiona nauka interfejsu środowiska programistycznego, bowiem należy się nauczyć tylko jednego, a nie kilku, co może być kłopotliwe.

Sama praca z Visual Studio należy do przyjemnych i raczej łatwych, ponieważ środowisko to w 90% jest dostępne dla screenreaderów. Problemy z odczytem pojawiają się w opcjach VS oraz opcjach projektów, jednak po krótkim przeanalizowaniu okna za pomocą kursora myszy (w przypadku WE) okaże się, że do wszystkich niezbędnych elementów można uzyskać dostęp, a co za tym wszystko jest osiągalne. Warto podkreślić, iż tworzenie wizualne projektu w VS jest trudne, dlatego lepiej cały kod uzupełniać przez edytory wbudowane w to środowisko. Przy edycji kodu bardzo pomocne są podpowiedzi. Po wpisaniu części nazwy lub słowa, które program rozpozna jako jedno ze słów kluczowych lub nazw własnych funkcji lub zmiennych, po odczekaniu 2, 3 sekund i po naciśnięciu spacji, pozostała część komendy zostanie automatycznie uzupełniona. Warto również wiedzieć, że komunikaty, błędy wyświetlane po przeprowadzonej kompilacji można podejrzeć strzałkami, bowiem informacje kompilatora wyświetlane są w elemencie przypominającym pole edycyjne. Należy także pamiętać, że wyświetlane informacje bardzo często są zawijane przez margines i dlatego trzeba przejść na koniec linii komunikatu, aby przeczytać ukrytą część. Między plikami zawartymi w projekcie najlepiej poruszać się poprzez tzw. Solution Explorer, widoczny w górnej części okna. Dostać się tam można za pomocą kursora myszy, albo menu ?View? i Solution Explorer. Dokumentacja do Visual Basic jest bardzo rozbudowana i dostępna w języku angielskim pod adresem www.msdn.microsoft.com.

Na koniec warto dodać, że Microsoft udostępnił kilka wersji Visual Studio. Dla osoby niewidomej warta polecenia jest wersja 2005 Expres Edition, ponieważ najlepiej współpracuje z screenreaderami. Pozostałe wersje tj. Visual Studio 2008 i 2010 znacznie gorzej współpracują z programami mówiącymi, a wersja 2008 jest jeszcze możliwa do obsłużenia przez np. WE, natomiast z najnowszą wersją VS jest to praktycznie niemożliwe.

Obecnie najbardziej popularnym językiem programowania jest C++  - następca starszego C. Na popularność tego języka składa się wiele czynników, jednak do najważniejszych można zaliczyć elastyczność i ogromny potencjał. Oczywiście C++ posiada wady, które w szczególności dotykają osoby z dysfunkcją wzroku. Najważniejszą wadą języka C++, która utrudnia pracę z screenreaderami jest jego budowa składniowa. W przeciwieństwie do języków wysokiego poziomu takich, jak Visual Basic C++, zdecydowanie w mniejszy sposób używa słów kluczowych. Zastępując je znacznikami typu ?{? albo ?I++? itp. Taka składnia sprawia, że objętość napisanego kodu w zdecydowany sposób się zmniejsza, jednak należy uważać, aby nie pomylić albo zgubić któregoś ze znaczników. Jest to w szczególności uciążliwe dla osób niewidomych. Dlatego, chcąc to ominąć, trzeba w programie udźwiękawiającym ustawić poziom interpunkcji na wartość maksymalną, aby wszystko było odczytywane. Drugim rozwiązaniem, bardziej uciążliwym, jest stosowanie tuż po znaczniku tzw. komentarzy informujące o danym znaku specjalnym. Przykładem takiego zapisu jest np. ?{ // otwarcie klamry?.

Drugą istotną niedogodnością, mającą wpływ na pracę screenreaderów, jest rozróżnianie przez C++ dużych liter. Niestety, należy bardzo uważnie czytać wszelkie przykłady, dokumentację dołączoną do bibliotek, zwracając uwagę na wielkość liter, bowiem każdy programista stosuje inną nomenklaturę w nazewnictwie. Niestety, nie mają tu znaczenia próby w ujednoliceniu tego chaosu w nazywaniu, ponieważ ogólne reguły nie są stosowane powszechnie - np. system węgierski (mimo poparcia Microsoftu).

Obecnie dostępnych jest wiele środowisk, kompilatorów przeznaczonych dla C++. Jednak dla osób niewidomych mogą być warte uwagi dwa tj. Visual Studio oraz Devc. Jak to już zostało wspomniane, VS przeznaczone dla VB jest praktycznie takim samym RAD dla innych języków, w tym C++. Dlatego wszystkie uwagi przedstawione przy omawianiu VB mają odniesienie do kompilatora C++ Microsoftu. Drugim środowiskiem godnym uwagi jest wspomniany Devc. Środowisko to jest w pełni spolszczone, toteż początkujący programista będzie mógł bardzo szybko zapoznać się z Devc. Dodatkowo, na plus tego środowiska należy zaliczyć pełną dostępność dla screenreaderów. Niestety, Devc od 2005 roku nie jest rozwijany, dlatego stopniowo traci na funkcjonalności i nie jest polecany dla bardziej zaawansowanych programistów. Jednak do celów nauki programowania w C++, Devc jest bardzo dobrym środowiskiem.

W celu pogłębienia wiedzy z zakresu C++ warto oczywiście odwiedzić stronę MSDN, a także www.cplusplus.com.

Bardzo dobrym kursem programowania w C++ jest ?Od zera do gier kodera?, znajdujący się na stronie http://www.gamedev.pl/tutorials.php?x=category&id=18

Jednak w sieci dociekliwy programista znajdzie wiele innych ciekawych informacji związanych z C++.

Język C# jest bezpośrednim następcą C++. Charakteryzuje się on całkowitą obiektowością oraz powiązaniem go z platformą .net. Składnia i budowa jest bardzo zbliżona do C++, dlatego mają tutaj zastosowanie wszystkie wspomniane już wcześniej uwagi. Niestety, wybór środowiska programistycznego C#, a co za tym kompilatora jest ograniczony, jednak środowisko Visual Studio, proponowane przez Microsoft, w pełni zadowoli niewidomego użytkownika. Język C# zasługuje na uwagę niewidomego programisty ze względu na łatwość tworzenia aplikacji tzw. okienkowych, które każdy użytkownik zna z pracy w systemie operacyjnym Windows. Całą dokumentację, w tym przykłady przydatne w trakcie programowania można odszukać na stronie MSDN albo w pomocy podręcznej do programu (klawisz skrótu F1), która wydaje się bardziej przejrzysta i funkcjonalna.

Do tworzenia zaawansowanych stron, prócz HTML, przeznaczono wiele języków skryptowych. Jednym z najbardziej popularnych języków, do którego można odszukać w sieci najwięcej pomocy, jest PHP. Odróżnieniu od wcześniej wymienionych w tym artykule języków, PHP jest językiem skryptowym, co oznacza, że napisany przez programistę kod nie jest zamieniany na plik wykonywalny (z rozszerzeniem .exe), tylko jest interpretowany ?w locie? przez specjalny program (w przypadku stron WWW tym programem jest przeglądarka internetowa, a także interpreter po stronie serwera). Warto wiedzieć, że PHP można wykorzystać tylko do napisania stron internetowych albo aplikacji sieciowych opartych o strony WWW. W celu rozpoczęcia nauki programowania w PHP należy pobrać i zainstalować silnik tego języka. W mojej opinii najłatwiej zainstalować to narzędzie wraz z programem Krasnal, który jest lokalnym serwerem stron WWW i FTP, ewentualnie można zainstalować serwer Apache i obsługę PHP. Edycja kodu w PHP jest bardzo prosta, bowiem ogranicza się do otwarcia zwykłego notatnika np. systemowego, a następnie po zapisaniu pracy zamiany rozszerzenia pliku TXT na HTML albo PHP. Edycja kodu w zwykłym notatniku skutkuje tym, iż należy bardzo uważnie uzupełniać kod, bowiem lokalizacja i poprawa błędów jest w zdecydowany sposób utrudniona.

Reasumując, należy w zdecydowany sposób podkreślić, że osoba z dysfunkcją wzroku może względnie swobodnie tworzyć i modyfikować własne programy. Jednak trzeba tutaj zauważyć, że niewidomy programista jest zmuszony zachować wyższe standardy pisania kodów źródłowych w celu lepszego i szybszego poprawiania ewentualnych błędów. Niestety większość materiałów dostępnych na rynku w formie książkowej, tradycyjnej, bardzo źle się skanuje. A warto zauważyć, że umieszczone w tych podręcznikach przykłady muszą być bardzo dokładnie przeskanowane, bowiem zmiana, opuszczenie choć jednego znaku może w zdecydowany sposób uniemożliwić analizę zaprezentowanego kodu. Na szczęście do książek bardzo często są dołączane płyty CD z przykładami źródeł kodów użytymi w danym podręczniku. I na koniec należy podkreślić, że sztuka programowania nie jest łatwa, i aby napisać prawdziwy program trzeba najpierw poświęcić dużo czasu na naukę podstaw. Jednak jak już na wstępie to zostało zauważone, warto się uczyć programowania, ponieważ ukończony projekt z nawiązką zwraca wszystkie godziny ciężkiej znojnej pracy.

Jarosław Świerz

* Autor jest absolwentem prawa Uniwersytetu Warszawskiego. Od 2007r. pracuje jako specjalista ds. prawa cywilnego i administracyjnego w kancelarii radców prawnych ?R. Morawski, M. Wojdyło?. Prywatnie miłośnik gier planszowych, a także dobrej literatury.

 

Projekt współfinansowany ze środków Państwowego Funduszu Rehabilitacji Osób Niepełnosprawnych oraz Gminy Miejskiej Kraków