Topmethodologie van programmeertalen in 2024

In onze zoektocht om de populariteit van een programmeertaal te meten, realiseerden we ons dat niemand over de schouder kan meekijken van ieder mens die code schrijft, of het nu een kind is dat Java-script schrijft voor een persoonlijke Minecraft-server, een ontwikkelaar van mobiele apps die hoopt hit it’s big, of een ruimtevaartingenieur die missiekritieke code schrijft voor een reis naar Mars. Onze interactieve programmeertalen proberen het probleem van het schatten van taalpopulariteit aan te pakken door te zoeken naar proxysignalen.

We doen dit door populariteitsmetingen te construeren uit verschillende gegevensbronnen waarvan we denken dat ze goede indicaties zijn voor actieve interesse in elke programmeertaal. In totaal identificeren we 63 programmeertalen. Vervolgens wegen we elke gegevensbron om een ​​algemene populariteitsindex te creëren, waarbij enkele van de slechtst presterende bronnen worden uitgesloten. Hieronder beschrijven we de gegevensbronnen die we gebruiken om de metingen af ​​te leiden, en het wegingsschema dat we gebruiken om de algemene indices te produceren.

Met populariteit bedoelen we dat we talen proberen te rangschikken die actief worden gebruikt. We kijken naar drie verschillende aspecten van populariteit: talen die actief worden gebruikt door typische IEEE-leden en werkende software-ingenieurs (de “Spectrum”-ranglijst), talen waar werkgevers veel vraag naar hebben (“Jobs”-ranglijst) en talen ​​die zich in de tijdsgeest bevinden (de “Spectrum” -ranglijst).

We hebben de taalpopulariteit geëvalueerd met behulp van de volgende bronnen voor in totaal acht statistieken (zie hieronder). We hebben informatie voor alle statistieken verzameld in juli-augustus 2024. De gegevens zijn handmatig verzameld om vertekende resultaten als gevolg van API-wijzigingen of -beëindigingen te voorkomen en omdat veel namen van programmeertalen (C++, schema) in botsing kwamen met veelgebruikte termen in onderzoekspapers en vacatures of moeilijk te analyseren voor zoekmachines. Toen het grote aantal zoekresultaten het onpraktisch maakte om onduidelijkheden op te lossen door alle resultaten afzonderlijk te onderzoeken, gebruikten we een steekproef uit elke gegevensbron en bepaalden we de relevante steekproefomvang op basis van een schatting van het werkelijke gemiddelde met een betrouwbaarheid van 95 procent. Niet alle gegevensbronnen bevatten informatie voor elke programmeertaal, en we interpreteren deze informatie als een “no hit” (dat wil zeggen, niet populaire) programmeertaal.

De resultaten van elke metriek worden genormaliseerd om een ​​relatieve populariteitsscore tussen 0 en 1 te verkrijgen. De individuele metrieken worden vervolgens vermenigvuldigd met een wegingsfactor, gecombineerd, en het resultaat opnieuw genormaliseerd om een ​​totale populariteitsscore te verkrijgen.

Bij het aggregeren van statistieken hopen we statistische grillen te compenseren die de populariteitsscores van talen in een bepaalde gegevensbron kunnen vertekenen. Door de wegingsfactor te variëren, kunnen we verschillende resultaten creëren voor de ranglijsten Spectrum, Banen en Trending. We erkennen volledig dat, hoewel deze gewichten subjectief zijn, ze gebaseerd zijn op ons begrip van de bron en onze eerdere berichtgeving over softwareonderwerpen. Door de wegingsfactor te variëren, kunnen we verschillende soorten populariteit benadrukken en verschillende ranglijsten creëren. Vervolgens hebben we elke gewogen gegevensbron voor elk programma gecombineerd en vervolgens de resulterende frequentie opnieuw genormaliseerd om een ​​totale populariteitsscore te verkrijgen.

De beste programmeertalen zijn oorspronkelijk gemaakt door datajournalist Nick Diakopoulos. Onze statistische methodologieadviseur is Hilary Wething. Onderzoeksbijstand werd verleend door Elizabeth Wood. De rangschikking wordt berekend met behulp van R.

Google is de grootste zoekmachine ter wereld, wat het ideaal maakt voor het evalueren van de populariteit van talen. We telden het aantal treffers voor elke taal door te zoeken naar het patroon “Programmeertaal X” (met aanhalingstekens) en registreerden handmatig het aantal resultaten dat door de zoekopdracht werd geretourneerd. We hebben dit in juli 2024 gemeten. We vinden deze maatregel leuk omdat deze de omvang van de online informatiebronnen over elke programmeertaal aangeeft.

Stapeloverloop

Stack Overflow is een populaire site waar ontwikkelaars codeervragen kunnen stellen. We hebben het aantal gemarkeerde vragen voor elk programma geregistreerd in de laatste week vóór onze zoektocht (augustus 2024). Voor de Mathematica/Wolfram-taal vertrouwden we op het zusje “Stack” voor het Mathematica-platform en telden we het aantal programmeergerelateerde vragen dat de afgelopen week werd gesteld. Deze gegevens zijn handmatig verzameld. Deze maatstaf laat zien welke programmeertalen momenteel trending zijn.

IEEE Xplore digitale bibliotheek

