What is a Software Package?
A software package is a group of programs which are bundled together to serve a common purpose. Often, a software package will also include the source code that built the executable programs as well as a variety of documentation for the programs themselves. Some software packages will also include example files that can further illustrate how the other components of the package work.
The components of a software package can do significantly different things, but all the components of the package come together in a unified whole. Some software packages have one main program that encapsulates all the smaller programs, while others take a more fragmented approach and have multiple small, specialized executables for different purposes. There are advantages and disadvantages to each approach, as well as specific audiences that benefit from each.
Packages that encapsulate all their functionality into one large program are useful for most computer users. They are usually easy to install, relatively easy to understand, and fairly easy to run. At times, a user can download add-ons for them, but this is all done behind the scenes with minimal interaction and effort from that user. All-in-one software packages like these are available for many purposes, from document management to 3D modeling and image rendering.
A software package that keeps its functionality more fragmented is often targeted toward more computer-savvy users. These packages will often have command line tools, along with extensive documentation and highly flexible capabilities. Changes to these packages must usually be done by either manipulating raw directory structures or completely downloading a new version of the package. Add-ons are not as common for these package types. Grouped software packages like these are often aimed toward academics and engineers, for purposes such as analysis of biological data and creation of new software programs.
Some software packages contain completely unique code, while others incorporate existing programs to combine functionality of existing algorithms. The debate between these two methodologies is ongoing. Some programmers prefer to write their own code for everything, and others prefer to link together multiple existing programs. Many packages exist using each type of framework, and either methodology can be used to create a successful software suite.
With the expansion of the open source software movement, more and more programs, algorithms, and software packages have become free to use in new software without licensing concerns. In scientific fields, for example, many new algorithms and programs are published with the expectation that they will be used freely not only for analysis, but also for building new programs. A new software package can easily be built upon or modeled after an old one, and this sharing of knowledge has become instrumental in software development.
Software packages have been around for a very, very long time. One of the things that made the old IBM-PC so popular was an integrated software package that had modules for word processing, spread sheets and databases in one package. You had similar packages for early operating systems such as CP/M and the cool thing about them was that you could share data from one module to the next (using spreadsheet data in a word processing document, for example).
Such integration was revolutionary back in the late 1970s and early 1980s, but we take that stuff for granted today.
@Terrificli -- Linux isn't the only world where open source software packages have become popular. Those open source packages have shown up in the Windows and Mac OS worlds, too, and have found quite an audience.
Of course, those packages aren't bundles with proprietary operating systems, but they are easy to install.
Very correct in pointing out that the open source software movement has facilitated the free flowing use of programs, packages and code. Take the Linux operating system as a classic example. You don't just have one version of Linux -- you have several that utilize the same kernel and are distributed as complete, turnkey operating systems.
It is common to install a version of Linux and have a lot of software that makes it usable right out of the box. In addition to the operating system and desktop, you have office suites, audio and video editing software, some games and other applications that are bundled into the whole package.
Usually different versions of Linux will come packaged with the same office suites and such and the only difference between those Linux distros will be the desktop and the way the underlying kernel is implemented and used. You couldn't have that kind of diversity unless the software packages used were open source.
Post your comments