In this excellent article Patrick Li, the author of a new optionally type language Stanza and co-founder of JITX (YC S18), provided a compelling reason to design a new language [1]. TL;DR, a powerful language like Ruby enabled the creation of powerful RoR library and framework that help spawned unicorn size startups like Github and Twitter, that's otherwise not feasible.<p>I want to add another dimension to this argument, what if we can maintain an existing language eco-system (library, community, etc) but modernize the engine that's running and compilation of the R language. This new engine can avoid the dreaded global locking limitation, provides native multi-thread applications and seamless interface with non-native R libraries in C/C++. Interestingly someone has tried this, with a sponsorship from Oracle no less, and presented this futile effort in the last year's R flagship conference keynote [2].<p>IMHO he will be more successful in his endeavour if using D language in his previous endeavors. What so special about D language you may ask? I would refer to the fact most of the languages do not provide Ruby on Rails (RoR) like tool except D but that for another story (see ref [1]). There's also the fact that D has a working alternative library to OpenBLAS and MKL, and it's even faster than both them five years back [3]! D also supports open method as an alternative for multiple dispatches that is much touted by Julia language community. D is also bringing native support for borrow checker feature that's always mentioned in the same sentence as Rust language. In addition D also has second to none FFI support for C and C++ language. Heck the latest D compiler has standard C compiler built-in. I can go on furthermore but I think you've probably already got the pictures.<p>My not so humble proposal to R and D language community is to compile R on top of D language. Essentially you a have dynamic language of R that is compiled at runtime (CTFE) on top of static D language. This approach is becoming more popular now as posted recently for the new Val and Valet language combination [4]. Just think of CTFE as the new JVM, but provides truly static and native compilation for R.<p>[1] What makes a programming language productive?
“Stop designing languages. Write libraries instead.”:<p><a href="https://jaxenter.com/stop-designing-languages-write-libraries-instead-126738.html" rel="nofollow">https://jaxenter.com/stop-designing-languages-write-librarie...</a><p>[2] Why R? 2020 Keynote - Jan Vitek - How I Learned to Love Failing at Compiling R:<p><a href="https://www.youtube.com/watch?v=VdD0nHbcyk4" rel="nofollow">https://www.youtube.com/watch?v=VdD0nHbcyk4</a><p>[3] Numeric age for D: Mir GLAS is faster than OpenBLAS and Eigen:<p><a href="http://blog.mir.dlang.io/glas/benchmark/openblas/2016/09/23/glas-gemm-benchmark.html" rel="nofollow">http://blog.mir.dlang.io/glas/benchmark/openblas/2016/09/23/...</a><p>[4] Show HN: Val - A powerful static and dynamic programming language(val-lang.org):<p><a href="https://news.ycombinator.com/item?id=28683171" rel="nofollow">https://news.ycombinator.com/item?id=28683171</a>