Unde a fost programat Object Oriented Programming?

Unde a fost programat Object Oriented Programming? / Cultura web

Obiect orientat nu este doar un buzzword aleator pe care îl auziți în cercurile de programare. Există un motiv în spatele numelui - dar ce? Alăturați-vă cum explorez câteva din fundamentele conceptelor de programare și explicați de ce programarea orientată obiect conduce tehnologia în spatele oricăror programe moderne și o contrastează cu programarea bazată pe proceduri și logică.

Istoria programării procedurale

Atunci când computerele au fost inventate pentru prima dată, au trebuit să fie programate în mod explicit cu instrucțiuni simple - și “software-ul” era doar o colecție a acestor comenzi extrem de simple, strânse împreună care urmau să se desfășoare in secvență.

Inițial, aceste coduri de mașină necesare trebuie scrise - mutați-le “pic” din această memorie până la această locație și efectuați o logică “și” operațiunea cu acest bit, etc - dar în curând acestea au fost extrase la un nivel mai înalt folosind BASIC.

Bănuiesc că majoritatea dintre voi ați întâlnit codul BASIC (Codul de instrucțiuni simbolice pentru începători) în școală. Este un exemplu perfect al unui limbaj de programare procedural. Chiar și prima mea incursiune de programare folosea BASIC pe un Amstrad CPC-64. Fiecare linie începe cu un număr de linie, urmată de o simplă instrucțiune în limbajul citit de om.

Deoarece limbile de procedură urmează comenzile una după alta, este în general ușor pentru oameni să urmărească împreună cu ceea ce se întâmplă în program. Cu toate acestea, este dificil de a face ceva dincolo de un simplu exercițiu de învățare - ceea ce ne aduce la crearea programării orientate pe obiecte.

Obiect orientat?

Prin programarea orientată pe obiecte, ideea este aceea de a grupa împreună variabilele și funcționalitățile legate într-un singur obiect, ceea ce reprezintă o structură complexă de date. Acest obiect poate fi reutilizat de mai multe ori, sau extins pentru a fi ceva și mai complex.

De exemplu, un joc poate avea un obiect de jucător. Fiecare obiect de jucator din joc reprezinta un singur jucator unic in viata reala in jocul nostru imaginar multiplayer online. Fiecare obiect de jucător are o poreclă, o locație curentă, un inventar și o rată de mișcare. Chiar dacă fiecare jucător este unic, dorim să împărtășim aceleași funcționalități de bază. Fiecare jucător poate avea un mișcare funcție, care determină jucătorul să se deplaseze în față cu numărul X de pătrate. Fiecare jucător poate avea o rată de mișcare diferită, dar când îi spunem jucătorului să se miște într-o singură comandă, va ști cum să reacționeze în conformitate cu propria sa mecanică de internet.

De ce este util acest lucru? Luând un exemplu mai realist - deoarece interfețele grafice moderne de utilizator ar fi imposibile fără obiecte - toate sistemele de operare oferă un obiect Window. Prin urmare, este ușor să aveți un nou “fereastră” complet cu butoane de aproape și full-screen, și capacitatea de a fi mutat în jurul - fără a fi nevoie să vă programați-vă singur. Tot ce trebuie să faceți este să spuneți creați o fereastră.

De fapt, software-ul modern constă în mii și mii de obiecte - nu doar ferestrele, ci și butoanele și câmpurile de formular, precum și cutiile de alertă (care sunt ele însele un obiect special de fereastră) - și numai așa sunt aranjate și logica de interacțiune între ele, care face ca acest software să fie diferit de altele. Aceasta înseamnă că programatorii și designerii de software sunt liberi să se concentreze asupra realizării mecanismelor de bază ale programului lor, fără a trebui să reînvie roata de fiecare dată.

Un alt avantaj al designului orientat pe obiecte este acela că funcționalitatea este separată și invizibilă una de cealaltă. Deci, atunci când jucătorul apasă tasta înainte în jocul nostru, acesta apeluri mutați funcția în obiect jucător. Dacă facem o mică schimbare a modului în care această mișcare este efectuată cu exactitate în obiectul jucătorului - cum ar fi saltul în loc de mers pe jos - atunci nu este nevoie să ajustăm ascultătorul tastaturii. Încă mai sună “mișcare” indiferent de ceea ce se întâmplă în interiorul obiectului jucătorului - pentru a putea schimba funcționalitatea fără a sparge orice altceva.

Același lucru este valabil și în sistemele de operare - dacă utilizatorul decide dintr-o dată să-și schimbe culoarea ferestrei în roșu, atunci nu este necesar să detectați acest lucru și să faceți fereastra roșie - totul este integrat în obiectul ferestrei.

Moştenire

După ce avem obiecte, le putem extinde și le moștenim pentru a produce obiecte mai utile, cu comportamente diferite sau funcționalități suplimentare. Tu poate sa re-inventarea roții - dacă doriți. În exemplul nostru de jucători, poate că vrem să creăm un “supraom” obiect. Superman este încă un jucător, la fel ca oricine altcineva - vrea și o poreclă și vrea să fie listat pe aceleași table de lideri - dar în loc de acțiunea standard de mișcare care merge în spatele obiectivului jucător X, vrem să-l zburați în schimb - mutați 10 pătrate la un moment dat deasupra oricărui obiect în cale. Prin extinderea obiectului jucătorului de bază putem “moşteni” toate aceste funcții utile fără a fi nevoie să le rescrieți totul - dar putem încă “trece peste” funcția de mișcare cu mișcarea specială de zbor superman!

Programarea orientată pe obiecte este o revelație absolută dacă ați fi experimentat vreodată programare procedurală și eu personal cred că este o rușine că un simplu tip de limbaj OOP nu este predat în liceul.

Un ultim lucru: Limbi de programare bazate pe logică

Acestea sunt de un interes deosebit pentru mine, deoarece ele sunt, în general, cele mai utile pentru orice legătură cu Inteligența Artificială. Limbile de programare bazate pe logică, cum ar fi Prolog, nu folosesc comenzi și instrucțiuni în sensul tradițional. În schimb, ei vor rezolva o problemă în baza unui set de reguli și condiții.

Gândiți-vă la o petrecere pe care o găzduiți pentru familia dvs. Mătușa ta nu poate să stea lângă unchiul tău, pentru că vor argumenta; nu vrei ca doi copii să stea împreună, pentru că vor fi niște rascali; cu siguranță nu vrei să stai între doi copii. Asta e chiar acolo - este programul tău Prolog scris. Acum, dați-i o listă de copii și adulți care vin la petrecere și va afișa o listă cu posibile sugestii de locuri!

Sper că v-ați bucurat de această introducere la nivel de începător la conceptele de programare. Îmi pare rău că nu am putut să intru în detaliu și, desigur, există un milion de lucruri pe care nu le-am atins. Dacă doriți să aflați mai multe, anunțați-ne în comentarii. Poate că am putea face o serie de tutoriale de programare orientate spre obiect pentru diferite limbi, dacă există suficient interes? Asigurați-vă că verificați și programele noastre de arhivare legate de programare, oferind diferite instrumente și site-uri de programare.

Credit de imagine: ShutterStock

Explorați mai multe despre: Programare.