Side note: This question was moved to SE.Programmers and then back to Stack Overflow. Discussion about this can be found in this meta question. — Sabito 錆兎30 secs ago
This question is very broad and requires a lot of specific requirements to be taken into account. This forum is geared to help questions regarding software engineering on a specific detailed level but is not appropriate for large broad opinionated development topics. — inki58 secs ago