Spis treści
- Intro
- Raport TSH State of Frontend 2020
- Raport Stack Overflow Developer Survey 2020
- The State of Developer Ecosystem 2020
- HackerRank Developer Skills Report
- Dev Skiller – Raport o najlepszych umiejętnościach IT 2020: Popyt i trendy zatrudniania
- Radar technologiczny ThoughtWorks
- Ilu programistów jest na świecie?
Intro
Wdrażanie nowych technologii jest bardzo kuszące z perspektywy transformacji cyfrowych i tworzenia oprogramowania. Jakie technologie królują więc wśród programistów w 2020 roku? Jeżeli zaczynasz przygodę z nowym projektem informatycznym w swojej firmie lub wahasz się nad wyborem języka programowania, zobacz które z nich są najbardziej popularne.
Pamiętaj jednak, iż wybór popularnego języka nie oznacza, że jest on dla Ciebie najlepszym rozwiązaniem. Nie tylko to składa się na duże bezpieczeństwo biznesowe. Najpierw strategia potem technologia.
Raport TSH State of Frontend 2020
The Software House wydał raport, w którym opublikowało wyniki z przeprowadzonych ankiet wśród 4500 developerów z całego świata.
Wynika z niego między innymi, że:
- React nadal króluje, mając łącznie tylu użytkowników, co Angular i Vue.js razem wzięte.
- Deweloperzy frontendu chcą się uczyć Vue.js oraz Svelte. Wszystko wskazuje na to, że frameworki wkrótce prześcigną Angulara.
- Jeśli chodzi o zarządzanie stanem w projektach, więcej osób korzysta z React Context API niż z Redux’a
- Ponad 3/4 programistów miało kontakt i używało języka TypeScript. Większość z nich uważa, że jest on dużo lepszy niż JavaScript.
- Ponad 40% programistów frontend’owych nadal wdraża swoje aplikacje na własnych serwerach internetowych.
- Wśród dostawców chmury Amazon Web Services jest zdecydowanie najpopularniejszym celem wdrożeń.
- Continuous Integration jest już standardem programowania frontend.
- Prawie 1/3 deweloperów frontendu zbudowała ostatnio witrynę Jamstack i liczba ta prawdopodobnie będzie rosła w ciągu najbliższych miesięcy
- Prawie 25% frontend’owców opracowało już mikro frontendy i jest możliwe, że ta technologia wkrótce osiągnie dojrzałość i będzie coraz częściej wykorzystywana w projektach.
- Aż 52% respondentów twierdzi, że nie obchodzi ich (z różnych powodów) SEO. Co osobiście uważam, za bardzo błędne podejście.
- Większość programistów frontend’owych twierdzi, że dba o dostępność aplikacji i zna podstawy WCAG.
- 92% programistów technologii frontend’owych na całym świecie pracuje w zespołach programistycznych.
- W prawie 50% zespołów projektowych nadal nie ma specjalistów ds. zapewnienia jakości.
Raport Stack Overflow Developer Survey 2020
Przez prawie dekadę Stack Overflow miał zaszczyt wydawać największą ankietę przeprowadzaną wśród programistów na całym świecie. W tym roku, zamiast dążyć do bycia największym, postanowili uczynić ich ankietę bardziej reprezentatywną. W tegorocznym badaniu udział wzięło prawie 65 000 osób.
Krótkie podsumowanie:
- JavaScript wygrywa z oszałamiającym wynikiem 67.6%.
- 78.2% ankietowanych programistów uważa, że programowanie i nowoczesne technologie to jego hobby.
- 8.9% programistów swoją pierwszą linijkę kody napisało zanim osiągnęło 10 lat.
- 91.5% programistów to mężczyźni.
- Najbardziej lubianym językiem jest Rust a framework’iem ASP.NET Core.
- Github zdecydowanie deklasuje Gitlaba.
- Programiści w zależności od technologii zarabiają średnio (w przeliczeniu z USD) do 305 120 zł rocznie a menadżerowie (także w przeliczeniu) 369 336 zł.
- 51.7% programistów nie pracuje więcej niż 40h w tygodniu a 7.3% mniej niż 30h.
Najczęściej używane
Ósmy rok z rzędu JavaScript utrzymuje swoją pozycję i uważany jest za najczęściej używany język programowania. Idąc dalej w dół listy, widzimy również umiarkowane zyski dla TypeScript, przewyższające C pod względem popularności. Ponadto Ruby, znajdujący się kiedyś w pierwszej dziesiątce tej listy, spadł dopiero w 2017 roku, wyprzedzając nowsze, bardziej modne technologie, takie jak Go i Kotlin.
Najbardziej upragnione
Po konsekwentnym wzroście w ciągu ostatnich pięciu lat, Python spadł z drugiego miejsca na trzecie na liście najbardziej lubianych technologii, wyprzedzając TypeScript. Rust piąty rok z rzędu zajmuje pierwsze miejsce wśród najpopularniejszych technologii.
Płaca
Inżynierowie niezawodności i specjaliści DevOps pozostają jednymi z najlepiej opłacanych ról w zespołach. 80% respondentów uważa, że DevOps jest co najmniej ważny, a 44% pracuje w organizacjach z co najmniej jednym dedykowanym DevOps’em.
Na całym świecie respondenci używający Perl, Scala i Go mają zwykle najwyższe pensje, a ich zarobki wynoszą około 75 000 USD rocznie. Co ciekawe, Perl jest jednym z najbardziej przerażających programistów języków. Możliwe jest, iż tak wysoka pensja ma po prostu zrekompensować niedostatek programistów, którzy chcą korzystać z tej technologii.
Patrząc tylko na Stany Zjednoczone, deweloperzy Scala mają zwykle najwyższe pensje.
W raportach globalnych pensje w podziale na technologie kształtują się już trochę inaczej:
RUST – najbardziej lubiany i upragniony język
Przyjrzyjmy się trochę językowi RUST, który jest najbardziej pożądaną przez programistów technologią. Kiedy zagłębimy się w krążące w internecie opinie, można wysnuć tezę, że ma to miejsce ze względu na prostotę nauki tego języka, ale także ze względu na przodujące w tej technologii zarobki. Pochylenie się przeze mnie nad tą technologią wynikają także z tego, że bardzo dużo startpów, z którymi miałem okazję pracować wykorzystywały ten język w swoich projektach. Oprócz tego moje ostatnie rozmowy z klientem ze Stanów Zjednoczonych dotyczyły właśnie tego języka, w którym widział on ogromne możliwości, jeżeli chodzi rozwój jego pomysłów i projektów.
Przyjrzałem się także technologiom wykorzystywanym przez startup’y w projektach IOT i IIOT i okazuje się, że RUST właśnie w tym sektorze zaczyna przodować. Dodatkowo warto wspomnieć, że jak twierdzi Microsoft – właśnie ten język ma zastąpić C i C++ .
Gdy zajrzymy na stronę internetową tej technologii możemy zobaczyć taką oto grafikę:
Jeżeli planujecie projekt IOT lub IIOT to właśnie ta technologia jest dla Was.
The State of Developer Ecosystem 2020
Raport State of Developer wydany przez JetBrains pokazuje troszkę inny świat. Tam dane różnią się nieznacznie od siebie, w porównaniu z resztą raportów, ale nadal JS wskazywany jest jako najczęściej używany język programowania.
Go, Kotlin, Python to 3 najpopularniejsze języki, które programiści planują zaadaptować lub do których chcą migrować swoje projekty.
Języki programowania
Raport przedstawia połączone wyniki czwartego corocznego badania wśród deweloperów. Informacje pochodzą od 19 696 programistów, z którymi przeprowadzono ankietę na początku 2020 roku.
Rodzaj wytwarzanego oprogramowania
HackerRank Developer Skills Report
Raport przeprowadzono na gronie 116 000 programistów ze 162 krajów.
Język, który najprościej opanować?
Większość osób urodzonych podczas wyżu demograficznego i pokolenia X nauczyło się programować w języku BASIC. Opracowany głównie do użytku edukacyjnego, BASIC był popularnym językiem instruktażowym i wprowadzającym w świat programowania w 1964 roku. Jednak w 1972 kiedy Bell Labs stworzył język C trend ten mocno uległ zmianie. Język C wraz z rozwojem Uniksa (co nastąpiło w późnych latach 70-tych i wczesnych 80-tych) mocno zyskał na popularności. Dziś język ten słynie z długowieczności, elastyczności i łatwości użycia, a to tylko niektóre z powodów, dla których ludzie z pokolenia Z nadal uczą się w nim kodować.
Podaję to raczej jako ciekawostkę ponieważ ilość projektów realistycznie wykorzystujących tą technologię jest stosunkowo niewielka. Dodatkowo wspomniana przeze mnie zmiana Microsoft’u w kierunku RUST jeszcze bardziej to spotęguje.
JavaScript
Pod względem tego jakich używamy języków programowania niewiele zmieniło się w ciągu ostatnich trzech lat. W rzeczywistości w dziesiątce najpopularniejszych języków odnotowano tylko dwie zmiany. Od zeszłego roku: C# i PHP zamieniły się pozycjami.
Warto zauważyć, że najbardziej znany język, JavaScript, nie jest językiem, w którym większość programistów uczy się kodować – tylko 5% respondentów zgłosiło go jako pierwszy język programowania. Java ma podobny wzór: jest to drugi najbardziej znany język, ale tylko 13% programistów twierdzi, że to ich pierwszy język, którego się nauczyli.
Django, Vue.js i React
Jak pokazują dane Vue.js wykazuje stały wzrost o jedną pozycję w rankingach od 2018 roku. Najbardziej radykalna zmiana dotyczy zaś Django, który przesunął się o dwa miejsca w górę pomiędzy rokiem 2019 a 2020. Wzrost wykorzystania Django jest nierozerwalnie związany z pojawieniem się Pythona, który to jest niesamowicie popularnym rozwiązaniem jeżeli chodzi o uczenie maszynowe i sztuczną inteligencję (AI).
Jeżeli chodzi o React’a to 32% programistów twierdzi, że jest to framework, którego zdecydowanie nauczą się w następnej kolejności. W zeszłym roku ogromna liczba programistów także planowała naukę Reacta co w rezultacie skutkowało stwierdzenie, że ma on szansę stać się najbardziej znanym frameworkiem 2020 roku. Jednak w tegorocznej ankiecie HackerRank, React pozostał nadal na drugim miejscu w gronie najlepszych framework’ów.
Dev Skiller – Raport o najlepszych umiejętnościach IT 2020: Popyt i trendy zatrudniania
Misją osób tworzących wyżej wspomniany raport jest dostarczanie decydentom, zajmującym się rekrutacją techniczną, narzędzi i informacji potrzebnych do zatrudniania najlepszych pracowników.
Najpopularniejsza technologia
Tutaj nie ma żadnych niespodzianek. Podobnie jak w przypadku innych raportów wygrywa JS. JavaScript to najbardziej pożądany język programowania TI w 2020 roku. Po JavaScript pojawia się SQL, z Javą, HTML / CSS i .NET/C#, które uzupełniają pierwszą piątkę.
Jeżeli weźmiemy na tapet język JavaScript to z raportu jasno wynika, że najczęściej jest on wykorzystywany wraz z React’em i ten przoduje z wynikiem 33,42%.
ASP.NET jest najczęściej wykorzystywanym framework’iem jeżeli chodzi o .NET i C#. Architektura MVC i Entity Framework są używane odpowiednio przez 42% i 28% ankietowanych. Na czwartym miejscu znajduje się .NET Core, które jest open source’ową wersją .NET’a.
Radar technologiczny ThoughtWorks
ThoughtWorkers to pasjonaci technologii. Tworzą, badają, testują i nieustannie dążą do lepszego. Jak twierdzą ich misją jest doskonalenie oprogramowania i zrewolucjonizowanie TI. Tworzą od jakiegoś czasu Radar Technologii ThoughtWorks wspierający tę misję. To już 22 wersja radaru, w której opisują globalną strategię technologiczną oraz trendy technologiczne, które mają znaczący wpływ na branżę TI. W raporcie pojawiają się zagadnienia związane z technikami wytwarzania oprogramowania.
Podzielone są one 4 sekcje, w których opisywane są rzeczy warte uwagi i takie, które konieczne są do adaptacji gdy zajmujemy się TI.
- Adopt – rzeczy, które branża powinna przyjąć w szybkim czasie
- Trial – Ważne aby zrozumieć, jak budować te zdolności w zespołach. Firmy mogą spróbować tej technologii w projektach, który poradzą sobie z ryzykiem.
- Assess – Warto zastanowić się nad wpływem nad przedsiębiorstwo
- Hold – Wdrażać z rozwagą lub nie wdrażać wcale
Technologia
Adopt
- Applying product management to internal platforms
- Infrastructure as code
- Micro frontends
- Pipelines as code
- Pragmatic remote pairing
- Simplest possible feature toggle
Trial
- Continuous delivery for machine learning (CD4ML)
- Ethical bias testing
- GraphQL for server-side resource aggregation
- Micro frontends for mobile
- Platform engineering product teams
- Security policy as code
- Semi-supervised learning loops
- Transfer learning for NLP
- Use “remote native” processes and approaches
- Zero trust architecture (ZTA)
Assess
- Data mesh
- Decentralized identity
- Declarative data pipeline definition
- DeepWalk
- Managing stateful systems via container orchestration
- Preflight builds
Hold
- Cloud lift and shift
- Legacy migration feature parity
- Log aggregation for business analytics
- Long-lived branches with Gitflow
- Snapshot testing only
Zarządzanie produktami na platformach wewnętrznych
W tradycyjnym podejściu menedżerowie produktów nadzorują projekty i zapewniają ścisłą kontrolę nad funkcjami dostarczanymi przez każdy zespół scrumowy. Takie podejście jest zrównoważone dzięki monolitycznej architekturze i wewnętrznym programistom. W nowym podejściu platforma składa się z wielu mikro usług, a każdy zespół inżynierów mikro usług działa zupełnie niezależnie. Takie podejście jest skuteczne tylko w przypadku wysoce wyrównanych i upoważnionych autonomicznych zespołów. Menedżer produktu musi współpracować zarówno z programistami wewnętrznymi, jak i zewnętrznymi coś na wzór ekosystemu platformowego.
Podczas gdy w zarządzaniu produkcją aplikacji, kierownik produktu kontroluje wszystkie zaległości, zatwierdzanie produktów i ich wydania, to na platformach istnieje wiele zależności i decyzji kontrolowanych przez autonomiczne zespoły. Menedżerowie produktu platformy muszą współpracować, uzasadniać cele za pomocą mocnego uzasadnienia biznesowego i przewodzić poprzez wywieranie wpływu.
Infrastruktura jako kod
Chociaż infrastruktura jako kod jest stosunkowo starą techniką stała się niezwykle ważna w erze rozwiązań chmurowych. Kiedy piszemy „jako kod”, mamy na myśli, że wszystkie dobre praktyki, których nauczyliśmy się w świecie oprogramowania, należy przenieść także do prac nad infrastrukturą. Korzystanie z kontroli źródła, przestrzeganie zasady DRY, modularyzacja, łatwość konserwacji oraz zautomatyzowane testowanie i wdrażanie to krytyczne praktyki.
Narzędzia
Adopt
- Cypress
- Figma
Trial
- Dojo
- DVC
- Experiment tracking tools for machine learning
- Goss
- Jaeger
- k9s
- kind
- mkcert
- MURAL
- Open Policy Agent (OPA)
- Optimal Workshop
- Phrase
- ScoutSuite
- Visual regression testing tools
- Visual Studio Live Share
Assess
- Apache Superset
- AsyncAPI
- ConfigCat
- Gitpod
- Gloo
- Lens
- Manifold
- Sizzy
- Snowpack
- tfsec
Języki i frameworki
Adopt
- React Hooks
- React Testing Library
- Vue.js
Trial
- CSS-in-JS
- Exposed
- GraphQL Inspector
- Karate
- Koin
- NestJS
- PyTorch
- Rust
- Sarama
- SwiftUI
Assess
- Clinic.js Bubbleprof
- Deequ
- ERNIE
- MediaPipe
- Tailwind CSS
- Tamer
- Wire
- XState
Hold
- Enzyme
Platformy
Adopt
- .NET Core
- Istio
Trial
- Anka
- Argo CD
- Crowdin
- eBPF
- Firebase
- Hot Chocolate
- Hydra
- OpenTelemetry
- Snowflake
Assess
- Anthos
- Apache Pulsar
- Cosmos
- Google BigQuery ML
- JupyterLab
- Marquez
- Matomo
- MeiliSearch
- Stratos
- Trillian
Hold
- Node overload
Ilu programistów jest na świecie?
Według Evans Data Corporation w 2019 roku na świecie było 26,4 mln programistów. Liczba ta wzrośnie do 2023 roku do 27,7 mln i do 28,7 mln w 2024 roku. Stany Zjednoczone zajmują czołową pozycję pod względem liczby twórców oprogramowania i liczba ta sięga 4,2 mln.
Według obliczeń IDC (chyba ostatnio najczęściej cytowanej przeze mnie firmy), w 2018 roku liczba programistów na świecie wzrosła do 22,3 mln, podczas gdy w 2014 roku było ich zaledwie 18,5 mln.
Zaś według Slashdata w 2019 roku na świecie było 18,9 miliona programistów, a liczba ta osiągnie 45 milionów w 2030 roku.
Zero niechcianej treści. Tylko dobre materiały na Twojej skrzynce.
Zapisz się na newsletter i bądź na bieżąco