Zacznijmy w sposób nieoczywisty: od Apple. MacBooki Pro uważane są obecnie za najlepszy wybór dla deweloperów. Primo: ze względu na bezproblemowe środowisko. Mówcie co chcecie, nie licząc Ubuntu żadna dystrybucja Linuxa nie może pochwalić się wsparciem ze strony tak dużej liczby narzędzi dla programistów jak MacOS. Secundo: ze względu na świetnie przeprowadzoną integrację na linii sprzęt-system operacyjny, co gwarantuje nie tylko wydajność, ale również (a może przede wszystkim) bezpieczeństwo.

A jednak odnoszę mocne wrażenie, że Apple zaniedbało ostatnimi czasy programistów – czyli, potencjalnie, tę grupę swoich klientów, która ma o ich rozwiązaniach tak naprawdę najwięcej do powiedzenia wszystkim pozostałym. Na tegorocznym WWDC nie zabrakło ogłoszeń z kategorii „osom ficzers”; zabrakło jednak, i to zdecydowanie, nowości stworzonych dla podstawowej grupy odbiorców tej konferencji. Ostatecznie: czy nie mówimy o Apple WorldWide Developers Conference? Ogólnoświatowej Konferencji Apple [dla] Deweloperów?

I nie jest to tak, że Apple nie miało czego ogłaszać. O niektórych z przemilczanych podczas konferencji newsach pisaliśmy zresztą w osobnych newsach – np. o porzuceniu basha na rzecz zsh w MacOS-ie Catalinie. To zdecydowanie dużo ważniejsze niż jakiekolwiek nowe emojis; to kluczowe ogłoszenie. I nie mam w zasadzie żadnych wątpliwości, że spece od marketingu z Cupertino – gdyby chcieli – potrafiliby to ubrać w całą litanię „ochów” i „achów”.

Ale jednak – nie ubrali.

 

Enter Microsoft

Tymczasem Microsoft, całkiem po cichu, bez „ochów” i „achów”, ale konsekwentnie i uczciwie zamienia swój system w środowisko coraz to bardziej przyjazne deweloperom. Wprowadzenie Linux Subsystem for Windows w 2016 roku było ogromnym krokiem naprzód, a uczynienie z „podsystemu” natywnej funkcji Windows 10 aktem dużej odwagi – oraz dowodem determinacji. Niedawno MS zapowiedział jednak kolejny, potencjalnie jeszcze bardziej przełomowy krok. W kolejnej wersji WSL pojawi się jeszcze więcej nowości, a programiści będą mogli korzystać ze swojej ulubionej dystrybucji Linuxa już bez żadnych ograniczeń. Szerzej pisaliśmy o tym w osobnym newsie.

 

 

Z wielkim upodobaniem przyglądam się poczynionym ostatnimi czasy przez Microsoft krokom w kierunku „szeroko pojętego programisty”. Zdecydowanie widać mocny zwrot w polityce tej firmy, i nie chodzi tu wcale o rzeczy najbardziej oczywiste. Chodzi przede wszystkim o otwarcie się (częściowe, ale zawsze) na społeczność open-source (MS kojarzony był przeważnie z polityką rygorystycznego close-source). Być może wiecie, że nie tak dawno, bo w 2018 roku, Microsoft dołączył do inicjatywy Open Invention Network, oddając jednocześnie społeczności open-source… 60 tysięcy swoich patentów. Ta skala musi robić wrażenie.

 

Trochę historii, trochę kontekstu

Historia relacji Microsoftu z programistami nie należy do najprostszych. Mówimy o firmie o długiej historii; firmie (wciąż!) typowo software’owej, jednej z tych, która przeżyła większość języków, w jakich tworzyli jej programiści. Jej wpływ na sposób, w jaki tworzy się obecnie oprogramowanie, jest niezaprzeczalny, również dlatego, że Windows nadal jest najpopularniejszą na świecie platformą, z poziomu której oprogramowanie to jest potem wykorzystywane.

 

 

