Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie
×

Help Tweakers weer winnen!

Tweakers is dit jaar weer genomineerd voor beste prijsvergelijker en beste community. Laten we ervoor zorgen dat heel Nederland weet dat Tweakers de beste website is. Stem op Tweakers!

Stack Overflow-enquête: Rust blijft 'meest geliefde' programmeertaal

Stack Overflow heeft de resultaten van zijn jaarlijkse enquête onder ontwikkelaars, studenten en onderzoekers bekendgemaakt. Daaruit is op te maken dat Rust nog steeds de 'meest geliefde' programmeertaal is, gevolgd door Kotlin.

Volgens Stack Overflow is dit het derde jaar op rij dat Rust de ranglijst aanvoert in de categorie van 'meest geliefd'. Deze categorie bestaat uit talen waarvan respondenten zeggen dat ze ermee werken en dat ze erin geïnteresseerd zijn de talen in de toekomst te blijven gebruiken. Bij deze editie werd er voor het eerst gevraagd naar de taal Kotlin, die prompt op de tweede plaats eindigde.

Deze JVM-taal uit 2011 treedt daarmee op de plaats waar Smalltalk vorig jaar nog stond. Die taal is in de huidige resultaten echter nergens meer te bekennen. Python staat dit jaar op de derde plek en is daarmee ten opzichte van vorig jaar drie plekken omhoog geklommen. Onder de gewilde talen staat deze net als de vorige keer op nummer één, opnieuw gevolgd door javascript en Go.

Ook de 'meest gevreesde talen' maken weer deel uit van de enquête, oftewel de talen waarmee ontwikkelaars nu werken en daarmee willen stoppen. Daar staat nog steeds Visual Basic 6 aan de leiding, dit jaar gevolgd door nieuwkomer Cobol en Coffeescript. Daarbij heeft Cobol de plek ingenomen waar de vorige keer nog VBA stond.

Stack Overflow meldt verder dat machine learning een belangrijke trend is en stelde ook een aantal vragen over kunstmatige intelligentie. Het populairste antwoord bij de 'gevaren van kunstmatige intelligentie' was dat ai belangrijke beslissingen gaat nemen, gevolgd door het voorbijstreven van menselijke intelligentie en een veranderde definitie van eerlijkheid in beslissingen van een algoritme tegenover die van een mens. Aan de andere kant vonden de respondenten het idee dat ai werk in toenemende mate automatiseert het meest spannende vooruitzicht.

Uit de overige antwoorden is op te maken dat ontwikkelaars menen zelf verantwoordelijk te zijn voor het inschatten van de gevolgen van ai, meer dan de overheid of andere instellingen. Over het algemeen gaven de respondenten aan meer te zien in de mogelijkheden van kunstmatige intelligentie dan in de gevaren. Dit jaar waren er 100.000 deelnemers aan de enquête; vorig jaar waren dat er 64.000.

Door Sander van Voorst

Nieuwsredacteur

14-03-2018 • 15:52

83 Linkedin Google+

Submitter: Rafe

Reacties (83)

Wijzig sortering
Over de populareit van Kotlin:

Java ontwikkelt zich relatief traag, door specificatie ontwikkeling en vele partijen die betrokken zijn bij de taal (dit heeft zowel zijn voor- als nadelen). Doordat het Java platform de mogelijkheid biedt om andere talen op het Java JVM platform te draaien, zijn JVM talen als Scala, Kotlin, Groovy, Clojure, JPython, JRuby, Xtend, Ceylon etc ontstaan. Vanuit deze talen kan je meestal Java code aanspreken, en vaak ook in een bepaalde mate ondersom.
Het maken van een goede taal is stap één, het zorgen dat je een hele community achter een taal krijgt is misschien nog wel veel moeilijker. Talen als Ceylon zullen het dan waarschijnlijk ook niet op langer termijn overleven. Teveel concurrency van de andere opkomende talen, en te weinig middelen om het te promoten.