IEEE onderhoudt een digitale bibliotheek met miljoenen conferentie- en tijdschriftartikelen die een breed scala aan wetenschappelijke en technische disciplines bestrijken. We hebben gezocht naar artikelen waarin elk van de talen in de ‘X Programming’-sjabloon voor 2023 en 2024 wordt vermeld, omdat dit het kleinste tijdsbestek is waarvoor we toegang hebben tot artikelen. Voor zoekresultaten die duizenden artikelen opleverden, identificeerden we de juiste steekproefomvang voor het betrouwbaarheidsinterval van 95 procent (doorgaans iets meer dan 300) en trokken we dat aantal artikelen op. Voor elke taal die we hebben onderzocht, hebben we het aandeel artikelen geïdentificeerd dat de programmeertaal gebruikt en vervolgens het totale aantal artikelen met dit aandeel vermenigvuldigd om het waarschijnlijke totale aantal artikelen met betrekking tot die programmeertaal op te tellen. We hebben deze zoekopdracht in juli 2024 uitgevoerd. Deze maatstaf geeft de prevalentie weer van verschillende programmeertalen zoals gebruikt en gerapporteerd in technische onderzoeken.

IEEE-vacaturesite

We hebben de vraag naar verschillende programmeertalen gemeten in vacatures op de IEEE Job Site. Voor zoekresultaten die duizenden vermeldingen opleverden, identificeerden we de juiste steekproefomvang voor een betrouwbaarheidsinterval van 95 procent (doorgaans rond de 300 resultaten) en haalden we dat aantal vacatures op om handmatig te onderzoeken. Voor elke taal die we hebben onderzocht, hebben we het aandeel vacatures geïdentificeerd waarin de programmeertaal werd gebruikt. Vervolgens hebben we het totale aantal vacatures met dit percentage vermenigvuldigd om het waarschijnlijke totale aantal vacatures met betrekking tot die programmeertaal samen te vatten. Omdat sommige van de talen die we bijhouden dubbelzinnig kunnen zijn in platte tekst (zoals lD, Go, J, Ada en R), hebben we bovendien gezocht naar vacatures met die woorden in de functiebeschrijving en vervolgens de resultaten handmatig beoordeeld. opnieuw steekproeven nemen als het aantal resultaten groot was. De zoekopdracht werd uitgevoerd in juli 2024. We zijn positief over de IEEE Job Site vanwege het grote aantal niet-Amerikaanse vermeldingen, waardoor deze ideaal is om de wereldwijde populariteit te meten.

CarrièreBouwer

Op de vacaturesite van CareerBuilder hebben we de vraag naar verschillende programmeertalen gemeten. We hebben gezocht naar banen voor ontwikkelaars in de Verenigde Staten, omdat dit de populairste baan voor ontwikkelaars is. We hebben 400 vacatures onderzocht en deze handmatig beoordeeld om te bepalen welke talen werkgevers in de vacatures vermelden. De zoekopdracht werd uitgevoerd in juli 2024. We houden van de carrièrebouwersite die de populariteit van banen voor ontwikkelaars in de Verenigde Staten identificeert.

GitHub

GitHub is een openbare opslagplaats voor veel door vrijwilligers aangestuurde open source-projecten. We hebben gegevens gebruikt die zijn verzameld door GitHut 2.0, die de 50 populairste talen meet die in gebruik zijn aan de hand van het aantal repository’s die met die taal zijn getagd en die afkomstig zijn uit de openbare API van GitHub. We gebruiken twee statistieken van GitHub: opslagplaatsen met een ster van gebruikers om langetermijnbelangen weer te geven en het aantal pull-verzoeken om de huidige activiteit aan te geven. De gegevens bestrijken het tweede kwartaal van 2024. Deze metingen laten zien in welke talen programmeurs kiezen om te werken als ze een persoonlijke keuze krijgen.

Trinity College Dublin-bibliotheek

De bibliotheek van Trinity College Dublin is een van de zes verplichte bibliotheken in Ierland en het Verenigd Koninkrijk. Van elk boek dat in Ierland wordt gepubliceerd of gedistribueerd, moet een exemplaar in de bibliotheek worden gedeponeerd, en op verzoek moet elke uitgever of distributeur in het Verenigd Koninkrijk het boek ook deponeren. We hebben alle boeken doorzocht die in het jaar tot nu toe zijn gepubliceerd en waarvan het onderwerp was gecategoriseerd als computerprogrammering en het totale aantal geretourneerde boeken. De zoekopdracht werd uitgevoerd in juni 2024. We vinden deze bibliotheekcollectie leuk omdat deze een grote en gecategoriseerde steekproef van werken vertegenwoordigt, voornamelijk in het Engels.

Meningsverschil

Discord is een populair chatplatform waar veel ontwikkelaars informatie uitwisselen. We telden het aantal tags dat overeenkomt met elke taal. In het geval van talen die ook niet-programmeerbare onderwerpnamen kunnen zijn (veel niet-programmeerbare onderwerpen hebben ook speciale Discord-servers; ‘Julia’ kan bijvoorbeeld verwijzen naar een programmeertaal of een Sesamstraat-pop), zijn de resultaten handmatig onderzocht. Er is in augustus 2024 gezocht naar Disboard. Disboard vermeldt veel openbare discord-servers en veel jonge programmeurs gebruiken de site, wat bijdraagt ​​aan een diverse demografische groep programmeurs.