ყველა არსებული პროგრამირების ენა. პროგრამირების ენების სია. დაბალი და მაღალი დონის პროგრამირების ენები. პროგრამირების ენების დონეები

ავტორისგან:ჩვენი სტუმრის, პიტერ ბიზნესმენსის სტატია. პეტრე - ფრონტ-ენდის დეველოპერიაუდიტორიის საიტზე, სადაც მას უყვარს წერის სტილი SCSS-ში. დღეს ის გვაჩვენებს, რასაც მე ვუწოდებ პატიოსან CSS ხრიკს. მთელი ქსელი ვერტიკალურია. თქვენ კითხულობთ საიტს, როგორც ჩვეულებრივი წიგნი: მარცხნიდან მარჯვნივ, ზემოდან ქვემოდან. მაგრამ ხანდახან გინდა ვერტიკალურობისგან თავის დაღწევა და რაღაც სიგიჟის გაკეთება: გააკეთე ჰორიზონტალური სია. ან კიდევ უფრო გიჟური, ჰორიზონტალური საიტი!

კარგი იქნება, თუ ჩვენ შეგვიძლია გავაკეთოთ მსგავსი რამ:

/* ყალბი კოდი */ div ( გადახვევის მიმართულება: ჰორიზონტალური; )

/* ყალბი კოდი */

div(

გადახვევა - მიმართულება: ჰორიზონტალური;

სამწუხაროდ, ეს არ მოხდება. ეს არც კი არის დაგეგმილი CSS-ში.

ეს ძალიან ცუდია, რადგან კომპანია, რომელშიც ვმუშაობ, ნამდვილად გამოიყენებს ამას. ჩვენ ბევრ პრეზენტაციას ვაკეთებთ და პრეზენტაცია საკმაოდ ჰორიზონტალური რამ არის. როგორც წესი, სლაიდების ასპექტის თანაფარდობა არის 4:3 ან 16:9. ამის გამო გვაქვს მუდმივი პრობლემაჰორიზონტალური სლაიდებით და ვერტიკალური ვებ ტექნოლოგიებით. "ჩვენ"-ში მე ვგულისხმობ. მაგრამ ის, რაც მე მიყვარს, არის გამოწვევები.

გამოყენების კიდევ ერთი შემთხვევა

გამიელვა კონკრეტული გზააპლიკაციები. იდეა იმაში მდგომარეობს, რომ მომხმარებლებისთვის მოსახერხებელი იქნება ყველა პროდუქტის ნახვა ერთ სლაიდზე. ბუნებრივია, პროდუქციის კატალოგი არ ჯდება ერთ ფორმაში. ამიტომ, გადავწყვიტეთ, კატალოგი სამ კატეგორიად დავყოთ, თითოეული ჰორიზონტალური გადახვევით. ამრიგად, სამი ყველაზე პოპულარული პროდუქტი ჩანს თითოეულ კატეგორიაში და ნაკლებად მნიშვნელოვანი პროდუქტი ღიაა მარტივად ხელმისაწვდომი.

მეთოდი JavaScript-ის გარეშე

ჩვენ ყველამ ვიცით, რომ JS-ში ამის გაკეთების უამრავი გზა არსებობს ჰორიზონტალური გადახვევა. არსებობს რამდენიმე მაგალითი CSS-Tricks-ზე. მაინტერესებდა შეიძლებოდა თუ არა ამ იდეის განხორციელება სუფთა CSS. გამოსავალი ძალიან მარტივი აღმოჩნდა:

შექმენით კონტეინერი ელემენტებით;

დაატრიალეთ კონტეინერი 90 გრადუსით საათის ისრის საწინააღმდეგოდ ისე, რომ ქვედა კიდე მარჯვნივ იყოს;

ჩვენ ვაბრუნებთ კონტეინერის შიგნით არსებულ ელემენტებს თავის ადგილზე.

ნაბიჯი 1) შექმენით კონტეინერი

Შექმნა div ბლოკიბევრთან ერთად ბავშვის ელემენტები.

ჩვენს მაგალითში, გადახვევის კონტეინერი იქნება 300 პიქსელის სიგანე და ექნება 8 100x100 პიქსელი ელემენტი. ზომები თვითნებურია, შეგიძლიათ დააყენოთ ნებისმიერი.

პუნქტი 1
პუნქტი 2
პუნქტი 3
პუნქტი 4
პუნქტი 5
პუნქტი 6
პუნქტი 7
პუნქტი 8

< div class = "ჰორიზონტალური გადახვევის კვადრატები">

< div >პუნქტი 1< / div >

< div >პუნქტი 2< / div >

< div >პუნქტი 3< / div >

< div >პუნქტი 4< / div >

< div >პუნქტი 5< / div >

< div >პუნქტი 6< / div >

< div >პუნქტი 7< / div >

< div >პუნქტი 8< / div >

< / div >

კონტეინერის სიმაღლე გახდება სიგანე და პირიქით. ქვემოთ, კონტეინერის "სიგანე" იქნება 300 პიქსელი:

ჰორიზონტალური გადახვევა (სიგანე: 100 პიქსელი; სიმაღლე: 300 პიქსელი; გადინება-y: ავტომატური; გადინება-x: დამალული; )

სიგანე: 100px;

სიმაღლე: 300px;

overflow - y : ავტო ;

overflow - x : დამალული ;

და ბავშვის ელემენტები:

Horizontal-scroll-wrapper > div ( სიგანე: 100px; სიმაღლე: 100px; )

ჰორიზონტალური - გადახვევა - შეფუთვა > div (

სიგანე: 100px;

სიმაღლე: 100px;

ნაბიჯი 2) დაატრიალეთ კონტეინერი

ახლა თქვენ უნდა მოატრიალოთ კონტეინერი -90 გრადუსით CSS დახმარებათვისებების გარდაქმნა მივიღეთ ჰორიზონტალური გადახვევა.

Horizontal-scroll-wrapper ( ... ტრანსფორმაცია: rotate (-90deg); transform-origin: მარჯვენა ზედა; }

ჰორიზონტალური - გადახვევა - შეფუთვა (

. . .

ტრანსფორმაცია: rotate (-90deg);

მხოლოდ ერთი პატარა პრობლემაა: ბავშვის ელემენტები კონტეინერთან ერთად შემოტრიალდა.

ნაბიჯი 3) დააბრუნეთ ბავშვის ელემენტები თავის ადგილზე

მაშ, როგორ დააბრუნებთ ელემენტებს თავის ადგილზე? დააბრუნეთ იგი CSS ტრანსფორმაციის თვისების გამოყენებით.

Horizontal-scroll-wrapper > div ( ... ტრანსფორმაცია: rotate (90deg); transform-origin: მარჯვენა ზედა; )

ჰორიზონტალური - გადახვევა - შეფუთვა > div (

. . .

ტრანსფორმაცია: როტაცია (90 გრადუსი);

ტრანსფორმაცია - წარმოშობა: მარჯვენა ზედა;

ნაბიჯი 4) ფიქსირებული პოზიციონირება

