Programista na Windowsie

Od wielu lat pracuję jako programista. W swojej pracy często spotykam się ze zdziwieniem a niekiedy szyderstwami w związku z tym, że pracuję na Windowsie. Utarło się od jakiegoś czasu, że „prawdziwy” programista pracuję na Linuksie a Windows to co najwyżej może być używany przez „panią Grażynkę z księgowości” albo mamę i tatę. A co z Macami? Mac jest również zachwalany przez programistów lecz często można zauważyć go w rękach ludzi z biznesu „bo tak wypada się pokazać u klienta”… coś jak szpanowanie dobrym samochodem.

Wydaje mi się, że ten pogląd jest zakorzeniony w głowach ludzi należących do dwóch kategorii:

  1. Zatwardziałych linuksowców (fanboy)
  2. Ludzi, którzy zdobyli wiedzę z opinii innych ludzi a nie bazując na swoim doświadczeniu

O ile ludzi z pierwszej kategorii mogę jeszcze zrozumieć – na „fanboyizm” nie ma lekarstwa o tyle drugi przypadek wynika po prostu z ignorancji i braku wiedzy – a to dla mnie żadne wytłumaczenie.

Niniejszym chciałbym odczarować ten pogląd, posiłkując się nieco historią oraz własnym doświadczeniem.

Historia

Przez ileś lat żyliśmy w pewnym stereotypie polegającym na tym, że Windows to system dla komputerów osobistych: do pisania, do gier, do pracy z różnymi innymi programami, natomiast linuks jednoznacznie kojarzył się z serwerami.

I rzeczywiście: Windows był prostszy w obsłudze dla zwykłego śmiertelnika, natomiast linuks kojarzył się z czymś zaawansowanym: z wierszem poleceń, z sieciami i pisaniem różnych skryptów.

Trzeba jednak pamiętać, że te dwa światy żyły i rozwijały się równolegle (niejako obok siebie)… na Windows powstawały kolejne platformy programistyczne pozwalające pisać aplikacje z wykorzystaniem okienek (np Delphi), podczas gdy na linuksach rozwój szedł w kolejne języki programowania wymagające dużej wiedzy technicznej.

Z biegiem czasu i Windows i kolejne dystrybucje linuksa zaczęły zauważać lukę w odbiorze swoich systemów: Windows zaczął rozwijać dystrybucje pod serwery, a linuksy zaczęły rozwijać dystrybucje z graficznym interfejsem użytkownika, tak by pokazać, że linuks nie jest taki straszny, że jest to darmowa alternatywa równie prosta w obsłudze do Windows.

Latka leciały. Zaczęło się pojawiać coraz więcej standardów, Internet stał się bardziej dostępny, komputer szybsze. Pojawiły fora, czaty…. zaczęły tworzyć się społeczności skupione wokół określonej dziedziny czy technologii.

Microsoft

Kolejnym problemem jest ogólny „hejt” na Microsoft wynikający prawdopodobnie z tego, że większość ludzi kojarzy Microsoft tylko z Windowsem zapominając, że jest to firma która ma w swoim portfolio kilka naprawdę bardzo udanych i ważnych na rynku rzeczy:

  1. Platforma DirectX – coś bez czego nie byłoby większości gier
  2. Konsola Xbox
  3. Pakiet Office
  4. Windows Server
  5. .NET

Owszem Microsoftowi zdarza się mieć wpadkę ze swoim systemem, ale czy tak naprawdę wiadomo z czego to wynika? Porównajmy:

WindowsLinuxMac
sprzętróżneróżnepełna kontrola
wydaniaraz na kilka latkilkadziesiąt dystrybucji, różne wersjeraz na kilka lat

Ta prosta macierz pokazuje pewną zależność. Windows nie dość, że jest instalowany na „niewiadomo jakim” komputerze, to jeszcze wydania technologiczne są niezbyt częste – wydawane są tylko poprawki, a sam system wspierany jest kilka wersji w tył. Poza tym jest to najpopularniejszy system i podobnie jak na Wordpresie z którego korzystam pisząc tego posta – jest on narażony na większą ilość ataków i problemów (po prostu taki system bardziej opłaca się atakować i psuć)

Co dziś umie Windows?

Jako programista piszący głownie w pythonie i korzystający z różnych technologii towarzyszących, na moment pisania tego artykułu mogę sprawnie korzystać z:

  1. python w dowolnej wersji (Instalator lub Conda), pip, venv
  2. docker (docker for windows)
  3. pakiet Microsoft Office
  4. Photoshop
  5. Flutter oraz Dart
  6. PHP
  7. Redis
  8. RabbitMQ
  9. Java
  10. Linux (WSL – Windows subsystem for Linux)

Microsoft wyczuł moment i idąc za ciosem zaproponował community oprócz płatnego i bardzo rozbudowanego zestawu narzędzi programistycznych „Visual Studio” za kupę siana – także rozwiązanie darmowe „Visual Studio Code”, którego główną potęgą są rozszerzenia pozwalające pracować na praktycznie dowolnej technologii.

W większości współczesnych narzędzi i rozwiązań możemy znaleźć wsparcie właśnie dla tego programu – chociażby mocno promowany przez firmę Google Flutter. Myślę, że na dzień dzisiejszy można stwierdzić, że wśród darmowych narzędzi jest ono najbardziej popularne i pokonało wcześniejsze bardzo podobne rozwiązania takie jak Atom i Sublime (być może zadziałał tutaj odpowiedni marketing).

Zestawienie

TechnologiaWindowsLinuxMac
pythontaktaktak
dockertaktaktak
photoshoptaknietak
pakiet MS Officetaknietak
popularne grytaknienie
linuxtaktak
windowsnienie
macnienie

Starałem się przedstawić tabelkę obiektywnie, względem rzeczy, które programiście, takim bardziej full-stackowym, zachaczającym także nieco o biznes i product ownerstwo mogą być potrzebne. Widać, że Windows nabił najwięcej punktów i jest najbardziej uniwersalny

Podsumowanie

Ten post mimo iż tak wygląda nie miał na celu „wychwalanie” Windowsa, lecz faktycznie starałem się zwrócić uwagę na to co współcześnie ten system oferuje. Uważam za niesprawiedliwe udawanie czy niezauważanie starań i postępu jaki twórcy Windowsa poczynili w ostatnich latach aby ten system stał się bardziej przyjazny programistom. Ja w każdym razie zostaję na tym systemie choć pozostaję oczywiście otwarty na inne rozwiązania.

Masz problem z jakąś technologią na Windowsie? Daj znać w komentarzu.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *