Proqram təminatının tarixi

Proqram təminatı, prosessor tərəfindən kompüterin idarəsi üçün proqramlanan və kompüterin yaddaşında saxlanan təlimatlar yığımıdır. Proqram təminatı bəşər tarixində yeni bir inkişafdır və İnformasiya Əsri üçün əsasdır.

Ada Lavleysin 19-cu əsrdə Çarlz Bebbicnin Analitik Mühərriki üçün proqramları bu fənnin banisi hesab olunur. Bununla belə, riyaziyyatçı səyləri yalnız nəzəri olaraq qaldı, çünki Lavleys və Bebbic dövründəki texnologiya onun kompüterini qurmaq üçün kifayət etmədi. Alan Turinq 1935-ci ildə kompüter elmləri və proqram mühəndisliyinin iki akademik sahəsinə səbəb olan proqram təminatı nəzəriyyəsi ilə çıxış edən ilk şəxs kimi tanınır.

1940-cı illərin sonlarında ilkin saxlanan proqramlı rəqəmsal kompüterlər üçün proqram təminatının birinci nəslinin təlimatları birbaşa ikili kodda yazılmışdır, ümumiyyətlə əsas kompüterlər üçün yazılmışdır. Sonralar, ev kompüterinin inkişafı ilə yanaşı müasir proqramlaşdırma dillərinin inkişafı, montaj dilindən başlayaraq, funksional proqramlaşdırma və obyekt yönümlü proqramlaşdırma paradiqmaları vasitəsilə davam edən mövcud proqram təminatının əhatə dairəsini və genişliyini xeyli genişləndirəcəkdir.

## Kompüter elminin mənşəyi

Bir konsepsiya olaraq hesablama qədim dövrlərə gedib çıxır, abak, Antikitera mexanizmi , Astrolab, Mexanik Astronomik saatlar və Mexanik Kalkulyator. Antikitera mexanizmi olduqca mürəkkəb qədim mexaniki Astronomik cihaz üçün bir nümunədir.
Bununla belə, bu qurğular sırf aparat idi və heç bir proqram təminatı yox idi — onların hesablama gücləri birbaşa onların xüsusi forması və mühəndisliyi ilə bağlı idi.
Proqram təminatı ümumi təyinatlı prosessor — indi Turing maşını kimi təsvir edilən — həmçinin proqramlardan ibarət təkrar istifadə edilə bilən rutinlər dəstlərinin və riyazi funksiyaların fərdi olaraq saxlanıla, işə salına və dayandırıla biləcəyi və yalnız bu yaxınlarda görünə bilən kompüter yaddaşını tələb edir.
İlk məlum kompüter alqoritmi 19-cu əsrdə Ada Lavleys tərəfindən Analitik Mühərrik üçün yazılmışdır.  Bununla belə, bu yalnız nəzəri olaraq qaldı — bu iki riyaziyyatçının həyatı boyu mühəndislik səviyyəsinin aşağı olması  Analitik Mühərriki qurmaq üçün kifayət etmədiyini sübut etdi.
Proqram təminatının ilk müasir nəzəriyyəsi Alan Turinq tərəfindən 1935-ci ildə *Entscheidungsproblem (qərar problemi) tətbiqi ilə Hesablana bilən nömrələr* essesində təklif edilmişdir.
Bu, nəticədə həm proqram təminatını, həm də onun yaradılmasını öyrənən kompüter elmləri və proqram mühəndisliyinin əkiz akademik sahələrinin yaradılmasına gətirib çıxardı. Kompüter elmi daha çox nəzəri xarakter daşıyır (Türinqin essesi kompüter elminə nümunədir), proqram mühəndisliyi isə daha çox praktiki məsələlərə yönəlib.
Bununla belə, 1946-cı ilə qədər, indi başa düşdüyünüz kimi, proqram təminatı — saxlanılan proqramlı rəqəmsal kompüterlərin yaddaşında saxlanılan proqramlar hələ mövcud deyildi.  İlk elektron hesablama cihazları, onları "yenidən proqramlaşdırmaq" üçün əvəzində yenidən quruldu. İlk elektron kompüterlərdən biri olan ENIAC, əsasən əvvəllər insan kompüteri kimi işləyən qadınlar tərəfindən proqramlaşdırılmışdır. Mühəndislər proqramçılara ENIAC naqillərinin planlarını verər və onlardan maşını necə proqramlaşdıracaqlarını anlamalarını gözləyirdilər. Proqramçı kimi işləyən qadınlar nümayişlər üçün patch panelləri birləşdirərək ENIAC-ı ilk ictimaiyyətə təqdim etməyə hazırlaşdılar.   Kathleen Booth 1950-ci ildə Birkbeck Kollecində işlədiyi kompüterləri proqramlaşdırmağı asanlaşdırmaq üçün Assembly Language inkişaf etdirdi.

Qreys Mürrey Hopper Harvard Mark I -in ilk proqramçılarından biri kimi çalışmışdır. Daha sonra o, kompüter üçün 500 səhifəlik təlimat yaratdı. Hopper, Mark II-də nasazlığa səbəb olan güvə tapdıqda, tez-tez yanlış olaraq "bug" və "sözləşmə" terminlərini işlətdiyinə görə hesablanır; lakin o, güvəni tapanda bu termin əslində artıq istifadə olunurdu. Hopper ilk kompilyatoru inkişaf etdirdi və ideyasını Mark kompüterlərində işləməkdən 1950-ci illərdə UNIVAC üzərində işləməyə gətirdi. Hopper UNIVAC-ı proqramlaşdırmaq üçün FLOW-MATIC proqramlaşdırma dilini də işləyib hazırladı. UNIVAC-da işləyən Frances E. Holberton, proqramçılara klaviatura daxiletmələrindən istifadə etməyə imkan verən və 1951-ci ildə Sort-Merge Generator-u yaratmağa imkan verən aydınlaşdırma tələb olunur , C-10 kodu hazırladı. Adele Mildred Koss və Hopper həmçinin hesabat generatorunun prekursorunu yaratdı.

## Kompüter proqram təminatının ilk günləri (1948–1979)
Klod Şennon (1916–2001) "Riyazi Rabitə Nəzəriyyəsi" adlı əlyazmasında kompüteri proqramlaşdırmaq üçün binar məntiqin necə həyata keçirilə biləcəyini təsvir etdi. Sonradan ilk kompüter proqramçıları kompüterlərə müxtəlif tapşırıqları yerinə yetirmək üçün göstəriş vermək üçün ikili koddan istifadə etdilər. Buna baxmayaraq, proses çox çətin keçdi. Kompüter proqramçıları kompüterə hansı məlumatı saxlamalı olduğunu söyləmək üçün uzun ikili kod sətirlərini təqdim etməli idilər. Kod və məlumatlar müxtəlif yorucu mexanizmlərdən istifadə etməklə kompüterlərə yüklənməli idi, o cümlədən açarları vurmaq və ya kartların əvvəlcədən müəyyən edilmiş mövqelərində deşiklər açmaq və bu perfokartları kompüterə yükləmək. Bu cür üsullarla, əgər səhv olarsa, bütün proqramı əvvəldən yenidən yükləmək lazım gələ bilər.

Saxlanılan proqram kompüteri ilk dəfə proqram təminatını elektron yaddaşda saxlayaraq onu uğurla icra etdi, 21 iyun 1948-ci il səhər saat 11-də Mançester Universitetində, Manchester Baby kompüterində. Tom Kilburn tərəfindən yazılmış və 2^18 = 262,144 tam ədədinin ən yüksək əmsalı hesablanmışdır. Böyük sınaq bölənindən başlayaraq, təkrar çıxma ilə 262,144-ə bölünməni həyata keçirdi, sonra qalanın sıfır olub olmadığını yoxladı. Əgər yoxsa, o, sınaq bölücüsünü bir azaldıb prosesi təkrarladı. Google, "proqramın doğulması" kimi qeyd edərək, Mançester Körpəsinə bir xərac buraxdı.

