@parb , @pmatusov : I'm with you. C has always been my "mother tongue" since 1985 and still is. But in the recent years, C++ was more important on the market. But my private hobby is embedded programming: 8051, 68HC11, STM32 ... 
And so you might understand, why I don't like Java very much. It has great concepts, yes. But many things are too much Nanny-like. Gosling thought he could "rescue" programmers from doing the "wrong" things. Generic pointers, for example ... they are strictly forbidden in Java. This is Nanny BS, a typical "I know better" belief.
Generic pointers are so versatile, and experienced programmers know how to implement them in a save and easy to use manor. In particular, in embedded programming they are so powerful and often they are almost indispensable. I know you can replace them with "typesave and good" practises. But their grammar is often awful and hinders easy implementation everywhere.
In C, you've much more freedom and you're not forced to follow other people's dogmas.
And so you might understand, why I don't like Java very much. It has great concepts, yes. But many things are too much Nanny-like. Gosling thought he could "rescue" programmers from doing the "wrong" things. Generic pointers, for example ... they are strictly forbidden in Java. This is Nanny BS, a typical "I know better" belief.
Generic pointers are so versatile, and experienced programmers know how to implement them in a save and easy to use manor. In particular, in embedded programming they are so powerful and often they are almost indispensable. I know you can replace them with "typesave and good" practises. But their grammar is often awful and hinders easy implementation everywhere.
In C, you've much more freedom and you're not forced to follow other people's dogmas.