In order to participate in the discussion it’s helpful to know what people are talking about. I’ve grabbed some of my favorite acronyms from a number of different online sources. I invite everyone to amend, alter, correct and of the definitions. If you can make them simpler without getting your friendly geeks’ hair to stand on end, please do so.
Examples and illustrations are also welcomed.
An application program interface (API – and sometimes spelled application programming interface) is the specific method prescribed by a computer operating system or by an application program by which a programmer writing an application program can make requests of the operating system or another application.
An API can be contrasted with a graphical user interface or a command interface (both of which are direct user interfaces) as interfaces to an operating system or a program.
CONTRIBUTORS: Thomas Li
LAST UPDATED: 16 Feb 2004
An application program (sometimes shortened to application) is any program designed to perform a specific function directly for the user or, in some cases, for another application program. Examples of application programs include word processors; database programs; Web browsers; development tools; drawing, paint, and image editing programs; and communication programs. Application programs use the services of the computer’s operating system and other supporting programs. The formal requests for services and means of communicating with other programs that a programmer uses in writing an application program is called the application program interface (API).
LAST UPDATED: 15 Feb 2007
In computing, a program is a specific set of ordered operations for a computer to perform. In the modern computer that John von Neumann outlined in 1945, the program contains a one-at-a-time sequence of instructions that the computer follows. Typically, the program is put into a storage area accessible to the computer. The computer gets one instruction and performs it and then gets the next instruction. The storage area or memory can also contain the data that the instruction operates on. (Note that a program is also a special kind of “data” that tells how to operate on “application or user data.”)
Programs can be characterized as interactive or batch in terms of what drives them and how continuously they run. An interactive program receives data from an interactive user (or possibly from another program that simulates an interactive user). A batch program runs and does its work, and then stops. Batch programs can be started by interactive users who request their interactive program to run the batch program. A command interpreter or a Web browser is an example of an interactive program. A program that computes and prints out a company payroll is an example of a batch program. Print jobs are also batch programs.
When you create a program, you write it using some kind of computer language. Your language statements are the source program. You then “compile” the source program (with a special program called a language compiler) and the result is called an object program (not to be confused with object-oriented programming). There are several synonyms for object program, including object module and compiled program. The object program contains the string of 0s and 1s called machine language that the logic processor works with.
The machine language of the computer is constructed by the language compiler with an understanding of the computer’s logic architecture, including the set of possible computer instructions and the length (number of bits) in an instruction.
LAST UPDATED: 01 Mar 2007
A build tool is a programming utility that is used when building a new version of a program. For example, make is a popular open source build tool that uses makefile, another build tool, to ensure that source files that have been updated (and files that are dependent on them) will be compiled into a new version (build) of a program.
1) In computers, a platform is an underlying computer system on which application programs can run. On personal computers, Windows 2000 and the Mac OS X are examples of two different platforms. On enterprise servers or mainframes, IBM’s S/390 is an example of a platform.
A platform consists of an operating system, the computer system’s coordinating program, which in turn is built on the instruction set for a processor or microprocessor, the hardware that performs logic operations and manages data movement in the computer. The operating system must be designed to work with the particular processor’s set of instructions. As an example, Microsoft’s Windows 2000 is built to work with a series of microprocessors from the Intel Corporation that share the same or similar sets of instructions. There are usually other implied parts in any computer platform such as a motherboard and a data bus, but these parts have increasingly become modularized and standardized.
Historically, most application programs have had to be written to run on a particular platform. Each platform provided a different application program interface for different system services. Thus, a PC program would have to be written to run on the Windows 2000 platform and then again to run on the Mac OS X platform. Although these platform differences continue to exist and there will probably always be proprietary differences between them, new open or standards-conforming interfaces now allow many programs to run on different platforms or to interoperate with different platforms through mediating or “broker” programs.
2) A platform is any base of technologies on which other technologies or processes are built.
CONTRIBUTORS: cate bramble
LAST UPDATED: 22 Sep 2006
1) In information technology, a product or system is described as open when its workings are exposed to the public and capable of being modified or improved by anyone. The alternative is a proprietary product or system. Also see open source.
2) In programming, to open (verb) a file or unit of data is to make it accessible for reading and writing. An open file is one that is ready to be read or written to.
LAST UPDATED: 30 Jul 2001
Plug-in applications are programs that can easily be installed and used as part of your Web browser. Initially, the Netscape browser allowed you to download, install, and define supplementary programs that played sound or motion video or performed other functions. These were called helper applications. However, these applications run as a separate application and require that a second window be opened. A plug-in application is recognized automatically by the browser and its function is integrated into the main HTML file that is being presented.
Among popular plug-ins to download are Adobe’s Acrobat, a document presentation and navigation program that lets you view documents just as they look in the print medium, RealNetworks’ streaming video player, and Macromedia’s Shockwave for DIrector, an interactive animation and sound player. There are now hundreds of possible plug-ins. Most users wait until they need a particular plug-in before they download it.
1) In general, widget (pronounced WIH-jit ) is a term used to refer to any discrete object, usually of some mechanical nature and relatively small size, when it doesn’t have a name, when you can’t remember the name, or when you’re talking about a class of certain unknown objects in general. (According to Eric Raymond, “legend has it that the original widgets were holders for buggy whips,” but this was possibly written tongue-in-cheek.)
2) In computers, a widget is an element of a graphical user interface ( gui ) that displays information or provides a specific way for a user to interact with the operating system and application . Widgets include icons, pull-down menus, buttons, selection boxes, progress indicators, on-off checkmarks, scroll bars, windows, window edges (that let you resize the window), toggle buttons, forms, and many other devices for displaying information and for inviting, accepting, and responding to user actions.
In programming, a widget also means the small program that is written in order to describe what a particular widget looks like, how it behaves, and how it interacts in response to user actions. Most operating systems include a set of ready-to-tailor widgets that a programmer can incorporate in an application, specifying how it is to behave. New widgets can be created. The term was apparently applied first in UNIX -based operating systems and the X Window System . In object-oriented programming ( oop ), each type of widget is defined as a class (or a subclass under a broad generic widget class) and is always associated with a particular window. In the AIX Enhanced X-Window Toolkit, a widget is the fundamental data type .
Most if not all application development languages today, such as Java and Tool Command Language , come with a ready-made library of widgets that a programmer can incorporate and modify. Using Microsoft’s Visual Basic , a widget can be implemented as or part of an ActiveX control .
A dynamic link library (DLL) is a collection of small programs, any of which can be called when needed by a larger program that is running in the computer. The small program that lets the larger program communicate with a specific device such as a printer or scanner is often packaged as a DLL program (usually referred to as a DLL file). DLL files that support specific device operation are known as device drivers.
The advantage of DLL files is that, because they don’t get loaded into random access memory (RAM) together with the main program, space is saved in RAM. When and if a DLL file is needed, then it is loaded and run. For example, as long as a user of Microsoft Word is editing a document, the printer DLL file does not need to be loaded into RAM. If the user decides to print the document, then the Word application causes the printer DLL file to be loaded and run.
A DLL file is often given a “.dll” file name suffix. DLL files are dynamically linked with the program that uses them during program execution rather than being compiled with the main program. The set of such files (or the DLL) is somewhat comparable to the library routines provided with programming languages such as C and C++.
LAST UPDATED: 12 Jun 2007
A software technology developed by Microsoft. This is based on other technology Microsoft developed such as; COM (Component Object Model) and OLE (Object Linking and Embedding). Active X defines how applications share information. While Active X gives much more freedom as to how certain applications are viewed, it has inherent security risks.
Software Development Kit
A software development kit (SDK or “devkit”) is typically a set of development tools that allows a software engineer to create applications for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar platform.
It may be something as simple as an application programming interface in the form of some files to interface to a particular programming language or include sophisticated hardware to communicate with a certain embedded system. Common tools include debugging aids and other utilities often presented in an IDE. SDKs also frequently include sample code and supporting technical notes or other supporting documentation to help clarify points from the primary reference material.
A software engineer typically receives the SDK from the target system developer. Often the SDK can be downloaded directly via the Internet. Many SDKs are provided for free to encourage developers to use the system or language. Sometimes this is used as a marketing tool. For example, Foo Products might provide the Widget SDK for free to encourage people to use it. In turn, more people will be encouraged to buy more of their widgets since they can program them for free.
SDKs may have attached licenses that make them unsuitable for building software intended to be developed under an incompatible license. For example, a proprietary SDK will likely be incompatible with free software development, while a GPL licensed SDK will likely be incompatible with proprietary software development. LGPL SDKs are typically safe for proprietary development.
An SDK for an operating system add-on (for instance, QuickTime for Mac OS) may include the add-on software itself, to be used for development purposes, if not necessarily for redistribution. An interesting situation arises here between platforms where it is possible to develop applications that can at least start up on a system configuration without the add-on installed, and use a Gestalt-style run-time environment query to determine if the add-on is present, and ones where the application will simply fail to start. In other words, it is possible to build a single binary that will run on configurations with and without the add-on present, albeit operating with reduced functionality in the latter situation.
Providers of SDKs for specific systems or subsystems may sometimes substitute a more specific term instead of software. For instance, both Microsoft and Apple provide Driver Development Kits (DDK) for developing device drivers, and PalmSource brands its development kit as PalmOS Development Kit.