Misplaced Pages

Talk:Porting: Difference between revisions

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Browse history interactively← Previous editContent deleted Content addedVisualWikitext
Revision as of 03:52, 7 June 2007 editMacrakis (talk | contribs)Autopatrolled, Extended confirmed users, Pending changes reviewers, Rollbackers53,769 editsNo edit summary← Previous edit Latest revision as of 08:14, 11 December 2024 edit undoMurray Langton (talk | contribs)Extended confirmed users, Rollbackers4,244 editsm sorry, this is the English wikipedia. Undid revision 1262387152 by 78.164.70.100 (talk)Tag: Undo 
(37 intermediate revisions by 21 users not shown)
Line 1: Line 1:
{{Talk page}}
I did a full rewrite rather than edit; judgment call. I felt the original article was not very clear, and contained a number of factual errors. I think I managed to retain the tone and general outline pretty well though.
{{WikiProject banner shell|class=C|
] 17:41, Jan 2, 2004 (UTC)
{{WikiProject Computing|importance=Mid}}

{{WikiProject Video games|class=C|importance=Mid}}
I've always percieved the term ''port'' and associated words a colloquial term, possibly even an abbreviation. If this is the case, it ought to be mentioned. Some insight by someone with more programming experience would help. --] 10:58, 5 October 2005 (UTC)
}}

{{Image requested|technology}}
I am very disturbed by the way this page has been written. Let us start with precise definitions:
{{User:ClueBot III/ArchiveThis

|archiveprefix=Talk:Porting/Archive_
: Porting means: the act of moving software from one system to another in a functional way.
|format=%%i
: A piece of software/media is portable if: it can be moved to multiple systems without significant modification.
|age=720
: Portability means: the degree to which a piece of software can be ported (by measure of effort).
|numberstart=2

|maxarchsize=100000
It is important to note that portability does not refer to the number of platforms something can be ported to. If software runs on a wide variety of platforms, it is more correct to say that it is widely '''available''' on or '''compatible''' with many systems. Portability refers to an inherent property of the program, not the availability (beyond 2) of platforms.
}}

This point is most clearly seen when one thinks about .NET or Java applications. Programs written for those platforms are typically more portable than most applications written in C even though its possible for C programs to be deployed to more compatible platforms. C programs will typically make assumptions (ints > 16 bits, 2s complement math, exploiting undefined/implementation defined behavior, etc) that cannot even possibly be made in Java, for example, even though the resulting C application may be deployed on many more platforms than a Java bytecode interpreter exists for.

: A programming language can be portable in one of various senses:
:: 1. It is possible to write programs in the language such that source code is portable.
:: 2. It is possible to write programs in the language such that object code is portable.
:: 3. Most programs written in that language have high portability.

By specification, the C language basically fits in category 1, Java fits in category 2, and Python/LUA fits in category 3. C is in an extra special category, however, because of the plethora of ''implementation defined behavior'' in the language. C source can be portable in the sense of being able to compile on many platforms, but without retaining semantic portability (in ways that are beyond mere resource limitations). C++ ends up having all the same problems as C, for obvious reasons, but adds a new layer of problems since its such a big language. Very few C++ compiler vendors implement the language exactly to the specification.

I think the article needs to be significantly revamped to include this kind of background. Also get rid of the nonsense about Game Programs -- they are the same as any other program. ] 02:46, 28 January 2006 (UTC)

== Rename to ] ==

Any objections? --] 16:00, 29 June 2006 (UTC)

: This is a good idea. '''Porting''' is really not a good title. Moreover, this article really doesn't do justice to the concept of software portability, which is such an important and rich topic in the field. Perhaps we take the portability of C compilers for granted today, but multi-target compilers, and the ability to write applications that can run on many platforms, is really a big deal. ] 20:54, 18 April 2007 (UTC)

:: On further reflection, I think '''porting''' and '''software portability''' are distinct topics, each deserving an article. The former is about moving an application to a new platform; the latter is about multi-platform software technology, e.g. retargetable compilers. I have put in some maintenance tags to this effect. ] 21:06, 18 April 2007 (UTC)

::: I agree, they are two separate topics and should not be merged. Porting is what you do when you do not have portability. ] 21:03, 5 June 2007 (UTC)

== Another meaning of porting ==

Porting is also the pratice of putting holes into the barrel of a gun to reduce recoil and lower bullet speed. While software porting is probably the most common use, maybe there should be a porting disambiguation page? (I would make one but I am not sure how and don't want to break wikipedia)

] 19:15, 17 April 2007 (UTC) Trent

