Skip to main content

A Brief History Of Software | VCMIT


History Of Software


The Early Days of Software

Computer scientist Tom Kilburn is responsible for writing the world’s very first piece of software, which was run at 11 a.m. on June 21, 1948, at the University of Manchester in England. Kilburn and his colleague Freddie Williams had built one of the earliest computers, the Manchester Small-Scale Experimental Machine (also known as the “Baby”). The SSEM was programmed to perform mathematical calculations using machine code instructions. This first piece of software took “only” 52 minutes to correctly compute the greatest divisor of 2 to the power of 18 (262,144).

For decades after this groundbreaking event, computers were programmed with punch cards in which holes denoted specific machine code instructions. Fortran, one of the very first higher-level programming languages, was originally published in 1957. The next year, statistician John Tukey coined the word “software” in an article about computer programming. Other pioneering programming languages like Cobol, BASIC, Pascal and C arrived over the next two decades.

The Personal Computing Era

In the 1970s and 1980s, software hit the big time with the arrival of personal computers. Apple released the Apple II, its revolutionary product, to the public in April 1977. VisiCalc, the first spreadsheet software for personal computing, was wildly popular and known as the Apple II’s killer app. The software was written in specialized assembly language and appeared in 1979.

Other companies like IBM soon entered the market with computers such as the IBM PC, which first launched in 1981. The next year, Time magazine selected the personal computer as its Man of the Year. Again, software for productivity and business dominated these early stages of personal computing. Many significant software applications, including AutoCAD, Microsoft Word and Microsoft Excel, were released in the mid-1980s.
Open-source software, another major innovation in the history of software development, first entered the mainstream in the 1990s, driven mostly by the use of the internet. The Linux kernel, which became the basis for the open-source Linux operating system, was released in 1991. Interest in open-source software spiked in the late 1990s, after the 1998 publication of the source code for the Netscape Navigator browser, mainly written in C and C++. Also noteworthy is the release of Java by Sun Microsystems in 1995.

The Mobile Device

The worlds very first mobile phone call was made on April 3, 1973. In 1993 IBM released the first publicly available “smartphone” and in 1996 Palm OS hit the market, bringing PDA’s to the masses. In 1999, RIM released the very first Blackberry 850 device and quickly became the worlds fastest growing company. Then, in 2007, Apple changed computing with the release of the iPhone. This is when mobile computing really found it’s place and mobile applications began to explode. Mobile apps are now a major part of development using languages like Swift and Java.

Software Development Today

Today, software has become ubiquitous, even in places that you might not expect it, from crock pots to nuclear submarines. Some programming languages, like C and Cobol, have survived the test of time and are still in use. Other languages, such as Java and Python, are somewhat younger and have been used in countless software development projects. Still others, such as Apple’s Swift programming language for iOS or Go Open source, are relatively new and exciting.


Comments

Popular posts from this blog

Software Engineering - Incremental Model | VCMIT

Incremental Model Incremental Model is a process of software development where requirements divided into multiple standalone modules of the software development cycle. In this model, each module goes through the requirements, design, implementation and testing phases. Every subsequent release of the module adds function to the previous release. The process continues until the complete system achieved. The various phases of incremental model are as follows: 1. Requirement analysis: In the first phase of the incremental model, the product analysis expertise identifies the requirements. And the system functional requirements are understood by the requirement analysis team. To develop the software under the incremental model, this phase performs a crucial role. 2. Design & Development: In this phase of the Incremental model of SDLC, the design of the system functionality and the development method are finished with success. When software develops new practicality, the incremental mode

Create House Like Structure Perform Operations Program In C | VCMIT

Program to create a house like figure and perform the following operations.  Scaling about the origin followed by translation.  Scaling with reference to an arbitrary point. Reflect about the line y = mx + c. INPUT #include <stdio.h> #include <graphics.h> #include <stdlib.h> #include <math.h> #include <conio.h> void reset (int h[][2]) { int val[9][2] = { { 50, 50 },{ 75, 50 },{ 75, 75 },{ 100, 75 }, { 100, 50 },{ 125, 50 },{ 125, 100 },{ 87, 125 },{ 50, 100 } }; int i; for (i=0; i<9; i++) { h[i][0] = val[i][0]-50; h[i][1] = val[i][1]-50; } } void draw (int h[][2]) { int i; setlinestyle (DOTTED_LINE, 0, 1); line (320, 0, 320, 480); line (0, 240, 640, 240); setlinestyle (SOLID_LINE, 0, 1); for (i=0; i<8; i++) line (320+h[i][0], 240-h[i][1], 320+h[i+1][0], 240-h[i+1][1]); line (320+h[0][0], 240-h[0][1], 320+h[8][0], 240-h[8][1]); } void rotate (int h[][2], float angle) { int i; for (i=0; i<9; i++) { int xnew, ynew; xnew = h[i][0] * cos (angle) - h[i]

Software Engineering - Waterfall Model | VCMIT

Waterfall model Winston Royce introduced the Waterfall Model in 1970.This model has five phases: Requirements analysis and specification, design, implementation, and unit testing, integration and system testing, and operation and maintenance. The steps always follow in this order and do not overlap. The developer must complete every phase before the next phase begins. This model is named "Waterfall Model", because its diagrammatic representation resembles a cascade of waterfalls. 1. Requirements analysis and specification phase: The aim of this phase is to understand the exact requirements of the customer and to document them properly. Both the customer and the software developer work together so as to document all the functions, performance, and interfacing requirement of the software. It describes the "what" of the system to be produced and not "how."In this phase, a large document called Software Requirement Specification (SRS) document is created whic
// Assuming you have fetched the search query and blog posts // Function to calculate the similarity score between search query and post function calculateSimilarity(query, post) { // You can use a similarity algorithm here, like TF-IDF or cosine similarity // Return a score that represents how relevant the post is to the query } // Function to suggest relevant posts based on search query function suggestPosts(searchQuery, blogPosts) { const suggestedPosts = []; for (const post of blogPosts) { const similarityScore = calculateSimilarity(searchQuery, post); if (similarityScore > 0) { suggestedPosts.push({ post, similarityScore }); } } // Sort the suggested posts based on similarity score suggestedPosts.sort((a, b) => b.similarityScore - a.similarityScore); // Return the sorted list of suggested posts return suggestedPosts.map(item => item.post); } // Example usage const searchQuery = "your search query"; const allBlogPosts = [/* array of your blog posts */]; const suggestedPosts = suggestPosts(searchQuery, allBlogPosts); // Now you can display suggestedPosts to the user