Языки программирования, особенности и разновидности