C# w 2024 roku

C# w 2024 roku
W ostatnim czasie w społeczności programistycznej pojawia się coraz więcej spekulacji na temat spadającego znaczenia C#, szczególnie w świetle rewolucji AI i dominacji języków takich jak Python czy Java. Analizujemy te twierdzenia i staramy się zrozumieć, co oznaczają one dla testerów.

Pamiętacie COBOL? W latach 90. wszyscy przewidywali jego koniec. Mamy jednak 2024, a COBOL nadal jest wykorzystywany np. w wielu systemach bankowych. Można powiedzieć, że C# znajduje się dziś w podobnej sytuacji, ale rzeczywistość jest znacznie bardziej złożona. Wbrew opiniom o rzekomym spadku popularności tego języka, dane mówią co innego. Indeks TIOBE, uznane źródło pomiaru popularności języków programowania, ogłosił C# "Językiem Roku 2023". 

the-c-sharp-programming-language.pngPotrzebujecie więcej dowodów? Unity, jeden z największych silników gier, używany przez polskie studia CD Projekt Red i Techland, działa na C#. Microsoft stale inwestuje w ekosystem .NET. Wiele polskich firm, od startupów po korporacje, aktywnie rozwija projekty w C#. To chyba wystarczy.

Dlaczego testerzy powinni się tym interesować?

Bezpieczeństwo typów to jedna z największych zalet C# w testowaniu. Podczas gdy języki dynamiczne jak Python oferują elastyczność, ścisłe typowanie w C# wyłapuje potencjalne problemy już na etapie kompilacji, przed uruchomieniem testów. To oznacza mniej niespodzianek w czasie testowania i bardziej niezawodne zestawy testów.

Sam ekosystem C# oferuje testerom wiele korzyści, które warto szczegółowo przeanalizować. Przede wszystkim, mówiąc o frameworkach testowych, nie sposób pominąć kompleksowych możliwości, jakie zapewniają MSTest czy NUnit. Te narzędzia nie tylko świetnie integrują się z Visual Studio i popularnymi narzędziami CI, ale też zapewniają wsparcie zarówno dla testów jednostkowych, jak i integracyjnych. W kontekście testowania międzyplatformowego, C# również pokazuje swoją prawdziwą siłę. Dzięki .NET Core możemy prowadzić testy na różnych systemach operacyjnych - Windows, Linux czy macOS. Co więcej, poprzez Xamarin i MAUI otrzymujemy solidne wsparcie dla testowania aplikacji mobilnych. Warto też wspomnieć o bezproblemowej integracji z platformami chmurowymi, co znacząco upraszcza proces testowania w środowiskach rozproszonych.

Szczególnie imponujące są możliwości C# w zakresie testowania aplikacji korporacyjnych. Zaawansowane narzędzia do testowania aplikacji ASP.NET Core, w połączeniu z szerokim wsparciem dla testowania architektur mikrousługowych, to naprawdę solidna podstawa dla kompleksowych testów. Dodatkowo, wbudowane wsparcie dla wstrzykiwania zależności i mockowania znacząco ułatwia pracę przy złożonych projektach.

Zamiast więc ogłaszać "śmierć" jakiegokolwiek języka, lepiej postarać się zrozumieć specjalizację różnych technologii. Python wyróżnia się w obszarze wytwarzania i testowania rozwiązań AI/ML i automatyzacji procesów. Java utrzymuje silną pozycję w produkcji i testach aplikacji korporacyjnych oraz na platformę Android. C# szczególnie dobrze sprawdza się w budowaniu i weryfikacji rozwiązań z ekosystemu Microsoft oraz aplikacji międzyplatformowych. Z kolei Rust znalazł swoją niszę wśród aplikacji, gdzie wymagana jest wysoka wydajność. Oczywiście to wszystko ma znaczenie jeśli trzymacie się zasady, że język testów powinien być spójny z językiem wytwarzania. 

languages-python-csharp-java-rust.png

C# na rynku pracy

Jeśli chodzi o rynek pracy, malejące możliwości zatrudnienia nie ominęły specjalistów C#, w tym testerów. Mimo wszystko można zauważyć, że stale rozwija się sektor testowania oprogramowania korporacyjnego, gdzie znajomość C# jest często jednym z ważniejszych wymagań. Równie intensywnie rozwijają się możliwości w branży gier, gdzie platformy takie jak Unity, bazujące na C#, wciąż dominują rynek. Nie można też pominąć rosnącego zapotrzebowania na testerów aplikacji Windows oraz rozwiązań chmurowych, zwłaszcza w kontekście platformy Azure.

Zamiast więc rezygnować z C#, warto zastanowić się nad tym, jak mądrze podejść do rozwoju swoich kompetencji. Pozostaje inwestycja w ciągłe i w miarę regularne rozwijanie umiejętności posługiwania się C#, na przykład przez regularne studiowanie najnowszych frameworków testowych .NET. Do tego przyda się uważne śledzenie nowych funkcji samego języka i szlifowanie swoich umiejętności korzystania z narzędzi testowych np. w Microsoft.

Jednocześnie warto pamiętać o tym, aby uzupełniać swój warsztat o dodatkowe umiejętności. W miarę rozwoju technologii AI/ML, znajomość Pythona staje się cennym dodatkiem do testerskiego portfolio, podobnie sprawa ma się ze zgłębianiem możliwości platform chmurowych oraz eksplorowaniem strategii testowania międzyplatformowego, co może zwiększyć wartość testera na rynku pracy i jego konkurencyjność względem dziesiątek (o ile nie setek) innych kandydatów. 

Podsumowanie

C# nie umiera, a raczej ewoluuje. Dla testerów język ten nadal jest ważnym narzędziem, szczególnie przy pracy z technologiami Microsoft i aplikacjami korporacyjnymi. Kluczem jest zrozumienie, gdzie narzędzia testowe C# sprawdzają się najlepiej, a gdzie inne technologie mogą być bardziej odpowiednie.

Chcesz wiedzieć więcej o C#? Wpadnij na szkolenie C# dla testerów oprogramowania już 17-19 grudnia 2024 r.

>> rezerwuj miejsce <<

Źródła:
https://www.tiobe.com/tiobe-index/csharp/
https://medium.com/@kenslearningcurve/c-is-dead-6acfd6e4d7d6

To powinno Cię zainteresować