I checked, Jeff’s PhD thesis on Julia doesn’t mentioned the “two language problem” by name, but I believe it’s what’s it all about: phdthesis/main.pdf at master · JeffBezanson/phdthesis · GitHub
Found at the “issue” (that neither mentions the term)…
It’s only 143 pages (yes, I didn’t read it all, at the time, a lot of it though, if you don’t have the time) I recommend reading chapter “2.1.1 Case study: Vandermonde matrices” (and at least a few more (earlier) chapters e.g. the introduction), even if you do not know what those are (I wasn’t familiar with Vandermonde and it’s a proxy for the general issue and that chapter comparing to as doce in Python/C sold me on Julia at the time).
1.1 The technical computing problem
aka “the two-language problem”, as I understand it, and while maybe more relecvant to technical computing, all should agree Julia is a general purpose language, as officially stated, and the problem and solution good for organizing code for maintenance, not just techical or scientific code.
"I’m expecially indepted to Stephen Johnson, for explaining to me why Julia is doomed, and subsequently working as hard as much as anybody to make it less doomed. He is the author of code in appendix B
I think both (all) will agree, Julia is now “less doomed”, or not doomed at all, even with a bright future, and good in the present. Much brighter than (most, all?, of) the other 49:
“we have discovered at least 49 programming languages designed for technical computing since Forrtan (figure 1-1). This high number begs for a explanation.”…
Table 3.1 was intriguing, because I thought multimethods to be basically a synonym for “multiple dispatch” (which Julia uses). That seemingly can’t be true, since it’s O(n) in the table (also templates, presumably from C++, so also less), and Julia (and also e.g. term rewriting) O(nm) while e.g. typeclasses O(m) and methods, virtual methods, closures and duck typing O(1).