Sometimes you're developing for a platform where the tool the software was written in (Java in Lucene's case) isn't an option.  If you want the features without having to reengineer the code from scratch, you port the code.

Why do people rewrite some libraries to many programming languages?
What is a word that best describes trying to help someone, but the other party doesn't appreciate it?  

I'm looking for a word.  
