The application developer must decide which type of protocol works best for the particular application. Some questions to ask are:
How reliable must the connection be?
Must the data arrive in the same order as it was sent?
Must the connection be able to handle duplicate data packets?
Must the connection have flow control?
Must the connection acknowledge the messages it receives?
What kind of service can the application live with?
What level of performance is required?
If reliability is paramount, then connection-oriented transport services (COTS) is the better choice.