FORTRAN 1950-ci illərdə IBM -də John Backusun rəhbərlik etdiyi komanda tərəfindən hazırlanmışdır. İlk kompilyator 1957-ci ildə buraxıldı. Dil elmi və texniki hesablamalar üçün o qədər populyar oldu ki, 1963-cü ilə qədər bütün əsas istehsalçılar öz kompüterləri üçün FORTRAN-ı tətbiq etdilər və ya elan etdilər.

COBOL ilk dəfə 1959-cu ildə Meri K. Hawesin bizneslər arasında bölüşdürüləcək kompüter dilinin necə yaradılmasını müzakirə etmək üçün iclas (buraya Qreys Hopper daxil olmaqla) çağırdığı zaman yaranıb. Hopperin COBOL ilə etdiyi yenilik proqramlaşdırma yazmaq üçün yeni simvolik bir üsul inkişaf etdirirdi. Onun proqramlaşdırması özünü sənədləşdirirdi. Betti Holberton 1960-cı ildə Hökumət Çap İdarəsinə təqdim edilən dili redaktə etməyə kömək etdi. FORMAC 1960-cı illərdə Jean E. Sammet tərəfindən hazırlanmışdır. Onun kitabı, *[[Proqramlaşdırma dili|Proqramlaşdırma Dilləri:]] Tarix və Əsaslar* (1969) təsirli mətnə ​​çevrildi.

### Apollon Missiyası

Apollon Missiyası, aya eniş modullarında kompüterləri proqramlaşdırmaq üçün proqram təminatından asılı idi. Kompüterlər "Basic" adlı bir dillə proqramlaşdırılmışdı. Proqram həmçinin bir sıra rutinlərdən və icraçıdan ibarət olan tərcüməçiyə malik idi və hansı proqramların nə vaxt işlədilməsini təyin edirdi. Hər ikisi Hal Laning tərəfindən hazırlanmışdır. Əvvəllər ABŞ SAGE hava hücumundan müdafiə sistemində işləyərkən proqram təminatının etibarlılığı ilə bağlı problemlərlə məşğul olan Marqaret Hamilton da Apollo proqram təminatı komandasının bir hissəsi idi. Hamilton Apollo kompüterləri üçün bortda uçuş proqram təminatına cavabdeh idi. Hamilton hiss edirdi ki, proqram təminatı əməliyyatları təkcə maşının bir hissəsi deyil, həm də proqram təminatını idarə edən insanlarla mürəkkəb şəkildə əlaqəlidir. Hamilton NASA-da işləyərkən "proqram mühəndisliyi" terminini də işlətdi.

Apollon missiyalarında kompüterlər üçün faktiki "proqram təminatı" maqnit nüvələrindən keçən naqillərdən ibarət idi.  Naqilin maqnit nüvəsindən keçdiyi yerdə "1" və naqilin nüvənin ətrafında getdiyi yer isə "0" idi.  Hər nüvə 64 bit məlumat saxlayırdı.  Hamilton və başqaları proqram təminatını perfokartlarda deliklər açaraq yaradacaqdılar, daha sonra bu proqramlar Honeywell meynfreymində işlənərək proqram təminatının simulyasiyası mümkün idi. Kod "bərk" olduqda, o, "Kiçik Qoca Xanımlar" kimi tanınan qadınların naqillər üzərində işlədiyi Raytheon -da maqnit nüvələrinə toxunmaq üçün göndərildi. Proqramın özü "sarsılmaz" idi və hətta Apollon 12-nin başına gələn ildırım zərbələrinə tab gətirə bilirdi. Kompüterlərin naqillərinin çəkilməsi bir neçə həftə çəkdi və bu müddət ərzində proqram təminatının işlənməsi dayandırıldı.

