Przyszłość programistów w 2022 roku

Czy C# i platforma .Net wciąż będą dobrym wyborem dla programistów w 2022 roku?

Rok 2020 przyniósł wszystkim bardzo dużo zmian. Podczas gdy inne branże bardzo dotkliwie odczuły skutki pandemii, dla IT otworzyły się całkiem nowe horyzonty. W trakcie lockdownów duża część naszego życia przeniosła się do wirtualnego świata. Na znaczeniu nabrały rozwiązania związane z transformacją cyfrową przedsiębiorstw, digitalizacją danych czy automatyzacją działań. Serwisy streamingowe, e-commerce czy usługi uruchamiane w chmurze zarejestrowały niespotykane dotąd wzrosty przychodów. Stworzyło to nowe możliwości i jeszcze większe zapotrzebowanie na usługi programistyczne. 

Piotr ZielińskiPiotr Zieliński. FullStack Developer (.NET + Angular) z ponad 10-letnim doświadczeniem. Obecnie pracuje w Inwedo Sp. z o.o., gdzie dodatkowo jest rekruterem technicznym oraz mentorem. Pisze również artykuły na firmowy blog inwedo.com/blog, a od niedawna prowadzi także swojego bloga piotrzielinski.dev.


Wiele firm związanych z branżą technologiczną, w tym wytwarzania oprogramowania, przyjęło zasadę permanentnej pracy zdalnej, co w skrócie oznacza, że możemy teraz pracować z dowolnego miejsca dla dowolnej firmy na świecie. Koronawirus przyniósł jednak zauważalną zmianę ilości ofert pracy dla programistów na początku kariery. Firmy w niepewnych czasach są mniej skłonne do inwestowania w mniej wykwalifikowanych specjalistów, więc większość ofert pracy skupia się na doświadczonych inżynierach. Sprawiło to, że osoby, które chcą wejść do tej branży, muszą bardzo dokładnie przeanalizować rynek pracy i zainwestować w te technologie i języki, które najlepiej rokują na najbliższe lata.

Popularność C# w 2021 roku

W sierpniu 2021 roku serwis stackoverflow.com opublikował swoją coroczną ankietę dla deweloperów. Wnioski płynące z jej wyników stały się przyczynkiem do rozważań, czy C# jest dalej językiem godnym uwagi zarówno dla nowych, jak i doświadczonych programistów.

Developer Survey 2021Źródło: stackoverflow.com Developer Survey 2021

W 2021 roku 29,81 proc. z 58 031 respondentów pracujących w zawodzie programisty wykorzystuje język C#. Gdy porównamy te dane z wynikiem tej samej ankiety za rok 2020 tj. 32.3 proc. przy 47 184 ankietowanych, da się zauważyć tendencję spadkową jego popularności.

Developer Survey 2020Źródło: stackoverflow.com Developer Survey 2020

Ta sama ankieta na rok 2021 dostarcza również ciekawych informacji w szczególności dla nowych developerów. 

Developer Survey 2021Źródło: stackoverflow.com Developer Survey 2021

W zestawieniu „Most loved, dreaded” język C# wypada całkiem nieźle. 61,96 proc. programistów wykorzystujących ten język na co dzień jest nim zachwycona. Wątpliwości co do przyszłości języka mogą pojawić się, gdy spojrzymy na chęć poznania go przez nowe osoby.

Developer Survey 2021Źródło: stackoverflow.com Developer Survey 2021

Ankieta sugeruje, że tylko 6,45 proc. programistów zainteresowanych jest rozpoczęciem nauki i pracy z C#. Teoretycznie jest to ponad 3 razy mniej niż w przypadku najpopularniejszych dziś języków, takich jak Python czy JS (którego i tak de facto nie unikniemy, jeśli chcemy tworzyć aplikacje webowe). Warto jednak podkreślić że .NET i C# daje naprawdę duże możliwości i nie należy obawiać się ewentualnego dużego progu wejścia w ten język, co postaram się przedstawić w niniejszym artykule.

Największe wyzwania i trendy w wytwarzaniu oprogramowania na rok 2022

Inżynieria wytwarzania oprogramowania cały czas ewoluuje, aby z jednej strony sprostać oczekiwaniom stawianym przez użytkowników, a z drugiej – dostosować się do aktualnych trendów i technologii. Kiedyś większe znaczenie miały aplikacje desktopowe uruchamiane na komputerze użytkownika. Od dłuższego czasu jednak prym wiodą aplikacje, których można używać za pomocą przeglądarek internetowych, uniezależniając je tym samym od urządzenia, na którym są uruchamiane. Przełomem dla tego rodzaju aplikacji było wprowadzenie języka HTML5, który wyparł Adobe Flash w zakresie bogatego, responsywnego interfejsu. Na pewnym etapie doszło również do odwrócenia tego trendu, ponieważ z narzędziami takimi jak np. Electron można tworzyć aplikacje, korzystając z technologii webowych i uruchamiać je jak aplikacje desktopowe.

