Artikkeli
21. maaliskuuta 2021 · 5 min lukuaikaToteutimme tammikuussa 2021 Nitorin kaikkien aikojen ensimmäisen kehittäjäkyselyn. Tavoitteena oli selvittää, mitä teknologioita nitorilaiset kehittäjät käyttivät vuonna 2020, mitä mieltä he niistä ovat ja mitkä teknologiat kiinnostavat tulevaisuudessa. Nitorilaisista kaksi kolmasosaa vastasi kyselyyn. Tässä tekstissä analysoin tuloksia tärkeimmistä kategorioista. Lopuksi esitän, millainen voisi olla nitorilaisen suosikkistäkki.
Kielet
Nitorin viisi käytetyintä ohjelmointi- ja kyselykieltä ovat JavaScript, TypeScript, Java, SQL ja Python. JavaScriptin suosio ei yllätä, koska kyse on kaikille selainpohjaisille ohjelmistoille perustavanlaatuisella tavalla tärkeästä kielestä, jota lisäksi hyödynnetään paljon palvelin- ja toisinaan myös mobiilikehityksessä. Huomionarvoista on, miten korkealla TypeScript on listalla verrattuna Stack Overflow -kehittäjäkyselyyn. (SO-kysely itse asiassa inspiroi tekemään tämän kyselyn.) Melkein kaikki JavaScriptiä käyttävät kertoivat käyttävänsä myös TypeScriptiä tai olevansa kiinnostuneita sen käyttämisestä. TypeScriptin käyttäjät ovat erittäin tyytyväisiä, ja TypeScript sijoittuukin 4. sijalle koko kyselyn kaikkein pidetyimpien teknologioiden joukossa.
Toinen huomionarvoinen asia on Javan korkea sijoittuminen listalla, erityisesti verrattuna C#:ään. Näiden kahden käyttö on määrällisesti tasoissa SO-kyselyssä. Nitorilla on keskitytty Java-kehitykseen yrityksen alusta lähtien. Vaikka rinnalle on sittemmin tullut koko joukko muita kieliä, on Java edelleen pidetty ja luotettava kieli nitorilaisten parissa. Javaa myös käytetään paljon enemmän kuin toista JVM-pohjaista kieltä Scalaa. Nitorilla Scala on vähiten pidettyjen teknologioiden joukossa. Selvä kilpailija Javalle on toinen JVM-kieli Kotlin. Vaikka Kotlinia käytetään verrattain vähän, se on pidetty ja se nähdään kiinnostavana vaihtoehtona – kenties Kotlinia käytetään tulevaisuudessa enemmän.
Kolmas huomio liittyy funktionaalisten ohjelmointikielten huomattaviin käyttömääriin, kuten erityisesti Clojure (yksi Lisp-murteista), jota voi suorittaa JVM:llä tai kääntää JavaScriptiksi ClojureScriptin avulla. Vaikka Clojure ei ole kaikkein suosituimpien kielten joukossa Nitorilla, on nitorilaisten Clojure-yhteisö aktiivinen, kieli erittäin pidetty ja siitä ollaan kiinnostuneita. SO-kyselyn tuloksissa Clojure ei edes noussut esille. Myös Haskell kiinnostaa nitorilaisia. Kyse on puhtaasti funktionaalisesta kielestä, jota myös Nitorin Joel Kaasinen opettaa Helsingin yliopiston avoimella verkkokurssilla (MOOC).
Lisäksi muutamiin muihin kieliin kohdistuu erityistä mielenkiintoa: GraphQL (suosittu kyselykieli rajapinnoille), Go (Googlen kehittämä ja suosima), Rust (pidetyin kieli SO-kyselyssä) ja WebAssembly (mahdollistaa minkä tahansa kielen kääntämisen selaimelle).
Back-end-kehykset
Back-end-kehykset ja ajoympäristöt -kategoriassa Node.js on ykkössijalla. Tämä ei yllätä, kun muistaa miten tärkeä Node.js on JavaScript-kehittämiselle. Tarjolla on myös uudempi Deno-ajoympäristö Noden kehittäjältä ja siitä valmistui viime vuonna versio 1.0. Denoa ei käytetä Nitorilla juurikaan, mutta sitä pidetään varsin kiinnostavana, joten käyttö saattaa tulevaisuudessa kasvaa. JavaScript back-end-kehysten joukossa ykkössijalla on Express, joskin GraphQL-rajapintojen luontiin käytettävä Apollo Server on herättänyt paljon kiinnostusta nitorilaisissa.
Suosituimmat kehykset Java-alustalle ovat Spring Boot ja Spring Framework. Näille vaihtoehdon tarjoavan Ver.tx:n käyttö on hyvin marginaalista. Pythonille ykkönen on Flask ja kakkossijalla on Django. Moni nitorilainen on nFlow’n tyytyväinen käyttäjä – itse asiassa tyytyväisyys sitä kohtaan on kyselyn kaikkein korkein. nFlow on nitorilaisten kehittämä avoimen lähdekoodin kehys työnkulkujen hallinnointiin.
Front-end-kehykset
React on pidetty ja eniten käytetty front-end-kehysten joukossa. Sen kilpailijoihin kuuluu Angular, jota kuitenkin käytetään paljon vähemmän eikä se myöskään ole erityisen pidetty. On kiinnostavaa ja toisaalta myös harmillista, että nitorilaiset käyttävät edelleen vanhaa AngularJS:ää enemmän kuin Angularia. Vue.js herättää kiinnostusta, joskin ne nitorilaiset jotka sitä käyttävät, eivät pidä siitä. Viime vuosina jonkin verran hehkutettu Svelte on käyttötyytyväisyydessä sijalla yksi front-end-kehysten kategoriassa uusimmassa State of JS -kyselyssä. Ehkä myös siksi se on herättänyt jonkin verran kiinnostusta nitorilaisten joukossa. Clojure-käyttäjille Reagentiin perustuva re-frame on pääkehys.
React-ekosysteemin kehysten joukossa Create React App on kaikkein suosituin ja pidetty. Next.js – hybridikehys, joka tukee sekä palvelinpuolen renderöintiä että staattista generointia – herättää myös poikkeuksellisen paljon kiinnostusta. Mainittakoon myös, että joulukuussa julkaistu uusi nitor.com-sivu on rakennettu Next.js:llä, mikä saattaa vaikuttaa kyseisen kehyksen kiinnostavuuteen. Lisäksi esille nousee Gatsby, staattinen sivugeneraattori, jota ei käytetä yhtä paljon, mutta joka kiinnostaa nitorilaisia. Käyttäjiensä parissa Gatsby on pidetty.
Tietokannat
PostgreSQL on käytetyin ja myös melko pidetty tietokanta. Relaatiotietokantojen joukossa seuraavilla sijoilla ovat Amazon Aurora, MySQL ja MariaDB. NoSQL-tietokantojen joukossa Amazon DynamoDB on ykkönen ja Redis ja MongoDB kakkos- ja kolmossijoilla. Elasticsearch on käytetyin hakukone.
Editorit
Editorien joukosta voi nostaa esille kaksi voittajaa: IntelliJ IDEA ja Visual Studio Code. IDEA on suosituin editori Java-kehittäjille. VS Code on vuorostaan yleinen JavaScript- ja TypeScript-kehittäjien parissa. Sekä IDEA:lla että VS Codella on korkea tyytyväisyysaste, VS Code on koko kyselyn toiseksi pidetyin teknologia. Editorikilvan Vimin ja Emacsin välillä vie ensin mainittu, joskin molemmilla on jokusia vähemmän tyytyväisiä käyttäjiä. Android Studiota ja Xcodea käytetään natiivimobiilikehitykseen, mutta kysely osoittaa, että moni ei pidä Xcodesta.
Pilvialustat
AWS on perinteisesti ollut Nitorin pääasiallinen pilvialusta ja Nitor on ollut pitkään AWS-kumppani. AWS on edelleen käytetyin, joskin Azuren, Herokun ja Google Cloudin (GCP) käyttö on sekin huomattavaa. Merkillepantavaa on koko kyselyn tasolla erittäin korkea kiinnostus GCP:tä kohtaan. Hiljattain nitorilaiset suorittivat useampia sertifikaatteja, ja tänä vuonna Nitor saavutti GCP-kumppanuusstatuksen. Näin ollen Nitor on kaikkien kolmen suurimman pilvitarjoajan kumppani.
Käyttöjärjestelmät
Tämä kategoria oli rajattu käyttöjärjestelmiin, joita nitorilaiset käyttävät työssään, eivät vapaa-ajallaan. Linuxin ja macOS:n käyttö oli hyvin tasaväkistä. Molemmat ovat erittäin pidettyjä ja koko kyselyn tasolla viiden suosituimman teknologian joukossa. Windowsin käyttö on selvästi vähäisempää ja tyytyväisyyttä käyttöjärjestelmää kohtaan on vähemmän. SO-kyselyssä Windows oli käytetyin käyttöjärjestelmä.
CI/CD-sovellusalustat
Jatkuvan integraation ja jatkuvan toimituksen alustoilla ja työkaluissa, Jenkins on selvässä johdossa. Jenkins ei kuitenkaan ole erityisen pidetty, mikä saattaa tulevaisuudessa raivata tietä kilpaileville vaihtoehdoille. Seuraavilla sijoilla ovat AWS CodeBuild, Travis, GitLab CI ja GitHub Actions. GitHub Actions on erittäin pidetty ja kiinnostavaksi koettu. Tämä mahdollisesti enteilee sitä, että jatkossa käytettäisiin enemmän versionhallintatoimittajien tarjoamia CI/CD-työkaluja.
Infrastruktuurityökalut
Kontti- ja infrastruktuurityökalujen kategoriassa Docker on ykkönen käyttömäärissä mitattuna. Toisella sijalla on AWS CloudFormation, mutta se on vähemmän pidetty kuin sitä seuraavat vaihtoehdot Serverless Framework, Ansible, AWS CDK ja Terraform. CDK mahdollistaa CloudFormationin käytön moderneilla ohjelmointikielillä, ja siihen ollaan poikkeuksellisen tyytyväisiä.
Johtopäätökset
Lopuksi listaan nitorilaisille mieluisimmat teknologiat. Teknologian sijoittumiseen listalla vaikuttaa se, miten moni on luokitellut teknologian pidetyksi tai kiinnostavaksi (pluspisteet) tai epämieluisaksi (miinuspiste). Laskukaava on siis muotoa pidetty + kiinnostunut − ei-pidetty.
Lista antaa yleiskuvan teknologioista, jotka ovat sekä vakiintuneita, pidettyjä että kiinnostavia Nitorin digitaalisten insinöörien mielestä. Kyselyssä menestyneet teknologiat saattavat siksi soveltua hyvin liiketoimintakriittisiin järjestelmiin, joihin Nitor yleensä keskittyy.
Kun jättää pois editori- ja käyttöjärjestelmäkategoriat (ovat lähinnä henkilökohtaisia valintoja), saamme listatuksi nitorilaisten top-10 suosikkistäkin: TypeScript, React, AWS, PostgreSQL, Docker, Kotlin, Next.js, Java, Node.js ja Google Cloud.