What does the word 'port' mean pertaining to software development?
definition, language-agnostic
Solution
From the Porting (Software Engineering) entry on Wikipedia:
In software engineering, porting is the process of adapting software so that an executable program [or library] can be created for a computing environment that is different from the one for which it was originally designed (e.g. [different language, ] different CPU, operating system, or third party library) ..
.. the term "port" is derived from the Latin portare, meaning "to carry". When code is not compatible with a particular operating system [or language] or architecture, the code must be "carried" [or "ported"] to the new system.
Thus, "a port" is the result of "porting", and there are many different kinds of "ports".
In some cases a port might be "only in spirit" that heavily borrows from the ideas of the original implementation but otherwise shares no code; libraries often further diverge to take advantage of the target language features.
On the other hand, application ports - especially those that are designed to be portable between different "UNIX" environments - might share everything but the build process.
Problem
I'm reading a book on ASP.NET MVC, and it states: "NVelocity is a port of the Java Apache Velocity template engine, and NHaml is a port of the Ruby on Rails Haml engine". What does the word 'port' mean in this instance?