Który system wybrać do nauki programowania?

Systemy uniksowe postrzegane są jako oprogramowanie, które wymaga od użytkownika większej wiedzy. Niektórzy znawcy tematyki informatycznej polecają, aby przed rozpoczęciem nauki tworzenia oprogramowania sięgnąć po Linuksa, FreeBSD, Solarisa lub nawet MacOSX. Czy mają rację? Warto to przeanalizować biorąc pod uwagę różne pola działalności programistycznej. Niektóre dziedziny rozwijają się dużo lepiej na jednej z platform, są też takie, które wymagają znajomości obu. Oto nasz przegląd ścieżek rozwoju programistycznego, wraz ze wskazówkami co do wyboru systemu operacyjnego.

Strony/aplikacje internetowe

Cóż, doskonale zdajemy sobie sprawę, że samo pisanie w HTML nie jest programowaniem. Po prostu: język ten nie jest równoważny obliczeniowo maszynie Turinga. Statyczny HTML można jednak obecnie zobaczyć głównie pod linkami zatytułowanymi "A tak wyglądała nasza strona X lat temu". Zazwyczaj kolejnym krokiem po nauczeniu się HTML jest odkrycie w sobie talentu projektanta i pogłębianie wiedzy o grafice lub zainteresowanie się technikami, które wzbogacają wygląd strony (JavaScript, Flash). Niektórzy autorzy stron zwracają się ku językom programowania dającym możliwość tworzenia witryn połączonych z bazą danych (co jest koniecznością np. przy serwisach społecznościowych) czyli PHP, Javie bądź C#.

Nie da się ukryć, że dużym ułatwieniem dla webmastera jest posiadanie Windows co ułatwia testowanie stron w przeglądarce Internet Explorer. Innym plusem systemu Microsoftu jest większa dostępność oprogramowania graficznego. Zaletę Uniksów stanowi fakt, iż często wykorzystywane są na serwerach- zdobyte na Linuksie umiejętności administracyjne to cenne uzupełnienie wiedzy webmastera. Innym argumentem za tym by sięgnąć po rozwiązania OpenSource są wygodne edytory- standardowe Kate i gedit charakteryzują się dużą liczbą funkcji ułatwiających życie webmasterom. Trzeba przyznać, że także dla Windows można znaleźć ciekawe programy takie jak Notepad++ czy dostępny na obu platformach Jext.

Podsumowując: w wielu zastosowaniach bardziej rozwinięte aplikacje oferuje Windows, jednak znajomość systemów uniksowych jest dla webmastera bardzo cenna.

Skrypty administracyjne

Wykonywanie o określonej porze kopii zapasowej danych? Skonwertowanie dużej liczby plików multimedialnych? Ściąganie nowych plików, jeśli pojawią się na wybranym serwerze? Małe programiki do tego typu zastosowań dużo wygodniej pisze się w mającym więcej programów konsolowych Linuksie. Windowsowy PowerShell dysponuje sporą liczbą funkcji, ale zaletą rozwiązań uniksowych jest fakt, iż duża liczba nowych programów bardzo dobrze współpracuje z powłoką.

Słowem: domena Uniksów

Aplikacje desktopowe

Wygodny w użyciu a jednocześnie wydajny język C# połączony z bibliotekami i środowiskiem uruchomieniowym .NET to duży atut Windowsa- łączy czytelność Javy, na której jest w dużej mierze wzorowany, z wydajnością niewiele odbiegającą od C++. Choć dzięki projektowi Mono można programować w C# także na Linuksie, najnowsze wersję języka jako pierwszy otrzymuje system Microsoftu.

Kolejną przewagę "okienek" stanowi fakt, iż aplikacje "biurkowe" napisane we wspomnianej już Javie szybciej wykonują się na platformie Windows.

Zaletą Uniksów jest to, że duża liczba aplikacji konsolowych stanowi solidną postawę pod rozwiązania desktopowe, które często mogą być po prostu tzw. front-endami czyli programami dostarczającymi wygodnego graficznego interfejsu dla aplikacji wiersza poleceń. Często jest też tak, iż przydatny program można stworzyć "sklejając" funkcje kilku innych. Bardzo dobrze sprawdza się w tej dziedzinie prosty dla początkujących język programowania Python. W Linuksach można znaleźć do niego sporo interesujących bibliotek.

Wynik: Linux lub Windows

Urządzenia mobilne

Z wyborem systemu dla programisty zajmującego się tworzeniem aplikacji wzbogacających funkcjonalność przenośnych gadżetów związane są dwa pytania: który system lepiej sprawdza się na urządzeniu, a który na maszynie używanej do tworzenia oprogramowania. Skoncentrujmy się na drugim z tych pytań: dostępnością emulatorów wyróżnia się Windows.

Oczywiście - trudno za to winić autorów oprogramowania OpenSource- nie jest ich winą, że producenci sprzętu dostarczają aplikacje "udające" ich gadżety w pierwszej kolejności użytkownikom systemu Microsoftu.

Warto pamiętać, iż tworzenie aplikacji dla zablokowanego iPhone'a wymaga Maca. Ciekawostką jest fakt, iż po odblokowaniu telefonu łatwiej pisać na niego pod Linuksem niż pod Windows.

Jeśli zamierzamy programować w mobilnej Javie najlepiej poradzimy sobie z tym używając Windowsa bądź Linuksa.

Wybór: Windows

Gry

Tworzenie nowych wirtualnych światów uważane jest za najciekawszą z programistycznych przygód. Rynek gier windowsowych jest dużo bardziej nasycony niż rynek aplikacji rozrywkowych dla "Pingwina". Nie przesądza to jednak o wyższości "Okienek". System Microsoftu dłużej funkcjonuje na rynku i, między innymi z tego względu, jest popularniejszy. Pomaga mu także łatwość obsługi (gracze zazwyczaj cenią prostotę) i rozbudowana biblioteka DirectX. Niższa popularność może być jednak postrzegana jako zaleta Linuksa- jest on niszą rynkową, którą można zagospodarować. Dzięki otwartym silnikom graficznym (engines) takim jak Ogre (kilka z nich działa zarówno na Linuksie jak i na Windows) staje się coraz atrakcyjniejszą platformą dla gier.

W tyle w stosunku do Linuksa jest MacOSX- grafikę 3d wyświetla on również dzięki OpenGL, ale charakteryzuje się mniejszą dostępnością gotowych engine'ów.

Nasza sugestia: Windows

Podsumowanie:

Otwarte Uniksy w przeciwieństwie do systemu z Redmond pozwalają się dogłębnie poznać, często stanowią też "inkubator" nowych rozwiązań. Dlatego trochę dziwi fakt, że w wielu zastosowaniach programistycznych Windows może mieć więcej do zaoferowania. Pozornym paradoksem jest to, że dla osoby, która chce tworzyć programy, kwestią kluczową bywa ... dostępność już istniejących aplikacji.


Zobacz również