== This is a mess ==

The words "portable" and "portability" are very general. The specific vocabulary has to be fleshed out here.

For example: Java is a system-portable programming language because it runs on different hardware systems using different operating systems.

Example 2: The data set for a Lucene (Java) search is compatible with the Lucene.net application; so Lucene data sets are application-portable between different platform versions of Lucene.

Example 3: Miranda IM is a self-contained Windows application; all software required for execution, other than the OS itself, is included in the Miranda IM directory. Since its operation (configuration, data storage, etc) is dependent on any Windows OS, but not a certain one, it is Windows OS-portable.

Example 3: "for(;;;){x++}" code compiles and works in both C and C++ languages; therefore it is programming language-portable between these languages.

The action of "porting" code from one language or platform to another is a different topic than the above types of computer software portability.

==Story about "ports"==

A recent contributor added a story about porting which claimed that the word comes from the use of the serial port to transfer files. Well, first of all, porting is not file transfer -- it is about transferring to a different operating environment, including processor, libraries, or operating system. This typically involves rewriting parts of the system, configuring it differently, recompiling it, etc. File transfer is not considered part of the process, though obviously it has to happen at some point. Secondly, people talked about software portability and porting long before there were PCs with serial ports, by the early 1960's at least. So I have removed this unreferenced and implausible claim. --] 21:28, 5 June 2007 (UTC)

@Macrackis, no, I claimed the the word comes from the use of the serial port to transfer files ''between incompatible systems''. First of all, how do you effect a migration to a new environment without using a file transfer? Sourcecode and datafiles are files that need to be transferred to the new environment. Second of all, how are you gonna do this when your systems are incompatible, and you have no network? You use the serial port, friend! And lastly, I didn't mention PCs, you did. I said serial port, that means RS-232 and 1969 according to ]. However I do concede I can't reference my "story", I just told it how I did it back then. So I have left it removed. ] 23:38, 5 June 2007 (UTC)

:I agree that file transfer between systems was not always easy, especially with different word sizes, byte sizes, tape formats, etc. But that is ''file transfer'', not ''porting''. It's all well and good to get the bits from a GE-645 to a PDP-10, but that won't make your application run. --] 23:55, 5 June 2007 (UTC)

:: I agree with what you say. In the days when systems were incompatible, the file transfer was a critical technical issue to overcome, as the first stage of any migration, with the following stages of adjusting the code, massaging the data, recompiling etc as you say. Note the serial port is used in the first stage. Also, a "port" would have been attempted with data before someone attempted it with code - the serial port would have still been used, however. This is why I'm certain of my story. I cannot find a reference though, not even in the jargon file, its glossary has no entry for porting at all. That's just what we called it, when that was the way a migration was done, because no other options were available as almost everything was incompatible with everything else. ] 00:14, 6 June 2007 (UTC)

This story sounds like a ] to me. The relevant ] of the English word (meaning to carry, bear, or transfer over) actually dates back all the way to ancient Latin ''portare''. --] 00:57, 6 June 2007 (UTC)

I found one reference to the origin of the word, says "port" is short for "transport". ] 01:45, 6 June 2007 (UTC)

:I agree that this story is likely a folk etymology. But to "port" in the sense of "to adapt software written for one system for another" is more likely a back-formation from portable/portability. As for the jwc678 glossary, is there any particular reason to believe it is right? --] 01:51, 6 June 2007 (UTC)

:: ''portable'' and ''portability'' themselves derive from the old verb, though. It's not a back-formation (which implies neologism), but a usage revival a new context. --] 05:33, 6 June 2007 (UTC)

