Notiuni generale de programare

Prezentare tipuri de aplicatii, Prezentarea arhitecturii client-server, Aplicatii Desktop, Aplicatii mobile, Servere

Un programator, inainte de a creea sau modifica un produs software, este recomandat sa inteleaga anumite notiuni de baza cum ar fi: 
notiunea de server, notiunea de clientaplicatie, software 'stand alone', compilare, limbaj de scriptlimbaj compilat .. etc. 

Aceste notiuni apar repetitiv in procesul de invatare a limbajelor de programare si constituie baza de cunostinte necesare oricarui programator.

Vom incepe aceasta prezentare prin detalierea notiunii de "produs software". 
Un produs software expune o anumita functionalitate (sau mai multe) catre utilizatori prin executia codului sursa. Enumeram cateva produse software extrem de cunoscute: 
Facebook, Microsoft Word, Antivirusul BitDefender, Wordpress si lista ar putea continua la nesfarsit.

Toate produsele mentionate au la baza un cod sursa care le asigura executia. 
Limbajul de programare utilizat in scrierea codului sursa poate fi unul compilat [ c++, java, fortran ] sau unul interpretat [ php, perl, ruby, python ].

Limbajul ales pentru implementarea / scrierea unui produs software se face de catre programatori in functie de cerintele sofware-ului, functionalitatile pe care urmeaza sa le expuna,
sistemul de operare unde va rula .. etc.

Aplicatii "client-server"
Aceste produse software [numite uneori si servicii software] ofera functionalitati utilizatorilor prin componenta client. 
Facebook, de exemplu, este un produs software creat pe aceasta arhitectura. 
Mai exact componenta server va servi si va oferi functionalitati programelor client [ browser, aplicatia de mobil facebook, facebook messenger ...], 
utilizatorul interactionand doar prin intermediul aplicatiei client.
Twitter are o arhitectura similara. Componenta server va servi cererile aplicatiei client [ browser, aplicatie mobila twitter ].

Aplicatii "stand-alone"
O aplicatie stand alone va fi instalata pe un sistem de operare [ Windows, MacOS, Ubuntu ] si va oferi anumite functionalitati fara a comunica cu un server aflat la distanta.
Un exemplu de aplicatie ""stand alone"" este editorul Notepad in care putem edita fisiere text. 
Alte aplicatii din aceeasi categorie:  Antivirusul BitDefender, Aplicatiile de mentenanta a PC'ului: RegGenie, RegClener

Compilare
Compilarea reprezinta faza de validare si transformare a codului sursa [format text] in executabil [format binar]. 
Codul sursa, indiferent de limbajul in care este scris, pentru a putea fi executat de catre sistemul de operare, trebuie sa fie in format binar. 
Aceasta transformare este realizata de un compilator si poarta numele de compilare. 

Limbaje de programare
Un limbaj de programare ofera o lista de intructiuni si expresii utilizate in codul sursa pentru crearea de functionalitati software. 
In functie de modul de executie a codului sursa, limbajele de programare se impart in 3 categorii:
1. limbaje compilate [ c, c++ ]. In limbajele compilate cosul sursa este transformat in format binar de catre compilator si ulterior executat de catre sistemul de operare
2. limbaje interpretate [ php, perl, python, ruby ]. Aceste limbaje nu necesita compilare iar cosul sursa este executat in sistemul de operare de catre un interpretor. 

Exceptia face limbajul java, care este partial compilat, partial implementat. Acest caz special va fi detaliat intr-o lectie separata.

Mai mult ..