ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACAD
1
categorytrait
trait_scalar
javascript
javascript_comment
typescript
typescript_comment
rust
rust_comment
python
python_comment
java
java_comment
ocaml
ocaml_comment
go
go_comment
cc_commentcppcpp_commentbashbash_commentgleamgleam_commentelmelm_comment
2
correctnesswell modeled fallibility31
present in exceptions, null, undefined, cb sigs. extremely non-uniform, but present
2
present in exceptions, null, undefined, cb sigs. extremely non-uniform, but present. however, strict mode allows for greatly improved detection, even if modeling not uniform
3
universal monadic impls
2
None, exception
2
null, Exception
3111033
3
correctnessmemory safety - compile time3nana3nanana1
bad memory behaviors not strictly caught at compile time, like invalid method access on a struct, or range error
12nana3
4
correctnessmemory safety - run time3333333311333
5
correctness
collection transforms (e.g. functional operators, functor, iter streams/xforms, etc)
22
basic functional ops and iter capabilities
2
basic functional ops and iter capabilities
3
entirely unmatched iter tooling with extremely productive and capable batteries
1
procedural loops and comprehensions only, weak functional iter capabilities. itertools package common, but pales in comparison to other langs
2
diverse selection of iter tooling, including streams() intfcs, but lesser than the competion
2112032
6
correctnesslaziness11
generators
1
generators
2
async naturally lazy, generators, ...mainly opt in
111111111
7
correctnesstypes - existent3na330
typings module is inadequate for non-trival typing
33322na33
8
correctnesstypes - type mapping1na32
there, less ergo: https://stackoverflow.com/a/67532477/1438908
00
https://docs.oracle.com/javase/tutorial/java/generics/index.html
2
module X = struct ... type t = X.t Map ... blarg
111na11
9
correctnesstypes - inference2na33023211na33
10
correctnesstypes - alegbraic2na21
https://stackoverflow.com/questions/45065518/how-to-show-that-the-rust-type-system-supports-algebraic-data-types-adts, but standard algebraic operations are not as easily expressable as FP
003002na12
11
correctnesstypes - completeness3na2
you can mix ts/js, but it's not what is observed in practice at user level. package level source language variance is high, with plenty of JS deps
3033333na33
12
correctnesstypes - advanced (dependent, hkt, etc)1na11???003001na33
13
correctnesstypes - structual1na3na
https://beachape.com/blog/2021/05/25/structural-typing-in-rust/
nananana33nanana
14
correctnesstypes - nominal1na2
branding is easy, but 3p
3na333nanana33
15
developer uxparadigm - functional022
fp is harder without hkt
2113011133
16
developer uxparadigm - procedural0332313332320
17
developer uxparadigm - oop0333333323000
18
developer uxmeta-programming1003021
ppx is rough
1
reflection. yay.
22001
19
developer uxdebugger1331221
don't get me started
323011
20
developer uxide - syntax1333333333233
21
developer uxide - launch1333331333112
22
developer uxide - completions1333331323223
23
developer uxide - task execution1333331323111
24
developer uxlearning - teachable2332332322333
25
developer uxlearning - accessible1333333333333
26
developer uxproject - hydration/bootstrap13
clone, npm i, npm start
33211
have mercy
311132
27
performanceefficent machine/bytecode2na23123233131
28
performanceabstractions - memory cost31
astractions often cost objects
2
astractions often cost objects, but fancy types can reduce weight
31
abstractions = classes
12
e.g. Option::None does carry cost in some scenarios
233112
29
performanceabstractions - cpu cost3333333333132
30
performancecommon compile duration1na21na22
famous, but practically, on par
3rips32322
31
developer uxbatteries - standard modules11
3p libs oft required
12331
famously lack of
322132
32
developer uxbatteries - testing22
none, but clear 3p winners
1
none, but clear 3p winners
331
none, but clear 3p winners
1311112
33
developer uxbatteries - project/repo management23
unmatched, npm + scripts + deps
3
unmatched, npm + scripts + deps
21
setup.py, non std impl patterns
1
swaths of metadata, oft ide driven for common project. present, but compare to others
2dune211132
34
ecosystembatteries - packaging & distribution33
unmatched
3
unmatched
21
famously non std toolkits (requirements, pip-lock, etc)
21
opam. works, less ergo than alt envs
311133
35
ecosystemmodule abundance33
unmatched
3
unmatched
332
https://vegibit.com/wp-content/uploads/2018/05/npm-package-counts.png
2322313
36
communitysupport - community3333331
great 1:1 issues (SO, discord), online resources small
333332
37
communitysupport - enterprise1333331333211
38
ecosystemtooling - builds1333332333223
39
ecosystemtooling - ci/cd1333331333222
40
ecosystemtooling - asset management1333333322122
41
ecosystemmaturity2332333333323
42
hiringhiring availability2321331322311
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100