Jeszcze niedawno, bo na początku XXI wieku, Windows uważany był przez programistów za wcale niezgorsze środowisko do pracy. Miał swoje wady; to oczywiste. Ma je w końcu każdy system. Nie był jednak odrzucany „z samej swojej definicji”. Sam znam wielu programistów, którzy swoją przygodę z programowaniem – idącą obecnie w drugie, trzecie dziesięciolecie eksploracji – zaczynali pod Windowsem. Z czasem porzucali go jednak, najczęściej na rzecz wybranej przez siebie dystrybucji Linuxa lub, począwszy od pewnego momentu, któregoś z kolejnych MacOS-ów. Spory udział w tym zwrocie miały problemy z Windowsem Vistą. Był to system problemowy, i to nie tylko dla programistów. Wiele osób zdecydowało się wtedy pozostać przy Windowsie XP. Kiedy w 2009 roku światło dzienne ujrzał Windows 7, większość pasjonatów od dawna programowała pod Linuxem czy MacOS-em.

 

 

To niefortunne, biorąc pod uwagę, że na przełomie wieków Microsoft nadal był jednym z liderów, jeśli nie po prostu liderem, tego wyścigu. Opracowane przez firmę z Redmond zintegrowane środowisko programistyczne, Visual Studio, które miało swoją premierę w 1995 roku, natychmiast znalazło rzesze wiernych zwolenników. Niedługo później, bo – odpowiednio – w 2001 i 2002 roku, Microsoft potwierdził swoje pierwszeństwo, oddając światu – kolejno – język C# oraz platformę .NET Framework. Przez długi czas technologie te uważano za przyszłość programowania. C# cieszył się ogromną popularnością, a z rozwojem .NET wiązano ogromne – naprawdę ogromne – nadzieje.

Niestety, „pęknięcie bańki dot-comów”, jak określa się dziś kryzys branży IT z przełomu dwudziestego i dwudziestego pierwszego wieku, a w dalszej kolejności – zwrot rynku w stronę aplikacji mobilnych, położyły kres tym aspiracjom. Pierwsze dziesięciolecie XXI wieku Microsoft spędził w cieniu dzisiejszych gigantów z Doliny Krzemowej, takich jak Google, Facebook czy Apple. Szczególnie to drugie, czyli wzrost znaczenia aplikacji mobilnych, zaszkodziło pozycji tej firmy. Choć opracowane przez Microsoft rozwiązania idealnie nadawały się do „poważniejszych” zastosowań, aplikacje mobilne tworzone były w zupełnie inny sposób.

 

C# – przeszłość i przyszłość

Choć nie można powiedzieć, aby przyszłość C# kiedykolwiek „stała pod znakiem zapytania” – Microsoft nigdy nie zamierzał porzucać wsparcia dla swojego produktu – to jego popularność trudno uznać za stałą. Język ten powstał wprawdzie z myślą o oprogramowaniu tworzonym pod Windows (i w środowisku tego systemu). Obecnie jednak, na skutek działań Microsoftu, które zaowocowały udostępnieniem platformy .NET Framework pod Linuxem i MacOS-em, w C# może pisać każdy, niezależnie od systemu, pod którym – i na który – tworzy swoje programy. Znacząco przyczynia się to do podbudowania popularności C#, który na tę chwilę (czerwiec 2019) jest 8 najpopularniejszym językiem na Githubie (łącznie prawie ćwierć miliona projektów). Jest też trzecim najczęściej tagowanym językiem w serwisie Stack Overflow, co w praktyce oznacza, że zgromadzona wokół niego społeczność jest bardzo aktywna.

 

 

