User & Developer Survey 2021
Total Page:16
File Type:pdf, Size:1020Kb
User & Developer Survey 2021 Andrew Claster & Viral Shah Methodology We conducted 2,660 interviews online among Julia users and developers June 2 – July 7, 2021 Margin of error is +/- 1.9 percentage points We recruited respondents online using Slack, Discourse, Twitter, LinkedIn, Facebook, email, JuliaLang.org and JuliaComputing.com The survey was administered in 4 languages: English, Chinese, Japanese and Spanish 2 62% Use Julia ‘A Great Deal’, Up from 56% in 2019; Python Is #2 for Julia Users & Developers How frequently do you use each of the following languages? Julia Python Great deal Some Great deal Some 94% 95% 94% 81% 81% 81% 32% 38% 37% 36% 42% 37% 62% 56% 58% 45% 39% 44% 2019 2020 2021 2019 2020 2021 Other languages not shown include Bash/Shell/PowerShell (67% great deal + some), C++ (38% great deal + some), C (37% great deal + some), MATLAB (37% great deal + some), R (33% great deal + some) and SQL (31% great deal + some) 3 78% Say Julia Is ‘One of My Favorite Languages’, Up from 73% in 2019; PytHon Has Been Declining Among Julia Users Since 2019 How much do you like each of the following languages? Julia PytHon One of my favorite languages Like One of my favorite languages Like 93% 93% 93% 20% 18% 15% 61% 57% 55% 35% 30% 73% 75% 78% 32% 26% 27% 23% 2019 2020 2021 2019 2020 2021 OtHer languages not shown include C (26% ‘one of my favorite languages’ + ‘like’), Bash/SHell/PowerSHell (19% ‘one of my favorite languages’ + ‘like’), R (19% ‘one of my favorite languages’ + ‘like’, C++ (18% ‘one of my favorite languages’ + ‘like’), MATLAB (18% ‘one of my favorite languages’ + ‘like’) 4 Python Is #2 for Julia Users, Followed by C++, MATLAB, R and C R and MATLAB Continue to Decline Among Julia Users Thinking about the tasks for which you use Julia, if you weren’t using Julia for these tasks, what programming language would you be using? 2021 2020 2019 75% Python 76% 73% 30% C++ 31% 28% Responses < 5% not shown: Zig, Visual Basic, 29% MATLAB 31% TypeScript, Swift, Stata, SAS, PHP, Perl, Nim, Lua, 35% Kotlin, F#, Elixir, Crystal, Clojure, Ruby, Maple, 24% R 25% 27% Haskell, Scala, Lisp, C#, SQL, JavaScript, Java, Go 20% C 21% 20% 13% Fortran* 13% 6% 9% Bash/Shell/PowerShell 9% 9% 8% Mathematica* 9% 7% Rust* 6% 6% Octave* 7% * Added in 2020 5 Most Started Using Julia in the Last 3-4 Years – After Julia 1.0 Release (Aug 2018) When did you first start using Julia? 2019 2020 2021 23% 23% 21% 20% 17% 17% 14% 14% 13% 13% (Jan-Jun 2020) 10% 10% 10% 10% 9% 9% (Jan-Jun 2019) (Jan-Jun 2021) 8% 8% 7% 6% 6% 5% 4% 3% 2%2%2% 1% 0% 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 6 Most Julia Users & Developers Do At Least 40% of Their Programming Work in Julia What percentage of the programming work you do is in Julia? 31% 27% 14% 13% 12% 0-19% 20-39% 40-59% 60-79% 80-100% 7 The MOST Popular TECHNICAL Features of Julia Are Speed/Performance, Ease of Use, Open Source, Multiple Dispatch, Package Manager, Solves Two Language Problem, Composable Thinking only about the TECHNICAL aspects or features of Julia, what are the TECHNICAL aspects or features you like MOST about Julia? 2021 2020 2019 85% Speed, performance 86% 85% 69% Ease of use 71% 71% Open source code is available 66% 68% and can be modified 67% 54% Multiple dispatch 52% 52% Package manage r** 53% Solves the two language 45% 53% problem 50% Composable** 40% Ease of installation** 32% 30% Distributed / GPU computing* 33% 27% Specific package(s) 30% 21% Editor and IDE support 21% 23% (Emacs, Vi, Juno, VS Code) 21% Integrates well with other 19% 27% language(s) 21% * Added in 2020 18% On e-bas ed indexing 21% 20% ** Added in 2021 8 The MOST Popular NON-TECHNICAL Features of Julia Are Free (Don’t Have to Pay) and the Julia Community Thinking only about the NON-TECHNICAL aspects or features of Julia, what are the NON-TECHNICAL aspects or features you like MOST about Julia? 2021 2020 2019 Free - don't have to pay to use 80% 83% Julia 83% Julia community of developers 70% 57% is talented and active 56% Julia community of developers 48% 41% is warm and welcoming 37% Big increase for the Julia community – 36% MIT license 42% talented and active, warm and welcoming 41% 35% Easy to create packages 41% 41% Learning a new language, I like 33% 37% learning new languages 36% Easy to get help and 31% 38% information online 37% 27% Great documentation** Easy to contribute to the 18% 30% language 29% Lots of great teaching and 17% learning resources available 20% online 18% ** Added in 2021 9 The Biggest TECHNICAL PROBLEMS with Julia Are Too Long to Generate the First Plot, PaCkages, Cannot Generate Self-Contained Binaries and Slow Compile Times Thinking only about the TECHNICAL aspects or features of Julia, what are the TECHNICAL aspects or features you like LEAST about Julia? 2021 2020 2019 It takes too long to generate the first plot 42% 41% 46% PaCkages aren't as mature or as well-maintained as I 41% need 38% 42% Cannot generate self-Contained binaries or libraries 41% suCh as .exe, .dll, .so, etC. 35%36% Slow Compile times 39% 33% 41% I require paCkages, libraries or tools that are only 24% available or are more Complete in another language 13% 22% The debugger is too slow and/or not fully featured 20% 20%21% Biggest deCreases: Takes too long to Doesn't have all the paCkages I need 18% 22% 28% generate first plot, doesn’t have all Poor editor and IDE support 18% 23% 25% the paCkages I need, poor editor and Immature (2021 addition: not ready for use in 13% production) 24% IDE support, immature, not stable Poor linter, poor syntax CheCking Compared to 13% statiCally typed languages** enough, bugs, paCkage manager is I do not feel Julia is well-suited to Certain tasks 9% 6% 9% confusing, diffiCult or doesn’t do PaCkage manager is Confusing, diffiCult or doesn't 8% do what I expeCt it to* 11% what I expeCt it to On e-bas ed indexing 8% 8% 9% Not stable enough 7% 15% 17% Bu gs 3% 10% 12% Does not integrate well with other languages 2% 2% 3% * Added in 2020 ** Added in 2021 10 The Biggest NON-TECHNICAL PROBLEMS with Julia Are Related to Adoption: Too Many Colleagues, Collaborators and Others Use Other Languages Thinking only about the NON-TECHNICAL aspects or features of Julia, what are the NON-TECHNICAL aspects or features you like LEAST about Julia? 2021 2020 2019 46% My colleagues, company or collaborators use other languages 40% 40% 44% There are not enough Julia users in my field or industry 36% 36% 26% Online tutorials and documentation that are outdated* 30% 33% There are not enough Julia users in general 28% 28% My company, university, clients or other organizations I work 11% with do not allow or support Julia* 10% 23% Insufficient documentation 26% 23% There are not enough teaching and learning resources 17% 16% available online 16% 16% There are too many things I don't know how to do in Julia 16% 15% 16% I have more experience with another language 15% 11% 10% I am more comfortable in another language 9% Biggest declines: outdated or insufficient 8% 2% Julia community is not active enough 4% documentation and tutorials 3% 3% Julia community is too closed and not welcoming enough 3% 2% 0% I prefer (2019-20: enjoy) exploring other languages 2% 1% 0% Don't like learning a new language 1% 1% * Added in 2020 11 Reasons for Choosing Julia: Seems Like the Language of the Future, Elegance, Speed, Solves the Two Language Problem, Like Learning New Languages, Preferable Syntax Why did you start using Julia? 2021 2020 2019 63% Julia seems like the language of the future 57% 52% 53% Elegance of Julia** 46% Faster for the work I am doing 44% 43% 44% Julia solves the two language problem** 43% I like learning new languages 42% 40% 43% Preferable syntax to other language 40% 26% I heard about Julia from friends or colleagues 21% 36% (2019-20: and I wanted to try it out) 36% 13% Better packages for the work I am doing 13% 9% 7% I need or want a specific feature 10% 7% Colleagues in my field use Julia and I want to 5% 6% collaborate with them 6% My instructor or a course I wanted to take uses 4% 6% Julia 6% ** Added in 2021 12 Julia Users & Developers Interact on GitHub, Discourse, Slack and Stack Overflow Where do you interact with the Julia community? 61% 58% 27% 25% 13% 12% 11% 5% 4% 4% 3% 2% 1% GitHub Discourse Slack Stack Twitter Reddit Zulip Discord LinkedIn JuliaCN QQ Gitter Facebook Overflow 13 Most Popular Packages: Plots, DataFrames, BenchmarkTools, Pluto, DifferentialEquations, IJulia, Revise, Flux, Distributions, CUDA, Makie What are some of your favorite Julia packages? 2021 2020 2019 Plots.jl 50% 42% 47% DataFrames.jl 45% 38% 40% BenchmarkTools.jl** 29% Pluto.jl** 26% DifferentialEquations.jl 26% 24% 27% IJulia.jl 24% 33%34% Revise.jl 24% 17% 21% Flux.jl 22% 20%21% Distributions.jl 20% 26% CUDA.jl* 12% 16% Makie.jl 16% 8%9% PyCall.jl 14% 22% StaticArraYs.jl** 14% StatsBase.jl** 14% Under 10% not shown: LightGraphs.jl, Zygote.jl, PackageCompiler.jl, JuMP.jl 13% Turing.jl, UnicodePlots.jl, GadflY.jl, SYmbolics.jl, DiffEqFlux.jl, Modeling 16% 19% PyPlot.jl** 13% Toolkit.jl, GLM.jl, Rcall.jl, StatsFuns.jl, ApproxFun.jl, Franklin.jl, Genie.jl, MLJ.jl, TensorFlow.jl, OnlineStats.jl, Convex.jl, Weave.jl, QuadGK.jl, ForwardDiff.jl 12% 12% MKL.jl, TensorOperations.jl, ReinforcementLearning.jl, QuerYverse.jl, FFTW.jl 11% 12% Cxx.jl, Knet.jl, CxxWrap.jl, MixedModels.jl, TextAnalYsis.jl, JavaCall.jl Documenter.jl 11% 9%10% Optim.jl 11% 14%15% Images.jl 10% 10% StatsPlots.jl 10% * Added in 2020 10% 13% 10% ** Added in 2021 DataStructures.jl** 14 Most Say the Julia Package Ecosystem is ‘Somewhat’