Proqramlaşdırmanı sınamaq üçün simulyatorlardan istifadə edərkən, Hamilton kodun istifadəsi zamanı insan səhvləri edildiyi zaman təhlükəli səhvlər yarada biləcəyi yolları kəşf etdi. NASA astronavtların məşq etdikləri üçün səhv etməyəcəklərinə inanırdı. Hamiltona sistemin çökməsinə səbəb olacaq səhvlərin qarşısını almaq üçün kodu proqramlaşdırmağa icazə verilmədi, ona görə də o, proqram sənədlərində kodu şərh etdi. Onun səhv yoxlama kodu əlavə etmək ideyaları "həddindən artıq" olaraq rədd edildi. Bununla belə, Hamiltonun proqnozlaşdırdığı şey tam olaraq Apollo 8 uçuşunda baş verdi, insan səhvi kompüterin bütün naviqasiya məlumatlarını silməsinə səbəb oldu.

### Proqram təminatının aparat təminatı ilə birləşdirilməsi və onun hüquqi problemləri
Daha sonra proqram təminatı Data General, Digital Equipment və IBM kimi orijinal avadanlıq istehsalçısı (OEM) tərəfindən aparatla *birləşdirilmiş* şəkildə bir çox müştərilərə satıldı. Müştəri o dövrdə bazarda ən kiçik kompüter olan minikompüter alanda kompüter əvvəlcədən quraşdırılmış proqram təminatı ilə gəlməyib, lakin orijinal avadanlıq istehsalçısı (OEM) tərəfindən işləyən mühəndislər tərəfindən quraşdırılmalı idi.

Bu birləşmə ABŞ-ın antiinhisar tənzimləyicilərinin diqqətini çəkdi və onlar 1969-cu ildə IBM-i düzgün olmayan "bağlama"ya görə məhkəməyə verdilər və bunun antiinhisar pozuntusu olduğunu iddia edərək, onun proqram təminatını əldə etmək istəyən müştərilərin bunun üçün onun avadanlıqlarını da satın almalı və ya icarəyə götürməli oldular. Bununla belə, ABŞ Ədliyyə Departamenti uzun illərdən sonra "əsassız" olduğu qənaətinə gələrək, işdən imtina etdi.

Data General də paketləşdirmə ilə bağlı hüquqi problemlərlə üzləşdi – baxmayaraq ki, bu halda bu, gələcək rəqibin mülki iddiası ilə bağlı idi. Data General Data General Nova-nı təqdim edəndə Digidyne adlı şirkət RDOS (Real-time Disk Operating System) əməliyyat sistemindən öz hardware klonunda istifadə etmək istədi. Data General onların proqram təminatını lisenziyalaşdırmaqdan imtina etdi və "birləşdirmə hüquqları" iddia etdi. ABŞ Ali Məhkəməsi 1985-ci ildə iş üzrə 9-cu dairə apellyasiya məhkəməsinin qərarını qüvvədə saxlamaqla *Digidyne v. Data General* adlı presedent yaratdı və Data General nəticədə əməliyyat sistemini lisenziyalaşdırmağa məcbur oldu, çünki lisenziyanın yalnız DG ilə məhdudlaşdırılması qərara alındı. Donanım qaçaq *bağlama tənzimləməsi* edildi. Dairə Məhkəməsi qeyd etsə də, "heç bir ağlabatan andlı iclasçı daha böyük rəqibləri olan bu böyük və dinamik bazarda "Data General" qanunsuz bağlanma tənzimləməsi vasitəsilə ticarəti məhdudlaşdırmaq üçün bazar gücünə malik olduğunu" tapa bilməzdi. Apellyasiya şikayəti əsasında əməliyyat sisteminin hardware üçün qeyri-qanuni olduğu qərara alınıb.

2008-ci ildə Psystar Korporasiyası əvvəlcədən quraşdırılmış OS X ilə icazəsiz Macintosh klonlarının yayılmasına görə Apple Inc. tərəfindən məhkəməyə verildi və qarşıdurma verildi. Qarşılıqlı iddiadakı arqumentlərdən biri — Data General davasına istinadən — Apple-ın əməliyyat sistemini Apple kompüterlərinə qeyri-qanuni bağlamaqla OS X-ə uyğun kompüterlər bazarında üstünlük təşkil etməsi idi. Dairə Məhkəməsinin hakimi Uilyam Alsup bu arqumenti rədd edərək dedi ki, Dairə Məhkəməsi 20 ildən çox əvvəl Data General işində qərar verdiyi kimi, müvafiq bazar sadəcə bir əməliyyat sistemi (Mac OS) deyil, Mac OS daxil olmaqla bütün PC əməliyyat sistemləridir. Mac OS bu geniş bazarda dominant mövqeyə malik deyil. Alsup-un qərarında həmçinin qeyd olunur ki, müəllif hüquqları ilə qorunan məhsulların bağlanmasının həmişə qeyri-qanuni olması ilə bağlı təəccüblü Data General presedenti o vaxtdan bəri Illinois Tool Works Inc. Müstəqil Mürəkkəb, Inc-ə qarşı işin hökmü ilə "dolaylı şəkildə ləğv edilib".