Kotlin is van JetBrains, de ontwikkelaar van de meest populaire Java IDE: IntelliJ. (En ook ontwikkelaar van andere populaire IDE's voor andere talen.) Via deze IDE is het gemakkelijk voor JetBrains om hun eigen en favourite taal Kotlin te promoten, dit heeft denk ik o.a. geleid tot de bekendheid en snelle adoptie van de taal.
Een andere grote JVM taal met een grote community, is Scala. Veel Java programmeurs hebben Scala geprobeerd, maar voor velen was/is de overstap groot of te groot. Ondanks dat Scala tot een bepaalde mate compatible met elkaar zijn, en ook de tools vaak compatible zijn, gebruikt de Scala wereld zijn eigen build tools, patronen, en kent de taal vele geadvanceerde features. In de Scala wereld wordt code geschreven die voor nieuwskomers erg lastig te volgen kan zijn. Ook zorgen de aparte tools voor een extra leercurve. Zo wordt er veel gebruik gemaakt van de build tool SBT (Simple Build Tool), welke door velen als complex wordt ervaren i.p.v. "simple".

Waar Scala zich positioneert als een geadvanceerde, functionele object-georienteerde taal, (met vele libraries en een grote community), positioneert Kotlin zich als een betere Java i.p.v. zichzelf meer als een aparte taal te zien. Belangrijk in Kotlin is een hoge compatibiliteit met Java, en andersom. In de Kotlin wereld gebruikt men ook vaak gewoon de Java tools, waar de Scala wereld geneigd is meteen zijn eigen tools te maken. Het leren en overstappen van Java naar Kotlin is daardoor een stuk eenvoudiger dan naar Scala. Ook maken Kotlin developers meer gebruik van eenvoudige Java libraries, terwijl Scala developers vaak de geadvanceerdere maar ook complexere Scala libraries gebruiken, wat het instappen in Scala moelijker maakt.

De populariteit van Kotlin komt denk ik door meerdere factoren: 1) gemakkelijk te promoten via IntelliJ, 2) hoge compatibiliteit met Java, zowel in taal als in tools, 3) de komst van beginnende Scala programmeurs die op zoek waren naar een gemakkelijker alternatief voor Scala, maar wel met meer features dan Java, 4) met als gevolg een toename van Android developers die Kotlin gingen gebruiken, en 5) Google die vervolgens Kotlin als een officiele taal in Android development ging ondersteunen, en 6) het ondersteunen van Kotlin in de populaire Java library/framework: Spring (waar de Kotlin community Spring ging ontarmen, had de Scala community minder interesse, want die maken gewoon hun eigen tools/libraries/frameworks).
7) Minder boilerplate (data class)
8) Null & notnull types
9) default & named arguments

Waar ik dan weer persoonlijk minder fan van ben, is variabelen gaan declareren met "val" en eventueel het type erachter zetten. Ik vind
String tekst = "foobar"
veel leesbaarder dan
val tekst: String = "foobar" (akkoord in dit geval is :string overbodig).

Maar verder lijkt het mij top Kotlin. Ik ben zelf ook redelijk fan van Jetbrains, Intellij IDEA maakt mijn werk een stuk aangenamer en is zijn prijskaartje meer dan waardig :)
Ik mag in Swift toch regelmatig nog types toevoegen om compile times in toom te houden.

let name = "Henk"

....werkt prima. Maar een paar keer zoiets als dit:

let name = someBigCollection.filter{ /..../ }.map { /.../ }.first?.name ?? "unknown"

...en je compile tijden gaan over hun nek. Gooi er nog wat generics tussen en zet maar wat koffie terwijl je een eitje bakt op de onderkant van je laptop. Dan ga ik vaak toch weer hard alle return types en collectie types toevoegen zodat hij n5 aan complexiteit probeert te verwerken in de compiler.
Ik ben zelf ook redelijk fan van Jetbrains, Intellij IDEA maakt mijn werk een stuk aangenamer en is zijn prijskaartje meer dan waardig :)
Totaal mee eens, ik gebruik zelf PHPStorm van Jetbrains, wil echt niks anders meer.

