
Ask HN: Is there any use nowadays for a proprietary C compiler? - ignoramoose
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?
======
greenyoda
People are still apparently using Intel's C++ compiler despite all the free
ones that are available. An overview of their compiler can be found here:

[https://en.wikipedia.org/wiki/Intel_C%2B%2B_Compiler#Overvie...](https://en.wikipedia.org/wiki/Intel_C%2B%2B_Compiler#Overview)

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.

~~~
flukus
I don't understand how they wouldn't be better served contributing to gcc/llvm
instead?

~~~
brudgers
A closed source project can license other closed source technologies, can
maintain trade secrets, set its own roadmap and not expend energy on open
source community politics. For Intel this means technical decisions about
their compiler about can align with future chip technologies and be tuned
around undisclosed aspects of a chip's design.

GPL for GCC would make that difficult and LLVM already has an 800 pound
gorilla of a corporate backing.

------
cnvogel
Number of supported architectures. You'd be surprised for how many chips gcc
(or any free compiler) just isn't available. But _every_ chip vendor will sell
you a commercial bundle of IDE (most often eclipse...) + commercial compiler +
their proprietary embedded OS for a few hundred or thousand dollars. This will
most often produce usable code out of the box, without you having to mess
around (too much) with linker scripts, startup code and other things a lot of
embedded developers have a hard time to get it running.

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, ...

------
technion
There is a competitive advantage in CompCert[1].

However, that advantage is only of benefit in certain spaces.

[1] [http://compcert.inria.fr/](http://compcert.inria.fr/)

------
cottonseed
Yes, but you'll have to find a niche where gcc or LLVM don't make sense. Intel
has a huge compiler group and insider architectural knowledge, and icc has a
minuscule market share. I don't see a viable business targeting mainstream
processors.

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...](http://www.nextplatform.com/2016/08/24/baidu-takes-fpga-approach-
accelerating-big-sql/)

------
nibnib
The obvious case is architecture support. A lot of embedded devices are not
targeted by gcc and LLVM.

------
flukus
I'd say no. The days of closed source development tools are almost entirely
behind us, especially for core tools like compilers. MS was the largest major
holdout to this and even they are coming around.

This is a good thing.

------
jotux
IAR and Keil compilers are reasonably popular proprietary embedded compilers.

