Library (computing): Difference between revisions

Content deleted Content added
Class: paragraph it
OOP: Lead with the story; don't bury the lead
Line 73:
A [[shared library]] is a library that is intended to be used by multiple consumers such as different programs, at the same time or in different contexts. Shared can apply to any other classification including static, dynamic, executable and source.
 
===OOPObject===
Although originally pioneered in the 1960s, dynamic linking did not reach the most commonly-used [[operating system]]s until the late 1980s. It was generally available in some form in most operating systems by the early 1990s. During this same period, [[object-oriented programming]] (OOP) was becoming a significant part of the programming landscape. OOP with runtime binding requires additional information that traditional libraries do not supply. In addition to the names and entry points of the code located within, they also require a list of the objects they depend on. This is a side-effect of one of OOP's core concepts, inheritance, which means that parts of the complete definition of any method may be in different places. This is more than simply listing that one library requires the services of another: in a true OOP system, the libraries themselves may not be known at [[compile time]], and vary from system to system.
 
Although generally an obsolete technology today, an object library exposes resources for [[object-oriented programming]] (OOP) and a distributed object is a remote object library. Examples include: [[Component Object Model|COM]]/DCOM, [[System Object Model|SOM]]/DSOM, [[Distributed Objects Everywhere|DOE]], [[Portable Distributed Objects|PDO]] and various [[CORBA]]-based systems.
At the same time many developers worked on the idea of multi-tier programs, in which a "display" running on a desktop computer would use the services of a [[Mainframe computer|mainframe]] or [[minicomputer]] for data storage or processing. For instance, a program on a GUI-based computer would send messages to a minicomputer to return small samples of a huge dataset for display. [[Remote procedure call]]s (RPC) already handled these tasks, but there was no standard RPC system.
 
The object library technology was developed since as OOP became popular, it became apparent that OOP runtime binding required information than contemporary libraries did not provide. In addition to the names and entry points of the code located within, due to inheritance, OOP binding also requires a list of dependencies {{endash}} since the full definition of a method may be in different places. Further, this requires more than listing that one library requires the services of another. In OOP, the libraries themselves may not be known at [[compile time]], and vary from system to system.
Soon the majority of the minicomputer and mainframe vendors instigated projects to combine the two, producing an OOP library format that could be used anywhere. Such systems were known as '''object libraries''', or '''distributed objects''', if they supported remote access (not all did). Microsoft's COM is an example of such a system for local use. DCOM, a modified version of COM, supports remote access.
 
AtThe theremote sameobject timetechnology manywas developersdeveloped workedin onparallel theto idea ofsupport multi-tier programs, in whichwith a "display"[[user interface]] application running on a desktop[[personal computer]] would use(PC) theusing services of a [[Mainframe computer|mainframe]] or [[minicomputer]] forsuch as data storage orand processing. For instance, a program on a GUI-based computerPC would send messages to a minicomputer to return small samples of a huge dataset for display.via [[Remoteremote procedure call]]s (RPC) alreadyto handledretrieve theserelatively tasks,small butsamples therefrom wasa norelatively standardlarge RPCdataset. In response, distrubuted object technology was systemdeveloped.
For some time object libraries held the status of the "next big thing" in the programming world. There were a number of efforts to create systems that would run across platforms, and companies competed to try to get developers locked into their own system. Examples include [[IBM]]'s [[System Object Model]] (SOM/DSOM), [[Sun Microsystems]]' [[Distributed Objects Everywhere]] (DOE), [[NeXT]]'s [[Portable Distributed Objects]] (PDO), [[Digital Equipment Corporation|Digital]]'s [[ObjectBroker]], Microsoft's [[Component Object Model]] (COM/DCOM), and any number of [[CORBA]]-based systems.
 
===Class===