On Sunday, October 18, 2015 at 10:01:20 AM UTC-4, Stefan Karpinski wrote: > > There are different styles and levels of writing code in every language. > There's highly abstract C++ and there's low-level pointer-chasing C++ > that's basically C. Even in C there's the void*-style of programming which > is effectively dynamically typed without the safety. Given this fact, I'm > not sure what solving the two language problem would look like from the > perspective this post is posing. Enforcing only one style of programming > sounds like a problem to me, not a solution. On the contrary, I think one > of Julia's greatest strengths is its ability to accommodate a very broad > range of programming styles and levels. >
Even forgetting about pointers etc, the fact is that highly optimized code often looks very different from unoptimized code in any language. e.g. the simplest way to implement a matrix multiplication in C is three loops. Getting decent performance (compared to peak flops) requires 100+ lines of code. Super-optimized implementations require tens of thousands of lines of code. This has nothing to do with safety and pointers, and everything to do with locality (for caches) and unrolling (for registers). There is no language in which optimization doesn't typically involve rewriting critical code.
