Empirical Evidence of the Adoption of Sophisticated Capital Budgeting Techniques
Empirical Analysis of Programming Language Adoption
-
Upload
leo-meyerovich -
Category
Technology
-
view
2.105 -
download
2
description
Transcript of Empirical Analysis of Programming Language Adoption
![Page 1: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/1.jpg)
Leo A. Meyerovich, UC Berkeley Ariel S. Rabkin, PrincetonOctober, 2013
EMPIRICAL ANALYSIS
OF PROGRAMMING
LANGUAGE ADOPTION
![Page 2: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/2.jpg)
2
Why Adoption?
![Page 3: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/3.jpg)
3
Confession of a Language Salesman
Change Function threshold to adopt:
[P. Coburn]
perceived adoption needperceived adoption pain > 1
FP!!!new language
![Page 4: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/4.jpg)
4
- Erik Meijer
“From now on, my goal in life would be to also drive the denominator down to zero”
Confessions of a Used Programming Language Salesman
Confession of a Language Salesman
![Page 5: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/5.jpg)
5
Change Function threshold to adopt:
perceived adoption needperceived adoption pain > 1
FP!!!new language
FP!!familiar
language
[P. Coburn]
Confession of a Language Salesman
![Page 6: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/6.jpg)
6
Science?
Adoption literaturechange function is switching
costs
Data analysisgrowth
decision making acquisition
TODAY
![Page 7: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/7.jpg)
7
Our Data Sets
2 year long web survey
13,271 respondents
massive open online
course (MOOC) survey
1,142 respondents
software repositor
ies217,368 projects
2 week web survey1,679
respondents
[McIver]
[Patterson & Fox]
Viral Campaign
![Page 8: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/8.jpg)
8
Demographics
Age: ~30
Degree: ~BS in CS
Employment: ~programmer
![Page 9: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/9.jpg)
9
How do languages grow?
![Page 10: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/10.jpg)
10
Ecological model of adoption
Use languagein a niche Grow libraries
and user base
Spread language to more niches
![Page 11: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/11.jpg)
110%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
xml
html
cssjavascript
javashell
cmake
pythonc++
phprubyc# sql bat
Popular Languages CDF (Ohloh data)
Language
Cumu-lativeUse
Half the projectsuse 5 languages
![Page 12: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/12.jpg)
120%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
xml
html
cssjavascript
javashell
cmake
pythonc++
phprubyc# sql bat
Popular Languages CDF (Ohloh data)
Language
Cumu-lativeUse
DSLsdominate
Half the projectsuse 5 languages
![Page 13: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/13.jpg)
13
0.127 1.27 12.7 1270.0100%
0.1000%
1.0000%
10.0000%
100.0000%
Language Rank (Decreasing)
Propor-tion of Projects
for Lan-
guage
Odds for Most Languages? (PDF)
Long Tail!Supports designing for niches and then
growing
Java for 16% of projects
Processing for 0.09% of projects
![Page 14: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/14.jpg)
14
Projects (2000-2010)200K+[PLATEAU 2013]
![Page 15: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/15.jpg)
-20%
0%
20%
40%
60% Java
Project categories (223)
0%
1%
2%
3%
4%
Scheme
Project categories (223)
Popularity Across Niches
15
blogging: 9%
search: 29%
build tools: 1%
Popularity
Popularity
![Page 16: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/16.jpg)
-20%
0%
20%
40%
60%
Project categories (223)
0%
1%
2%
3%
4%
Project categories (223)
Popularity Across Niches
16
high dispersion
low dispersion
Popularity
Popularity
![Page 17: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/17.jpg)
17
00.511.522.533.544.5
PrologVBScriptScheme
Fortran
PL/SQLAssemblyC#
Java
Dispersion across niches(σ / μ)
Pop
ula
rity
Dispersion Decreases as Popularity Increases
Languages grow niche by niche
![Page 18: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/18.jpg)
18
How Do Programmers Pick Languages?
![Page 19: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/19.jpg)
19
P(L’ | L)
p(popular)75%
p(repeat)30%
Shows importance of
familiarity
![Page 20: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/20.jpg)
20
How Do Languages Get Picked?
strongly agreestrongly disagree neutral
Development
speed?
Performance?
![Page 21: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/21.jpg)
21
Open source libraries
Group legacy
Project legacy
Self familiarity
Team familiarity
Target platform
Performance
Tooling
Development speed
Hiring
Individual feature(s)
Correctness
Simplicity
Commercial libraries
0% 10% 20% 30% 40% 50% 60% 70% 80%
Relative Importance of Language Aspects (Med-Strong)
Slashdot survey, Companies with 1-19 employees
Intrinsics:performance,correctness,
…
Extrinsic niche-specific factors dominate!
Be Positive: Design Guides & Opportunities
![Page 22: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/22.jpg)
22
Learning: Shelf Life of a Programmer?
“Baby Boomers and Gen Xers tend to know C# and SQL.
Gen Y knows Python… and Hadoop”Recruiter
![Page 23: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/23.jpg)
Language Users are Age-Invariant
![Page 24: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/24.jpg)
Languages are learned and forgotten
Programmershave a working setthat they refresh!
![Page 25: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/25.jpg)
25
Median reported time requiredto “learn a language well”
Time to learn is short compared to career
![Page 26: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/26.jpg)
26
Probability of Knowing a Language
AllCS
Major
Not CS
Major
Taught in
school
Not Taught
in school
Functional Scheme, ML, ...
22% 24% 19% 40% 15%
AssemblyMIPS, … 14% 14% 14% 20% 10%
Mathematical Matlab, R, …
11% 10% 11% 31% 7%CS degree unimportant
but coursework matters
![Page 27: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/27.jpg)
27
ConclusionsExtrinsics dominate: Libraries and familiarity!
Model: Niche-by-niche growth
Intrinsics secondary:Performance, semantics, IDEs
Fluidity = Hope: Programmers know few languages but can refresh within 6 months.
![Page 28: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/28.jpg)
28
Looking AheadLanguage SociologyProgramming is done by groups; big knowledge gaps
Streamline EmpiricismSurveys, experiments (mining already active)Exploit MOOCs!
Social Language DesignImprove sharing and utilize networks
![Page 29: Empirical Analysis of Programming Language Adoption](https://reader037.fdocuments.us/reader037/viewer/2022102823/54661072af7959642f8b5a15/html5/thumbnails/29.jpg)
29
Socio-PLTwww.eecs.berkeley.edu/~lmeyerov