A brief list of observed meanings of the word “port”

port (v):

  1. Reindent and reformat.

    empathy-time: port to TP coding style

  2. Update to compile against a backwards-incompatible version of an API.

    <ocrete> twi: I’m porting farstream to [GStreamer] 0.11 this week

  3. Rewrite to use a different widget set and network library.

    You should port Sojourner to Qt4!

  4. Reimplement in an entirely different programming language.

    Zeitgeist has been ported from Python to Vala.

  5. Translate into a different data format.

    Using Semantics3’s web crawlers, we were able to get hold of the data within a half hour, after which we spent a further half hour cleaning up the data and porting it to SQL.

10 comments ↓

#1 Jasper St. Pierre on 04.30.12 at 6:08 pm

“move to”

#2 Arun Raghavan on 04.30.12 at 7:11 pm

A PulseAudio abstraction of a single output or input audio path.

#3 Danilo on 05.01.12 at 6:33 am

How are meanings 1-4 not simply more specific instances of 5? A different programming language is a different data format expressing the same information (4). Similarly for the different library APIs (2, 3: why would you split those up at all?), and number 1 is even trivially so.

“Port” (verb) has gotten a very generic meaning in software development, indeed, but all the examples you give can all be put under that one same generic meaning.

#4 Guybrush Threepwood on 05.01.12 at 8:00 am

Have you considered implementing a blacklist?

#5 Will Thompson on 05.01.12 at 8:27 am

@Danilo: 2 and 3 are as different as the others are. 2 is “there have been a few API breaks”; 3 is “please completely rewrite this heavily Gtk+ and GLib-dependent application to use Qt4”.

The whole point of this post, inasmuch as it has one, is that the verb has become absurdly generic.

#6 Danilo on 05.01.12 at 12:00 pm

I’d say the verb was generic from the start. Even MW (http://www.merriam-webster.com/dictionary/port, meaning [7]) makes it such, and Jargon file doesn’t even list it.

If MW is any indication and it really derives from a hw port, that only makes sense. Computer port (noun) was used to describe any type of connector that allows one computer device to be connected to another. How’s that for being generic?

Perhaps it’s more interesting that there is so much “porting” going on that you noticed a pattern. How much time are we, as software developers, spending rewriting (ugh, sorry, porting :) our software to new frameworks and platforms instead of developing the software itself?

Anyway, enough babbling from my side :)

#7 Will Thompson on 05.01.12 at 12:13 pm

@Danilo Hmm, interesting that MW’s definition is so generic. I had always interpreted it to mean “make program A run on new platform B”.

Good point about the churn all this “porting” shows up. (cf.) Rewrites in new languages is something I find particularly disappointing, even if there are apparently valid reasons to do so.

#8 Anders Brander on 05.01.12 at 3:10 pm

Oh, oh, and I almost forgot. Ahh, I’m also gonna need you to go ahead and port it to Windows, too…

#9 Neil McGovern on 05.02.12 at 12:07 am

Interestingly, you should look at the etymology of this. It’s derived from the amount of fortified Portugese wine which should be drunk so it all makes sense again.

Eg: “why would you possibly want to run LibreOffice on a SH4 arch?” – “Port it and you’ll see”

#10 Adam Williamson on 05.02.12 at 7:39 pm

6: essential liquid adjunct to QA work (see also comment #9)