Przez ostatnią dekadę przeżyliśmy również niemałą rewolucję w zakresie hostowania aplikacji, które w przypadku aplikacji .NET było dość drogie w porównaniu do php czy node.js. Wcześniej, gdy chcieliśmy udostępnić nasze rozwiązanie szerszemu gronu odbiorców, trzeba było zainwestować sporo pieniędzy w zakup i utrzymanie fizycznych serwerów, na których będzie ono publikowane. Obecnie na znaczeniu zyskały usługi uruchamiane w chmurze publicznej, gdzie za stosunkowo nieduże pieniądze możemy wydzierżawić serwer, uruchomić na nim naszą aplikację i wraz ze wzrostem jej popularności kilkoma kliknięciami myszki dostosować naszą wirtualną infrastrukturę do obciążenia. Szczególne znaczenie ma to dla startupów, które mogą dość szybko i niewielkim kosztem stworzyć rozwiązanie MVP i jak tylko pojawi się zwiększony ruch na stronie, szybko zareagować i bardzo łatwo wyskalować cały serwis. Kolejny krok milowy w zakresie hostowania przyniosła również konteneryzacja, dzięki której technologia użyta do developowania naszego WebApi przestaje mieć tak duże znaczenie.

Poniżej wybrałem kilka trendów i wyzwań, które mają bądź będą miały szczególne znaczenie dla wytwarzania oprogramowania w latach 2021/2022. Oto jak adresuje je język C# oraz platforma .NET. 

1. IoT – Internet rzeczy

W dzisiejszych czasach przedrostka SMART można już praktycznie oczekiwać od wszystkich sprzętów, które wspierają jakość naszego życia. Mamy inteligentne domy, sprzęt AGD, oświetlenie, gniazdka elektrycznie czy nawet ubrania. Wszystkie te urządzenia mogą łączyć się z siecią oraz w sieć, tworząc Internet Rzeczy. 

Microsoft, wychodząc naprzeciw oczekiwaniom rynku i twórców inteligentnych rozwiązań wprowadził we wrześniu 2019 roku, przy okazji .NET Core 3.0, wsparcie dla GPIO Raspberry Pi i procesorów ARM64 w systemie Linux. Dzięki temu otrzymaliśmy możliwość użycia tego samego frameworka i języka C# do budowania aplikacji, które będą np. zbierać dane z inteligentnych czujników oraz przekazywać je do naszej aplikacji zarządzającej temperaturą czy wilgotnością w domu. 

Ponadto mamy do dyspozycji .NET nanoFramework – rozwiązanie oparte o ChibiOS, wspierające kilka różnych typów mikrokontrolerów. Otwiera nam on perspektywę wykorzystania .NET i C# do tworzenia rozwiązań na tzw. urządzenia wbudowane (embedded devices). 

2. Progressive web applications

Mimo, że technologia PWA nie jest niczym nowym, a Google promuje tego typu rozwiązania od kilku lat to fakt, że dołączył do niego Microsoft daje nam jasny sygnał, że znajdzie się ona wśród trendów programistycznych na kolejne lata. Progressive Web Application pozwala na uzyskanie przez użytkownika smartfona doświadczenia zbliżonego do pracy z aplikacją natywną przy wykorzystaniu rozwiązań przygotowanych z myślą o przeglądarkach. Aplikacja taka uruchamia się podobnie jak natywna z menu start, ekranu głównego itp. i otwiera nowe okno, które nie przypomina przeglądarki (choć może, jeśli taka konieczność zaistnieje). Pozwala to w założeniu oszczędzić koszty związane z potrzebą tworzenia dwóch różnych rozwiązań dla web i mobile.

Jeśli chcemy stworzyć nową aplikację webową w .NET np. w oparciu o Blazor WebAssembly to od dodania do niej wsparcia dla PWA dzieli nas jedno kliknięcie.

 Blazor WebAssembly Źródło: Visual Studio

Zapraszamy do dyskusji

Patronujemy

 
 
More Stories
Microsoft wypuścił opensource’owy projekt React Native. Prasówka Technologiczna: 10.05.2019 r.