En ook niet te vergeten, Android Studio, ook gemaakt door Jetbrains.
Grappig dat dit artikel zo de nadruk legt op de most loved/most dreaded statistiek uit dit onderzoek. Ik vind die resultaten namelijk nogal schimmig. Voor iedere taal geldt dat je precies op 100% uitkomt als je de most loved en most dreaded percentages bij elkaar optelt. Dat kan geen realistische score zijn; blijkbaar zijn er twee resultaten uit één vraag geëxtrapoleerd. Zegt misschien ook wat over de rest van hun onderzoek.
Ik vind dit een mooi voorbeeld wanneer een foto/grafiek meer zegt dan duizend woorden. Ik kan eigenlijk geen touw vastknopen aan het verhaal.

Een screenshot van 2016 / 2017 naast elkaar zou wonderen doen.
Nou heb je geluk, een klikje op de eerste link geeft je hele mooie grafieken, en daarna het artikel lezen zorgt voor een beter beeld.
Error.
An error occurred while processing your request.
Website lijkt er bij mij uit te liggen. Of ligt dit aan mij(/bedrijfsfilter)?
Nee hoor hij werkt hier ook niet, en hier blokkeren we niets. Zelfs timesink Facebook niet.
Geen idee, maar bij welke tent zit je dat ze StackOverflow filteren? Dat lijkt me nogal belemmerend voor IT in plaats van productief. Ga eens praten met je sysadmin, die kent het vast ook ;)
SO forum werkt gewoon prima. Net als https://insights.stackoverflow.com/survey/. Alleen zodra je op een jaartal drukt, krijg je die error. Ook op mijn mobiel met Tele2 4G. Dus ik denk dat de site zelf een probleem heeft. Zo thuis maar eens proberen.
Die sysadmin:
"How to check if a site is filtered"
..klikt op eerste link op google...
"Stackoverflow"
Ik heb dit zelfde, gewoon thuis...
Geldt voor alle jaartallen op hun insights pagina: https://insights.stackoverflow.com/survey/
Hoeveel meerwaarde heeft dit artikel als er een grafiekje in zou staan? Lijkt me niet heel moeilijk om dit ff te maken of te kopiëren..
Eens, een uitleg bij de grafieken zoals in dit verhaal maakt het niet echt duidelijk.
Bij het stukje over de plek van Python begon ik me zorgen te maken over mijn eigen geestelijke vermogens :?
Ik kan me heel goed voorstellen dat Kotlin zo'n geliefde taal is. Ik vind het zelf heerlijk om mee te werken.

-edit: ik had een mooi voorbeeld, maar ik krijg het niet mooi geformat hier.

[Reactie gewijzigd door Cristan op 14 maart 2018 16:20]

Ik vind Kotlin maar raar, het is gewoon een laagje syntax suiker over Java heen... Het is niet zoals de overgang van Objective-C naar Swift dat we echt een nieuwe taal met echt verbeteringen hebben gekregen.

Kotlin is net als CoffeeScript: Syntax suiker, maar uiteindelijk zijn de problemen niet opgelost. Je maakt alleen maar nieuwe problemen door een abstractielaag toe te voegen

[Reactie gewijzigd door Gamebuster op 14 maart 2018 16:26]