ყველაფერი კარგად გამოიყურება, მაგრამ არის რამდენიმე პრობლემა.

ჩვენ დავაბრუნეთ კონტეინერი და დავაყენეთ ზედა მარჯვენა კუთხე წამყვანად, ამის გამო მარცხენა მხარეგადავიდა კონტეინერის სიგანეზე. თუ ძნელი წარმოსადგენია, უბრალოდ დაადე თითი მარჯვნივ ზედა კუთხეგვერდი და გადააბრუნე. გასვლა: თქვენ უნდა დააბრუნოთ იგი translate თვისების გამოყენებით.

უკვე უკეთესი. მაგრამ პირველი ელემენტი ჯერ კიდევ არ ჩანს, რადგან იგივე პრობლემა შეინიშნება ბავშვის ელემენტებთან დაკავშირებით. ეს შეიძლება დაფიქსირდეს პირველი შვილი ელემენტისთვის ზედა ზღვარის მინიჭებით მისი სიგანის მნიშვნელობით, ან ყველა ელემენტის კონტეინერის მსგავსად გარდაქმნით. ყველაზე მარტივი გზა, რაც მე ვიპოვე, არის კონტეინერში ზედა ფენის დამატება, რომელიც ტოლია ბავშვის ელემენტების სიგანეზე, რითაც შევქმნით ბუფერულ ზონას ელემენტებისთვის.

თავსებადობა

მე შევამოწმე თავსებადობა ჩემთვის ხელმისაწვდომ მოწყობილობებზე.

სამუშაო მაგიდა

ვინაიდან გადახვევის ზოლის სტილი ამჟამად მუშაობს მხოლოდ Webkit/Blink ბრაუზერებში, ჩვეულებრივი ნაცრისფერი გადახვევის ზოლი ნაჩვენებია Firefox-სა და IE-ში. ამის გამოსწორება შესაძლებელია JS-ის გამოყენებით და მათი საერთოდ დამალვა, მაგრამ ეს სხვა გაკვეთილის თემაა.

მაუსის ბორბლით გადახვევა მშვენივრად მუშაობს დესკტოპზე. მაგრამ ჩემს ლეპტოპს აქვს საკუთარი აზრი ამ საკითხთან დაკავშირებით. მოწყობილობებზე სენსორული ეკრანებით და სენსორული ბალიშებით, დემო ვერსია ისე იქცევა, თითქოს დივი საერთოდ არ შემოტრიალებულიყო.

Მობილური მოწყობილობები

სასიამოვნოდ გამიკვირდა, როცა გავიგე, რომ Android აღიარებს, რომ კონტეინერი შემოტრიალდა და გაძლევთ საშუალებას გადახვიდეთ მარცხნივ და მარჯვნივ გადაფურცლით.

iOS-ით, პირიქით, ყველაფერი არც ისე გლუვია. ბრაუზერი ისე იქცევა, თითქოს კონტეინერი საერთოდ არ შემოტრიალებულიყო. ამიტომ, გადახვევისთვის საჭიროა ზევით და ქვევით გადაფურცვლა, რაც საკმაოდ უცნაურია. Overflow: დამალული არ წყვეტს პრობლემას.

დასკვნა

ვებსაიტის Can I Use-ის მიხედვით, CSS-ში ტრანსფორმაციები ახლა მხარს უჭერს მომხმარებელთა 93%+ (წერის მომენტში, 2016 წლის ნოემბერი). აქ პრობლემა არ უნდა იყოს.

თუმცა უმჯობესია არ გამოიყენოთ ეს მეთოდი წარმოებაში. მე გამოვცადე ის ზოგიერთ მოწყობილობაზე, მაგრამ არა ყველაზე და არც ისე საფუძვლიანად.

Ყველაზე დიდი პრობლემა- შეხების შეყვანა, რომლებშიც მარცხნივ და მარჯვნივ გადასასვლელად საჭიროა ზევით და ქვევით გადაფურცვლა. გამოსავალი შეიძლება იყოს საიტზე მესიჯის დაწერა ახსნა-განმარტებით, მაგრამ შემდეგ თქვენ მოგიწევთ დაეყრდნოთ მომხმარებლებს მის წასაკითხად. და მაშინაც კი, ეს იქნება წინააღმდეგობრივი საღი აზრი. კიდევ ერთი გამოსავალი არის შეხებით შეყვანის გადაღება მოწყობილობებზე JS-ის გამოყენებით, მაგრამ შემდეგ ჯობია ყველაფერი ჩაწეროთ JS-ში და მთლიანად მიატოვოთ ჩვენი CSS ჰაკ.

პროგრამირების ენების კლასიფიკაცია

კომპიუტერის ეპოქის გარიჟრაჟზე, მანქანური კოდი იყო კომუნიკაციის ერთადერთი საშუალება ადამიანსა და კომპიუტერს შორის. პროგრამირების ენების შემქმნელთა დიდი მიღწევა იყო ის, რომ მათ შეძლეს თავად კომპიუტერი ამ ენებიდან მანქანურ კოდში მთარგმნელად ემუშავათ.

არსებული პროგრამირების ენები შეიძლება დაიყოს ორ ჯგუფად: პროცედურული და არაპროცედურული (იხ. ნახ. 4.1).

პროცედურული (ან ალგორითმული) პროგრამები არის ამოხსნის ინსტრუქციების სისტემა კონკრეტული დავალება. კომპიუტერის როლი მცირდება ამ ინსტრუქციების მექანიკურ განხორციელებამდე.

პროცედურული ენები იყოფა დაბალ და მაღალი დონე.

Განსხვავებული ტიპებიპროცესორებს აქვთ სხვადასხვა ინსტრუქციის ნაკრები. თუ პროგრამირების ენა ორიენტირებულია კონკრეტული ტიპის პროცესორზე და ითვალისწინებს მის მახასიათებლებს, მაშინ მას ე.წ პროგრამირების ენა დაბალი დონე.
ეს ნიშნავს, რომ ენის ოპერატორები ახლოს არიან მანქანის კოდთან და ორიენტირებული არიან პროცესორის კონკრეტულ ბრძანებებზე.

ბრინჯი. 4.1. ზოგადი კლასიფიკაციაპროგრამირების ენები

დაბალი დონის (მანქანაზე ორიენტირებული) ენები საშუალებას გაძლევთ შექმნათ პროგრამები მანქანის კოდიდან, ჩვეულებრივ თექვსმეტობით ფორმაში. მათთან მუშაობა რთულია, მაგრამ მაღალკვალიფიციური პროგრამისტის მიერ მათი დახმარებით შექმნილი პროგრამები იკავებს ნაკლები სივრცემეხსიერებაში და მუშაობა უფრო სწრაფად. ეს ენები აადვილებს განვითარებას სისტემური პროგრამები, დრაივერები (პროგრამები კომპიუტერული მოწყობილობების მართვისთვის), ზოგიერთი სხვა სახის პროგრამა.

დაბალი დონის (მანქანაზე ორიენტირებული) ენაა ასამბლერი, რომელიც უბრალოდ წარმოადგენს თითოეული მანქანის კოდის ინსტრუქციას, არა როგორც რიცხვებს, არამედ სიმბოლური აღნიშვნების გამოყენებით სახელწოდებით
მნემონიკა.

