Software

Software refers to parts of the computer which do not have a material form, such as programs, data, protocols, etc. When software is stored in hardware that cannot easily be modified (such as BIOS ROM in an IBM PC compatible), it is sometimes called "firmware" to indicate that it falls into an uncertain area somewhere between hardware and software.

Computer software


Operating system

Unix/BSD

UNIX System V, AIX, HP-UX, Solaris (SunOS), IRIX, List of BSD operating systems


GNU/Linux

List of Linux distributions, Comparison of Linux distributions


Microsoft Windows

Windows 95, Windows 98, Windows NT, Windows XP, Windows Vista, Windows CE


DOS

86-DOS (QDOS), PC-DOS, MS-DOS, FreeDOS


Mac OS

Mac OS classic, Mac OS X


Embedded and real-time

List of embedded operating systems


Experimental

Amoeba, Oberon/Bluebottle, Plan 9 from Bell Labs


Library

Multimedia

DirectX, OpenGL, OpenAL


Programming library

C standard library, Standard template library


Data

Protocol

TCP/IP, Kermit, FTP, HTTP, SMTP


File format

HTML, XML, JPEG, MPEG, PNG


User interface

Graphical user interface (WIMP)

Microsoft Windows, GNOME, KDE, QNX Photon, CDE, GEM


Text user interface

Command line interface, shells


Other



Application

Office suite

Word processing, Desktop publishing, Presentation program, Database management system, Scheduling & Time management, Spreadsheet, Accounting software


Internet Access

Browser, E-mail client, Web server, Mail transfer agent, Instant messaging


Design and manufacturing

Computer-aided design, Computer-aided manufacturing, Plant management, Robotic manufacturing, Supply chain management


Graphics

Raster graphics editor, Vector graphics editor, 3D modeler, Animation editor, 3D computer graphics, Video editing, Image processing


Audio

Digital audio editor, Audio playback, Mixing, Audio synthesis, Computer music


Software Engineering

Compiler, Assembler, Interpreter, Debugger, Text Editor, Integrated development environment, Performance analysis, Revision control, Software configuration management


Educational

Edutainment, Educational game, Serious game, Flight simulator


Games

Strategy, Arcade, Puzzle, Simulation, First-person shooter, Platform, Massively multiplayer, Interactive fiction


Misc

Artificial intelligence, Antivirus software, Malware scanner, Installer/Package management systems, File manager


Programming languages

Programming languages provide various ways of specifying programs for computers to run. Unlike natural languages, programming languages are designed to permit no ambiguity and to be concise. They are purely written languages and are often difficult to read aloud. They are generally either translated into machine language by a compiler or an assembler before being run, or translated directly at run time by an interpreter. Sometimes programs are executed by a hybrid method of the two techniques. There are thousands of different programming languages—some intended to be general purpose, others useful only for highly specialized applications.

Programming Languages

Lists of programming languages

Timeline of programming languages, Categorical list of programming languages, Generational list of programming languages, Alphabetical list of programming languages, Non-English-based programming languages

Commonly used Assembly languages

ARM, MIPS, x86

Commonly used High level languages

BASIC, C, C++, C#, COBOL, Fortran, Java, Lisp, Pascal

Commonly used Scripting languages

Bourne script, JavaScript, Python, Ruby, PHP, Perl

Professions and organizations

As the use of computers has spread throughout society, there are an increasing number of careers involving computers. Following the theme of hardware, software and firmware, the brains of people who work in the industry are sometimes known irreverently as wetware or "meatware".

Computer-related professions

Hardware-related

Electrical engineering, Electronics engineering, Computer engineering, Telecommunications engineering, Optical engineering, Nanoscale engineering

Software-related

Human-computer interaction, Information technology, Software engineering, Scientific computing, Web design, Desktop publishing

The need for computers to work well together and to be able to exchange information has spawned the need for many standards organizations, clubs and societies of both a formal and informal nature.

Organizations

Standards groups

ANSI, IEC, IEEE, IETF, ISO, W3C

Professional Societies

ACM, ACM Special Interest Groups, IET, IFIP

Free/Open source software groups

Free Software Foundation, Mozilla Foundation, Apache Software Foundation

In the 1950s and early 1960s, prior to the widespread inter-networking that led to the Internet, most communication networks were limited by their nature to only allow communications between the stations on the network. Some networks had gateways or bridges between them, but these bridges were often limited or built specifically for a single use. One prevalent computer networking method was based on the central mainframe method, simply allowing its terminals to be connected via long leased lines. This method was used in the 1950s by Project RAND to support researchers such as Herbert Simon, in Pittsburgh, Pennsylvania, when collaborating across the continent with researchers in Santa Monica, California, on automated theorem proving and artificial intelligence.

0 comments:

Newer Post Older Post Home