Kotlin heeft toch wel wat killer features zoals expliciete nullability. Syntactic sugar is ook niet de term die je zoekt, eigenlijk is Objective-C juist syntactic sugar bovenop C. Je zou Objective-C ook eerst kunnen parsen naar C voordat je het compileert. Kotlin kun je bijna niet naar Java parsen. Het enige wat je kunt doen is de zelfde bytecode genereren, maar juist dat doet Swift ook vergeleken bij Objective-C
Je zou Objective-C ook eerst kunnen parsen naar C voordat je het compileert.Objective-C
Klopt! De eerste Objective-C implementatie was niet meer dan een pre processor voor de C compiler!
De eerste Objective-C implementatie was niet meer dan een pre processor voor de C compiler
En grappig genoeg was de eerste C++ compiler dat ook.
Oh ik wist niet dat Kotlin expliciete nullability had! Dat vind ik wel een killer feature
Welke problemen met Java heb je het dan precies over?
Los van de stoffige syntax: Alles nullable by default en gebrek aan value types.
Nullable by default geldt voor vele talen, daar is Java geen uitzondering op. Java ontwikkelt zich relatief traag, maar gaat zich waarschijnlijk in een sneller tempo aanpassen dan voorheen. Ze willen ook meer type inference toepassen. Ook heeft de komst van Java 8 heeft ook veel goeds gebracht. Sommige code kan zelfs korter zijn dan in Kotlin.
Nullable by default heeft heel veel talen, en alle talen die het hebben vind ik ongemakkelijk om mee te werken. Bij C/C++ zijn je pointers ook "nullable" maar daar heb je tenminste nog value types die niet nullable zijn. Dat vind ik dan weer een acceptabele oplossing

[Reactie gewijzigd door Gamebuster op 15 maart 2018 12:04]

...laagje syntax suiker..
Dat is wel heel kort door de bocht. In principe kan je dat van haast elke feature zeggen in een taal die iets meer biedt dan puur het noodzakelijke van een imperatieve taal features. Waar het om gaat is dat het fijner, duidelijker, korter en mooier programmeert.

Probeer eens voor de gein zo'n dergelijke API in Java te maken, zoals deze HTML DSL library van Kotlin: https://github.com/Kotlin/kotlinx.html

Dan ga je niet ver mee komen in Java, ondanks dat Kotlin draait en afstamt van Java. Hier is een poging tot: https://github.com/tipsy/j2html
Maar kent vele gebreken t.o.v. de Kotlin library omdat er gewoon te weinig taal features zijn om zo'n dergelijke DSL te maken.
Ik vind kotlinx hier nou echt niet per se veel beter dan j2html.
Los van dat Kotlinx veel meer features heeft, waaronder het werken met Javascript, is een groot verschil dat in J2HTML de flow controls constructies eager geevalueerd worden, tenzij ze zelf betere constructies maken. Bij Kotlinx hoeft dat niet, je kan gewoon puur Kotlin gebruiken. Ook maakt de taal het makkelijker om api uitbreidingen te maken, zonder de library aan te hoeven passen.

Hetzelfde geldt voor de Scalatags scala library: http://www.lihaoyi.com/scalatags/ t.o.v. J2HTML.
Dus hij is twee regels korter. Echter ondanks dat ik nog nooit iets met Java heb gedaan (oké, gelogen, op de uni ooit moeten doen, en heel hard probeer ik dat te vergeten), kan ik het bovenste voorbeeld prima volgen. De onderste kan ik dat niet van zeggen echter.

Ik had overigens ook nog nooit van Kotlin gehoord, niet dat ik me echt bezig houd met nieuwe talen, maar ik ben dus wel benieuwd of ook deze volgend jaar nergens meer te bekennen is.
Hier nog iemand, Kotlin is een verademing t.o.v. Java voor Android development. Compact, nullsafe, data classes en een hoop extra features die Java niet biedt, maakt het een zeer prettige taal!

Overigens vergeten veel mensen (waaronder auteur @duqu), dat Kotlin niet alleen draait op de JVM. Het draait ook in de browser (transpilen naar Javascript, compilen naar WebAssembly) en native op Windows, Linux, MacOS, iOS en Android.

[Reactie gewijzigd door P1nGu1n op 14 maart 2018 16:37]