### Proqram paketi (1960-cı illərin sonundan günümüzə)
Müstəqil paketlənmiş proqram təminatı istehsal edən sənaye 1960-cı illərin sonlarında inkişaf etməyə başladı.

### Unix (1970-ci illərdən günümüzə)

Unix məşhur və çox təsirli olan erkən əməliyyat sistemi idi və bu gün də mövcuddur. Bu gün Unix-in ən populyar variantı macOS- dur (əvvəllər OS X və Mac OS X adlanırdı), Linux isə Unix ilə sıx bağlıdır.

### Mikrokompüterlərin yüksəlişi
1975-ci ilin yanvarında Micro Instrumentation and Telemetry Systems (MITS) Altair 8800 mikrokompüter dəstini poçt sifarişi ilə satmağa başladı. Microsoft ilk məhsulu Altair BASIC -ni həmin ilin sonunda buraxdı və hobbilər bu dəstlər üzərində işləmək üçün proqramlar hazırlamağa başladılar. Tiny BASIC, *Dr. Dobb's Journal-* da tipli proqram kimi nəşr edilmiş və əməkdaşlıqla hazırlanmışdır.

Məsələn, 1976-cı ildə Peter R. Jennings MOS Technology şirkətinin KIM-1 dəsti üçün *Microchess* proqramını yaratdı, lakin o, lent sürücüsü ilə gəlmədiyi üçün mənbə kodunu kiçik bir kitabçada poçt sifarişi müştərilərinə göndərirdi. 1978-ci ildə Ket və Den Spraklen kompüter jurnalında *Sarqon (şahmat)* proqramının mənbəyini dərc etdilər. Jennings daha sonra kağız lent satışına keçdi və nəhayət üzərindəki proqramla kompakt kasetlər.

Kompüter jurnalından mənbə kodunu daxil etmək əlverişsiz və yavaş bir proses idi və bir səhv yazılmış simvol proqramı işləməyəcək hala gətirə bilərdi, lakin insanlar hələ də bunu edirdilər.

1980-ci illərdə kommersiya proqram təminatının yayılması üçün patronların və kaset lentlərinin yayılması ilə belə, pulsuz proqramlar hələ də tez-tez çap olunurdu, çünki bu, kaset lentlərini hazırlamaqdan və əlavə etməkdən daha ucuz idi.

Bununla belə, nəticədə dörd amilin birləşməsi kompüter jurnallarında bütün proqramların tam mənbə kodu siyahılarının çap edilməsi təcrübəsini sona çatdırdı:

* proqramlar çox genişlənməyə başladı.
* floppy disklər proqram təminatının yayılması üçün istifadə olunmağa başladı və sonra qiymətləri aşağı düşdü.
* adi insanlar kompüterdən istifadə etməyə başladılar və proqramı idarə etmək üçün sadə bir yol istədilər.
* kompüter jurnallarında proqram təminatının pulsuz və ya sınaq versiyaları olan kasetlər və ya disketlər yer almağa başladı.

Çox tez kommersiya proqram təminatı pirat olunmağa başladı və kommersiya proqram istehsalçıları bundan çox narazı qaldılar. Microsoftun həmtəsisçisi Bill Qeyts 1976-cı ildə yazdığı məşhur "Həvəskarlara Açıq Məktub"la  proqram təminatı piratçılığına qarşı erkən əxlaqlandırıcı idi.

