Ask HN: Is there any use nowadays for a proprietary C compiler?
As a result of projects like gcc and LLVM, where their progress gets validated by a huge group of software engineers all over the world, a proprietary compiler, developed only by a single company, should not be able compete effectively (at least in my mind). Is this true or do these products provide some advantage?
17 comments
[ 3.8 ms ] story [ 55.7 ms ] threadhttps://en.wikipedia.org/wiki/Intel_C%2B%2B_Compiler#Overvie...
Intel's compiler writers might have a competitive advantage because they have access to the people who designed the chips. Understanding their machine architecture better than anyone else in the world might enable them to generate faster machine code.
GPL for GCC would make that difficult and LLVM already has an 800 pound gorilla of a corporate backing.
This is a good thing.
However, that advantage is only of benefit in certain spaces.
[1] http://compcert.inria.fr/
Yes, the licensing is a pain in the butt, but if you get to start working on the actual code you are paid to develop a months earlier the $1000 spent are a bargain!
This could of course be remedied by more prople working on gcc (or any other free compiler). But as the majority of a compilers' users will not be willing to invest time to work on the compiler (because they get paid to ship their product), and frankly most of them will not be good in compiler writing. So a commercial company will invest a few man-months of their own, add support for some obscure chip in their proprietary line of compilers, and sell it for $1000/install to the few hundred people working in the (huge) closed source industry building control-systems for power-plants, motor-controls, cheap-IoT-remote-controlled-powerstrips, ...
I was co-founder of a compiler startup that targeted high-performance, cost- and power-sensitive communications processors that were idiosyncratic and hard to program (e.g. split-phase memory accesses, explicit hardware threading and cache control, non-interlocked pipelines, massive SIMD and VLIW parallelism, etc.) Existing compilers for these architectures, if they existed, had abysmal efficiency of generated code.
I'm a little out of touch, but I don't know if this market exists anymore. I think the FPGA tool space is interesting and high-level synthesis tools is one direction to take compiler technology.
The other place compiler development makes sense is inside hardware companies doing new architectural development, e.g., Tilera, Adapteva/Parallella, etc. I ran into Andreas about a year ago and he said they were looking for someone to work on development tools.
You can think of query optimizers and schedulers for distributed computing clusters as the data center evolution of compiler technology in the Barroso, Hölzle warehouse-scale computer sense. I think there's definitely opportunities to innovate in that market. See, for example, the recent post about Baidu accelerating SQL queries with FPGAs:
http://www.nextplatform.com/2016/08/24/baidu-takes-fpga-appr...