Perhaps the contributor did, personally, refer to transferring files between systems as 'porting'. (I wonder how long ago this person's experience occurred? 1980? 1970?) Regardless, software portability has been a computer science topic since at least the 60s. One commonly heard things like "I'm writing a new port of the C compiler" in the 70s. Retargetable and portable compilers, key technology for all portable software, were well-established by the 70s. The XPL language and compiler generator, for instance, was documented in a well-known book published in 1968 (William M. McKeeman, James J. Horning, and David B. Wortman, ''A Compiler Generator'', ISBN 13-155077-2), and was used for ports to several target system. The compiler was itself written in XPL, a technique adopted for early C compilers. (This was a departure from earlier compiler development strategies, which typically required rewriting the compiler anew for each processor, e.g. early FORTRAN and COBOL compilers.) Note that, in those days, software was ''not'' typically transferred via serial port, but on physical media such as magnetic tape or punchcards. Using the serial port for file transfers wasn't common until a) computers had standardized serial ports, and b) standardized file transfer protocols like XMODEM (late 70s) and KERMIT (early 80s) were readily available. Perhaps the obvious point should be made: You wouldn't try to move files across a serial port until you had compatible software running at both ends. This was generally accomplished by running the same (portable) application at both ends. Ergo, software portability was a precursor to 'serial porting'. ] 19:42, 6 June 2007 (UTC)

The idea of moving a program from one computer to another, or writing programs so they would work on multiple computers, is very old. See for example my paper "From UNCOL to ANDF: Progress in Standard Intermediate Languages" (] Research Institute, RI-ANDF-TP2-1, January, 1992. Available at ) which discusses a compiler-based approach. But I am not sure about the history of the ''vocabulary'', so I did a bit of investigation with Web resources and here is what I came up with....

:Oxford English Dictionary
::1971 citation for 'portability'
::1972 citation for 'porting'
::1976 citation for 'port' (verb in this sense)
:A with 69 entries from 1969-1997.
::1972 portability
::1975 portable
::1978 porting
::1992 port (v)
::The 1969 article in this bibliography calls portability "mobility".
:In the ACM online service (which has a terrible search function, so I probably didn't get everything), there is:
::1969 portable
:::J.B. Kruskal, "Extremely Portable Random Number Generator", ''Communications of the ACM'' '''12''':2 (February 1969)</ref>
::1969 portable, portability
:::J.E. Rodriguez, "Program Portability, Data Manipulation Languages, and Data Description Languages", ''SIGMOD fdt'' '''1''':2 (December 1969), never uses "port" or "porting"
::1973 portable/portability/transferable/transferability
:::Maria F. Weller, "Report of session on transferability", ''ACM SIGPLAN Notices''
'''8''':9 (January 1973) uses the words "transferable/transferability" and "portable/portability" pretty much interchangeably and ubiquitously, but uses only "transfer" as a verb, never "port" (well, I skimmed a lot, so I may have missed something).
:In the seminal ''Software Engineering Techniques'' (conference sponsored by the NATO Science Committee), October 1969
::Many uses of "portable" and "portability", a few uses of "transport(ability)", zero uses of "porting" or "port".
It seems pretty clear from all this that "portable" and "portability" were in use by about 1969 -- when a verb was needed, it was typically "transport" -- while "port" and "porting" started being used in about 1976. So "port" does seem to be a back-formation from "portable" and perhaps ''also'' "transport". Of course, the verb "port" existed in other senses, but the transfer of this sense seems to have come from "portable" and "transport", ''not'' directly from the other senses. --] 03:52, 7 June 2007 (UTC)

Latest revision as of 08:14, 11 December 2024

This is the talk page for discussing improvements to the Porting article.
This is not a forum for general discussion of the article's subject.
Article policies
Find video game sources: "Porting" – news · newspapers · books · scholar · JSTOR · free images · free news sources · TWL · NYT · WP reference · VG/RS · VG/RL · WPVG/Talk
Archives: Index, 1Auto-archiving period: 30 days 
This article is rated C-class on Misplaced Pages's content assessment scale.
It is of interest to the following WikiProjects:
WikiProject iconComputing Mid‑importance
WikiProject iconThis article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Misplaced Pages. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.ComputingWikipedia:WikiProject ComputingTemplate:WikiProject ComputingComputing
MidThis article has been rated as Mid-importance on the project's importance scale.
WikiProject iconVideo games Mid‑importance
WikiProject iconThis article is within the scope of WikiProject Video games, a collaborative effort to improve the coverage of video games on Misplaced Pages. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.Video gamesWikipedia:WikiProject Video gamesTemplate:WikiProject Video gamesvideo game
MidThis article has been rated as Mid-importance on the project's importance scale.
Summary of Video games WikiProject open tasks:
Summary of Video games WikiProject open tasks
AfDs Merge discussions Other discussions No major discussions Featured content candidates Good article nominations DYK nominations Reviews and reassessments
Articles that need...
It is requested that an image or photograph of Porting be included in this article to improve its quality. Please replace this template with a more specific media request template where possible.
The Free Image Search Tool or Openverse Creative Commons Search may be able to locate suitable images on Flickr and other web sites.
Upload
Categories: