A cross platform in computing refers to the ability of product to run equally on multiple platforms. Nowadays most of the application developers concentrate on creating program that can be efficiently used in different platforms, more importantly the program does not require any kind of data conversion while switching between different platforms. However cross platform software may be classified into two types, one needs compilation or building when you use it on different platform and on the other hand another one requires no compilation and can be directly used on any platform. Though cross platform is usually used to refer computer program but it can also be used to refer hardware. For example consider processor of computer which computes data independent of operating system used.
However the things involved in developing cross platform products is much more complex than developing a normal product. Because there are several aspects which are to be considered while deploying cross platform product. Apart from developing cross platform product the major hurdle comes when you are testing cross platform application after its development. Thus considerably testing cross platform devices is more complex than developing. Moreover different platform usually have different interface conventions for which accommodation of cross platform becomes difficult.
Additionally, executing a cross platform application every time on different platform involves conversion of scripting code and virtual machines. As a result there will be performance degradation. Furthermore after developing the product if there are any bugs then debugging it will be much more complicated and can take enormous time to fix the issue. Another main thing is when cross platform software is executed in any environment then there are several cross-platform security defects which the developer has to be aware of. So overall a cross platform product can make your life simpler but the development is much more difficult.