So, any time someone comes up with a new program in an established space, I wonder why?
Personally, if you’re going to choose to do that anyway, one of the first things I would like to see you explain is what your reasoning is for doing so. Is the current leader too hard to use? Too expensive? Is this just an exercise to see if you can do it?
Start with these questions relative to nmap versus your program. Doing a programming exercise just to see if you can do it is a totally valid reason to do something. But I think you want to be clear and explicit about this from the start.