Proqramlaşdırma dilləri haqqında
Amma aydındır ki, bu cür proqramlarda vaxt faktorunu nəzərə almaq çox nisbidir. Əslində bu o qədər də narahatçılığa əsas yaratmır. Məsələn, bank sistemində hər hansı bir tranzanskiyanın 1 millisaniyə gec və ya tez yerinə yetirilməsinin bir o qədər də əhəmiyyəti olmur. Lakin, raketlərin idarə olunmasında, atom stansiyalarının idarə olunmasında, tibbi avadanlıqlar üçün yazılmış proqram təminatında 1 millisaniyə gecikmə və ya tələsmə insan həyatına bərabər ola bilər. Onun üçün də bu cür sistemləri heç vaxt Java və ya C# kimi texnologiyaların köməyi ilə yaratmaq olmaz. Beləliklə biz artıq ən aktual proqramlaşdırma dillərinin təyinatları barədə ilkin məlumatları bildik. Proqram məhsulu yaradarkən həmin məhsulun tələbatlarını nəzərə almaqla bu texnologiyalardan daha səmərəlisini seçmək lazımdır.
Proqramlaşdırma dilləri c
Proqram sözü söz qaynağı olaraq müəyyən şərtlərə və nizama görə edilməsi lazım olan əməliyyatların bütünü mənasına gəlməkdədir.
Proqramlaşdırma da proqram ortaya çıxarma işidir.
Müəyyən şərtlərə və nizama görə müxtəlif əməliyyatlar reallaşdırmaqda həyatı asanlaşdırmaq üçün lazımlıdır. Müxtəlif problemlərin həll olumasında proqramlar zəruridir.
Yazılan proqramlar həyatımızın bir çox hissəsində bizə lazım olmaqda, işlərimizi asanlaşdırmaqdadır. Elə insan yoxdur ki, həyatı boyunca hansısa proqramla bilərək vəya bilməyərək tamasda olmasın, əgər bu adam meşədə mağarada yaşamırsa.
Nümunə olaraq 25!(25*24*23*22*. 1) əməliyyatının nəticəsi normal bir insan tərəfindən bir anda deyilə bilməzkən yazdığımız sadə bir proqramla bu əməliyyat kompüterə çox sürətli və səhvsiz olaraq etdirilə bilər.
Proqramlaşdırmaya başlayacaq adamın əvvəlcə problemi, şərtləri, həll yollarını, üsulları ən yaxşı şəkildə sinifləyə bilmə qabiliyyətinin olması gözlənilər. Böyük proyektlərdə analiz dediyimiz bu ilk qisim və daha sonrasındakı kodlaşdırma(Proqramlaşdırma deyə daha çox bu qisim bilinir.) və test fərqli kəslər və ya qruplar tərəfindən reallaşdırılır.
Kompüter proqramlarının yazılmasında dəyişik proqramlaşdırma üsulları istifadə edilir. Yuxarıdakı faktoryal nümunəsi kimi sadə problemlərin həllində Struktur Proqramlaşdırma, gerçək həyat problemlərində(gerçək həyatdakı kimi obyektlər istifadə etmək məntiqli olacağından) Obyekt Yönümlü Proqramlaşdırma, həlli qeyri-mümkün kimi görünən; həllə gedən yolda da yeni həllər çıxaracaq yeni proqramların meydana gətirilməsi və çalıtırılması lazım olan vəziyyətlərdə də Süni İntellekt proqramlaşdırma istifadə edilər.
Bəhs etdiyimiz hər üsul üçün ayrı proqramlaşdırma dilləri mövcuddur. Bir proqramlaşdırma diliylə hər mərhələdə proqram yazma deyə bir şey yoxdur.
Nümunə olaraq Struktur Proqramlaşdırma edilə biləcək bir dil C (ki çox əhəmiyyətlidir), Obyekt Yönümlü Proqramlaşdırma edə biləcəyimiz dillər(java, c++), son olaraq Süni Zəka proqramları yazıla biləcək prolog yüzlərlə, hətta minlərlə proqramlaşdırma dillərindən yalnız bir neçəsidir.
Bu dillər vasitəsi ilə ortaya çıxacaq məhsullara kompüterimizə yüklədiyimiz müxtəlif proqramlar(Office, Photoshop, Oyunlar və s.), mobil telefonlara yüklənən programlar, sonra paltaryuyan maşınları, bəzi nəqliyyat vasitələrini(avtomobil, qatar təyyarə kimi), və s. digər qurğuların avtomatik idarə edilməsi üçün yazılmış proqramları göstərmək olar.
c dilinin tarixi
Unix əməliyyat sistemi ilə C proqramlaşdırma dili birbirləri ilə əlaqləlidir. Hər ikisinin tarixi 70-ci illərdən başlayır. AT&T Bell Laboratoriyasında işləyən Ken Thompson oyun proqramı yazmaq istəyir. O,bu proqramı PDP-7 maşınında yazmaq istəyirdi. Lakin onun əməliyyatlar sistemi xoşuna gəlmədi. O, MULtics sisteminin sadələşdirilmiş və dəyişdirilmiş versiyasını yazmağa qərar verdi. Daha sonra isə Dennis Ritchie və Brain Kernighan da ona qoşuldu.Unix və C-nin tarixində bu 3 nəfər böyük rol oynadı.Əvvəlcə Thompson,BCPL dilindən istifadə edərəl B dilini yaratdı.Bundan sonra isə Ritchie Unixi daha asan halda yazmaq üçün C dilini yaratdı.1973-cü ildə C-dən istifadə edərək Unixi yenidən yazdılar. Və bu işlərinə görə 1983-cü ildə ACM-in Turing mükafatını aldılar. O vaxtdan C dili çox dəyişməyib.1988-ci ildə isə ANSİ C dilinin standartlarını müəyyən etdi.
Detallı məlumat
- Bölmə Proqramlaşdırma
Proqramlaşdırma dilləri haqqında
proqramlasdirma-dilleri-
Program – hər hansı məsələni həll etmək üçün komputer dilində yazılmış kodlardır. Yəni biz məsələni həll etmək üçün komputerdə proqram yazırıq.
Proqramlaşdırma dili – proqramı yazmaq üçün isə bizə proqramlaşdırma dili lazımdır. Hal-hazırda çoxlu proqramlaşdırma dilləri var. Məsələn: C, C++, Java, Smaltalk, Pascal, Visual Basic, Visual FoxPro və s.
Proqramlaşdırma dillərin müxtəlif səviyyələri var. Əsasən 5 qrupa ayırırlar:
Çox yüksək səviyyəli dillər və ya vizual dillər: Access, FoxPro, Paradox, XBase, Visual Basic.
Yüksək səviyyəli dillər (Bunlara bəzən alqoritmik dillərdə deyilir): Pascal, Basic, Fortran.
Orta səviyyəli proqramlaşdırma dilləri: C, C++
Aşağı səviyyəli proqramlaşdırma dilləri: Assembly language
Maşın dili: Ən aşağı səviyyəli dil olub 0 və 1 lərdən ibarətdir.
Bundan başqa proqramlaşdırma dillərini ayrı 2 qrupa bölmək olar:
Prosedur proqramlaşdırma dilləri (Pascal,Basic), Obyekt yönümlü proqramlaşdırma dilləri (C++, C#, Java, Smaltalk ). Hər hansı proqramlaşdırma dilini istifadə etmək üçün isə bizə ilk növbədə kompilyator lazımdır. Kompilyator olduqdan sonra biz öz proqramımızı mətn redaktorunda (məsələn: Notepad) yaza bilərik. Lakin çox biz İDE, yəni proqramlaşdırmanın inteqrallaşmış mühitindən istifadə edirik. Sadə dillə desək, bizə bir mühit verilir, orda komponentlər olur və bunlardan istifadə edərək biz öz proqramımızı yazırıq. Və ən əsası proqramlaşdırmanı öyrənməyin yolu proqram yazmaqdır (təkcə oxumaqla proqramist olmaq olmaz). İngiliscə daha yaxşı çıxır. Learning programming is programming.
Müasir proqramlaşdırma dilləri – hansı daha yaxşıdır? Müasir zamanda bir çox proqramlaşdırma dilləri və mühitlər mövcuddur. Bu da öz növbəsində texnologiyanı seçmək barədə qərar verməkdə çətinlik törədir.
Bəs hansı texnologiyanı seçmək daha məqsədəuyğundur? Hansı proqramlaşdırma dilini öyrənmək daha vacibdir?
Bəlkə də ilk baxışdan əsasən aşağı kurs tələbələri üçün bu sual mübahisəli görünür. Təcrübələr göstərir ki, hal-hazırda müasir proqramçı Pascal, C, C++, Perl, PHP, jаvascript, C# (Si Şarp), Java dillərinin hamısını bilməlidir.
Belə bir sual verə bilərsiniz ki, “Nə üçün bu dillərin hamısını bilməliyik? Axı bu kifayət qədər böyük siyahıdır?”. Pascal dili tədris üçün ideal dildir. Əslində Pascal dili məhz bu məqsəd üçün yaradılmışdır. Alqoritmləri öyrənərkən Pascal dilində proqram yazmaqla məsələləri həll etmək çox rahatdır. Alqoritmlərin tərtib olunması qaydalarını, mövcud olan klassik alqoritmləri hər bir proqramçı bilməlidir (yeri gəlmişkən bu sahədə ən yaxşı kitablardan ikisinin adını demək istərdim: D.E.Knuth – Art of programming və Thomas H. Cormen,Charles E. Leiserson,Ronald L. Rivest – Introduction to Algorithms).
Bir çox kitablarda alqoritmlərin realizasiyası psevdo-proqramlarla göstərilir. Psevdo-proqramlar sanki Pascal dilində yazılmış proqramlara bənzəyir.
C proqramlaşdırma dili Unix əməliyyatlar sistemi üçün AT&T Bell Labs. lobarotoriyasında Dennis Ritçi (Dennis Ritchie) tərəfindən yaradılmışdır. Sintaksisinin rahatlığına görə C dili qısa zamanda məşhurlaşmış və proqramçıların ən sevimli dillərindən birinə çevrilmişdir. C dili hal-hazırda ən çox sistem proqramlaşdırması üçün istifadə edilir. Linux əməliyyat sisteminin nüvəsi (kernel) C dilində yazılmışdır.
C++ dili C dilindən sonra Bern Straustrup (Bjarne Stroustrup) tərəfindən yaradılmışdır. C-dən ən başlıca fərqi ondadır ki, C++ obyekt-yönümlü (Object Oriented) proqramlaşdırma dilidir. Bu da müasir proqramlaşdırmada ən vacib anlayışlardandır. Praktiki olaraq C++ dilində həm sistem üçün, həm də digər məqsədlər üçün proqramlar yazmaq mümkündür. Bizə çox tanış olan Mozilla FireFox, MS Word, MS Excel, Notepad, Paint və s. proqramların hamısı C++-da yazılmışdır. Lakin C++-da verilənlər bazaları (database) ilə işləyən proqramları yazmaq o qədər də rahat deyil. Məsələ burasındadır ki, verilənlər bazaları ilə işləyən proqramların təyinatı bazada olan verilənlərlə işləməkdir. Bir çox hallarda bu cür proqramlarda sürət faktoru bir o qədər rol oynamır. Çünki sürət daha çox verilənlər bazası idarə etmə sistemlərindən (DBMS – Database Management System) asılı olur. Utilitlərin yazılmasında ən çox istifadə olunan dil C++ dilidir.
Perl ilk olaraq mətnlərin manipulyasiyası üçün yaradılmışdır. Sonralar Perlin imkanları daha da genişlənmişdir. Hal-hazırda şəbəkə və sistem administratorlarının ən sevimli dillərindən biridir. Perl-dən veb proqramlaşdırmada (daha çox CGİ) da istifadə olunur. Lakin indiki zamanda veb-proqramlaşdırma üçün daha rahat vasitələr vardır.
PHP dünyadakı bir çox veb-proqramçıların sevdiyi dildir. Diqqət yetirsək veb-saytların böyük bir hissəsinin yaradılmasında PHP-dən istifadə edilmişdir. PHP öyrənməkdə çox rahat və genişimkanlı dillərdən biridir. Əsas təyinatı veb-proqramlaşdırmada istifadədir. Lakin son zamanlar digər sahələrdə də istifadə olunmağa başlayır. Lakin PHP vasitəsi ilə scriptləri yazarkən bəzi təhlükəsizlik tədbirlərini (SQL İnjection, Remote Code İnclusion, XSS və s.) mütləq nəzərə almaq lazımdır. Bu tədbirləri nəzərə almadıqda həmin skriptləri çox asan üsullarla sındırmaq mümkün olur. PHP5 versiyası çıxdıqdan sonra PHP obyekt-yönümlü proqramlaşdırma dillərindən birinə çevrildi (əvvəllər OOP-un prinsiplərinə tam əməl olunmurdu). PHP-də yazılmış proqram serverdə icra olunur və yalnız nəticəsi klientə “göndərilir”. Lakin bəzən klient tərəfdə( client side) də proqramlaşdırmadan istifadə etmək məcburiyyətində qalırıq.
HTML (HyperText Markup Language) isə adından göründüyü kimi yalnız işarələmə dilidir. HTML-in öz imkanları vasitəsi ilə heç bir əməliyyat aparmaq mümkün deyil. Bu cür hallarda jаvascript bizim köməyimizə çatır. Eyni təyinata malik digər bir texnologiya – VBScript də mövcuddur. Lakin VBScriptin bəzi imkanları məhduddur. jаvascript vasitəsi ilə HTML Səhifənin DOM modeli üzrə bir çox əməliyyatlar etmək, səhifədə interaktiv elementlər (menyular, düymələrin basılmasında dərhal reaksiyalar və s.) yaratmaq mümkündür.
Veb-proqramlaşdırma sahəsində məşğul olanlar üçün AJAX (Asynchronous jаvascript and XML) texnikasını da bilmək vacibdir. Bəzən AJAX-ı ayrıca bir texnologiya və ya dil kimi qələmə verirlər. Lakin, AJAX jаvascript və XML-dən istifadə etməklə bir vasitədir.
Sadaladığımız bu dillərin təyinatları əsasən ayrı-ayrı olduğuna görə onlar arasında konkurensiya bir o qədər hiss olunmur. Lakin Java və C# arasında böyük bir rəqabət vardır. Bir çox proqramçılar Javaya bəziləri C#-a üstünlük verirlər. Hər ikisininin özünə məxsus üstün cəhətləri vardır. Əslində onlara sadəcə olaraq dil kimi yox, bir texnologiya kimi baxmaq lazımdır. Bu texnologiyalar vasitəsi ilə yaradılmış proqramlar ayrıca işləyə bilmirlər. Bu proqramlar birbaşa olaraq sizin kompüterdə yox virtual maşında işləyir.
Bəs virtual maşın nədir? Virtual maşın – proqram şəklində bir kompüterdir. Həmin virtual maşında işləyən proqramlar virtual maşına normal kompüter kimi müraciət edir və virtual maşın öz növbəsində həmən müraciətlərə kompüter kimi reaksiya göstərir. Bir sözlə kompüteri emulyasiya edir. Nəticə etibarı ilə Javada və C#-da yazılmış proqramları istənilən yerdə, istənilən arxitekturalı kompüterdə, istənilən əməliyyatlar (Operating System) sistemində işə salarkən eyni cür işləyəcək. Yəni proqram kompüterin heç bir fiziki vəziyyətindən asılı olmur. Həmən proqramın işləməsi üçün yalnız və yalnız onun işləyə biləcəyi virtual maşın lazımdır.
Java üçün virtual maşın (JRE – Java Runtime Environment) bir çox əməliyyatlar sistemi və bir çox arxitekturalı kompüterlər üçün mövcuddur. JRE Sun şirkəti tərəfindən yaradılıb.
C#da yazılmış proqramın işləməsi üçün .NET Framework (dot net Freymvörk) lazımdır. .NET framework Microsoft şirkəti tərəfindən hazırlanır. Hal-hazırda yalnız Windows əməliyyatlar sistemi üçün olan versiyası mövcuddur. Lakin .NET Framework-un klonu olan MONO Project adlı bir layihə mövcuddur və onun vasitəsilə yazılmış proqramlar bir çox əməliyyatlar sistemində işləyir. Deməli, Java və C#-da proqram yazarkən, platforma haqqında fikirləşmirik və bu işimizi çox asanlaşdırır. Bundan əlavə bu texnologiyalar vasitəsilə bir çox VBİS-lərə qoşulmaq üçün modullar mövcuddur. Bu da VBİS-i seçərkən bir çox məhdudiyyətləri aradan qaldırır. Digər üstünlüklərə tiplərin asan çevrilməsi, unicode dəstəyi, şəbəkələrlə iş və s. misal ola bilər. Beləliklə böyük sistemlər yaradarkən bu texnologiyaların tətbiqi daha məqsədəuyğundur. Çünki bu texnologiyalardan istifadə etməklə proqram yazarkən demək olar ki, məsələnin məğzindən başqa digər problemlərin “qayğı”sına qalmağa ehtiyac qalmır. Bir çox bank sistemləri, hava limanlarında qeydiyyat və s. sistemlərini yaradarkən proqramlaşdırma texnologiyası kimi bu texnologiyalara üstünlük verilir.
Amma aydındır ki, bu cür proqramlarda vaxt faktorunu nəzərə almaq çox nisbidir. Əslində bu o qədər də narahatçılığa əsas yaratmır. Məsələn, bank sistemində hər hansı bir tranzanskiyanın 1 millisaniyə gec və ya tez yerinə yetirilməsinin bir o qədər də əhəmiyyəti olmur. Lakin, raketlərin idarə olunmasında, atom stansiyalarının idarə olunmasında, tibbi avadanlıqlar üçün yazılmış proqram təminatında 1 millisaniyə gecikmə və ya tələsmə insan həyatına bərabər ola bilər. Onun üçün də bu cür sistemləri heç vaxt Java və ya C# kimi texnologiyaların köməyi ilə yaratmaq olmaz. Beləliklə biz artıq ən aktual proqramlaşdırma dillərinin təyinatları barədə ilkin məlumatları bildik. Proqram məhsulu yaradarkən həmin məhsulun tələbatlarını nəzərə almaqla bu texnologiyalardan daha səmərəlisini seçmək lazımdır.
Hansı proqramlaşdırma dilini öyrənməliyəm?
Proqramlaşdırmaya yeni başlayanda elə bilirdim ki, təkcə Basic və Pascal proqramlaşdırma dilləri var. Başqa dil yoxdur. Basic-lə məktəbdə oxuyanda tanış olmuşdum. O vaxt düzü nəsə xoşum gəlməmişdi. Birinci kursda oxuyanda isə Pascal öyrənməyə başladım. Sonra eşitdim ki, pascal dili üzərində Delphi adlı mühit qurulub. Delphini öyrənməyə başladım. Hər gün keçdikcə bir yeni proqramlaşdırma dilinin adını eşidirdim. Bu məni yorurdu. Axı, mən hansı dili bilməliyəm? Belə suallarla çox adam müraciət edirdim. Mənə verilən cavablar müxtəlif olurdu. Riyaziyyatçılar deyirdi ki, proqramlaşdırma dilini bilmək boş şeydir. Əsas riyaziyyatdır. Bəziləri deyirdi ki, əsas alqoritmin tapmaq lazımdır, dili hamı öyrənə bilər. Bəziləri deyirdi “flan” dili öyrən daha çox pul verirlər. O biri deyirdi, sən nə danışırsan ”flan” dili həmişə yaşayacaq. Beləliklə hərə bir cavab verirdi. Indi isə özüm istiyirəm bir cavab yazım.
Deməli, hansı dili öyrənmək lazımdır? Wikipediaya baxsaz, List of programming görərsiz ki, proqramlaşdırma dillərinin sayı həddindən artıq çoxdur. Kimsə müəyyən dili bəyənmiyib, özünə rahat bir dil yaradıb. Əslində hansı dili öyrənmək sualından çox, hansı məqsəd üçün öyrənmək sualı haqqında fikirləşmək lazımdır.
Proqramlaşdırmanı şərti olaraq iki yerə bölək:
Desktop proqramlaşdırma
Web proqramlaşdırma
1. Desktop proqramlaşdırma deyəndə sistem üçün yazılan proqramlar, drayverlər, müxtəlif biznes proqramlar, riyazi proqramlar və s. bura daxil ola bilər.
Amma mən əməliyyat sistemlərinə görə də desktop proqramlaşdırmanı üç yerə ayırmaq istərdim.
Linuxda proqramlaşdırma
Windowsda proqramlaşdırma
Apple-da proqramlaşdırma
Qeyd: Indi dillərin çoxu cross platformdur, yəni bütün əməliyyatlar sistemlərində işləyirlər.
Əgər linux mühitində işləyirsizsə və əgər linuxun nüvəsi (kernel) ilə məşğul olmaq istəyirsizsə, onda mütləq C dilin bilməlisiz. Linuxun nüvəsində həmçinin biraz assemblerdən istifadə olunub, assembleri də bilsəz onda lap əla olar. Əgər nüvə ilə işiniz yoxdursa, təkcə linuxda balaca scriptlər yazmaq istəyirsinizsə, onda bash script dili sizin işinizə yarıyacaq. Amma indi artıq scriptləri pythonda yazmağa üstünlük verirlər. Odur ki, Python burda sizin əla köməkçiniz olacaq. Əgər linuxda proqram yazmaq istəyirsinizsə, onda C++, Java, Python, Ruby + Qt bunlardan birin və ya bir neçəsin bilmək lazım olacaq.
Windows-a gəldikdə isə əgər windows applicationlar yazmaq istəyirsinizsə, onda Visual Studio sizə kifayət edəcək. Visual Studioda müxtəlif dillərdən istifadə etməyə imkan var, amma C# dili ən məsləhətlisidir. Yox, əgər visual studio və C# dan xoşunuz gəlmirsə, onda Java windows applicationlar yazmaq üçün əla seçimdir.
Apple isə əsasən Cocoa framework-undən istifadə olunur və dil kimi Objective-C istifadə olunur.
2. Web proqramlaşdırmaya gəldikdə isə, PHP, bundan başqa siz asp.net-i bilməklə də əla veb səhifələr yarada bilərsiz. Amma əgər evdə oturub, veb səhifə yığırsızsa, onda php ən məsləhətlisidir. Perl də bu yaxınlara kimi çox istifadə olunurdu, amma deyəsən yavaş-yavaş istifadəsi azalır və php onun yerini tutur. Bəzən isə sizə veb səhifənizə java applet-lər qoymaq üçün Java da lazım ola bilər. jаvascript isə veb proqramistin sağ əlidir.
Yekun olaraq hansı dili bilmək lazımdır sualına birdə baxaq:
C – Bir çox dillər (Java, C++, C# və s) öz sintaksisin bu dil əsasında qurublar. Bu dili bilməklə digər dillərə keçmək asan olacaq.
PHP dili web səhifələr yaratmaqda sizə yaxından köməklik edəcək.
C# dili windows applicationlar yazmaq üçün əla seçimdir.
Java dili hesab edirəm sizə çox lazım ola bilər. Bütün platformaları dəstəkləyir. C#-a çox oxşuyur.
jаvascript adından da göründüyü kimi script dilidir. PHP server hissədə işlədiyi halda, jаvascript client hissədə işləyir. Vebdə sizə çox lazım olacaq.
Python dilinə tələbat hər gün keçdikcə biraz artır. Google bu dildən çox istifadə edir.
Məsləhətlidir C++ əgər sistemlə oynamaq istəyirsinizsə, onda C++ bilmək yaxşı olardı. Yuxarıdakı dillərin hamısından çətindir.
Ruby – yuxarıdakı dillərin hamısından az işlənsədə, hər gün keçdikcə Ruby məşhurlaşır. Vaxt olduqca, qurdalamaq olar.
Deyəcəkisiniz ki, pascal qaldı axı? Pascal dili təzə başlıyanlar üçün yaxşıdır, amma sonra heç kimə lazım olmur. Pascal dili olimpiyada da lazım ola bilər. Bir də asan olduğu üçün onu universitetlərdə keçirlər. Mən isə pascala vaxt itirməyi məsləhət görməzdim.
Bir şey də qeyd edim. Dil bilmək hələ başlanğıcdır. Riyazi dillə desək proqramist olmaq üçün proqramlaşdırma dilini bilmək zəruridir, amma kafi deyil.
Proqramlaşdırma dilləri c
Proqramlaşdırma dilleri haqqında geniş melumatlar
Ümumi proqramlaşdırma dilleri haqqında
Program: Her hansı meseleni hell etmek üçün komputer dilinde yazılmış kodlarder. Yeni biz meseleni hell etmek üçün komputerde proqram yazırıq.
Proqramlaşdırma dili:Proqramı yazmaq üçün ise bize proqramlaşderma dili lazımdır. Hal-hazırda çoxlu proqramlaşdırma dilleri var. Meselen: C,C ,Java,Smaltalk,Pascal,Visual Basic,Visual FoxPro ve s. Proqramlaşdırma dillerin müxtelif seviyyeleri var. Esasen 5 qrupa ayırırlar:
Çox yüksek seviyyeli diller ve ya vizual diller :Access,FoxPro,Paradox,XBase,Visual Basic.
Yüksek seviyyeli diller (Bunlara bezen alqoritmik dillerde deyilir):Pascal,Basic,Fortran.
Orta seviyyeli proqramlaşdırma dilleri:C,C
Aşağı seviyyeli proqramlaşdırma dilleri:Assembly language
Maşın dili:En aşağı seviyyeli dil olub 0 ve 1 lerden ibaretdir
Bundan başqa proqramlaşdırma dillerini ayrı 2 qrupa bölmek olar: Prosedur proqramlaşdırma dilleri (Pascal,Basic), Obyekt yönümlü proqramlaşdırma dilleri (C ,C#,Java,Smaltalk ).
Her hansı proqramlaşdırma dilini istifade etmek üçün ise bize ilk növbede kompilyator lazımdır. Kompilyator olduqdan sonra biz öz proqramımızı metn redaktorunda(Meselen: Notepad) yaza bilerik. Lakin çox biz İDE yeni proqramlaşdırmanın inteqrallaşmış mühitinden istifade edirik. Sade dille desek,bize bir mühit verilir,orda komponentler olur ve bunlardan istifade ederek biz öz proqramımızı yazırıq.Ve en esası proqramlaşdırmanı öyrenmeyin yolu proqram yazmaqdır (tekce oxumaqla proqramist olmaq olmaz). İngilisce daha yaxşı çıxır. Learning programming is programming.
Müasir proqramlaşdırma dilleri – hansı daha yaxşıdır?
Müasir zamanda bir çox proqramlaşdırma dilleri ve mühitler mövcuddur. Bu da öz növbesinde texnologiyanı seçmek barede qerar vermekde çetinlik töredir. Bes hansı texnologiyanı seçmek daha meqsedeuyğundur? Hansı proqramlaşdırma dilini öyrenmek daha vacibdir? Belke de ilk baxışdan esasen aşağı kurs telebeleri üçün bu sual mübahiseli görünür. Tecrübeler gösterir ki, hal-hazırda müasir proqramçı Pascal, C, C , Perl, PHP, javascript, C# (Si Şarp), Java dillerinin hamısını bilmelidir. Bele bir sual vere bilersiniz ki, “Ne üçün bu dillerin hamısını bilmeliyik? Axı bu kifayet qeder böyük siyahıdır?”.
Pascal dili tedris üçün ideal dildir. Eslinde Pascal dili mehz bu meqsed üçün yaradılmışdır. Alqoritmleri öyrenerken Pascal dilinde proqram yazmaqla meseleleri hell etmek çox rahatdır. Alqoritmlerin tertib olunması qaydalarını, mövcud olan klassik alqoritmleri her bir proqramçı bilmelidir (yeri gelmişken bu sahede en yaxşı kitablardan ikisinin adını demek isterdim: D.E.Knuth – Art of programming ve Thomas H. Cormen,Charles E. Leiserson,Ronald L. Rivest – Introduction to Algorithms). Bir çox kitablarda alqoritmlerin realizasiyası psevdo-proqramlarla gösterilir. Psevdo-proqramlar sanki Pascal dilinde yazılmış proqramlara benzeyir.
C proqramlaşdırma dili Unix emeliyyatlar sistemi üçün AT&T Bell Labs. laborotoriyasında Dennis Ritçi (Dennis Ritchie) terefinden yaradılmışdır. Sintaksisinin rahatlığına göre C dili qısa zamanda meşhurlaşmış ve proqramçıların en sevimli dillerinden birine çevrilmişdir. C dili hal-hazırda en çox sistem proqramlaşdırması üçün istifade edilir. Linux emeliyyat sisteminin nüvesi (kernel) C dilinde yazılmışdır.
C dili C dilinden sonra Bern Straustrup(Bjarne Stroustrup) terefinden yaradılmışdır. C-den en başlıca ferqi ondadır ki, C obyekt-yönümlü (Object Oriented) proqramlaşdırma dilidir. Bu da müasir proqramlaşdırmada en vacib anlayışlardandır. Praktiki olaraq C dilinde hem sistem üçün hem de diger meqsedler üçün proqramlar yazmaq mümkündür. Bize çox tanış olan Mozilla FireFox, MS Word, MS Excel, Notepad, Paint ve s. proqramların hamısı C -da yazılmışdır. Lakin C -da verilenler bazaları(database) ile işleyen proqramları yazmaq o qeder de rahat deyil. Mesele burasındadır ki, verilenler bazaları ile işleyen proqramların teyinatı bazada olan verilenlerle işlemekdir. Bir çox hallarda bu cür proqramlarda süret faktoru bir o qeder rol oynamır. Çünki süret daha çox verilenler bazası idare etme sistemlerinden(DBMS – Database Management System) asılı olur. Utilitlerin yazılmasında en çox istifade olunan dil C dilidir.
Perl ilk olaraq metnlerin manipulyasiyası üçün yaradılmışdır. Sonralar Perlin imkanları daha da genişlenmişdir. Hal-hazırda şebeke ve sistem administratorlarının en sevimli dillerinden biridir. Perl-den veb proqramlaşdırmada(daha çox CGİ) da istifade olunur. Lakin indiki zamanda veb-proqramlaşdırma üçün daha rahat vasiteler vardır.
PHP dünyadakı bir çox veb-proqramçıların sevdiyi dildir. Diqqet yetirsek veb-saytların böyük bir hissesinin yaradılmasında PHPden istifade edilmişdir. PHP öyrenmekde çox rahat ve genişimkanlı dillerden biridir. Esas teyinatı veb-proqramlaşdırmada istifadedir. Lakin son zamanlar diger sahelerde de istifade olunmağa başlayır. Lakin PHP vasitesi ile scriptleri yazarken bezi tehlükesizlik tedbirlerini(SQL İnjection, Remote Code İnclusion, XSS ve s.) mütleq nezere almaq lazımdır. Bu tedbirleri nezere almadıqda hemin skriptleri çox asan üsullarla sındırmaq mümkün olur. PHP 5 versiyası çıxdıqdan sonra PHP obyekt-yönümlü proqramlaşdırma dillerinden birine çevrildi (evveller OOP-un prinsiplerine tam emel olunmurdu).
PHP-de yazılmış proqram serverde icra olunur ve yalnız neticesi kliente “gönderilir”. Lakin bezen klient terefde(client side) de proqramlaşdırmadan istifade etmek mecburiyyetinde qalırıq. HTML(HyperText Markup Language) ise adından göründüyü kimi yalnız işareleme dilidir. HTMLin öz imkanları vasitesi ile heç bir emeliyyat aparmaq mümkün deyil. Bu cür hallarda javascript bizim kömeyimize çatır. Eyni teyinata malik diger bir texnologiya – VBScript de mövcuddur. Lakin VBScriptin bezi imkanları mehduddur. javascript vasitesi ile HTML Sehifenin DOM modeli üzre bir çox emeliyyatlar etmek, sehifede interaktiv elementler(menyular, düymelerin basılmasında derhal reaksiyalar ve s.) yaratmaq mümkündür. Veb-proqramlaşdırma sahesinde meşğul olanlar üçün AJAX (Asynchronous javascript and XML) texnikasını da bilmek vacibdir. Bezen AJAXı ayrıca bir texnologiya ve ya dil kimi qeleme verirler. Lakin, AJAX javascript ve XML-den istifade etmekle bir vasitedir.
Sadaladığımız bu dillerin teyinatları esasen ayrı-ayrı olduğuna göre onlar arasında konkurensiya bir o qeder hiss olunmur. Lakin Java ve C# arasında böyük bir reqabet vardır. Bir çox proqramçılar Javaya bezileri C#-a üstünlük verirler. Her ikisininin özüne mexsus üstün cehetleri vardır. Eslinde onlara sadece olaraq dil kimi yox bir texnologiya kimi baxmaq lazımdır.
Bu texnologiyalar vasitesi ile yaradılmış proqramlar ayrıca işleye bilmirler. Bu proqramlar birbaşa olaraq sizin kompüterde yox virtual maşında işleyir. Bes virtual maşın nedir? Virtual maşın – proqram şeklinde bir kompüterdir. Hemin virtual maşında işleyen proqramlar virtual maşına normal kompüter kimi müraciet edir ve virtual maşın öz növbesinde hemen müracietlere kompüter kimi reaksiya gösterir. Bir sözle kompüteri emulyasiya edir. Netice etibarı ile Javada ve C#-da yazılmış proqramları istenilen yerde, istenilen arxitekturalı kompüterde, istenilen emeliyyatlar (Operating System) sisteminde işe salarken eyni cür işleyecek. Yeni proqram kompüterin heç bir fiziki veziyyetden asılı olmur. Hemen proqramın işlemesi üçün yalnız ve yalnız onun işleye bileceyi virtual maşın lazımdır. Java üçün virtual maşın (JRE – Java Runtime Environment) bir çox emeliyyatlar sistemi ve bir çox arxitekturalı kompüterler üçün mövcuddur. JRE Sun şirketi terefinden yaradılır. C#da yazılmış proqramın işlemesi üçün .NET Framework(dot net Freymvörk) lazımdır. .NET framework Microsoft şirketi terefinden hazırlanır. Hal-hazırda yalnız Windows emeliyyatlar sistemi üçün olan versiyası mövcuddur. Lakin, .NET Framework-un klonu olan MONO Project adlı bir layihe mövcuddur ve onun vasitesile yazılmış proqramlar bir çox emeliyyatlar sisteminde işleyir.
Demeli Java ve C#-da proqram yazarken, platforma haqqında fikirleşmirik ve bu işimizi çox asanlaşdırır. Bundan elave bu texnologiyalar vasitesile bir çox VBİSlere qoşulmaq üçün modullar mövcuddur. Bu da VBİS-i seçerken bir çox mehdudiyyetleri aradan qaldırır. Diger üstünlüklere tiplerin asan çevrilmesi, unicode desteyi, şebekelerle iş ve s. misal ola biler. Belelikle böyük sistemler yaradarken bu texnologiyaların tetbiqi daha meqsedeuyğundur. Çünki bu texnologiyalardan istifade etmekle proqram yazarken demek olar ki, meselenin meğzinden başqa diger problemlerin “qayğı”sına qalmağa ehtiyac qalmır. Bir çox bank sistemleri, hava limanlarında qeydiyyat ve s. sistemlerini yaradarken proqramlaşdırma texnologiyası kimi bu texnologiyalara üstünlük verilir.
Amma, aydındır ki, bu cür proqramlarda vaxt faktorunu nezere almaq çox nisbidir. Eslinde bu o qeder de narahatçılığa esas yaratmır. Meselen bank sisteminde her hansı bir tranzanskiyanın 1 millisaniye gec ve ya tez yerine yetirilmesinin bir o qeder de ehemiyyeti olmur. Lakin, raketlerin idare olunmasında, atom stansiyalarının idare olunmasında, tibbi avadanlıqlar üçün yazılmış proqram teminatında 1 millisaniye gecikme ve ya telesme insan heyatına beraber ola biler. Onun üçün de bu cür sistemleri heç vaxt Java ve ya C# kimi texnologiyaların kömeyi ile yaratmaq olmaz.
Belelikle biz artıq en aktual proqramlaşdırma dillerinin teyinatları barede ilkin melumatları bildik. Proqram mehsulu yaradarken hemin mehsulun telebatlarını nezere almaqla bu texnologiyalardan daha semerelisini seçmek lazımdır.
Hansı proqramlaşdırma dilini öyrenmeliyem?
Proqramlaşdırmaya yeni başlayanda ele bilirdim ki, tekce Basic ve Pascal proqramlaşdırma dilleri var. Başqa dil yoxdur. Basicle mektebde oxuyanda tanış olmuşdum. O vaxt düzü nese xoşum gelmemişdi. Birinci kursda oxuyanda ise Pascal öyrenmeye başladım. Sonra eşitdim ki, pascal dili üzerinde Delphi adlı mühit qurulub. Delphini öyrenmeye başladım. Her gün keçdikce bir yeni proqramlaşdırma dilinin adını eşidirdim. Bu meni yorurdu. Axı men hansı dili bilmeliyem? Bele suallarla çox adam müraciet edirdim.
Mene verilen cavablar müxtelif olurdu. Riyaziyyatçılar deyirdi ki, proqramlaşdırma dilini bilmek boş şeydir. Esas riyaziyyatdır.
Bezileri deyirdi ki, esas alqoritmin tapmaq lazımdır dili hamı öyrene biler.
Bezileri deyirdi “flan” dili öyren daha çox pul verirler. O biri deyirdi sen ne danışırsan ” flan” dili hemişe yaşayacaq.
Belelikle here bir cavab verirdi. Indi ise özüm istiyirem bir cavab yazım. Demeli hansı dili öyrenmek lazımdır?
Wikipedia`ya baxsaz List of programming görersiz ki, proqramlaşdırma dillerinin sayı heddinden artıq çoxdur. Kimse müeyyen dili beyenmiyib, özüne rahat bir dil yaradıb.
Eslinde hansı dili öyrenmek sualından çox, hansı meqsed üçün öyrenmek sualı haqqında fikirleşmek lazımdır.
Proqramlaşdırmanı şerti olaraq iki yere bölek:
Desktop proqramlaşdırma
Web proqramlaşdırma
Desktop proqramlaşdırma deyende sistem üçün yazılan proqramlar, drayverler, müxtelif biznes proqramlar, riyazi proqramlar ve s bura daxil ola biler. Amma men emeliyyat sistemlerine göre desktop proqramlaşdırmanı da üç yere ayırmaq isterdim.
Linuxda proqramlaşdırma
Windowsda proqramlaşdırma
Appleda proqramlaşdırma
Qeyd: İndi dillerin çoxu cross platformdur, yeni bütün emeliyyatlar sistemlerinde işleyirler.
Eger linux mühitinde işleyirsizse ve eger linuxun nüvesi (kernel) ile meşğul olmaq isteyirsizse, onda mütleq C dilin bilmelisiz. Linuxun nüvesinde hemçinin biraz assemblerden istifade olunub, assembleri de bilsez onda lap ela olar. Eger nüve ile işiniz yoxdursa, tekce linuxda balaca scriptler yazmaq isteyirsinizse, onda bash script dili sizin işinize yarıyacaq. Amma indi artıq scriptleri pythonda yazmağa üstünlük verirler. Odur ki, python burda sizin ela kömekçiniz olacaq.
Eger linuxda proqram yazmaq isteyirsinizse, onda C , Java, Python, Ruby Qt bunlardan birin ve ya bir neçesin bilmek lazım olacaq.
Windowsa geldikde ise eger windows applicationlar yazmaq isteyirsinizse, onda Visual Studio size kifayet edecek. Visual Studioda müxtelif dillerden istifade etmeye imkan var, amma C# dili en meslehetlisidir.Yox, eger visual studio ve C# dan xoşunuz gelmirse, onda Java windows applicationlar yazmaq üçün ela seçimdir.
Apple ise esasen Cocoa framework`unden istifade olunur ve dil kimi Objective-C istifade olunur.
Web proqramlaşdırmaya geldikde ise, Adil öz bloqunda bu haqda PHP-den evvel… biraz melumat verib.Bundan başqa siz asp.net`i bilmekle de ela veb sehifeler yarada bilersiz. Amma eger evde oturub, veb sehife yığırsızsa, onda php en meslehetlisidir. Perl de bu yaxınlara kimi çox istifade olunurdu, amma deyesen yavaş-yavaş istifadesi azalır ve php onun yerini tutur. Bezen ise size veb sehifenize java appletler qoymaq üçün Java da lazım ola biler. javascripti ise veb proqramistin sağ elidir.
Yekun olaraq hansı dili bilmek lazımdır sualına birde baxaq.
C. Bir çox diller (Java, C , C# ve s) öz sintaksisin bu dil esasında qurublar. Bu dili bilmekle diger dillere keçmek asan olacaq.
PHP dili web sehifeler yaratmaqda size yaxından kömeklik edecek.
C# dili windows applicationlar yazmaq üçün ela seçimdir.
Java dili hesab edirem size çox lazım ola biler. Bütün platformaları destekleyir. C#-a çox oxşuyur.
javascript adından da göründüyü kimi script dilidir. PHP server hissede işlediyi halda, javascript client hissede işleyir. Vebde size çox lazım olacaq.
Python diline telebat her gün keçdikce biraz artır. Google bu dilden çox istifade edir. Meslehetlidir
C eger sistemle oynamaq isteyirsinizse, onda C bilmek yaxşı olardı. Yuxarıdakı dillerin hamısından çetindir.
Ruby Yuxarıdakı dillerin hamısından az işlensede, her gün keçdikce Ruby meşhurlaşır. Vaxt olduqca, qurdalamaq olar.
Deyecekisiniz ki, pascal qaldı axı? Pascal dili teze başlıyanlar üçün yaxşıdır, amma sonra heç kime lazım olmur. Pascal dili olimpiyada da lazım ola biler. Bir de asan olduğu üçün onu universitetlerde keçirler. Men ise pascala vaxt itirmeyi meslehet görmezdim.
Bir şey de qeyd edim. Dil bilmek hele başlanğıcdır. Riyazi dille desek proqramist olmaq üçün proqramlaşdırma dilini bilmek zeruridir, amma kafi deyil.
Comments are closed, but trackbacks and pingbacks are open.