დაბალი დონის ენები ქმნიან ძალიან ეფექტურ და კომპაქტურ პროგრამებს, რადგან დეველოპერს აქვს წვდომა პროცესორის ყველა შესაძლებლობებზე.

მაღალი დონის პროგრამირების ენებიბევრად უფრო ახლოს და გასაგები ადამიანისთვის, ვიდრე კომპიუტერთან. შესაბამისად, მათში არ არის გათვალისწინებული კონკრეტული კომპიუტერული არქიტექტურის მახასიათებლები შექმნილი პროგრამებიდონეზე წყარო ტექსტებიადვილად გადასატანი სხვა პლატფორმებზე, რომლებისთვისაც შეიქმნა ამ ენის მთარგმნელი. ბევრად უფრო ადვილია პროგრამების შემუშავება მაღალი დონის ენებზე მკაფიო და მძლავრი ბრძანებების გამოყენებით და გაცილებით ნაკლებია შეცდომები პროგრამების შექმნისას.

მაღალი დონის ალგორითმული ენების მთავარი უპირატესობა არის პრობლემის გადაჭრის პროგრამების აღწერის შესაძლებლობა, რაც შეიძლება მოსახერხებელი იყოს ადამიანის აღქმისთვის. მაგრამ რადგან კომპიუტერების თითოეულ ოჯახს აქვს საკუთარი სპეციფიკური შიდა (მანქანის) ენა და შეუძლია მხოლოდ იმ ბრძანებების შესრულება, რომლებიც დაწერილია ამ ენაზე, მაშინ თარგმნისთვის წყაროს პროგრამები on მანქანის ენაგამოიყენება სპეციალური მთარგმნელი პროგრამები.

ყველა მთარგმნელის მუშაობა ეფუძნება ორ პრინციპს: ინტერპრეტაციას ან შედგენას.

ინტერპრეტაციაგულისხმობს განცხადების მიხედვით თარგმნას და წყაროს პროგრამის ნათარგმნი განცხადების შემდგომ შესრულებას. ამ მხრივ შეიძლება აღინიშნოს ინტერპრეტაციის მეთოდის ორი მინუსი: პირველ რიგში, ინტერპრეტაციის პროგრამა ორიგინალური პროგრამის შესრულების მთელი პროცესის განმავლობაში უნდა იყოს კომპიუტერის მეხსიერებაში, ანუ დაიკავოს მეხსიერების გარკვეული რაოდენობა; მეორეც, იგივე ოპერატორის თარგმნის პროცესი იმდენჯერ მეორდება, რამდენჯერაც ეს ბრძანება უნდა შესრულდეს პროგრამაში, რაც მკვეთრად ამცირებს პროგრამის შესრულებას.

მიუხედავად იმისა მითითებული უარყოფითი მხარეები, მთარგმნელ-თარჯიმნებისაკმაოდ ფართოდ გავრცელდა, რადგან ისინი მოსახერხებელია წყაროს პროგრამების შემუშავებისა და გამართვისთვის.

ზე შედგენათარგმანისა და შესრულების პროცესები დროულად არის გამიჯნული: პირველ რიგში, საწყის პროგრამა მთლიანად ითარგმნება მანქანურ ენაზე (რის შემდეგაც მთარგმნელის არსებობა შემთხვევითი წვდომის მეხსიერებახდება არასაჭირო), შემდეგ კი თარგმნილი პროგრამა შეიძლება ბევრჯერ შესრულდეს. შესაბამისად, იგივე პროგრამისთვის კომპილაციის მეთოდით თარგმნა უფრო მეტს იძლევა მაღალი დონის შესრულება გამოთვლითი სისტემასაჭირო ოპერატიული მეხსიერების შემცირებისას.

კომპილერის შემუშავების დიდი სირთულე იმავე ენიდან თარჯიმანთან შედარებით აიხსნება იმით, რომ პროგრამის შედგენა მოიცავს ორ მოქმედებას: ანალიზს, ანუ წყაროს პროგრამის სისწორის დადგენა შეყვანის ენობრივი კონსტრუქტების აგების წესების შესაბამისად. ენა და სინთეზი - მანქანურ კოდებში ექვივალენტური პროგრამების გენერირება. კომპილაციის მეთოდით მაუწყებლობა მოითხოვს სამაუწყებლო პროგრამის განმეორებით „ნახვას“, ე.ი. მთარგმნელ-შემდგენელებიმრავალპასიანია: პირველ უღელტეხილზე ამოწმებენ ერთმანეთისგან დამოუკიდებლად ცალკეული ოპერატორების ენობრივი კონსტრუქტების სინტაქსის სისწორეს, შემდგომ უღელტეხილზე ოპერატორებს შორის სინტაქსური ურთიერთობების სისწორეს და ა.შ.

კომპილაციის მეთოდით თარგმნის შედეგად მიღებულ პროგრამას ე.წ ობიექტის მოდული, რომელიც არის ექვივალენტური პროგრამა მანქანის კოდში, მაგრამ არ არის „მიბმული“ კონკრეტულ RAM მისამართებთან. ამიტომ, ობიექტის მოდული უნდა დამუშავდეს შესრულებამდე სპეციალური პროგრამაოპერაციული სისტემა (ბმულის რედაქტორი – ბმული) და კონვერტირება ჩატვირთვის მოდული.

ზემოთ განხილულ მთარგმნელ-თარჯიმნებთან და მთარგმნელ-შემდგენელებთან ერთად პრაქტიკაში გამოიყენება მთარგმნელებიც. თარჯიმანი-შემდგენლები,რომელიც აერთიანებს თარგმანის ორივე პრინციპის უპირატესობას: პროგრამების შემუშავებისა და გამართვის ეტაპზე თარჯიმანი მუშაობს თარჯიმანის რეჟიმში და გამართვის პროცესის დასრულების შემდეგ წყარო პროგრამა ხელახლა ითარგმნება ობიექტურ მოდულში (ანუ კომპილაციის მეთოდის გამოყენებით). ). ეს საშუალებას გაძლევთ მნიშვნელოვნად გაამარტივოთ და დააჩქაროთ პროგრამების შედგენისა და გამართვის პროცესი და შემდგომში ობიექტის მოდულის მოპოვებით უზრუნველყოთ პროგრამის უფრო ეფექტური შესრულება.

კლასიკური პროცედურული პროგრამირება მოითხოვს პროგრამისტს დეტალური აღწერაროგორ გადავჭრათ პრობლემა, ანუ ალგორითმის ფორმულირება და მისი სპეციალური ჩანაწერი. ამ შემთხვევაში, შედეგის მოსალოდნელი თვისებები, როგორც წესი, არ არის მითითებული. ამ ჯგუფების ენების ძირითადი ცნებებია ოპერატორი და მონაცემები.
ზე პროცედურული მიდგომაოპერატორები გაერთიანებულია ჯგუფებად - პროცედურებად. მთლიანობაში სტრუქტურირებული პროგრამირება არ სცილდება ამ მიმართულებას, ის მხოლოდ დამატებით ასახავს ზოგიერთ სასარგებლო ტექნიკას
პროგრამირების ტექნოლოგიები.

