Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>A <a href="http://en.wikipedia.org/wiki/Wrapper_library" rel="noreferrer">wrapper</a> is a bit of code that sits on top of other code to recycle it's functionality but with a different interface. This usually implies an interface written in the same language. It should also be noted that sometimes people will say wrapper when what they technically mean is a binding (myself included).</p> <p>Pros: </p> <ul> <li>It's in the same language as the original</li> <li>Wrappers enhance or reuse functionality without needing a full rewrite.</li> <li>Relatively quick to accomplish</li> <li>Trivial updates when the source library changes. You'll probably only need to bind new functions unless they broke backwards compatibility by changing expected input/outputs of functions/classes.</li> </ul> <p>Cons:</p> <ul> <li>Wrapping an entire library can be extremely repetitive</li> </ul> <p>A <a href="http://en.wikipedia.org/wiki/Language_binding" rel="noreferrer">binding</a> is another bit of code that sits on top of other code to recycle it's functionality except this time bindings are written in a language different than the thing they bind. A notable example is PyQt which is the python binding for QT.</p> <p>Pros:</p> <ul> <li>Bring functionality from another language into the language of your choice.</li> <li>Relatively fast in comparison to a port</li> <li>Same level of trivial changes are needed as in wrapping- You'll probably only need to wrap new functions/classes unless they broke backwards compatibility by changing expected input/outputs of functions/classes.</li> </ul> <p>Cons:</p> <ul> <li>Just as repetitive as a wrapper</li> <li>You're probably taking a fairly large performance hit, especially any wrapper involving an interpreted language on either end</li> </ul> <p>A <a href="http://en.wikipedia.org/wiki/Porting" rel="noreferrer">Port</a> is when you translate some code to work in a different environment. Common analogies include games that come out for say... XBox and are later released for PS3.</p> <p>Pros:</p> <ul> <li>Gives you the opportunity to make improvements to the code base as you see inadequacies</li> <li>You'll be intimately familiar with HOW the code runs, not just what it does.</li> </ul> <p>Cons:</p> <ul> <li>By far the lengthiest solution in terms of time/requires a complete rewrite</li> <li>You need to make sure that whatever functionality the source library needs in a language is available in your target port language or you'll end up wrapping needed functionality (and potentially defeating the purpose.)</li> <li>Every time the source library updates, you have to update too by translating whatever changes they made or risk falling behind.</li> </ul>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload