Most coins being released now in the market utilizes Java, C++ and Python, but the most widely used is C++ and has extensive amount of libraries already built in it which makes it a good tool in developing your own coin from scratch. Java is also good but still lacks features unlike Python and C++. For smart contracts, Solidity would be your best bet since Ethereum, which started smart contracts embedded on the blockchain is built on this language.