პროგრამირების ფუნდამენტურად განსხვავებული მიმართულება დაკავშირებულია არაპროცედურული პროგრამირების მეთოდოლოგიებთან (ზოგჯერ „პარადიგმებს“ უწოდებენ). მათ შორისაა ობიექტზე ორიენტირებული და დეკლარაციული პროგრამირება. ობიექტზე ორიენტირებული ენა ქმნის გარემოს მრავალი დამოუკიდებელი ობიექტის სახით. თითოეული ობიექტი ერთნაირად იქცევა ცალკე კომპიუტერიისინი შეიძლება გამოიყენონ პრობლემების გადასაჭრელად, როგორც „შავი ყუთები“, მათი ფუნქციონირების შიდა მექანიზმებში ჩაღრმავების გარეშე. ენებიდან ობიექტის პროგრამირებაპროფესიონალებს შორის პოპულარული უნდა იყოს C++ პროგრამისტების უფრო ფართო სპექტრისთვის, როგორიცაა Delphi და Visual Basic.



დეკლარაციული ენის გამოყენებისას პროგრამისტი მიუთითებს წყაროს საინფორმაციო სტრუქტურები, მათ შორის ურთიერთობები და რა თვისებები უნდა ჰქონდეს შედეგს. ამავდროულად, პროგრამისტი არ აშენებს მის მოპოვების პროცედურას („ალგორითმი“) (შესაბამისად მინიმუმ, იდეალურ შემთხვევაში). ამ ენებს არ აქვთ „ოპერატორის“ („ბრძანება“) ცნება. დეკლარაციული ენები შეიძლება დაიყოს ორ ოჯახად - ლოგიკური (ტიპიური წარმომადგენელი არის Prolog) და ფუნქციური (Lisp).

მოდით დავახასიათოთ ყველაზე ცნობილი პროგრამირების ენები.

1.ფორტრანი(FORmula TRANSlating system – formula translation system); უძველესი ენა, რომელიც ჯერ კიდევ აქტიურად გამოიყენება მათემატიკური ორიენტაციის ამოცანების გადაჭრისას. არის კლასიკური ენამათემატიკური და საინჟინრო ამოცანების კომპიუტერული პროგრამირებისთვის

