Какви са свойствата на езика C#?
C# (произнася се „си шарп“) е мултипарадигмен програмен език с общо предназначение. Той е строго типизиран, императивен (но и декларативен). Той е подходящ за обектно-ориентирано програмиране (ООП), но също така и за функционално. Освен това той е и компонентно ориентиран. Както виждате той съчетава в себе си множество парадигми, някои от които са противоположни една на друга концепции. Нека да разгледаме какво означава всяка една от тях.
Какво е „парадигма“?
Тъй като различните програмни езици са създадени за решаване на проблеми от различен тип, в тях са вложени различни разбирания за структурата на кода, за начина на функциониране на програмата – всичко това довежда до съществуването на множество различни по тип езици. „Програмна парадигма“ наричаме начина да класифицираме програмните езици според техните свойства. Един програмен език (както видяхте по-горе) може да съчетава в себе си множество различни парадигми т.е. множество различни свойства. Съществуват над 25 основни вида парадигми, които имат над 40 подвида.
Какво е „общо предназначение“?
”Програмен език с общо предназначение” наричаме програмен език, който е проектиран да се използва за създаване на софтуер, за най-различни платформи т.е. езикът е подходящ както за създаване на мобилни приложения, така и на десктоп такива, сървърен код, приложения, които могат да работят в по-ограничена хардуерна среда или кросплатформени такива.
Какво означава „строго типизиран“?
C# е строго типизиран език. „Типизиране” е свойство, касаещо изписването на кода. Дели се на два типа: „строго“(”strong”) и „слабо“(“weak“ или „loose“). Строгото типизиране означава, че даденият език има по-строги правила спрямо изписването на отделните компоненти. Например променливите трябва да се дефинират адекватно, а не произволно; типа на стойностите които им задаваме трябва да съответстват на типа на променливата, който сме ѝ посочили и т.н. Освен това веднъж деклариран техният тип не може да се променя. При слабо типизираните езици вие не задавате какъв е типа на променливата, тя може да приема различни по вид стойности, но резултатите от което са по-непредвидими.
Какво е „ Императивно програмиране“?
Понятието „императивен“ идва от латинската дума „imperare“. Тя означава „нареждам“ или „заповядвам“ – думи, които правилно описват свойствата, характерни за този тип програмиране. При императивното програмиране програмата, която създавате се състои от поредица от команди. Те определят какво да изпълни вашата програма и в каква последователност да се изпълнят командите. Винаги трябва да внимавате в каква последователност изписвате тези команди, защото тя ще се запази при изпълнението на програмата, която сте написали.
Концепцията за императивното програмиране е противоположна на концепцията за декларативно програмиране. Но C# включва и нея.
Какво е „Декларативно програмиране“?
Въпреки, че C# най-често се характеризира като императивен и обектно-ориентиран, в действителност чрез него може да се прилага пълноценно декларативно програмиране. Какво представлява тази парадигма? В компютърната наука декларативното програмиране е такъв начин на изграждане на структурата и елементите на компютърните програми, при който логиката се изразява най-вече в различни по вид изчисления, без да се акцентира или описват отделните команди т.е. без да се набляга на структурата на изпълнение, както е при императивното програмиране.
Програмните езици, които са изградени върху тази парадигма се опитват да минимизират или напълно да елиминират страничните ефекти, които могат да произтекат от такъв начин на писане на програмата, задавайки какво трябва да постигне програмата като краен резултат, съобразно проблема който решава тя.
Какво е „Обектно-ориентирано програмиране“?
Обектно-ориентираното програмиране (за по-кратко „ООП“) е императивна парадигма т.е. по същество тя спазва изискването кодът да описва как и в каква последователност да се изпълняват инструкциите на програмата. Това което внася тази парадигма е нов начин на обособяване на кода в структури, наречени „обекти“. Тези обекти могат да взаимодействат помежду си, което спестява най-вече писане на код и създаване на по-гъвкави програми.
При програмните езици, чрез които могат да се прилагат ООП принципите (сред които е и C#) най-разпространени са тези, които съчетават тази парадигма с концепцията за класове. Тази концепция превръща създадените обекти в инстанции на класове. От тези класове те черпят своите свойства т.е. чрез един-единствен клас могат да се зададат свойства на неизброимо количество обекти, да се определи техния тип и т.н.
Какво е „Функционално програмиране“?
Функционалното програмиране е декларативна парадигма, която акцентира върху изчисленията, математическите функции, а не чрез команди, които да променят състоянието на програмата. Кодът при функционалното програмиране е идемпотентен: стойността, която връща функцията зависи само от аргументите ѝ (параметрите ѝ), така че извикването на функция със същата стойност за даден аргумент винаги ще води до същия резултат. Това е в контраст с императивното програмиране, където състоянието на глобалната програма може да повлияе на крайния резултат от дадена функция.
Какво още трябва да знаем за качествата на C#?
Програмният език C# съвместява в себе си и още няколко парадигми: той е компонентно-ориентиран, event-driven, task-driven, generic, рефлективен и конкурентен. От тях ще се спра на последната, като внасям уточнение, че не става дума за пазарна конкурентност, а за начин на изпълнение на две или повече изчисленията от страна на компютъра. Те могат да бъдат два вида: едновременни (конкурентни) или последователни.
Друго, което е важно да знаете е, че C# е програмен език от високо ниво. Това означава, че вие няма да се занимавате толкова с настройване на вашата програма за да може тя да се изпълни на хардуера, за която я създавате, колкото да се концентрирате върху изграждането на самата програмна логика.
Дай старт на своята IT кариера, като се запишеш за курса Programming Basics with C#. По време на курса ще придобиеш основни умения за писане на код, използване на променливи данни, работа с конзола, използва не условни конструкции и цикли. За повече информация и записвания - кликни ТУК.