### 1980-ci illərdən günümüzə
Mikrokompüterdən əvvəl uğurlu proqram təminatı (software) hər biri 50.000–60.000 dollara 1000 ədədə qədər satılırdı. 1980-ci illərin ortalarında fərdi kompüter proqramı hər biri 50–700 dollara minlərlə nüsxə satdı. Microsoft, MicroPro və Lotus Development kimi şirkətlərin illik satışları on milyonlarla dollar idi. Onlar eyni şəkildə artıq uğurlu məhsulların lokallaşdırılmış versiyaları ilə Avropa bazarında üstünlük təşkil edirdilər.

Hesablama tarixində mühüm məqam 1980-ci illərdə IBM işçisi Philip Don Estridge tərəfindən nəşr olunan IBM Fərdi Kompüterinin spesifikasiyalarının nəşri oldu ki, bu da tez bir zamanda dünya miqyasında masaüstü kompüterlər və daha sonra noutbuk bazarlarında PC-nin dominantlığına səbəb oldu – bu üstünlük hələ də davam edir. bugünə. Microsoft, PC üçün ilk əməliyyat sistemini (MS-DOS) inkişaf etdirmək üçün IBM ilə uğurla danışıqlar apararaq, MS-DOS və onun xələfi əlavəsi vasitəsilə sonrakı onilliklər ərzində kompüterin uğurundan böyük mənfəət əldə etdi, Microsoft Windows. Danışıqlarda qalib gəlmək Microsoft tarixində mühüm məqam oldu.

### App store
Mobil qurğular (mobil telefonlar və planşetlər) üçün proqramlar son illərdə "tətbiqlər" adlandırılır. Apple iPhone və iPad proqramlarının satışını öz App Store vasitəsilə və beləliklə, hər iki baytar tətbiqetməsi vasitəsilə həyata keçirməyi və satılan hər ödənişli tətbiqin bir hissəsini əldə etməyi seçdi. Apple proqram mağazasından yan keçmək üçün istifadə edilə bilən proqramlara (məsələn, Java və ya Flash virtual maşınları kimi virtual maşınlara) icazə vermir.

Android platforması, əksinə, onun üçün çoxlu proqram mağazasına malikdir və istifadəçilər ümumiyyətlə hansının istifadə edəcəyini seçə bilərlər (baxmayaraq ki, Google Play uyğun və ya köklü cihaz tələb edir).

Bu hərəkət GNOME Proqramı (Linux üçün), Mac App Store (macOS üçün) və Windows Mağazası (Windows üçün) olan masaüstü əməliyyat sistemləri üçün təkrarlandı. Bu platformaların hamısı, həmişə olduğu kimi, qeyri-eksklüziv olaraq qalır: onlar proqramların tətbiq mağazasından kənarda və həqiqətən də digər proqram mağazalarından quraşdırılmasına imkan verir.

Xüsusilə iPhone üçün, həm də Android üçün tətbiqlərin populyarlığının kəskin artması bir növ "qızıl hərisliyi" -nə səbəb oldu, bəzi ümidli proqramçılar onu zənginləşdirmək ümidi ilə proqramlar yaratmağa xeyli vaxt ayırdılar. Həqiqi qızıl hərisliyində olduğu kimi, bu ümidli sahibkarların heç də hamısı uğur qazanmadı.

## Kompüter proqram təminatı və proqramlaşdırma dili qrafiki
Aşağıdakı cədvəllərdə kompüter proqram təminatının bir çox müxtəlif aspektlərinin ildən-ilə inkişafı daxildir:

# Proqramlaşdırma dilləri
# Əməliyyat sistemləri
# Kompüter şəbəkələri
# Kompüter qrafikaları
# Elektron cədvəllər
# Mətn prosessorları
# CAD/CAM

### 1971–1974

### 1975–1978

### 1979–1982

### 1983–1986

### 1987–1990

### 1991–1994

### 1995–1998

### 1999–2002

### 2003–2006

### 2007–2010

### 2011–2014

## İstinadlar

## Mənbə
* 
* 
* 
* 
* 
* 

## Xarici keçidlər
*