C# umożliwia też – obecnie – tworzenie aplikacji na urządzenia mobilne, i to zarówno te z Androidem, jak i te z iOS-em, wszystko dzięki narzędziom Xamarin. Microsoft nabył firmę odpowiedzialną za rozwój tych narzędzi – również o nazwie Xamarin – w 2014 roku. Niedługo potem, bo w 2016 roku, przedstawiciele Microsoftu ogłosili, że narzędzia te udostępnione zostaną społeczności na zasadzie open-source. To dodatkowo zwiększyło ich popularność. Natomiast programiści tworzący aplikacje serwerowe mogą korzystać z popularnego frameworka ASP.NET, będącego – nota bene – w pierwszej dziesiątce najpopularniejszych projektów stworzonych z zastosowaniem C# na Githubie.

C# znajduje swoje zastosowanie również w silniku Unity – jednej z najpopularniejszych obecnie technologii przeznaczonych do tworzenia gier na prawie wszystkie, jeśli nie wszystkie z dostępnych platform, z VR-em włącznie.

 

Aplikacje mobilne

O rynku aplikacji (nie tylko tych mobilnych, ale również tych webowych) i powiązanych z nim technologicznych wojnach, mniejszych i większych, można by napisać książkę. Jest jednak faktem, że przez długi czas rynek ten rozwijał się głównie za sprawą Google i Apple, a także Facebooka. Większość aplikacji webowych na świecie napisana jest w jednym z dwóch dużych frameworków. Mowa tu o Angularze (produkt Google) i Reakcie (produkt Facebooka), które znacząco ułatwiają pracę programistom piszącym w języku JavaScript, a utrudniają walkę o rynek tym firmom, które z JS-em swojej przyszłości nie wiążą (o ile jest to jeszcze możliwe).

Tymczasem aplikacje mobilne powstają najczęściej w Javie i Kotlinie (Android) albo Swifcie i Objective-C (iOS). Choć można tworzyć je także w oparciu o C#, nie jest to najczęstszy wybór. Jest to, ma się rozumieć, możliwe, ale na listach popularności C# oscyluje przeważnie gdzieś pomiędzy czwartą a piątą pozycją.

 

 

Obecność Microsoftu na rynku aplikacji jest jednak obecnie niezaprzeczalna, a wszystko to dzięki TypeScriptowi – udostępnionemu w 2012 roku „rozszerzeniu” JavaScriptu, które, w opinii części programistów (szczególnie tych tworzących w Angularze, gdzie TS jest standardem), uczyniło JavaScript tym, czy język ten powinien być od początku.

Niektórzy wolą traktować TS jak osobny język; inni odbierają go raczej jak „nadbudowę” JS. Wg oficjalnej definicji TypeScript jest „nadzbiorem” JavaScriptu; oznacza to, że każdy program napisany w JavaScripcie jest także poprawnym programem w TypeScripcie. Nie zmienia to jednak faktu, że TypeScript jako taki musi być przed uruchomieniem skompilowany do JS-a. Wszystko to sprawia, że jego status wciąż nie jest jasny, nawet dla programistów, którzy tworzą w nim swoje programy. Jedno jest pewne: TypeScript jest niezwykle popularny (szczególnie w zastosowaniach biznesowych: dużych, „ciężkich” aplikacjach, gdzie błędy w oprogramowaniu mogą kosztować firmę miliony), a wiele osób twierdzi, że jest on najlepszym, co spotkało JavaScript w całej historii tego języka. To jednak temat na inną okazję.

 

Microsoft Surface Laptop

Możliwościom, jakie udostępnia programistom Microsoft, warto przyjrzeć się także od strony czysto sprzętowej. Szczególnie ciekawa okazuje się w tym kontekście linia Surface. Są to, z jednej strony, urządzenia konwertowalne typu 2 w 1 z odczepianą klawiaturą (coś na zasadzie ultrabooka, ale o znacznie lepszych osiągach), z drugiej zaś – bardziej tradycyjne notebooki, takie jak Surface Laptop.

 

 