2.ძირითადი(Beginner's All-purpose Symbolic Instruction Code - უნივერსალური სიმბოლური ინსტრუქციის კოდი დამწყებთათვის, მიუხედავად მრავალი ნაკლოვანებისა და სიმრავლისა, ის ცუდია). თავსებადი ვერსიები– ყველაზე პოპულარული მომხმარებელთა რაოდენობის მიხედვით. ფართოდ გამოიყენება მარტივი პროგრამების წერისას.

3.ალგოლი(ალგორითმული ენა - ალგორითმული ენა); თეორიაში დიდი როლი ითამაშა, მაგრამ იმისთვის პრაქტიკული პროგრამირებაახლა თითქმის არ გამოიყენება.

4.PL/1(PL/1 პროგრამირების ენა – პირველი პროგრამირების ენა); მრავალფუნქციური ენა; ახლა თითქმის არ გამოიყენება.

5.პასკალი(პასკალი – მეცნიერის ბლეზ პასკალის სახელობის); ძალიან პოპულარულია როგორც პროგრამირების სწავლისას, ასევე პროფესიონალებს შორის. შეიქმნა 70-იანი წლების დასაწყისში შვეიცარიელი მეცნიერის ნიკლაუს ვირტის მიერ. პასკალური ენა თავდაპირველად განვითარდა, როგორც საგანმანათლებლო ენა და, მართლაც, ახლა ის არის სკოლებსა და უნივერსიტეტებში პროგრამირების სწავლების ერთ-ერთი მთავარი ენა. თუმცა მისი თვისებები მთლიანობაში იმდენად მაღალი აღმოჩნდა, რომ მზად არიან გამოიყენონ და პროფესიონალი პროგრამისტები. არანაკლებ შთამბეჭდავი, მათ შორის ფინანსური, წარმატება მიაღწია ფილიპ კანმა, ფრანგმა, რომელმაც შექმნა ტურბო-პასკალის სისტემა. მისი იდეის არსი იყო პროგრამის დამუშავების თანმიმდევრული ეტაპების გაერთიანება - კომპილაცია, ბმულების რედაქტირება, გამართვა და შეცდომების დიაგნოსტიკა. ერთი ინტერფეისი. Turbo Pascal-ის ვერსიებმა თითქმის ყველაფერი შეავსო საგანმანათლებო ინსტიტუტები, პროგრამირების ცენტრები და კერძო ფირმები. პასკალის ენაზე დაყრდნობით შეიქმნა კიდევ რამდენიმე ძლიერი ენა (მოდულა, ადა, დელფი).

6.COBOL(Common Business Oriented Language - ენა, რომელიც ორიენტირებულია ზოგად ბიზნესზე); დიდწილად გამოუყენებელია. იგი ჩაფიქრებული იყო, როგორც ძირითადი ენა მონაცემთა მასობრივი დამუშავებისთვის მართვის სფეროებში
და ბიზნესი.

7.ADAარის პენტაგონის უნივერსალური ენის კონკურსის გამარჯვებული ენა (1979 წლის მაისი) 1975 წლიდან. დეველოპერები არიან მეცნიერთა ჯგუფი ჟან იხბიას ხელმძღვანელობით. გამარჯვებულ ენას ეწოდა ADA, ავგუსტა ადა ლავლეისის პატივსაცემად. ADA ენა არის ენის პირდაპირი შთამომავალი
პასკალი. ეს ენა განკუთვნილია დიდის შექმნისა და გრძელვადიანი (მრავალწლიანი) შენარჩუნებისთვის პროგრამული სისტემები, საშუალებას იძლევა პარალელური დამუშავება, პროცესის რეალურ დროში კონტროლი და ბევრი სხვა რამ, რისი მიღწევაც რთულია ან შეუძლებელია უფრო მარტივი ენების გამოყენებით.

8.სი(C – “si”); ფართოდ გამოიყენება სისტემის შესაქმნელად პროგრამული უზრუნველყოფა. დიდი კვალი დატოვა თანამედროვე პროგრამირება(პირველი ვერსია - 1972), ძალიან პოპულარულია პროგრამული სისტემების (მათ შორის ოპერაციული სისტემების) შემქმნელებს შორის. C აერთიანებს როგორც მაღალი დონის ენის, ასევე მანქანაზე ორიენტირებული ენის მახასიათებლებს, რაც საშუალებას აძლევს პროგრამისტს წვდომას ყველა მანქანის რესურსზე, რასაც ენები, როგორიცაა BASIC და Pascal, არ იძლევა.

9.C++(C++) C ენის ობიექტზე ორიენტირებული გაფართოება, რომელიც შეიქმნა Bjarne Stroustrup-ის მიერ 1980 წელს. ბევრი ახალი ძლიერი ფუნქცია, რომლებმაც მკვეთრად გაზარდა პროგრამისტის პროდუქტიულობა, გადაიდო C ენიდან მემკვიდრეობით მიღებულ გარკვეულ დაბალი დონის ბუნებაზე.

10.დელფი(დელფი); ობიექტზე ორიენტირებული „ვიზუალური“ პროგრამირების ენა; უკიდურესად პოპულარული ამ მომენტში. შექმნილია პასკალური ენის ბაზაზე Borland სპეციალისტების მიერ დელფური ენა, რომელსაც გააჩნია C და C++ ენების ძალა და მოქნილობა, აღემატება მათ ინტერფეისის მოხერხებულობითა და სიმარტივით, აპლიკაციების შემუშავებისას, რომლებიც უზრუნველყოფენ მონაცემთა ბაზებთან ურთიერთქმედებას და მხარდაჭერას სხვადასხვა ტიპის სამუშაოსთვის კორპორატიულ ქსელებში და ინტერნეტში.

11.ჯავა(ჯავა); პლატფორმაზე დამოუკიდებელი ობიექტზე ორიენტირებული პროგრამირების ენა, უაღრესად ეფექტური შესაქმნელად ინტერაქტიული ვებ გვერდები. ეს ენა Sun-მა შექმნა 90-იანი წლების დასაწყისში SI++-ის საფუძველზე. იგი შექმნილია C++-ზე დაფუძნებული აპლიკაციების განვითარების გასამარტივებლად მისგან ყველა დაბალი დონის ფუნქციის აღმოფხვრის გზით.

12.ლისპი(Lisp) - ფუნქციური ენაპროგრამირება. ფოკუსირებულია მონაცემთა სტრუქტურაზე სიის სახით და იძლევა ეფექტური დამუშავების საშუალებას დიდი მოცულობებიტექსტური ინფორმაცია.

13.Პროლოგი(პროგრამირება LOGic-ში – ლოგიკური პროგრამირება). ენის მთავარი მიზანი განვითარებაა ინტელექტუალური პროგრამებიდა სისტემები. Prolog არის პროგრამირების ენა, რომელიც შექმნილია სპეციალურად ფაქტებსა და წესებზე დაფუძნებული ცოდნის ბაზებთან მუშაობისთვის (სისტემების ერთ-ერთი ელემენტი ხელოვნური ინტელექტი). ენა ახორციელებს უკანდახევის მექანიზმს მსჯელობის უკანდახევის ჯაჭვის შესასრულებლად, რომელშიც გარკვეული დასკვნები ან დასკვნები ვარაუდობენ ჭეშმარიტად და შემდეგ ეს დაშვებები მოწმდება ცოდნის ბაზაზე, რომელიც შეიცავს ფაქტებსა და დასკვნის წესებს.
თუ ვარაუდი არ დადასტურდა, კეთდება დაბრუნება და კეთდება ახალი ვარაუდი. ენა ეფუძნება მათემატიკური მოდელიპრედიკატების გაანგარიშების თეორია.

პროგრამირების ენები ინტერნეტისთვის:

1. HTML.დოკუმენტების მომზადების ცნობილი ენა. ის ძალიან მარტივია და შეიცავს ელემენტარული ბრძანებებიტექსტის ფორმატირება, სურათების დამატება, შრიფტებისა და ფერების დაყენება, ბმულების და ცხრილების ორგანიზება.

2. PERL.იგი განკუთვნილი იყო როგორც საშუალება ეფექტური დამუშავებადიდი ტექსტური ფაილები, ტექსტური ანგარიშის შექმნა და ამოცანების მართვა.
Perl მნიშვნელოვნად უფრო ძლიერია, ვიდრე ის ენები, როგორიცაა C. იგი მოიცავს ბევრ ხშირად გამოყენებულ ფუნქციას სტრინგებთან, მასივებთან მუშაობისთვის, პროცესორების მართვისა და სისტემის ინფორმაციასთან მუშაობისთვის.

3. Tcl/Tk.ეს ენა ორიენტირებულია რუტინული პროცესების ავტომატიზაციაზე და შედგება ძლიერი ბრძანებებისგან. ეს არის სისტემური დამოუკიდებელი და მაინც გაძლევთ საშუალებას შექმნათ პროგრამები გრაფიკული ინტერფეისით.

4. VRML.შექმნილია ინტერნეტში ვირტუალური სამგანზომილებიანი ინტერფეისების ორგანიზებისთვის. ეს საშუალებას გაძლევთ აღწეროთ ტექსტის ფორმასხვადასხვა 3D სცენები, განათება და ჩრდილები, ტექსტურები.

პროგრამირების ენის არჩევანი მრავალ ფაქტორზეა დამოკიდებული: დანიშნულებაზე, წყაროს პროგრამების დაწერის სიმარტივეზე, შედეგად მიღებული ობიექტური პროგრამების ეფექტურობაზე და ა.შ. კომპიუტერის მიერ მოგვარებული პრობლემების მრავალფეროვნება განსაზღვრავს პროგრამირების ენების მრავალფეროვნებას.

საკონტროლო კითხვები

1. რა არის პროგრამირების სისტემები და რა კლასს მიეკუთვნება ისინი?

2. რა შედის პროგრამირების სისტემებში?

3. რა პროგრამირების ენაზე შეიქმნა პირველი პროგრამები?

4. რა ენებად იყოფა ისინი? პროცედურული ენები?

5. აღწერეთ დაბალი დონის ენები.

6. რომელი ენაა დაბალი დონის ენა?

7. დაბალი დონის ენების უპირატესობები.

8. აღწერეთ მაღალი დონის ენები.

9. მაღალი დონის ენების უპირატესობები.

10. მოიყვანეთ მაღალი დონის ენების მაგალითები.

11. რისთვის არის განკუთვნილი მთარგმნელები?

12. რით განსხვავდება შემდგენელი თარჯიმნისგან?

13. ინტერპრეტაციის ნაკლოვანებები (როგორც მთარგმნელის სახეობა).

14. როგორია პროგრამის შედგენის პროცესი?

15. რა მოქმედებები ტარდება შედგენისას?

16. რით განსხვავდება დატვირთვის მოდული ობიექტის მოდულისგან?

17. რით განსხვავდება პროცედურული პროგრამირება არაპროცედურული პროგრამისაგან?

18. რა სახის პროგრამირებაა არაპროცედურული?
პროგრამირება?

19. დეკლარაციული ენების თავისებურებები.

20. მოკლედ აღწერეთ პროგრამირების ენები: Fortran, BASIC, Pascal, Cobol.

21. მოკლედ აღწერეთ პროგრამირების ენები: Ada, C, C++, Delphi, Java.

22. მოიყვანეთ ობიექტზე ორიენტირებული ენების მაგალითები.

23. ენების რომელ კლასს მიეკუთვნება Lisp ენა?

24. ენების რომელ კლასს მიეკუთვნება Prolog?

ნამდვილად გვჭირდება ახალი პროგრამირების ენები? რა თქმა უნდა, ამ დროისთვის ისინი საკმაოდ საკმარისია. იმპერატიული, ფუნქციური, ობიექტზე ორიენტირებული, დინამიური, კომპილირებული, ინტერპრეტირებული და სკრიპტის ენებივერც ერთი დეველოპერი ვერ შეძლებს გაიგოს დღეს არსებული ყველა შესაძლებლობა.

და მაინც, ახალი ენების გაჩენა საკმაოდ გავრცელებული მოვლენაა. ზოგიერთი შექმნილია სტუდენტების ან ჰობისტების მიერ, როგორც ინდივიდუალური პროექტები, ზოგი კი პროდუქტია მსხვილი მწარმოებლებიპროგრამული უზრუნველყოფა. მცირე და საშუალო კომპანიებიც კი მონაწილეობენ ამ პროცესში, ქმნიან ენებს თავიანთი ინდუსტრიის საჭიროებებისთვის. მაშ, რატომ აგრძელებენ ადამიანები ბორბლის ხელახლა გამოგონებას არაერთხელ?

ფაქტია, რომ ამჟამად პოპულარული ენების სიმძლავრისა და მრავალფეროვნების მიუხედავად, არც ერთი სინტაქსი არ არის იდეალურად უნივერსალური. უფრო მეტიც, თავად პროგრამირება მუდმივად ვითარდება. მრავალბირთვიანი პროცესორების, ღრუბლოვანი პროგრამირების, მობილურობისა და განაწილებული არქიტექტურის ზრდამ შექმნა ახალი გამოწვევები დეველოპერებისთვის. უახლესი ფუნქციების, პარადიგმებისა და შაბლონების მხარდაჭერის დამატება არსებულ ენებზე, განსაკუთრებით ყველაზე პოპულარულ ენებზე, შეიძლება იყოს აბსოლუტური. ხანდახან საუკეთესო გამოსავალიარის ნულიდან დაწყება.

ამრიგად, აქ არის 10 უახლესი პროგრამირების ენა, რომელთაგან თითოეული უახლოვდება პროგრამული უზრუნველყოფის შემუშავების ხელოვნებას ახალი კუთხით, გადაჭრით გარკვეული პრობლემაან ენების სპეციფიკური ნაკლებობა, რომლებიც დღეს ყველაზე პოპულარულია. ზოგიერთი მათგანი უკვე დასრულებული პროექტია, ზოგი კი მხოლოდ განვითარების ადრეულ ეტაპზეა. სავარაუდოა, რომ ზოგიერთი მათგანი არასოდეს მოიპოვებს პოპულარობას, მაგრამ რომელიმე მათგანი შეიძლება იყოს რევოლუციური მიღწევა, რომელიც მთლიანად შეცვლის პროგრამირებას - ყოველ შემთხვევაში, სანამ ახალი ენები არ შეიქმნება.

JavaScript კარგია დასამატებლად ძირითადი ელემენტებივებ გვერდების ინტერაქტიულობა, მაგრამ როდესაც თქვენი ვებ აპლიკაციის კოდი შედგება ათასობით სტრიქონისგან, სუსტი ლაქებიამ ენის შესამჩნევი ხდება. სწორედ ამიტომ Google-მა შექმნა Dart, ენა, რომელიც კომპანიის აზრით, გახდება ახალი "მშობლიური" ენა ვებ პროგრამირებისთვის.

JavaScript-ის მსგავსად, Dart იყენებს სინტაქსებს და საკვანძო სიტყვები C ენაში გამოყენებულის მსგავსი, თუმცა, ერთი მნიშვნელოვანი განსხვავება ისაა, რომ სანამ JavaScript დაფუძნებულია პროტოტიპზე, Dart-ში ობიექტები განისაზღვრება კლასებისა და ინტერფეისების გამოყენებით, ისევე როგორც C++-ში ან Java-ში. Dart ასევე საშუალებას აძლევს პროგრამისტებს დამატებით დააყენონ ცვლადები სტატიკური ტიპები. იდეა მდგომარეობს იმაში, რომ Dart გახდეს ისეთივე ნაცნობი, დინამიური და მოქნილი ენა, როგორც JavaScript, ხოლო დეველოპერებს საშუალებას მისცემს დაწერონ კოდი, რომელიც არის სწრაფი, ადვილად შესასრულებელი და ძნელია შეცდომების პოვნა.

დარტი დღეს ფართოდ არ გამოიყენება. ის შექმნილია კლიენტზე ან სერვერზე (a la Node.js) გასაშვებად, მაგრამ ერთადერთი გზა Dart კოდის კლიენტური ვერსიის გასაშვებად არის მისი ჯვარედინი კომპილაცია JavaScript-ში. თუმცა, ამის შემდეგაც ის არ იმუშავებს ყველა ბრაუზერში. მაგრამ რადგან Dart გამოვიდა უფასო ლიცენზიაჩაწერეთ BSD, შემდეგ ნებისმიერი გამყიდველი, რომელიც ეთანხმება ამას Google-ის პირობები, თავისუფლად შეუძლია გამოიყენოს ეს ენა თავის პროდუქტებში. Google-ს რჩება მხოლოდ მთელი ინდუსტრიის დარწმუნება.

F# კოდი გარკვეულწილად მსგავსია OCaml კოდის, მაგრამ აქვს თავისი საინტერესო სინტაქსი. მაგალითად, მეცნიერული გამოთვლების გასაადვილებლად რიცხვითი ტიპებიმონაცემები F#-ში შეიძლება იყოს საზომი ერთეული. F# ასევე შეიცავს კონსტრუქციებს ასინქრონული I/O, პროცესორის პარალელიზაციისა და GPU გამომავალი გასაადვილებლად.

Microsoft Research-ში გესტაციის ხანგრძლივი პერიოდის შემდეგ, F# ახლა გამოდის Visual Studio 2010-თან ერთად. კიდევ უკეთესი, მაგრამ არა ტიპიური კორპორაციისთვის, Microsoft-მა შექმნა F# შემდგენელი და root ბიბლიოთეკა, რომელიც ხელმისაწვდომია Apache ღია ლიცენზიით. შეგიძლიათ უფასოდ დაიწყოთ და გამოიყენოთ იგი Mac სისტემებიდა Linux (მონო გაშვების დროის გამოყენებით).

ბუნებრივია, ამ ტიპის ინტეგრირებული სისტემით, საბოლოოდ რაღაც ჯადოსნური უნდა მოხდეს. Opa Runtime აერთიანებს საკუთარ ვებ სერვერს და მონაცემთა ბაზის მართვის სისტემას, რომელიც არ შეიძლება შეიცვალოს ცალკეული ალტერნატივებით. როგორც არ უნდა იყოს, ეს შეიძლება არ იყოს ისეთი დიდი საქმე, თუ გავითვალისწინებთ მონაცემთა ბაზაზე დაფუძნებული თანამედროვე ვებ აპლიკაციების შემუშავების შესაძლებლობას კოდის მხოლოდ რამდენიმე ათეული ხაზით. Opa უფასოა და ამჟამად ხელმისაწვდომია 64-ბიტიანი Linux და Mac OS X პლატფორმებისთვის, სხვა პორტების შემუშავებისას.

Fantom ნაწილდება უფასოდ აკადემიური უფასო ლიცენზიით 3.0 და ხელმისაწვდომია Windows და Unix-ის მსგავსი პლატფორმებისთვის (მათ შორის Mac OS X).

პროგრამირების ენა შესწავლილი #7: ზიმბუ

მისი შერეული ბუნების გამო, ზიმბუს სინტაქსი უნიკალური და სპეციფიკურია, მაგრამ ამავე დროს დიდი თანხაფუნქციები. ის იყენებს გამონათქვამებსა და ოპერატორებს, რომლებიც გამოიყენება C-ში, მაგრამ თავისი საკვანძო სიტყვებით, მონაცემთა ტიპებით და ბლოკის სტრუქტურებით. იგი მხარს უჭერს მეხსიერების მართვას, ძაფებსა და მილსადენებს.

ერთადერთი პრობლემა არის პორტაბელურობა. მიუხედავად იმისა, რომ Zimbu არის კომპილირებული ენა, მისი შემდგენელი აწარმოებს ANSI C კოდს და ბინარული ფაილებიშეიძლება შეიქმნას მხოლოდ პლატფორმებზე ჩაშენებული C კომპილატორით.

სამწუხაროდ, ზიმბუს პროექტი დამუშავების პროცესშია. შემდგენელი და რამდენიმე მაგალითი პროგრამის შექმნა შესაძლებელია თავად, მაგრამ ყველა რეალური Zimbu კოდი არ იქნება კომპილირებული და გაშვებული სწორად. ყველა დეკლარირებული ფუნქცია ჯერ არ არის შემუშავებული და ზოგიერთი უკვე წარმოდგენილი არ მუშაობს სწორად. ენის სპეციფიკაცია ასევე შეიძლება შეიცვალოს დროთა განმავლობაში, საჭიროების შემთხვევაში დაემატოს საკვანძო სიტყვები, ტიპები და სინტაქსი. შესაბამისად, დოკუმენტაციაც ჯერ კიდევ არასრულია. თუმცა, თუ გსურთ სცადოთ, წინასწარი კომუნალური საშუალებები უკვე ხელმისაწვდომია Apache ლიცენზიით.

გამოკვლეული პროგრამირების ენა #8: X10

პარალელური დამუშავება ოდესღაც სპეციალიზირებული ნიშა იყო პროგრამული უზრუნველყოფის შემუშავებაში, მაგრამ მრავალბირთვიანი პროცესორების და განაწილებული გამოთვლების ამაღლებასთან ერთად, პარალელიზმმა პოპულარობა მოიპოვა. სამწუხაროდ, ამჟამინდელი პროგრამირების ენები არ იცავენ ამ ტენდენციას. სწორედ ამიტომ, IBM Research ქმნის X10-ს, ენას, რომელიც შექმნილია სპეციალურად თანამედროვე პარალელური არქიტექტურისთვის, რომელიც მიზნად ისახავს დეველოპერის პროდუქტიულობის „ათჯერ“ გაზრდას.

X10-ში კონკურენტულობა შესაძლებელია PGAS (Partitioned Global Address Space) პროგრამირების მოდელის წყალობით. კოდი და მონაცემები ნაწილდება ბლოკებად და ნაწილდება სხვადასხვა "სივრცეში", რითაც ხელს უწყობს პროგრამის მასშტაბირებას ერთი ხრახნიანი პროტოტიპიდან (ერთი სივრცე) მრავალ ხრახნიან პროტოტიპამდე, რომელიც მუშაობს ერთ ან მეტ მრავალბირთვიან პროცესორზე (მრავალ სივრცეში) მაღალი ხარისხის კლასტერი.

X10 კოდი ყველაზე მეტად ჰგავს Java-ს. არსებითად, X10 გაშვების დრო ხელმისაწვდომია როგორც ჩაშენებული შესრულებადი, ასევე როგორც კლასის ფაილი JVM-ისთვის. X10 შემდგენელს შეუძლია აწარმოოს წყაროს კოდი C++ ან Java-ში. სამომავლოდ იგეგმება Java-სთან პირდაპირი თავსებადობის განვითარება.

ამასობაში ენა ვითარდება, თუმცა უკვე საკმაოდ განვითარებულია. შემდგენელი და გაშვების დრო ხელმისაწვდომია სხვადასხვა პლატფორმისთვის, მათ შორის Linux, Mac OS X და Windows. როგორც დამატებითი კომუნალური საშუალებებიარის Eclipse-ზე დაფუძნებული ინტერაქტიული განვითარების გარემო (IDE) და გამართავი, ორივე ლიცენზირებული Eclipse საჯარო ლიცენზიით.

გამოკვლეული პროგრამირების ენა #9: haXe

ბევრი ენა შეიძლება გამოყენებულ იქნას პორტატული კოდის დასაწერად. C კომპილატორები ხელმისაწვდომია თითქმის ყველა CPU არქიტექტურისთვის და Java bytecode იმუშავებს ყველგან, სადაც არის JVM. მაგრამ haXe (გამოითქმის hex) უფრო მეტია, ვიდრე უბრალოდ პორტატული. ეს არის მრავალ პლატფორმის ენა, რომელიც შეიძლება გამოყენებულ იქნას სხვადასხვა ენაზე საოპერაციო გარემო, დაწყებული ჩაშენებულიდან

არსებობს მრავალი გზა კონკრეტული პროგრამირების ენის პოპულარობის გასაზომად. მაგრამ ჩვენ გვჯერა, რომ სპეციალისტების მოთხოვნის ანალიზი ყველაზე ზუსტია. ის ნათლად აჩვენებს დეველოპერებს კარიერული პერსპექტივების გასაუმჯობესებლად საჭირო უნარებს.

ჩვენ გავაანალიზეთ Indeed.com-ზე გამოქვეყნებული სამუშაოები, რათა განვსაზღვროთ შვიდი ყველაზე მოთხოვნადი პროგრამირების ენა 2018 წელს. ზოგიერთი ენა, როგორიცაა Swift და Ruby, არ მოხვდა შვიდეულში, რადგან ისინი უფრო დაბალი მოთხოვნაა დამსაქმებლებს შორის.

Java-ზე მოთხოვნა 2018 წელს 2017 წელთან შედარებით დაახლოებით 6000 ვაკანსიით შემცირდა. მაგრამ ეს პროგრამირების ენა მაინც პოპულარულია. ჯავას იყენებს მილიონობით დეველოპერი და მილიარდობით მოწყობილობა მთელს მსოფლიოში 20 წელზე მეტი ხნის განმავლობაში. ის შეიძლება იმუშაოს ნებისმიერ აპარატურაზე და ოპერაციულ სისტემაზე ვირტუალური ხელსაწყოჯავა.

ყველა ანდროიდის აპლიკაციები Java-ზეა დაფუძნებული. Fortune 500 კომპანიების 90% იყენებს Java-ს, როგორც სერვერის პროგრამირების ენას.

2.პითონი

პითონის პოპულარობა გაიზარდა დაახლოებით 5000 ვაკანსიით. ეს არის პროგრამირების ენა ძირითადი მიზანი, გამოიყენება ვებ განვითარებისთვის. იგი ასევე ფართოდ გამოიყენება სამეცნიერო გამოთვლებში და მონაცემთა მოპოვებაში. მანქანათმცოდნეობის დეველოპერების მუდმივი მოთხოვნა იწვევს Python-ის მოთხოვნას.

3. JavaScript

JavaScript დღეს ისეთივე პოპულარულია, როგორც 2017 წელს. ამ პროგრამირების ენას იყენებს დეველოპერების 80% -ზე მეტი და ყველა საიტის 95% ვებ გვერდებზე დინამიური ელემენტების შესაქმნელად. უამრავ front-end JavaScript ჩარჩოს, როგორიცაა React და AngularJS, აქვს უზარმაზარი პოტენციალი. IoT და მობილური მოწყობილობები სულ უფრო პოპულარული ხდება, ამიტომ ჩვენ ეჭვი გვეპარება, რომ მალე JavaScript პროგრამისტებზე მოთხოვნის შემცირება დავინახოთ.

4. C++

C++-ზე მოთხოვნა 2017 წელთან შედარებით ცოტათი შეიცვალა. ეს პროგრამირების ენა გამოიყენება სისტემის/აპლიკაციის პროგრამული უზრუნველყოფის, თამაშის განვითარების, დრაივერების, კლიენტ-სერვერის აპლიკაციების შესაქმნელად. ბევრი პროგრამისტი თვლის, რომ C++ უფრო რთულია, ვიდრე პროგრამირების ენები, როგორიცაა Python ან JavaScript. მაგრამ ის კვლავ გამოიყენება მსხვილ საწარმოებში არსებულ ბევრ მემკვიდრეობით სისტემაში.

5. C#

C#-ის პოპულარობა (გამოითქმის "C sharp") წელს ოდნავ შემცირდა. C# არის ობიექტზე ორიენტირებული პროგრამირების ენა, რომელიც შექმნილია Microsoft.NET პლატფორმაზე განვითარებისთვის.

C#, ისევე როგორც C++, გამოიყენება ვიდეო თამაშების შემუშავებაში, ამიტომ დამწყებ პროგრამისტებმა ორივე ენა ერთდროულად უნდა დაეუფლონ.

6.PHP

ეს სერვერის ენაპროგრამირება ჩვენს რეიტინგში მეექვსე ადგილზე ავიდა (შარშანდელთან შედარებით). დეველოპერების უმეტესობა იყენებს PHP-ს იმ ფუნქციების განსახორციელებლად, რომლებსაც HTML არ უჭერს მხარს. ასევე MySQL მონაცემთა ბაზებთან ურთიერთობისთვის.

7. პერლი

Perl-ზე მოთხოვნა დაახლოებით 3000 ვაკანსიით შემცირდა და ის ჩვენს რეიტინგში მეშვიდე ადგილზე დარჩა. Perl კვლავაც პოპულარულია სისტემის და ქსელის ადმინისტრატორებში.

მომავლისკენ ხედვა

ეს არის პროგრამირების ენები, რომლებიც ჯერ არ მოხვდნენ ჩვენს რეიტინგში. მაგრამ 2018 წელს ისინი უფრო პოპულარული გახდა. თვალი ადევნეთ მათ მომავალში!

  • Swift: პროგრამირების ენა iOS-ისა და macOS-ისთვის, რომელიც გამოუშვა Apple-მა 2014 წელს, ჩვენს რეიტინგში მე-14 ნომერი. ეს გამოწვეულია იმით, რომ დეველოპერის ბევრ სამუშაოში მითითებულია მოთხოვნები, როგორც "iOS", კონკრეტული ენის მითითების გარეშე. Swift სტაბილურად იძენს პოპულარობას.
  • R: ჩვენს რეიტინგში მე-11 ადგილი დაიკავა. მაგრამ ჩვენ ველით, რომ ეს პროგრამირების ენა რამდენიმე წელიწადში გაივლის. იგი პოპულარობას იძენს როგორც საერთაშორისო, ასევე შეერთებულ შტატებში. R დეველოპერებზე მზარდი მოთხოვნა სულ უფრო მეტად აიხსნება აქტიური გამოყენებაენა მონაცემთა ანალიზში.
  • Rust: მიუხედავად იმისა, რომ Rust ჩვენს რეიტინგში დაბალ ადგილს იკავებს, მიხედვით Google-ის მიხედვითტენდენციები ის სტაბილურად ვითარდება.

სხვა ტექნოლოგიები, რომელთა შესახებაც უნდა იცოდეთ

ქვემოთ ჩამოთვლილი ტექნოლოგიები არ არის ფორმალურად პროგრამირების ენები. მაგრამ ისინი შედის იმ მოთხოვნების ჩამონათვალში, რომლებსაც დამსაქმებლები უყენებენ დეველოპერებს.

  • SQL: სტანდარტული შეკითხვის ენა, რომელიც შექმნილია მონაცემთა ბაზებში ინფორმაციის შესანახად და დასამუშავებლად. SQL ცოდნა დიდი მოთხოვნაა დამსაქმებლებს შორის. ის 30 ათასზე მეტ ვაკანსიაზეა ნახსენები.
  • .NET: Microsoft პლატფორმაპროგრამების შემუშავება დესკტოპ კომპიუტერები, მობილური მოწყობილობებიდა ვებ აპლიკაციები. მას იყენებენ პროგრამირების ენები, როგორიცაა C#, Visual Basic და F#. და ტექნოლოგიის კროს-პლატფორმული დანერგვა ვრცელდება .NET iOS-ისთვის, Linux-ისთვის და Android-ისთვის.
  • კვანძი: ღია კოდის გარემო საწყისი კოდი, რომელიც გაშვების საშუალებას გაძლევთ JavaScript კოდისერვერის მხარეს. ეს უზრუნველყოფს ერთი პროგრამირების ენის გამოყენების შესაძლებლობას მთელი ვებ აპლიკაციისთვის. ჩვენ გირჩევთ გარკვეული დრო დაუთმოთ Node.js-ის შესწავლას.
  • MEAN: MEAN სტეკი (MongoDB, ExpressJS, AngularJS და Node.js) მე-18 ადგილზეა ჩვენს რეიტინგში. სტეკის გამოყენება საშუალებას გაძლევთ შექმნათ JavaScript-ში სრულფასოვანი აპლიკაციები. MEAN-ის შესწავლა შექმნის საფუძველს ერთ-ერთი ყველაზე მეტად პოპულარული ენებიპროგრამირება მსოფლიოში.

სტატიის თარგმანი "2018 წლის 7 ყველაზე მოთხოვნადი პროგრამირების ენა"მომზადდა მეგობრული პროექტის გუნდის მიერ.

Კარგი ცუდი



გაქვთ შეკითხვები?

შეატყობინეთ შეცდომას

ტექსტი, რომელიც გაეგზავნება ჩვენს რედაქტორებს: