It all depends on whom you ask that question. An infantry soldier, a soldier from a mechanised/armoured formation, a soldier from a combat support arm, a policeman, a gangster all have different requirements and preferences.
Any soldier armed and equipped for conventional battle would prefer an assault rifle with adequate stopping power, a decent effective range of at least 300 meters, reasonable accuracy and one which is also not very heavy to carry. He would also like a rifle which can fire small bursts or single shots so he can conserve ammunition since he can only use the ammunition he can carry on his back. He would like a rifle which is rugged and does not need too much maintenance. A 30 round magazine gives him more options than a 20 round one. Seldom will such a soldier encounter an enemy wearing body amrour. In a conventional war soldiers do not wear body armour. But even in a conventional army, there are soldiers who carry greater load than others, these are the radio operators, those carrying crew served weapons, mortar tripods etc. These people could well do with personal weapons which are much lighter. At the same time, snipers, who are a part of an infantry platoon, would not be interested in either of your weapons.
Soldiers operating on special missions will be armed and kitted in a manner that is best suited for the operations. Soldiers working within the close confines of a tank or an APC need smaller weapons with shorter barrels. Soldiers further back in the tactical battle area and those undertaking mainly logistic or combat support roles can make do with smaller and lighter personal weapons.
Now, the policeman. His requirements are totally different. He is dealing with criminals and crooks and has to be equipped to beat his adversary.
The gangster? No doubts there. The SMG is the weapon of choice of the gangsters and drug gangs where 'shoot and scoot' is all that matters.
To summarise, the weapon should match the mission. That is, if one has left his childhood fantasies with guns and GI Joe behind.