Naszą recenzję ultrabooka Microsoft Surface Pro można przeczytać tutaj, a obejrzeć pod tym adresem. Sprzęt robi naprawdę dobre wrażenie. Tymczasem notebooki Microsoft Surface Laptop radzą sobie jeszcze lepiej. Przy obecnych możliwościach – i wykorzystaniu Linux Subsystem for Windows – zdecydowanie stanowią one mocną konkurencję dla uznawanych do tej pory za najlepszy wybór dla programistów MacBooków. Tym mocniejszą, że dużo łatwiejszą w integracji z urządzeniami zewnętrznymi, co zdecydowanie podnosi ich wartość w kontekście zadań, które tego wymagają. Niestety, hermetyczne Apple’owskie środowisko nadal potrafi być sporym problemem. Tu natomiast z łatwością możemy przełączać się pomiędzy Linuxem a Windowsem, a co więcej: nie będziemy narzekali na brak odpowiednich połączeń i portów. Sprzęt Microsoftu po prostu nie generuje tego problemu.

 

 

Visual Studio Code

Visual Studio, czyli zintegrowane środowisko programistyczne Microsoftu, nigdy tak naprawdę nie straciło na popularności. To wciąż pierwszy wybór dla osób piszących we wspieranych przez tę firmę językach.

Natomiast Visual Studio Code to wypuszczony przez Microsoft darmowy edytor kodu dla programistów, dostępny także na zasadzie open-source, dzięki czemu zgromadzona wokół niego społeczność może rozwijać go według swojego uznania i potrzeb (tworząc np. wyspecjalizowane pluginy). Edytor udostępniony został po raz pierwszy w 2015 roku; od tamtego czasu odebrał palmę pierwszeństwa swojej konkurencji i na ten moment stanowi najpopularniejsze rozwiązanie na świecie. Jeśli wierzyć statystykom, które zebrał serwis Stack Overflow, z edytora Microsoftu korzysta obecnie 50,7% aktywnych deweloperów.

 

 

Visual Studio Code oferuje natywne wsparcie dla wszystkich najpopularniejszych języków programowania. W pozostałych przypadkach programiści mogą sięgnąć po napisane przez społeczność wtyczki i uzupełnienia, które wypełnią ewentualne braki we wsparciu. Widać tu także zupełnie nowe podejście firmy do produktu: pomimo dość dużego poziomu złożoności, VS Code jest przejrzysty i prosty w obsłudze, nawet dla początkujących deweloperów (a może: w szczególności dla nich?). W istocie jednak, nie inaczej niż w przypadku innych aplikacji desktopowych Microsoftu, VS Code jest prawdziwym kombajnem. Świetnie sprawdza się zarówno pod Windowsem, jak i pod Linuxem czy MacOS-em; jest doskonałą podstawą zestawu narzędziowego w arsenale każdego programisty.

 

Podsumowanie

Na przestrzeni ostatnich lat Microsoft zrobił bardzo wiele, aby wrócić na pozycję niekwestionowanego króla software’u. Obecnie, i trzeba to przyznać, zmaga się ze znacznie silniejszymi konkurentami niż dawniej. Jeżeli jednak w latach osiemdziesiątych i dziewięćdziesiątych był w stanie pokonać Apple, to teraz również jest w stanie to zrobić.

Na korzyść firmy z Redmond przemawia nie tylko opieszałość konkurencji – tracącej obecnie swój impet – ale także jej coraz bardziej otwarte podejście. Nie ma żadnych wątpliwości, że społeczność open-source przesądzi o przyszłości rynku IT. Nie tylko dlatego, że każdego dnia produkuje ona więcej kodu, niż wszystkie największe firmy na rynku razem wzięte; również dlatego, że to właśnie z niej rekrutuje się najbardziej utalentowanych deweloperów – jednostki oraz zespoły, które potem zmieniają oblicze tej branży. Ostatnie działania Microsoftu niewątpliwie poprawiły wizerunek tej firmy wśród tej grupy odbiorców. Na rynku, gdzie walka o najlepszych specjalistów pochłania bajońskie sumy pieniędzy, praca dla Microsoftu ponownie staje się trendy.