Thoughts on new language CPL


I was wondering if anyone in the Julia community has looked at CPL, a new programming language about which a paper was published on the arXiv recently. It seems similar to Fortran, but I may be wrong.

Where do Julia users see it fitting in among scientific computing languages?

Looks like roughly a cross between C and Fortran with a few improvements like not needing header files. The other major feature described is that pointer reference and dereference operations are done automatically for you a lot of the time, which doesn’t seem like all that big a win to me. The fact that the language has first class arrays and pointers that belong to them and are bounds checked is nice. The syntax choices like allowing anything at all to separate function arguments, seem kind of dubious. Overall this would certainly have been a pleasant improvement on C/Fortran for array programming in 1993.


There is little room for a static general programming language designed for scientific computation in 2020. C/Fortran/C++ already do a good job at providing minimal abstraction and optimizing numerical programs. Making the syntax prettier doesn’t make much sense.
I think one future direction of the scientific computation is to do more code generation and micro optimization, which is not quite well studied and doable before the widespread of LLVM. We already know how to design a optimized program in a static type system. However, for some specific problems it would be helpful to spend some time to compile a specialized code and apply some special transformation. Traditionally this is done by some DSLs. But DSL doesn’t share a common internal IR, which is not composable. In Julia, optimizations can be provided as a library function or macro, e.g. LoopVectorization.jl, so they act just like a compiler pass, which lowers the threshold for people to optimize their codes.