Was dit echt een enquête of is dit op basis van gebruikersprofielen samengesteld? Ik kom regelmatig op SO, maar ben geen enquête tegengekomen.
Staat altijd rechtsboven. Je moet het zelf invullen.
"Over 100,000 developers took the 30-minute survey this past January." (https://insights.stackoverflow.com/survey/2018)
Opvallend dat Assembly met rond de 7% hoger scoort dan VB.Net en Go. Ik dacht dat assembleertaal tegenwoordig meestal als C geschreven werd, maar kennelijk toch nog heel vaak direct.
Bij sommige dingen, zoals drivers, operating systems, of GPU optimized code en filters, kun je eigenlijk niet om assembly heen.
Want er zijn gewoon geen compilers die de juiste instructies kennen.
"Bootstrap" code is doorgaans assembly. Om C programma's te kunnen draaien moet je eerst zorgen dat het RAM actief is, dat de CPU in de goede modus staat, diverse "early" hardware geïnitialiseerd is (zoals voornoemd RAM, en bijvoorbeeld de seriele poort) dat er een stack en een heap is, en dat soort dingen. Dat zijn doorgaans assembly routines, omdat C code pas kan draaien als o.a. de stack er is. En natuurlijk veel van de routines in de C library (denk aan mathematische functies, en printf) zijn in assembly.

De compilers zijn wel doorgaans slim genoeg, en genereren vaak betere code dan wat je met de hand zou maken, omdat ze het platform beter kennen. De SIMD generatie van gcc wordt steeds beter. Zelfs al kun je 't beter, het is doorgaans niet de moeite in verhouding tot de extra tijd die je kwijt bent met programmeren.

C en assembly zullen niet gauw verdwijnen, zolang we nog aan onze huidige CPU architectuur vast zitten. Het zijn nog altijd de bouwstenen waar alle andere talen op gebaseerd zijn. En C zit nog altijd op een soort optimum tussen performance en abstractie, het is goed te overzien maar staat dicht genoeg op de hardware om alle andere talen achter zich te laten qua flexibiliteit en performance.
Klinkt als een tweakers-waardig artikel dat niet helemaal af is, en waar de huidige stand van tweakers-bezoekers al afhaken om dat ze toch geen software kunnen/willen bouwen.
De reden dat Kotlin ineens zo populair is heeft natuurlijk te maken met het feit dat Google het als officiële programmeertaal voor Android heeft geadopteerd (naast Java), waardoor het ineens veel aandacht en belangstelling kreeg.

Ik heb Kotlin ook eens uitgeprobeerd en het is inderdaad een goede programmeertaal. Ze hebben features uit allerlei verschillende talen (o.a. Java, Scala, JavaScript, C#) overgenomen en er een praktische, handige programmeertaal van gemaakt.
Iemand enig idee waarom het framework Vue nergens terug te zien is? Nog relatief weinig in gebruik vergeleken met React en Angular, maar qua downloads / populariteit leek het in de loop der maanden te kunnen concureren met de overige frameworks.
Wellicht vanwege de uitstekende documentatie? Of misschien omdat front-end ontwikkelaars liever voorbeeldprojecten bekijken om te zien hoe iets werkt? Geen idee overigens, maar in mijn ervaring zijn dingen net wat meer voor de hand liggend in Vue. Geen nieuws is goed nieuws wellicht? :)
Coffeescript developer here. 😂

Op dit item kan niet meer gereageerd worden.


Apple iPhone XS Red Dead Redemption 2 LG W7 Google Pixel 3 XL OnePlus 6T FIFA 19 Samsung Galaxy S10 Google Pixel 3

Tweakers vormt samen met Tweakers Elect, Hardware.Info, Autotrack, Nationale Vacaturebank en Intermediair de Persgroep Online Services B.V.
Alle rechten voorbehouden © 1998 - 2018 Hosting door True