With the growing number of Internet of Things (IoT) devices, the data generated through these devices is also increasing. By 2030, it is been predicted that the number of IoT devices will exceed the number of human beings on earth. This gives rise to the requirement of middleware platform that can manage IoT devices, intelligently store and process gigantic data generated for building smart applications such as Smart Cities, Smart Healthcare, Smart Industry, and others. At present, market is overwhelming with the number of IoT middleware platforms with specific features. This raises one of the most serious and least discussed challenge for application developer to choose suitable platform for their application development. Across the literature, very little attempt is done in classifying or comparing IoT middleware platforms for the applications. This paper categorizes IoT platforms into four categories namely: publicly traded, open source, developer friendly and end-to-end connectivity. Some of the popular middleware platforms in each category are investigated based on general IoT architecture. Comparison of IoT middleware platforms in each category, based on basic, sensing, communication and application development features is presented. This study can be useful for IoT application developers to select the most appropriate platform according to their application requirement.