The wheelchart package, which I wrote, can be used.
The text is given by the third variable \WCvarC. With the key data=\WCvarC this text is placed in the data but using the key data{1,2,4,10}= the data is empty in the slices 1, 2, 4 and 10.
Similarly, with the key wheel data= the wheel data is empty but using the key wheel data{1,2,4,10}=\WCvarC, the text is placed in the wheel data in the slices 1, 2, 4 and 10.
The gap between the slices is obtained with the key gap=0.02.
The key radius={1}{sqrt(\WCvarA+1^2)} sets the inner radius to 1 and the outer radius to sqrt(\WCvarA+1^2). Hence the area of a slice is proportional to \WCvarA which is the first variable.
The shading is defined in the key slices style.
Furthermore, value=1 so that the angle of each slice is the same.

\documentclass[border=6pt]{standalone}
\usepackage{wheelchart}
\begin{document}
\begin{tikzpicture}
\sffamily
\wheelchart[
counterclockwise,
data=\WCvarC,
data{1,2,4,10}=,
gap=0.02,
radius={1}{sqrt(\WCvarA+1^2)},
slices style={
bottom color=\WCvarB,
top color={\WCvarB!80!black},
shading angle={\WCmidangle-90}
},
start angle=0,
value=1,
wheel data=,
wheel data{1,2,4,10}=\WCvarC,
wheel data style=white
]{%
5/green/html,
5/red/css,
4/cyan/javascript,
4/magenta/sql,
3/blue/java,
2/red/ruby,
2/green/python,
2/cyan/{c/c++},
1/magenta/.net,
6/blue/perl%
}
\end{tikzpicture}
\end{document}
\drawsectorcommand from http://tex.stackexchange.com/a/183855/1952 – Ignasi May 29 '15 at 07:19