Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Programet
  • Nivelet e gjuhëve të programimit. Gjuhët e programimit të nivelit të lartë dhe të ulët: cilat duhet të mësoni

Nivelet e gjuhëve të programimit. Gjuhët e programimit të nivelit të lartë dhe të ulët: cilat duhet të mësoni

Gjuhë programimi

Gjuhë programimi- një sistem zyrtar shenjash për regjistrimin e programeve kompjuterike. Një gjuhë programimi përcakton një grup rregullash leksikore, sintaksore dhe semantike që përcaktojnë pamjen e programit dhe veprimet që ekzekutuesi (kompjuteri) do të kryejë nën kontrollin e tij.

  • Funksioni: një gjuhë programimi është menduar për të shkruar programe kompjuterike që përdoren për të transmetuar instruksione në një kompjuter për kryerjen e një procesi të caktuar kompjuterik dhe organizimin e kontrollit të pajisjeve individuale.
  • Detyra: një gjuhë programimi ndryshon nga gjuhët natyrore në atë që është krijuar për të transferuar komanda dhe të dhëna nga personi në kompjuter, ndërsa gjuhët natyrore përdoren për të komunikuar midis njerëzve. Është e mundur të përgjithësohet përkufizimi i "gjuhëve të programimit" - është një mënyrë për të transmetuar komanda, urdhra, udhëzime të qarta për veprim; ndërsa gjuhët njerëzore shërbejnë edhe për shkëmbimin e informacionit.
  • Ekzekutimi: një gjuhë programimi mund të përdorë konstruksione speciale për të përcaktuar dhe manipuluar strukturat e të dhënave dhe për të kontrolluar procesin e llogaritjes.

Standardizimi i gjuhëve të programimit

Një gjuhë programimi mund të përfaqësohet si një grup specifikash që përcaktojnë sintaksën dhe semantikën e saj.

Janë krijuar standarde ndërkombëtare për shumë nga gjuhët e programimit të përhapura. Organizata specifike përditësojnë dhe publikojnë rregullisht specifikimet dhe përkufizimet formale të gjuhës përkatëse. Në kuadër të komiteteve të tilla, zhvillimi dhe modernizimi i gjuhëve programuese vazhdon dhe po trajtohen çështjet e zgjerimit apo mbështetjes së ndërtimeve ekzistuese dhe të reja gjuhësore.

Llojet e të dhënave

Kompjuterët dixhitalë modernë janë zakonisht binarë dhe të dhënat ruhen në një kod binar (binar) (megjithëse implementimet në sisteme të tjera numrash janë gjithashtu të mundshme). Këto të dhëna zakonisht pasqyrojnë informacione nga bota reale (emra, llogari bankare, matje, etj.) që përfaqësojnë koncepte të nivelit të lartë.

Sistemi i veçantë me të cilin organizohen të dhënat në program është sistemi i tipit gjuhë programimi; zhvillimi dhe studimi i sistemeve të tipit njihet si teoria e tipit. Gjuhët mund të klasifikohen si sisteme shtypur në mënyrë statike dhe gjuhët me shtypje dinamike.

Gjuhët e shtypura në mënyrë statike mund të ndahen më tej në gjuhët me deklaratë e detyrueshme ku çdo deklaratë variabli dhe funksioni ka një deklaratë të tipit të detyrueshëm, dhe gjuhët me llojet e konstatuara... Ndonjëherë quhen gjuhë të shtypura në mënyrë dinamike i shtypur latent.

Strukturat e të dhënave

Sistemet e tipit në gjuhët e nivelit të lartë lejojnë përcaktimin e llojeve komplekse, të përbëra, të ashtuquajturat struktura të dhënash. Në mënyrë tipike, llojet e të dhënave strukturore formohen si produkt kartezian i llojeve bazë (atomike) dhe llojeve të përbëra të përcaktuara më parë.

Strukturat bazë të të dhënave (listat, radhët, tabelat hash, pemët binare dhe çiftet) shpesh përfaqësohen me sintaksë të veçantë në gjuhët e nivelit të lartë. Të dhëna të tilla strukturohen automatikisht.

Semantika e gjuhëve të programimit

Ka disa qasje për të përcaktuar semantikën e gjuhëve të programimit.

Varietetet më të përhapura nga tre të mëposhtmet janë: operative, derivative (aksiomatike) dhe denotative (matematikore).

  • Kur përshkruani semantikën brenda operativ përqasja, ekzekutimi i konstruksioneve të një gjuhe programimi zakonisht interpretohet me ndihmën e ndonjë kompjuteri imagjinar (abstrakt).
  • Derivative semantika përshkruan pasojat e ekzekutimit të konstrukteve gjuhësore duke përdorur gjuhën e logjikës dhe vendosjen e kushteve para dhe pas.
  • Kombetare semantika funksionon me koncepte tipike të matematikës - grupe, korrespondenca, si dhe gjykime, pohime etj.

Paradigma e programimit

Një gjuhë programimi është ndërtuar në përputhje me një ose një model tjetër llogaritës bazë dhe paradigmë programimi.

Përkundër faktit se shumica e gjuhëve janë të përqendruara në modelin e llogaritjes imperative të specifikuar nga arkitektura e kompjuterit von Neumann, ka qasje të tjera. Mund të përmendim gjuhët me një model llogaritës të grumbulluar (Fort, Factor, PostScript, etj.), si dhe programim funksional (Lisp, Haskell, etj.) dhe programim logjik (Prolog) dhe gjuhën REFAL, bazuar në llogaritjen. modeli i prezantuar nga matematikani sovjetik A A. Markov Jr.

Aktualisht, gjuhët e programimit të orientuara drejt problemeve, deklarative dhe vizuale po zhvillohen gjithashtu në mënyrë aktive.

Mënyrat për të zbatuar gjuhët

Gjuhët e programimit mund të zbatohen si të përpiluara dhe interpretuara.

Një program në një gjuhë të përpiluar duke përdorur një përpilues (program special) konvertohet (përpilohet) në kodin e makinës (një grup udhëzimesh) për një lloj të caktuar procesori dhe më pas grumbullohet në një modul të ekzekutueshëm që mund të lansohet për ekzekutim si një program i veçantë. . Me fjalë të tjera, përpiluesi përkthen kodin burimor të një programi nga një gjuhë programimi e nivelit të lartë në kode binare të udhëzimeve të procesorit.

Nëse programi është shkruar në një gjuhë të interpretuar, atëherë përkthyesi ekzekuton (interpreton) drejtpërdrejt tekstin burimor pa përkthim paraprak. Në këtë rast, programi mbetet në gjuhën origjinale dhe nuk mund të hapet pa një përkthyes. Një procesor kompjuteri, në këtë drejtim, mund të quhet një përkthyes për kodin e makinës.

Ndarja në gjuhë të përpiluara dhe të interpretuara është e kushtëzuar. Pra, për çdo gjuhë të përpiluar tradicionalisht, siç është Pascal, mund të shkruani një përkthyes. Për më tepër, shumica e përkthyesve modernë "të pastër" nuk ekzekutojnë drejtpërdrejt konstruksione gjuhësore, por i përpilojnë ato në disa paraqitje të ndërmjetme të nivelit të lartë (për shembull, me çreferencim të ndryshueshëm dhe zgjerim makro).

Ju mund të krijoni një përpilues për çdo gjuhë të interpretuar - për shembull, një gjuhë Lisp e interpretuar në mënyrë origjinale mund të përpilohet pa asnjë kufizim. Kodi i krijuar në kohën e ekzekutimit gjithashtu mund të përpilohet në mënyrë dinamike në kohën e ekzekutimit.

Si rregull, programet e përpiluara funksionojnë më shpejt dhe nuk kërkojnë programe shtesë për ekzekutim, pasi ato tashmë janë përkthyer në gjuhën e makinës. Në të njëjtën kohë, sa herë që ndryshon teksti i programit, ai duhet të ripërpilohet, gjë që ngadalëson procesin e zhvillimit. Për më tepër, një program i përpiluar mund të funksionojë vetëm në të njëjtin lloj kompjuterësh dhe, si rregull, nën të njëjtin sistem operativ për të cilin është krijuar përpiluesi. Kërkohet një përmbledhje e re për të krijuar një skedar të ekzekutueshëm për një lloj tjetër makinerie.

Gjuhët e interpretuara kanë disa aftësi specifike shtesë (shih më lart), përveç kësaj, programet në to mund të hapen menjëherë pas modifikimit, gjë që e bën më të lehtë zhvillimin. Një program gjuhësor i interpretuar shpesh mund të ekzekutohet në lloje të ndryshme makinerish dhe sistemesh operative pa përpjekje shtesë.

Sidoqoftë, programet e interpretuara janë dukshëm më të ngadalta për t'u ekzekutuar sesa programet e përpiluara; për më tepër, ato nuk mund të ekzekutohen pa një program përkthyes.

Kjo qasje, në njëfarë kuptimi, ju lejon të përdorni avantazhet e interpretuesve dhe përpiluesve. Duhet përmendur se ka gjuhë që kanë edhe përkthyes edhe përpilues (Forth).

Simbolet e përdorura

Gjuhët moderne të programimit janë krijuar për të përdorur ASCII, domethënë disponueshmërinë e të gjithëve grafike Karakteret ASCII janë një kusht i domosdoshëm dhe i mjaftueshëm për regjistrimin e çdo konstrukti gjuhësor. Menaxherët Karakteret ASCII përdoren në një masë të kufizuar: lejohen vetëm kthimi i karrocës CR, furnizimi i linjës LF dhe skeda horizontale HT (nganjëherë edhe skeda vertikale VT dhe furnizimi i faqes FF).

Gjuhët e hershme, që datojnë në epokën e karaktereve 6-bit, përdorën një grup më të kufizuar. Për shembull, alfabeti Fortran përmban 49 karaktere (përfshirë hapësirën): A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 = + - * / (). , $":

Një përjashtim i dukshëm është gjuha APL, e cila përdor shumë karaktere të veçanta.

Përdorimi i karaktereve jo-ASCII (si karakteret KOI8-R ose karakteret Unicode) varet nga zbatimi: ndonjëherë ato lejohen vetëm në komente dhe konstante karakteresh / vargjesh, dhe ndonjëherë ato lejohen vetëm në identifikues. Në BRSS, kishte gjuhë ku të gjitha fjalët kyçe shkruheshin me shkronja ruse, por gjuhë të tilla nuk fituan shumë popullaritet (me përjashtim të gjuhës së programimit Embedded 1C: Enterprise).

Zgjerimi i grupit të karaktereve kufizohet nga fakti se shumë projekte të zhvillimit të softuerit janë ndërkombëtare. Do të ishte shumë e vështirë të punohej me një kod ku emrat e disa variablave janë të shkruar me shkronja ruse, të tjera në arabisht dhe të tjerë me shkronja kineze. Në të njëjtën kohë, për të punuar me të dhënat e tekstit, gjuhët e programimit të gjeneratës së re (Delphi 2006, Java) mbështesin Unicode.

Klasat e gjuhëve të programimit

Shiko gjithashtu

Shënime (redakto)

Letërsia

  • Hal Abelson, Gerald Jay Sussman. Struktura dhe interpretimi i programeve kompjuterike
  • Robert W. Sebesta. Konceptet bazë të gjuhëve të programimit = Konceptet e gjuhëve të programimit / Per. nga anglishtja - Ed. 5. - M .: Williams, 2001 .-- 672 f. - 5000 kopje. - ISBN 5-8459-0192-8 (rusisht), ISBN 0-201-75295-6 (anglisht)
  • Wolfenhagen V.E. Ndërtimet e gjuhëve të programimit. Metodat e përshkrimit. - M .: Qendra YurInfoR, 2001 .-- 276 f. - ISBN 5-89158-079-9
  • Parondzhanov V.D. Si të përmirësoni punën e mendjes. Algoritme pa programues - është shumë e lehtë! - M .: Delo, 2001 .-- 360 f. - ISBN 5-7749-0211-0
  • F. Biancuzzi, C. Warden. Pionierët e programimit. Biseda me krijuesit e gjuhëve më të njohura të programimit. - SPb. : Symbol-Plus, 2010 .-- 608 f. - ISBN 978-5-93286-170-7

Lidhjet

  • Lista e gjuhëve (anglisht) - më shumë se 2500 gjuhë me një përshkrim të shkurtër
  • Historia e Gjuhëve Kompjuterike (Anglisht) - historia e gjuhëve të programimit (nga 1954 deri në maj 2004) (përmban një diagram të përditësuar rregullisht)
  • Shembuj - shembuj programimi në 162 gjuhë
  • Popullariteti i Gjuhëve të Programimit - 2004 studim mbi popullaritetin e gjuhëve programuese
  • 10 gjuhë programimi për të mësuar (2006)
  • Indeksi i Komunitetit të Programimit (eng.) - vlerësimi i përditësuar rregullisht i popullaritetit të gjuhëve të programimit
  • Standardet e gjuajtjes së gjuhës kompjuterike - Krahasimi i gjuhëve të programimit sipas efikasitetit
  • Gjuhët e programimit që janë të dashuruara (eng.) - krahasimi i gjuhëve të programimit për "dashuri" dhe "urrejtje" ndaj tyre

Fondacioni Wikimedia. 2010.

Klasifikimi i gjuhëve të programimit

Në agimin e epokës kompjuterike, kodi i makinës ishte mjeti i vetëm i komunikimit njeri-kompjuter. Arritja e madhe e krijuesve të gjuhëve të programimit ishte se ata arritën ta bënin vetë kompjuterin të funksiononte si përkthyes nga këto gjuhë në kodin e makinës.

Gjuhët ekzistuese të programimit mund të ndahen në dy grupe: procedurale dhe joprocedurale (shih Figurën 4.1).

Programet procedurale (ose algoritmike) janë një sistem recetash për zgjidhjen e një problemi specifik. Roli i kompjuterit reduktohet në zbatimin mekanik të këtyre udhëzimeve.

Gjuhët procedurale ndahen në gjuhë të nivelit të ulët dhe të lartë.

Llojet e ndryshme të procesorëve kanë grupe të ndryshme instruksionesh. Nëse një gjuhë programimi fokusohet në një lloj specifik procesori dhe merr parasysh veçoritë e tij, atëherë quhet një gjuhë programimi e nivelit të ulët.
Kjo do të thotë që operatorët e gjuhës janë afër kodit të makinës dhe janë të fokusuar në udhëzime specifike të procesorit.

Oriz. 4.1. Klasifikimi i përgjithshëm i gjuhëve të programimit

Gjuhët e nivelit të ulët (të orientuara nga makina) ju lejojnë të krijoni programe nga kodet e makinës, zakonisht në formë heksadecimal. Është e vështirë të punosh me to, por programet e krijuara me ndihmën e tyre nga një programues shumë i aftë zënë më pak hapësirë ​​​​memorie dhe funksionojnë më shpejt. Duke përdorur këto gjuhë, është më i përshtatshëm për të zhvilluar programe të sistemit, drejtues (programe për kontrollin e pajisjeve kompjuterike) dhe disa lloje të tjera programesh.

Gjuha e nivelit të ulët (e orientuar nga makina) është montues, i cili thjesht përfaqëson çdo instruksion të kodit të makinës, jo si numra, por duke përdorur shënime simbolike konvencionale të quajtura
mnemonikë.

Me ndihmën e gjuhëve të nivelit të ulët, krijohen programe shumë efikase dhe kompakte, pasi zhvilluesi ka akses në të gjitha aftësitë e procesorit.

Gjuhë programimi të nivelit të lartë shumë më afër dhe më e kuptueshme për një person sesa për një kompjuter. Veçoritë e arkitekturave specifike kompjuterike nuk merren parasysh në to, prandaj, programet e krijuara në nivelin e kodit burimor janë lehtësisht të lëvizshme në platforma të tjera për të cilat është krijuar një përkthyes i kësaj gjuhe. Është shumë më e lehtë për të zhvilluar programe në gjuhë të nivelit të lartë me komanda të qarta dhe të fuqishme, dhe ka më pak gabime gjatë krijimit të programeve.

Avantazhi kryesor i gjuhëve algoritmike të nivelit të lartë është aftësia për të përshkruar programe për zgjidhjen e problemeve në një formë që është më e përshtatshme për perceptimin njerëzor. Por meqenëse secila familje e kompjuterëve ka gjuhën e saj specifike të brendshme (makine) dhe mund të ekzekutojë vetëm ato komanda që janë të shkruara në këtë gjuhë, programet speciale të përkthyesve përdoren për të përkthyer programet burimore në gjuhën e makinës.

Të gjithë përkthyesit punojnë sipas njërit nga dy parimet: interpretimi ose përpilimi.

Interpretimi nënkupton përkthimin operator nga operatori dhe ekzekutimin e mëpasshëm të operatorit të përkthyer të programit origjinal. Në këtë drejtim, mund të vihen re dy të meta të metodës së interpretimit: së pari, programi interpretues duhet të jetë në memorien e kompjuterit gjatë gjithë procesit të ekzekutimit të programit origjinal, domethënë duhet të zërë një sasi të caktuar memorie; së dyti, procesi i përkthimit të të njëjtit operator përsëritet aq herë sa duhet të ekzekutohet kjo komandë në program, gjë që ul ndjeshëm performancën e programit.

Pavarësisht nga disavantazhet e treguara, përkthyes përkthyes morën shpërndarje të mjaftueshme, pasi ato janë të përshtatshme për zhvillimin dhe korrigjimin e programeve burimore.

përpilimi proceset e përkthimit dhe ekzekutimit janë të ndara në kohë: së pari, programi origjinal përkthehet plotësisht në gjuhën e makinës (pas së cilës prania e një përkthyesi në RAM bëhet e panevojshme), dhe më pas programi i përkthyer mund të ekzekutohet shumë herë. Rrjedhimisht, për të njëjtin program, përkthimi me metodën e kompilimit siguron një performancë më të lartë të sistemit kompjuterik duke reduktuar RAM-in e kërkuar.

Vështirësia e madhe në zhvillimin e një përpiluesi në krahasim me një përkthyes nga e njëjta gjuhë shpjegohet me faktin se përpilimi i një programi përfshin dy hapa: analizën, d.m.th., përcaktimin e korrektësisë së shkrimit të programit burimor në përputhje me rregullat për ndërtimin e konstruksioneve gjuhësore. e gjuhës hyrëse, dhe sinteza - gjenerimi i një programi ekuivalent në kodet e makinës. Përkthimi i përpilimit kërkon "shikim" të shumëfishtë të programit të transmetuar, d.m.th. përpilues-përpilues janë me shumë kalime: gjatë kalimit të parë kontrollojnë saktësinë e sintaksës së konstruksioneve gjuhësore të operatorëve individualë në mënyrë të pavarur nga njëri-tjetri; gjatë kalimit tjetër kontrollojnë saktësinë e marrëdhënieve sintaksore ndërmjet operatorëve etj.

Programi i përpiluar që rezulton quhet moduli i objektit, i cili është një program ekuivalent në kodet e makinerive, por jo i "lidhur" me adresa specifike të RAM-it. Prandaj, para ekzekutimit, moduli i objektit duhet të përpunohet nga një program i veçantë i sistemit operativ (redaktori i lidhjes) dhe të shndërrohet në moduli i ngarkimit.

Krahas përkthyesve-interpretuesve dhe përkthyesve-përpiluesve të sipërpërmendur, në praktikë përdoren edhe përkthyesit. përkthyes-përpilues, të cilat kombinojnë avantazhet e të dy parimeve të përkthimit: në fazën e zhvillimit dhe korrigjimit të programeve, përkthyesi punon në modalitetin e përkthyesit dhe pasi të përfundojë procesi i korrigjimit, programi burim ripërkthehet në modulin e objektit (d.m.th. , me metodën e përpilimit). Kjo bën të mundur thjeshtimin dhe përshpejtimin e ndjeshëm të procesit të kompozimit dhe korrigjimit të programeve, dhe, për shkak të marrjes së mëvonshme të një moduli të objektit, të sigurojë ekzekutim më efikas të programit.

Programimi procedural klasik kërkon që programuesi të përshkruajë në detaje se si të zgjidhë një problem, d.m.th., të formulojë një algoritëm dhe shënimin e tij të veçantë. Sidoqoftë, vetitë e pritshme të rezultatit zakonisht nuk specifikohen. Konceptet bazë të gjuhëve të këtyre grupeve janë operatori dhe të dhënat.
Në një qasje procedurale, operatorët kombinohen në grupe - procedura. Programimi i strukturuar në tërësi nuk shkon përtej fushëveprimit të këtij drejtimi, ai vetëm rregullon gjithashtu disa teknika të dobishme
teknologjitë e programimit.

Një drejtim thelbësisht i ndryshëm në programim lidhet me metodologjitë (nganjëherë të quajtura "paradigma") të programimit joprocedural. Këto përfshijnë programimin e orientuar drejt objektit dhe atë deklarativ. Një gjuhë e orientuar nga objekti krijon një mjedis në formën e shumë objekteve të pavarura. Çdo objekt sillet si një kompjuter i veçantë, ato mund të përdoren për të zgjidhur problemet si "kuti të zeza" pa u thelluar në mekanizmat e brendshëm të funksionimit të tyre. Nga gjuhët e programimit të objekteve të njohura në mesin e profesionistëve, duhet përmendur para së gjithash C ++; për një rreth më të gjerë programuesish preferohen mjedise si Delphi dhe Visual Basic.



Kur përdorni një gjuhë deklarative, programuesi tregon strukturat fillestare të informacionit, marrëdhëniet midis tyre dhe cilat veti duhet të ketë rezultati. Në të njëjtën kohë, programuesi nuk ndërton procedurën për marrjen e tij ("algoritmi") (të paktën, në mënyrë ideale). Këto gjuhë u mungon koncepti i "operatorit" ("komandës"). Gjuhët deklarative mund të ndahen në dy familje - logjike (përfaqësuesi tipik është Prolog) dhe funksional (Lisp).

Le të karakterizojmë gjuhët më të famshme të programimit.

1.Fortran(Sistemi FORmula TRANSlating - sistemi i përkthimit të formulave); gjuha më e vjetër e përdorur në mënyrë aktive deri më sot në zgjidhjen e problemeve të orientimit matematik. Është një gjuhë klasike për programimin kompjuterik të problemeve matematikore dhe inxhinierike

2.THEMELORE(Kodi i udhëzimeve simbolike për të gjitha qëllimet fillestare - një kod udhëzues simbolik universal për fillestarët); pavarësisht nga shumë mangësi dhe një bollëk versionesh të pajtueshme - më të njohurit për sa i përket numrit të përdoruesve. Përdoret gjerësisht kur shkruani programe të thjeshta.

3.ALGOL(Gjuha ALGOritmike - gjuha algoritmike); luajti një rol të madh në teori, por tani pothuajse nuk përdoret kurrë për programim praktik.

4.PL / 1(PL / 1 Gjuha e programimit është gjuha e parë e programimit); gjuhë me shumë qëllime; pothuajse kurrë nuk është përdorur tani.

5.Paskalin(Pascal - emëruar sipas shkencëtarit Blaise Pascal); jashtëzakonisht popullor si kur mësoni programim ashtu edhe në mesin e profesionistëve. Krijuar në fillim të viteve 70 nga shkencëtari zviceran Niklaus Wirth. Pascal fillimisht u zhvillua si një gjuhë arsimore dhe, në të vërtetë, tani është një nga gjuhët kryesore për mësimdhënien e programimit në shkolla dhe universitete. Sidoqoftë, cilësitë e tij në total doli të ishin aq të larta saqë programuesit profesionistë gjithashtu e përdorin atë me dëshirë. Philippe Kahn, një francez që zhvilloi sistemin Turbo-Pascal, arriti sukses jo më pak mbresëlënës, përfshirë financiarisht. Thelbi i idesë së tij ishte të kombinonte fazat vijuese të përpunimit të programit - përpilimi, redaktimi i lidhjeve, korrigjimi dhe diagnostikimi i gabimeve - në një ndërfaqe të vetme. Versionet e Turbo-Pascal kanë vërshuar pothuajse të gjitha institucionet arsimore, qendrat e programimit dhe firmat private. Bazuar në gjuhën Pascal, janë krijuar disa gjuhë më të fuqishme (Modula, Ada, Delphi).

6.Cobol(Gjuhë e Përbashkët e Orientuar në Biznes - gjuhë e përgjithshme e orientuar drejt biznesit); kryesisht doli jashtë përdorimit. U konceptua si gjuha kryesore për përpunimin masiv të të dhënave në fushat e menaxhimit
dhe biznesi.

7.ADA; është gjuha fituese (maj 1979) në Konkursin Universal të Gjuhëve të Pentagonit që nga viti 1975. Zhvilluesit janë një grup shkencëtarësh të udhëhequr nga Jean Ihbia. Gjuha fituese u quajt ADA, pas Augusta Ada Lovelace. Gjuha ADA është trashëgimtari i drejtpërdrejtë i gjuhës
Paskalin. Kjo gjuhë është menduar për krijimin dhe mirëmbajtjen afatgjatë (afatgjatë) të sistemeve të mëdha softuerike, mundëson mundësinë e përpunimit paralel, kontrollin e procesit në kohë reale dhe shumë më tepër, gjë që është e vështirë ose e pamundur të arrihet me mjete më të thjeshta. gjuhët.

8.Si(C - "si"); përdoret gjerësisht në zhvillimin e softuerit të sistemit. Ka lënë një gjurmë të madhe në programimin modern (versioni i parë - 1972), është shumë i popullarizuar në mesin e zhvilluesve të sistemeve softuerike (përfshirë sistemet operative). C kombinon veçoritë e një gjuhe të nivelit të lartë dhe të një gjuhe të orientuar nga makina, duke i lejuar programuesit të aksesojë të gjitha burimet e makinës, gjë që gjuhët si Basic dhe Pascal nuk e bëjnë.

9.C ++(C ++); një zgjerim i orientuar nga objekti i gjuhës C, i krijuar nga Bjarne Stroustrup në 1980. Shumë veçori të reja të fuqishme që kanë përmirësuar në mënyrë dramatike produktivitetin e programuesit mbivendosen në një nivel të caktuar të trashëguar nga gjuha C.

10.Delfi(Delphi); gjuha e programimit "vizual" të orientuar nga objekti; jashtëzakonisht popullor për momentin. Gjuha Delphi e krijuar në bazë të gjuhës Pascal nga specialistët Borland, që zotëron fuqinë dhe fleksibilitetin e gjuhëve C dhe C ++, i tejkalon ato në komoditetin dhe thjeshtësinë e ndërfaqes kur zhvillon aplikacione që sigurojnë ndërveprim me bazat e të dhënave dhe mbështetje. lloje të ndryshme të punës brenda rrjeteve të korporatave dhe internetit ...

11.Java(Java); gjuhë programimi e pavarur e orientuar nga objekti në platformë, jashtëzakonisht efikase për krijimin e faqeve interaktive të internetit. Kjo gjuhë u krijua nga Sun në fillim të viteve '90 bazuar në C ++. Ai është krijuar për të thjeshtuar zhvillimin e aplikacioneve të bazuara në C ++ duke përjashtuar të gjitha veçoritë e nivelit të ulët prej tij.

12.Lisp(Lisp) është një gjuhë programimi funksionale. Ai fokusohet në strukturën e të dhënave në formën e një liste dhe ju lejon të organizoni përpunim efikas të sasive të mëdha të informacionit të tekstit.

13.Prolog(PROgramimi në LOGic - programim logjik). Qëllimi kryesor i gjuhës është zhvillimi i programeve dhe sistemeve inteligjente. Prolog është një gjuhë programimi e krijuar posaçërisht për të punuar me bazat e njohurive bazuar në fakte dhe rregulla (një nga elementët e sistemeve të inteligjencës artificiale). Gjuha zbaton një mekanizëm kthimi prapa për kryerjen e një zinxhiri të kundërt arsyetimi, në të cilin supozohet se disa përfundime ose përfundime janë të vërteta, dhe më pas këto supozime testohen në një bazë njohurish që përmban fakte dhe rregulla konkluzionesh.
Nëse supozimi nuk konfirmohet, kryhet një kthim dhe një supozim i ri avancohet. Gjuha bazohet në një model matematikor të teorisë së llogaritjes së kallëzuesit.

Gjuhët e programimit për internet:

1. HTML. Një gjuhë e njohur për shkresat. Është shumë i thjeshtë dhe përmban komanda bazë për formatimin e tekstit, shtimin e fotove, vendosjen e shkronjave dhe ngjyrave, organizimin e lidhjeve dhe tabelave.

2. PERL. Ai u konceptua si një mjet për përpunimin me efikasitet të skedarëve të mëdhenj të tekstit, gjenerimin e raporteve tekstuale dhe menaxhimin e detyrave.
Perl është shumë më i fuqishëm se gjuhët si C. Ai prezanton shumë funksione të përdorura zakonisht për të punuar me vargje, vargje, menaxhimin e procesorëve, punën me informacionin e sistemit.

3. Tcl / Tk. Kjo gjuhë është e fokusuar në automatizimin e proceseve rutinë dhe përbëhet nga komanda të fuqishme. Ai është i pavarur nga sistemi dhe në të njëjtën kohë ju lejon të krijoni programe me një ndërfaqe grafike.

4. VRML. Krijuar për organizimin e ndërfaqeve virtuale 3D në internet. Kjo ju lejon të përshkruani në formë teksti skena të ndryshme tre-dimensionale, ndriçim dhe hije, tekstura.

Zgjedhja e një gjuhe programimi varet nga shumë faktorë: qëllimi, lehtësia e shkrimit të programeve burimore, efikasiteti i programeve të objekteve që rezultojnë, etj. Shumëllojshmëria e problemeve të zgjidhura nga një kompjuter përcakton shumëllojshmërinë e gjuhëve të programimit.

Pyetje kontrolli

1. Çka janë sistemet e programimit dhe cilës klasë programesh bëjnë pjesë?

2. Çfarë përfshihet në sistemet e programimit?

3. Në cilën gjuhë programimi u krijuan programet e para?

4. Në cilat gjuhë ndahen gjuhët procedurale?

5. Përshkruani gjuhët e nivelit të ulët.

6. Cila gjuhë është gjuhë e nivelit të ulët?

7. Përparësitë e gjuhëve të nivelit të ulët.

8. Përshkruani gjuhët e nivelit të lartë.

9. Përparësitë e gjuhëve të nivelit të lartë.

10. Jepni shembuj të gjuhëve të nivelit të lartë.

11. Për çfarë shërbejnë përkthyesit?

12. Cili është ndryshimi midis një përpiluesi dhe një interpretuesi?

13. Mangësitë në interpretim (si një lloj përkthyesi).

14. Cili është procesi i përpilimit të një programi?

15. Çfarë veprimesh kryhen gjatë përpilimit?

16. Cili është ndryshimi midis një moduli të ngarkesës dhe një moduli të objektit?

17. Cili është ndryshimi ndërmjet programimit procedural dhe programimit joprocedural?

18. Cilat lloje të programimit janë joprocedurale
programim?

19. Veçori e gjuhëve deklarative.

20. Përshkruani shkurtimisht gjuhët e programimit: Fortran, BASIC, Pascal, Cobol.

21. Përshkruani shkurtimisht gjuhët programuese: Ada, C, C ++, Delphi, Java.

22. Jepni shembuj të gjuhëve të orientuara nga objekti.

23. Cilës klasë të gjuhëve i përket Lisp?

24. Cilës klasë të gjuhëve i përket gjuha Prolog?

Zalina 13 janar 2016 ora 15:42

Gjuhë të ndryshme programimi dhe fushat e tyre të aplikimit. Leksion në Yandex

  • Blogu i kompanisë Yandex,
  • Zhvillimi i faqes në internet,
  • Programimi,
  • Programimi industrial

Ne vendosëm t'i kushtojmë postimin tonë të parë këtë vit një teme shumë themelore, një leksion mbi të cilin u mbajt në Small SHAD. Nxënësit e shkollave të mesme që janë të interesuar për teknologjinë janë të angazhuar në të, prandaj dhe specifika e prezantimit - ligjërata do të jetë veçanërisht interesante për ata që sapo kanë filluar të programojnë dhe po mendojnë për drejtimin në të cilin do të zhvillohen. Për ta, Yandex ka një kurs "Hyrje në Programim (C ++)", i cili mund të merret në platformën Stepic.org.

Lektor Mikhail Gustokashin - Kurator i Programeve Akademike në Yandex, Drejtor i Qendrës për Olimpiadat Studentore, Fakulteti i Shkencave Kompjuterike, HSE. Mikhail ka trajnuar dhjetëra fitues dhe fitues të çmimeve të Olimpiadave të Programimit Gjith-Rus.

Në kuadër të leksionit tregohet se cilat janë gjuhët e programimit, si ndryshojnë, si u shfaqën dhe cilat janë më të mira dhe cilat janë më të këqija. Në fillim, do të flasim pak për historinë e gjuhëve - si u shfaqën, si filluan të programojnë njerëzit, si u zhvillua gjithçka, çfarë po ndodh tani. Në pjesën e dytë do të trajtohet se për cilat detyra është e përshtatshme cila gjuhë, si të "zgjidhni gjuhën tuaj të preferuar dhe të shijoni jetën". Pedagogu do të flasë edhe pak se si, sipas tij, të mësohen të gjitha këto dhe më pas të punësohen.

Si gjithmonë, nën prerje është një transkript i detajuar i leksionit në mënyrë që të mund të lundroni në përmbajtjen e tij.

Historia e gjuhëve të programimit

Le të fillojmë nga fillimi. Në fillim kompjuterët nuk kishin as tastierë! Kjo do të thotë, gjithçka ishte shumë e keqe - ata nuk kishin një tastierë ose një ekran, ata kishin letra me grushta (këto janë gjëra të tilla me vrima ose pa vrima). Prandaj, ose kunjat u futën atje, ose ato shkëlqenin atje me dritë. Nëse ka një vrimë (ose anasjelltas), do të thoshte zero ose një. Dhe programet në atë kohë shkruheshin duke përdorur kodet e makinës - çdo operacion në një kompjuter (mbledhje, zbritje, disa operacione më komplekse) kishte një lloj kodi makine. Vetë njerëzit zgjodhën këtë kod nga pjata, të gjitha llojet e adresave në kujtesë, ata e rrëzuan të gjithë me duart e tyre dhe e futën në lexues - dhe gjithçka u numërua. Sigurisht, puna e një programuesi ndoshta nuk ishte shumë interesante atëherë - të bënte vrima - dhe me zhvillimin e shkencës dhe teknologjisë, natyrisht, ata filluan të dilnin me lloj-lloj gjërash më "interesante". Për shembull, assembler (Assembler), i cili tashmë e bëri jetën pak më të lehtë.

Epo, si e bëri jetën më të lehtë? Në vend që të mbani mend se ekziston një lloj kodi "magjik" për komandën, u përdorën të gjitha llojet e fjalëve të ngjashme me anglishten "njerëzore" - disa shtoni ose lëvizin - mirë, dhe më pas regjistrat ose zonat e kujtesës, variabla me të cilat nevojiten këto. për të kryer operacione. Por është e qartë se kjo, në përgjithësi, kërkonte gjithashtu një sasi mjaft të madhe përpjekjesh mendore për të mbajtur parasysh se në cilin regjistër kemi çfarë qëndron, ku çfarë variablash dhe çfarë ndodh në përgjithësi. Pse ndodhi kjo? Sepse kompjuterët ishin "budallazë" dhe nuk mund të kuptonin asgjë më "të zgjuar". Në fakt, përpilimi i kodit të makinës nga assembler kërkon gjithashtu kohë, memorie (në atë kohë, natyrisht, nuk kishte mjaftueshëm).

Gradualisht, u bë e qartë se është shumë e vështirë të zhvillohen programe kaq të mëdha komplekse. Produktiviteti i programuesit në këto komanda ishte jashtëzakonisht i ulët - domethënë, ai shkruante disa rreshta në ditë (me kuptim), dhe secila rresht nuk bënte asgjë të veçantë - disa operacione të thjeshta aritmetike. Dhe njerëzit donin t'i bënin gjuhët shumë më të ngjashme me gjuhën njerëzore, në veçanti me anglishten, për ta bërë më të lehtë dhe më të përshtatshëm shkrimin e programeve. Dhe ne ikim!

Gjuhë të vjetra dhe të vdekura

Fortran u bë një nga gjuhët e para. Nga rruga, ai u rrëzua gjithashtu në kartat e grushtuara - kishte karta të posaçme të grushtuara për eliminimin e programeve Fortran. Por nëse e merrni këtë Fortran tani - për mendimin tim, është edhe diku midis 50-60. u shfaq - dhe përpiquni të shkruani diçka në të, do të jetë shumë e pakëndshme për ju, ju garantoj! Fortran-i modern është ende i gjallë sot, por është krejt ndryshe nga ai që ka qenë.

Gjuhë të tjera - tani do të shkruaj një gjë për të cilën ndoshta keni dëgjuar, pastaj vetëm në çdo ngjarje ku ata tregojnë për historinë e programimit - kjo është COBOL. Ishte një gjuhë për të shkruar aplikacione biznesi. Cilat janë aplikacionet e biznesit? Çdo transaksion në banka, diçka tjetër, e gjithë kjo shkruhej në Kobol. Natyrisht, nuk është shumë popullor me ne. Unë mendoj se vështirë se do të gjeni një programues në Kobol, në Moskë. Dhe diku jo në Moskë - me vështirësi edhe më të madhe. Por, çuditërisht, edhe 10 vjet më parë, më shumë se gjysma e të gjithë kodit të shkruar nga njerëzimi ishte shkruar në Cobol. Dhe deri më tani, një pjesë e konsiderueshme e të gjitha transaksioneve bankare kryhen duke përdorur programe të shkruara në të (COBOL), dhe ende njerëzit shkruajnë diçka në të.

Ekziston edhe një gjuhë "qesharake", ajo u quajt Algol (versioni i 68-të, i cili karakterizon vitin e krijimit të tij). Është një gjuhë algoritmike. Në përgjithësi, ata mundën të bënin diçka atje, por tani nuk jemi shumë të interesuar se çfarë mund të bëjnë ata. Dhe këtu mund të përfundojë ekskursioni ynë në antikitet dhe në gjuhë relativisht të papërdorura dhe të kalojë në atë që është ende gjallë (dhe që jeton në mënyrë aktive).

Gjuhë të vjetra por të gjalla

Algol u shpik në Evropë, dhe Fortran u përdor kryesisht në Shtetet - nuk ka dallime të mëdha. Çfarë tendence është e dukshme? Në fillim gjithçka ishte e vështirë dhe për të shkruar duhej të ishe thuajse inxhinier, inxhinier elektrik, të kuptosh se ku janë mbyllur kontaktet dhe diçka tjetër për programim. Pastaj, gjithashtu, ishte e nevojshme të ulesh me gjethet dhe të numërosh kujtimin, të kujdesesh për të. Dhe gradualisht gjithçka u bë më e thjeshtë, më e thjeshtë, më e thjeshtë dhe më pas edhe më e lehtë për programuesin - të mendojë sa më pak për një person, të bëjë sa më shumë që të jetë e mundur automatikisht. Rreth fundit të kësaj periudhe (lektori tregon Algol dhe Kobol), gjuhët fillojnë të shfaqen që, në një farë kuptimi, kanë "mbijetuar" deri më sot.

THEMELORE. Ndoshta disa njerëz ende shkruajnë diçka në të, të paktën unë pashë që në disa institucione ata japin mësim në QBasic - një dritare kaq blu ku shkruan "1989". Në përgjithësi, ai jeton "me fuqi dhe kryesor"! Ajo u shpik si një gjuhë për jo-programuesit. Në atë kohë, programuesi ishte një profesion kaq shumë i specializuar. Dhe këtu ata ju thonë: "Këtu kemi një gjuhë bazë të lezetshme, dhe çdo person i arsyeshëm do të marrë dhe do të shkruajë një program në të - lehtësisht". Përsëri, ai BASIC dhe ai modern BASIC është një ndryshim i madh. Të gjitha këto rreshta numërohen çdo 10, lloj-lloj GOTO-sh dhe tmerre të tjera - ato nuk kanë të bëjnë fare me BASIC-in modern dhe madje kanë pak lidhje me BASIC-in e 89-ës.

Një tjetër histori qesharake është gjuha Pascal, e njohur gjerësisht në qarqet universitare, kryesisht në Rusi dhe në vendet e ish-Bashkimit Sovjetik. Është përdorur dhe vazhdon të përdoret çuditërisht si gjuhë mësimore. Në pjesën tjetër të botës, është më pak e zakonshme, por është gjithashtu e gjallë dhe mirë. Ekziston një person i tillë Wirth - këtu ai është një shkencëtar, një teoricien. Ai mori pjesë në diskutimin e Algolit, nuk i pëlqeu ajo që ndodhi dhe doli me gjuhën e tij - Pascal. Dhe pastaj firma Borland (dhe para kësaj shumë firma të tjera - Apple ishte e angazhuar, veçanërisht) mori dhe shkatërroi gjithçka. Ai kishte një teori të bukur, të hollë - "çdo gjë do të jetë mirë" - dhe ata morën dhe mbushën atje atë që u duhet njerëzve për punë. Epo, nuk funksionoi aq mirë sa ai donte.

Dhe së fundi,. Xi u shpik nga inxhinierët. Nëse Pascal u shpik nga një shkencëtar, atëherë C u shpik nga Kernighan dhe Ritchie, ata punuan si inxhinierë në Bell. Si lindi? Në atë kohë, ishte e pamundur të shkruhej ndonjë gjë sistematike në këto gjuhë (lektori tregon Fortran, COBOL, Algol). Çfarë është "sistematik"? Për shembull, një sistem operativ, disa drejtues, diçka tjetër. Këto gjuhë ishin për matematikë, për biznes, për të gjitha ato gjëra. Dhe gjithçka tjetër ishte shkruar në Assembler. Kishte disa gjuhë, tani janë të vdekura, domethënë gjuha C nuk doli menjëherë nga Assembler, por përmes disa gjërave të ndërmjetme.

Cili është thelbi? Kernighan dhe Ritchie pëlqenin të luanin lodrën Asteroids - një anije kozmike fluturon, dhe ka asteroidë, ai qëllon mbi ta dhe ata shpërbëhen. Ata kishin një server në të cilin luanin, por kishte shumë njerëz atje dhe lodra po ngadalësohej. Dhe ata zbuluan diku në zyrën e tyre se kishin një lloj kompjuteri që askush nuk e përdor. Por kishte një problem - ishte e një arkitekture të ndryshme dhe loja ishte shkruar në Assembler.

Ata e rishkruan atë, natyrisht, madje i prenë disa veçori për të luajtur në të. Por kjo i bëri ata të mendojnë se rishkrimi për një arkitekturë të re çdo herë nuk është shumë i zgjuar. Dhe ata vendosën të shkruanin një gjuhë të nivelit të lartë që do të ishte e përshtatshme për programimin e sistemit, d.m.th., në të cilën do të ishte e mundur të menaxhohej memoria, në të cilën do të ishte e mundur të kuptonte se ku është diçka dhe si të aksesoni këto pjesë të memories. . Dhe kështu u shfaq gjuha C, e cila pati një ndikim të madh në gjithçka më vonë. Të gjitha ato (ligjëruesi tregon Algol, Fortran dhe gjuhë të tjera të përmendura) patën një ndikim të madh, por C - po ...

Prandaj, ajo ishte gjuha kryesore në Unix - një sistem operativ që ishte edhe më popullor në atë kohë sesa tani. Dhe rreth viteve 80, situata ishte diçka e tillë (lektorja tregon në Basic, C dhe gjuhë të tjera të përmendura). Le të themi se e gjithë kjo tashmë ka vdekur me dinakëri (lektori fshin referencat për Assembler, Fortran dhe Algol) ... Dhe në vitet '80, kompjuterët u bënë më të vegjël, më të zgjuar, më të lirë dhe njerëzit donin të gjitha llojet e çuditshmërive, me rregull për të jetuar edhe më mirë, për të jetuar edhe më argëtues.

Gjuhët amtare të viteve '80

Një nga çuditë e para ishte gjuha C ++. Gjuha C ka një numër të madh mangësish (epo, është thjesht vërtet e madhe) - mund të bëni gjithçka në të, duke përfshirë të qëlloni veten në këmbë, të qëlloni veten në këmbë me një trillim, në këmbën tjetër, të qëlloni me njërën këmbë. në këmbën tjetër, në përgjithësi - që dëshironi të bëni. Por në të njëjtën kohë, disa gjëra arkitekturore atje janë mjaft të vështira për t'u bërë - përsëri, si në Assembler, duhet të mbajmë shënim se ku jemi, çfarë dhe çfarë kujtese kemi ndarë; është atje gjatë gjithë kohës kjo memorie "rrjedh" diku - domethënë, ne kemi zgjedhur, kemi harruar të fshijmë, kemi fshirë gjënë e gabuar, kemi zvarritur nga memoria, në përgjithësi - kemi një mori problemesh.

C ++ u krijua fillimisht si një grup shtesash në gjuhën C që do të lehtësonin zhvillimin. Në atë kohë, programimi i orientuar nga objekti u bë modë dhe njerëzit vendosën që gjithçka mund të përshkruhet në formën e një hierarkie, domethënë, ju keni një top (abstrakt), ju trashëgoni prej tij një top futbolli, një volejboll, një top tjetër abstrakt. . Atëherë ishte në modë që "tani ne shkruajmë gjithçka në formën e një lloj hierarkie, dhe gjithçka do të jetë mirë, jeta do të përmirësohet, gjithçka do të jetë mirë dhe gjithçka". Në një farë kuptimi, C ++ zbatoi këtë qasje të objektit - nuk ishte gjuha e parë e programimit e orientuar nga objekti, por u bë mjaft e njohur dhe të gjitha llojet e veçorive filluan të shfaqen në të. Në të njëjtën kohë, C ++ ruajti përputhshmërinë pothuajse të plotë (në atë kohë) me gjuhën C, një program i shkruar në C në 99% të rasteve u përpilua me sukses si C ++ dhe madje funksionoi në të njëjtën mënyrë. Kjo kishte për qëllim të lehtësonte migrimin nga C në C ++.

Përveç qasjes së objektit (në C ++), Biblioteka Standarde e Modeleve (STL) u shfaq shpejt. Unë mendoj se në shkollë, ata që ende i mësonin Pascal-it zbuluan se, së pari, nuk kishit renditje të integruar atje (në Borland Pascal të lashtë, blu, tani është tashmë në versionet moderne) - ekziston një shembull (burimi) renditni, mund ta kopjoni dhe ngjisni. Por nëse doni të renditni numra të plotë këtu, këtu dëshironi numra realë, por këtu janë vargjet që mund të krahasohen me njëri-tjetrin, duhet të shkruani tre lloje të ndryshme që bëjnë saktësisht të njëjtën gjë, ata thjesht kanë lloje të ndryshme të dhënash. Kjo nuk është shumë e mirë, dhe shabllonet që nuk u shfaqën menjëherë në C ++ e bënë shumë më të lehtë këtë problem. Kjo do të thotë, ju kishit një program abstrakt që renditi me sukses diçka që mund të krahasohet me njëra-tjetrën.

Gjuhët e shkrimit nga vitet '90

Por koha nuk qëndroi ende, në vitet '80 ndodhën shumë gjëra interesante. Por diku rreth fundit të viteve '80 dhe '90, kompjuterët u bënë aq të mirë sa që tashmë ishte e mundur të bëheshin gjëra shumë të çuditshme dhe shumë joefektive. Në veçanti, këto ishin gjuhë skriptimi që nuk u përpiluan në kodin e makinës, por u interpretuan. BASIC u interpretua gjithashtu në një kohë, por këto gjuhë skriptimi u krijuan kryesisht për përpunimin e tekstit - për shembull, Perl, Python (nuk ishte shumë i famshëm atëherë), PHP, Ruby - këto janë gjuhët e skriptimit që janë në një ose në një shkallë tjetër ata ende jetojnë (të gjithë kanë arritur të shfaqen para vitit 2000, madje shumë më herët).

Le t'i kalojmë pak, sepse këto janë gjëra specifike dhe tani përdoren në shumë vende. Cila është ideja? Nëse nuk përpilojmë, atëherë mund të lejohen shumë më tepër. Për shembull, një program mund të shikojë kodin e tij dhe disi ta përdorë atë; ajo e di se çfarë po ndodh me të dhe për shkak të kësaj ajo mund të bëjë shumë gjëra interesante.

Perl ishte krijuar për përpunimin e fjalëve - në ato ditë kishte tashmë aq shumë memorie në kompjuterë sa që ishte e mundur të futej një tekst në të dhe të bëhej diçka e dobishme me këtë tekst (për shembull, numëroni fjalët, kërkoni për një lloj). Por, për mendimin tim, është projektuar nga njerëz që ishin pak jashtë mendjes së tyre, sepse ka një shaka të tillë për të: "Çdo grup personazhesh të shkruara është një program korrekt në Pearl". Për mendimin tim, mbi të mund të shkruash vetëm, nuk mund ta lexosh. Kur shikoj kodin në Perl dhe përpiqem të kuptoj diçka, nuk kuptoj asgjë. Ndoshta po ta njihja më mirë do të kuptoja diçka, por siç kam dëgjuar nga ata njerëz që ende dinë, thonë se është më e lehtë të rishkruhet. Kjo do të thotë, programet janë të shkurtra dhe vërtet më të lehta për t'u rishkruar sesa për të kuptuar se çfarë është atje dhe për ta rregulluar atë.

Rreth kësaj kohe, në mesin e viteve '90, u shfaq Interneti. Në fillim, ishte postë, faqe me HTML statike, por njerëzit donin të shtonin një lloj dinamike atje, në mënyrë që gjithçka të ndodhte në mënyrë dinamike për ne, të plotësoheshin disa formularë, libra të ftuar për të bërë dhe diçka tjetër. Prandaj, kjo kërkonte një lloj ndërveprimi, ata dolën me një protokoll, si ndërvepron dhe, më e rëndësishmja, gjenerimin e këtyre faqeve statike (me kusht) që do t'i "pështyhen" përdoruesit në përgjigje të kërkesës së tij.

Në përgjithësi, asgjë përveç Pearl nuk përshtatej në atë kohë. Ishte një ide e keqe të shkruash në C të pastër ose C ++ mbajtësin. Dhe për mungesë të një gjuhe më të mirë në atë kohë (dhe mjaft gjatë), Pearl ishte një gjuhë popullore për zhvillimin e uebit. Natyrisht, shkalla nuk është e krahasueshme me atë që po ndodh tani.

PHP erdhi si ... rastësisht. Një person shpejt ndaloi së bëri këtë - ai bëri faqen e tij të një lloji, ai kishte një lloj libri të të ftuarve, diçka tjetër, disa gjëra. Dhe ai shkroi një grup makrosh të një lloji për Pearl, të cilat dukeshin si C, sepse dinte të përdorte C-në, vetëm sepse ishte shumë komod. Dhe unë e quajta atë Faqja kryesore personale. E ndau dhe tha: "Njerëz, shikoni çfarë artikulli kam shkruar, gjithçka është shumë më e qartë këtu sesa në Pearl dhe ju mund ta modifikoni." Dhe njerëzit e pëlqyen.

Më pas ai e hodhi poshtë çështjen. Në përgjithësi, si rezultat, ky PHP filloi të jetojë dhe me kalimin e kohës u bë shumë më popullor se Perl. Por kjo "traumë e lindjes" e tij (ideja është si një grup makrosh për Pearl) bëri një shaka mjaft mizore me të. Gjuha doli të ishte e çuditshme. Kjo do të thotë, ai u zhvillua vetë, askush nuk e projektoi atë, askush nuk administroi procesin e zhvillimit (as kompania dhe as ndonjë person), por kishte shumë grupe, secila prej të cilave sharronte atë që pëlqente. Si rezultat, funksionet atje quhen ndryshe, nuk ka as një stil, gjithçka është përmes nënvizave, në përgjithësi, cilësimet janë këtu dhe atje, dhe se si do të funksionojë e gjitha nuk është shumë e qartë. Por ju mund të uleni dhe të shkruani në PHP për dy orë, sepse kështu e kishte menduar.

Python dhe Ruby: Ruby është më pak i njohur tani, Python është disi më i mirë "i prerë", le të flasim për të më vonë. Është e qartë se në ato ditë këto ishin (lektori tregon Perl, Python, Ruby, PHP) gjuhë shumë të specializuara për qëllime shumë të specializuara. Në përgjithësi, asnjë programim sistemi, asnjë logjikë biznesi nuk ishte shkruar në to në atë kohë, dhe tani nuk e bën shumë këtë.

Gjuhët e përpiluara nga vitet '90

Ne do të shkojmë pothuajse në të njëjtën kohë, por në drejtimin tjetër. Në atë kohë, ne përdorëm C ++ për pothuajse gjithçka që duhej të shkruhej jo për ueb, jo për përpunim teksti, por për aplikacione të thjeshta, për sisteme operative, për lodra - në përgjithësi, për çdo gjë. Por C ++ është në të vërtetë një gjuhë rrëqethëse. Pse? Sepse, së pari, ai trashëgoi të gjitha problemet C për shkak të pajtueshmërisë së prapambetur. Aty mund të vritet ende në një milion mënyra të ndryshme, të njëjtat që ishin në C (natyrisht, mënyra të reja u shtuan në C ++). Në të njëjtën kohë, nëse shkruani gjithçka mirë dhe saktë, siç konceptohet nga autorët e C ++, atëherë, sigurisht, ishte e pamundur të vrisje veten me metodat e vjetra dhe duket se kishte më pak prej tyre. Megjithatë, ajo kishte një model objekti shumë të çuditshëm të veçantë. Ndarja e programit në module, në pjesë të një lloji në përgjithësi erdhi nga C (nëse mund të shkruani përfshini në C ose C ++ - në fakt, ai u konceptua si thjesht futja e tekstit të bibliotekës në programin tuaj, në në fund, kur shkruani një grup përfshirjesh, keni gjithçka - nëse është "primitive", siç ishte në fillim - gjithçka futet në një skedar dhe më pas të gjitha kërkon një kohë tmerrësisht të gjatë për t'u përpiluar, sepse shkon rreth disa herë, versionet janë edhe më të mira.

Në përgjithësi, C ++ ka shumë disavantazhe. Kualifikimet e një programuesi duhet të ishin të larta për të shkruar në C ++, dhe programues të tillë ishin të shtrenjtë (si trajnimi ashtu edhe diçka tjetër, domethënë është e vështirë të gjesh programues në treg, ata duhet të paguajnë shumë, mirë, në përgjithësi, ky nuk është rasti ...). Dhe kompjuterët tanë po numërohen gjithnjë e më shpejt, po bëhen më të lirë, njerëzit blejnë vetë kompjuterë të rinj dhe duan më shumë aplikacione, më shumë lodra për telefonin, në përgjithësi - më shumë gëzim.

Kështu u shfaq Java (Java). Aty, gjithashtu, lidhet një histori mjaft qesharake, se si u shfaq emri në këtë gjuhë. Ka programues, ata pinë kafe gjatë gjithë kohës dhe në atë kohë ishte në modë të pinte kafe, e cila rritej në ishullin Java. Gjuha u konceptua si një gjuhë për pajisjet e integruara, veçanërisht për një aparat kafeje. Kështu lindi emri...
Çfarë filloi me të, çfarë ishte e mirë për të dhe pse fitoi kaq shumë popullaritet? Së pari, ata u hoqën plotësisht nga trashëgimia e Sishny. Pa tregues, shumë më pak mënyra për të qëlluar çdo pjesë të trupit tuaj dhe për të thyer gjithçka. Së dyti, ata prezantuan ide shumë më të fundit për sa i përket modelit të objektit - domethënë, C ++ u shfaq shumë më herët se Java dhe përdori një model objekti më arkaik, "të egër". Epo, këtu (lektori tregon Java-n) ishte më e menduar atëherë, dhe në teori njerëzit mendonin, dhe në praktikë ata aplikuan dhe bënë gjithçka shumë më mirë.

Dhe së fundi, e treta. Programet tona Java nuk u grumbulluan në kodin e makinës, por në kod për një makinë virtuale. Kjo do të thotë, ju kishit një makinë virtuale JVM (VM) - Javovsky. Programet tuaja u grumbulluan në një lloj prezantimi të ndërmjetëm dhe më pas, me ndihmën e kësaj makinerie, ato ishin ekzekutuar tashmë. Çfarë bëri? Së pari, u ngadalësua, dhe së dyti, hëngri kujtesën me forcë të tmerrshme dhe së treti ishte i lëvizshëm kudo (teorikisht) - edhe në një aparat kafeje, madje edhe në një mulli kafeje, madje edhe në një kompjuter, madje edhe në një celular. Nga njëra anë, kjo është e mirë, domethënë, sapo keni shkruar një implementim të një makine virtuale, pastaj i ekzekutoni programet tuaja Java kudo. Por, nga ana tjetër, është keq që i njëjti telefon kishte pak memorie në atë kohë, kishte performancë të ulët, dhe e gjithë kjo filloi të zbehej dhe ngadalësohej.

Por edhe kjo nuk është arsyeja kryesore pse u shpik gjuha në përgjithësi. Gjuha Java u shpik për të reduktuar kërkesat për kualifikimet e programuesve. Kjo do të thotë, programuesit më të varfër mund të shkruajnë programe të mira në Java, sepse Java nuk lejon shkrimin e programeve të këqija - nuk ka asnjë mjet atje për të shkruar programe të këqija. Aty mund të shkruash vetëm programe të mira. Epo, në kuptimin e krijuesve të gjuhës.

Kjo do të thotë, nëse në C, në C ++, në Python, në çdo gjë, ne mund të shpërndajmë një lloj mbeturinash rrëqethëse nga projekti ynë, ku kemi gjithçka të përzier, të mbledhur për orë të tëra dhe atje diçka tjetër. Në Java, ju gjithashtu mund të shpërndani koshin e plehrave, por për këtë ju tashmë duhet të bëni disa përpjekje. Kjo do të thotë, si parazgjedhje, nuk rezulton të jetë një "grumbull plehrash", lindin probleme të tjera, që diçka është trashëguar ose trashëguar atje - në përgjithësi, për një rresht kuptimplotë, ka dhjetë jo shumë domethënëse. Nga ana tjetër, ndoshta një programues i tillë me aftësi mesatare mund të shkruajë një kod mjaft cilësor.
Jemi pothuajse në fund. Tek ne, gjëja tjetër që është shfaqur është .Net (do të arrijë), mirë, dhe në veçanti ne jemi të interesuar për C # (pothuajse e njëjta [pedagoguesi tregon Java], domethënë ka dallime në detaje, nëse ju zgjidhni midis tyre - shikoni ku paguani më shumë para).

Dhe një gjë tjetër është JavaScript. Nuk ka asnjë lidhje me gjuhën Java, u shfaq në të njëjtin vit - fjala ishte në modë, ata licencuan markën tregtare për të përdorur.

Cila është gjëja kryesore për t'i kushtuar vëmendje? (Lektori vizaton shigjeta nga C ++ në Java, .Net, C #, JavaScript dhe PHP). Për të shkruar një program të thjeshtë në një nga këto gjuhë, dhe në shumë të tjera - nëse dini C ++, në përgjithësi nuk keni nevojë të dini asgjë tjetër - merrni dhe shkruani në C ++, dhe më pas shtoni dollarë në fillim. , diçka tjetër bën gjërat e vogla dhe fillon të funksionojë për ty për çdo gjë (lektori tregon gjuhët në të cilat janë caktuar shigjetat nga C ++). Kjo është, ata janë jashtëzakonisht të ngjashëm në disa gjëra të thjeshta. Nëse zgjidhni disa probleme shkollore, detyra arsimore, diçka tjetër (nuk po hartoni një projekt të madh - keni një skedar që lexon numrat, shfaq numrat në tastierë, bën diçka tjetër), atëherë nuk ka pothuajse asnjë ndryshim midis këtyre gjuhëve. Është e qartë se JavaScript dhe PHP janë të specializuara, ato kanë gjithçka pak më ndryshe. Dhe këtu (lektori tregon Java dhe C #) ka shumë pak ndryshim në përgjithësi.

Që atëherë, janë shfaqur lloj-lloj gjëra të tjera interesante, por nuk është e qartë nëse ata do të jetojnë apo do të vdesin me sukses. Çfarë po përdorin tani, për çfarë detyrash?

Zgjedhja e gjuhës në varësi të detyrës

Le të themi se jeni përballur me detyrën për të shkruar një shofer për një kartë video. Çfarë gjuhe do të përdorni sot? (Bërtitni nga publiku: Java!) Pse ... Java është e mrekullueshme, por pse jo Ruby ose PHP? (Lektori flet me sarkazëm.)

Programim i nivelit të ulët

Nëse jeni duke shkruar diçka të nivelit të ulët, atëherë C është zgjidhja më e mirë, por në fakt kam dëgjuar diçka (por nuk e kam parë) që C ++ përdoret për këtë. Por unë vështirë se besoj në këtë, sepse në C ju mund të kontrolloni qartë - meqenëse keni dhënë kaq shumë bajt memorie, atëherë kështu dhe kështu do të jetë. Dhe në C ++ (STL), si zbatohet një varg? Epo, zbatohet disi. Dhe në fund nuk e dimë se si dhe çfarë po ndodh atje, ndoshta do të na mbarojë memoria në kartën tonë video ose do të ndodhë diçka tjetër. Prandaj, C ende jeton dhe nuk vdes, detyra të tilla programimi të sistemit ekzistojnë akoma - shkruani një sistem operativ, shkruani drejtuesit, shkruani diçka tjetër - C është e shkëlqyeshme për këtë. Për më tepër, tani ka të gjitha llojet e pajisjeve (Interneti i gjërave premton se do të vijë) që jetojnë me bateri (dhe, natyrisht, do të ketë miliona prej tyre, gjithçka do të varet me këtë Internet të gjërave) , ato duhet të jenë shumë të lira dhe të konsumojnë shumë pak energji elektrike. Prandaj, do të ketë 2 KB memorie, një procesor 5 kHz, mirë, natyrisht, nuk do të funksionojë të vidhosni një lloj makine virtuale ose gjuhë skriptimi në të ardhmen e afërt, që do të thotë se do të duhet të shkruani diçka në C. Dhe edhe tani, për shembull, llogaritjet në një kartë video (OpenCL ose ndonjë teknologji tjetër) - ata nuk gjejnë një gjuhë të re për të shkruar programe për ta - ata bëjnë C atje me disa kufizime të mëdha. Vetëm sepse njerëzit tashmë e dinë se si, pse të mësojnë diçka të re? Formalisht, kjo është ndoshta, në një farë kuptimi, C.

Programimi në ueb

Le të themi se dëshironi të shkruani një Facebook (rrjet social) të ri. Për çfarë do ta shkruani këtë? (Nga audienca ata po flasin për HTML dhe CSS.) HTML, CSS është dizajn, dhe ne duam të jemi në gjendje të shtojmë foto, miq, të lëmë komente atje.

Për pjesën e skriptimit - domethënë, çfarë do të ndodhë në anën e klientit - është JavaScript. Dhe ndonjëherë JavaScript gjenerohet në një gjuhë tjetër dhe dërgohet (ndodh që skripti gjenerohet ... sepse ndonjëherë është më e lehtë të trajtohen disa ndryshime në logjikë në këtë mënyrë).

Çuditërisht, është shkruar në PHP - dhe Facebook dhe shumë projekte të tjera të mëdha. Natyrisht, më duhej të shkruaja disa nga gjërat e mia që të funksiononte akoma mirë, dhe jo si u bë "tyap-blooper", por ata e bënë atë. Në thelb, nuk ka shumë rëndësi se çfarë shkruani, por unë nuk e rekomandoj Perl. Këtu dhe tani, natyrisht, askush nuk shkruan asgjë nga e para për ueb. Të gjithë po shkruajnë një lloj kornize ose diçka tjetër. Blerje nga Interneti? Ne shkarkuam një kornizë për një dyqan në internet - mirë, kjo është ajo, ne kemi shkruar një dyqan në internet.

Programimi i biznesit

Më pas, ju dëshironi të shkruani një aplikacion bankar të mërzitshëm. Ose, për shembull, a keni dikë që shet karta sim? Ndoshta ju keni blerë ndonjëherë një telefon apo diçka tjetër dhe ju kanë thënë: "Sistemi është i varur, ne nuk mund të bëjmë asgjë". Për çfarë do të shkruani një aplikim të tillë? (Një klithmë nga publiku për Python) Nuk mund të shkruash një gjë të tillë në Python, çfarë je ti?! Nuk ia vlen të shkruash asgjë për biznes në Python. Pse? Sepse kur shkruani diçka në Python, nuk mund të gjeni një numër të konsiderueshëm gabimesh në procesin e shkrimit. Python shtypet në mënyrë dinamike në çdo mënyrë të mundshme, dhe në përgjithësi atje mund të fshehësh një gabim në mënyrë që të shfaqet në një situatë të tillë që as nuk mund ta kuptosh se çfarë kanë bërë këta përdorues të rremë atje, që gjithçka është e prishur për ty. Kjo do të thotë, është më mirë të shkruani skripta të vogla për veten tuaj në Python - ju e kuptoni se çfarë po ndodh atje dhe çfarë po bëhet. Epo, ose diçka që nuk është për të ardhur keq për të hedhur jashtë: ju dëshironi të hapni diçka përpara konkurrentëve tuaj, kështu që çfarë nëse do të prishet çdo herë tjetër. Ju shkruani në Python dhe kaq - ju morët tregun. Dhe nëse shkruani diçka për një kohë të gjatë, për shembull, një lloj aplikacioni bankar (në mënyrë që të miratojë kredi, diçka tjetër) - e shkruani në Java. Sepse ka një çështje serioze, copa letre, para, dokumente, diçka tjetër, por nuk mund të ngatërroni aq shumë sa të prishet gjithçka, përndryshe njerëzit do të ofendohen - paratë e tyre kanë shkuar dhe nuk kanë arritur askund, në momentin që vargu kthehet në numër ose anasjelltas. Pra, do të thotë që ju merrni në mënyrë metodike Java dhe shkruani, shkruani ... Epo, ose në.Net, situata të tilla, në parim, ndodhin gjithashtu. Atje, natyrisht, mund të hasni edhe probleme, por prapë probabiliteti i kësaj është disi më i ulët.

Programimi për ushtrinë, hapësirën ajrore

Tani imagjinoni se ata vendosën t'ju dërgojnë në hënë me një raketë. Çfarë do të përdornit më mirë për të shkruar kodin që kontrollon motorët e raketave? Le të hedhim një vështrim. Kjo, me siguri (lektori tregon në Perl, Python, PHP, Ruby), nuk ia vlen - ngadalësohet, diçka tjetër po ndodh, mirë, në përgjithësi, nuk do të pranoja të fluturoja në një raketë të tillë. Në C ++? Të them të drejtën, as unë nuk do të më besoja, sepse ka shumë mënyra për të vrarë veten në C ++. Kur je atje diku në hapësirë, nuk është shumë mirë.

Ndoshta në Java? Duket se gjithçka është mjaft e besueshme atje dhe arkitektura është e mirë, pa lloje të egra, pa memorie të tepërt. Le të themi se ka ardhur momenti më i rëndësishëm dhe Java jonë vendosi të mbledhë mbeturina për ne. Ne duhet të zbresim, të ngadalësojmë, dhe ajo thotë: "Jo, plehrat po shkojnë". Në përgjithësi, as shumë mirë.

Për të qenë i sinqertë, unë do të preferoja ta kisha këtë program të shkruar në Pascal. Unë, natyrisht, nuk më pëlqen shumë Pascal, por disi në çështje të tilla, do të ishte shumë interesante.

Përdorimi i disa gjuhëve në të njëjtën kohë për zhvillimin e softuerit

Epo, çfarë duhet thënë në përgjithësi për gjuhët moderne. Në ditët e sotme, shumë projekte nuk jetojnë në një gjuhë, domethënë disa prej tyre jetojnë në një gjuhë, disa në një tjetër dhe disa të tjera në një të tretën. Për shembull, nëse keni një lloj aplikacioni ueb që përpunon sasi të mëdha informacioni, qasja në disqe (madje as në bazat e të dhënave, ato janë aq të mëdha sa që edhe një bazë të dhënash nuk mbështet disa të shkruara tashmë) me siguri janë të shkruara në disa, atëherë të ulëta. - Niveli C për të shkruar jashtëzakonisht shpejt në disk dhe gjithçka. Natyrisht, shkrimi i të gjithë projektit në C nuk ia vlen. Ndoshta ka një lloj logjike të ndërmjetme të shkruar në Java që thërret funksionet Cis për thirrje të shpejta. Epo, pjesa e përparme (ajo që përdoruesi po shikon), natyrisht, është shkruar tashmë në diçka, në disa skripta, në diçka që ekzekutohet drejtpërdrejt nga shfletuesi (JavaScript). Dhe e gjithë kjo jeton së bashku dhe ndërvepron me sukses.

Në zhvillimin e disa aplikacioneve, madje edhe atyre të mëdha, ndonjëherë njerëzit çfarë bëjnë? Ata marrin dhe shkruajnë një prototip në Python (si do të funksionojë gjithçka), skicojnë, mendojnë për një lloj arkitekture. Shkrimi mbi të është me të vërtetë shumë i shpejtë - ata hodhën një prototip, eksperimentuan me të dhe thanë: "Ua! Kjo është shumë e lezetshme!" Dhe e rishkruar plotësisht. Duket se ata e bënë punën dy herë, u desh dy herë më shumë (epo, një e gjysmë). Por jo! Shpesh rezulton se kjo metodë nuk është e keqe, sepse nëse shkruani menjëherë në diçka, për shembull, në Java, dhe më pas vendosni: "Jo, le të rifaktorojmë, ndryshojmë plotësisht arkitekturën dhe gjithçka", atëherë do të shpenzoni 10 herë më shumë kohë... Edhe gjëra të tilla ekzistojnë dhe jetojnë.

Kushtet për suksesin e çdo gjuhe programimi

Tani le të flasim pse disa gjuhë të bukura nuk mbijetuan, ose jetuan në një hapësirë ​​shumë të kufizuar. Kur Wirth pa se çfarë bënë kompanitë e këqija Apple, Borland dhe gjithçka që bënë me Pascal-in e tij, ai doli me një gjuhë edhe më të mirë - Oberon. Ishte thjesht jashtëzakonisht minimaliste - domethënë, kishte shumë pak komanda (Strings? Pse na duhen vargjet? Do të bëjmë një grup karakteresh!). Epo, diçka nuk funksionoi për të, në masën që mundi.

Edhe nje gje. Ushtria amerikane u kërkoi atyre të zhvillonin gjithashtu një gjuhë të lezetshme, në të cilën gjithçka funksionon dhe gjithçka mund të shkruhet. Rezultati është një gjuhë mjaft monstruoze e quajtur Ada, në të cilën, megjithatë, ata ende shkruajnë diçka, por përsëri - vetëm për ushtarakët.

Cili është problemi? Pse disa gjuhë si Python, të cilat asnjë kompani nuk e mbështeti në fillim, e kanë marrë tregun. PHP, i cili gjithashtu është i dizajnuar keq, gjithashtu mori përsipër dhe pushtoi tregun (shumicën e tij) vetë. Dhe u investuan lloj-lloj miliarda dollarë (pedagoguesi tregon Ada-n) dhe nuk shkuan askund, asgjë nuk ndodhi. Cila është arsyeja për këtë? Kjo për faktin se nuk ka infrastrukturë rreth këtyre gjuhëve. Kjo do të thotë, gjuha mund të jetë e shkëlqyer, por për sa kohë që nuk ka dokumentacion, për sa kohë që nuk ka komunitet që mund t'u përgjigjet pyetjeve (në Stack Overflow) dhe, së fundi, më e rëndësishmja, për sa kohë që nuk ka një numër të madh të bibliotekave, gjuha nuk ndez. Kjo do të thotë, ju, për shembull, keni dashur të shkruani një faqe interneti në Oberon. Pse jo? Dhe konfuzioni fillon ... Ju nuk mund ta ngrini serverin tuaj të internetit në Oberon për të provuar lehtë, nuk mund të lidhni asnjë bibliotekë, sepse ato nuk janë në Oberon. Dhe e gjithë kjo bëhet përmes një lloj patericash, forcat largohen dhe në përgjithësi ju pështyni dhe shkruani faqen tuaj në C të pastër në vend të Oberon. Dhe ato gjuhë që janë në gjendje të përdorin biblioteka nga gjuhë të tjera jetojnë mirë. I njëjti Python në ato vende ku ngadalësohet. Epo, në përgjithësi, të gjitha llojet e gjërave standarde si renditja dhe diçka tjetër janë shkruar në C, dhe ai (Python) di si të ndërveprojë me to.

Java gjithashtu ka një ndërfaqe Java Native. Kjo është në thelb C, domethënë atje (për mendimin tim, ata duan të ndalojnë gjatë gjithë kohës, por duket se nuk i kanë ndaluar ende) këto gjuhë mund të ndërveprojnë me bibliotekat tashmë ekzistuese (kryesisht ato Sishny). Dhe për shkak të kësaj ata marrin dhe punojnë. Ideja që po përpiqem t'ju përcjell është e qartë, apo jo? Mos shkruani në gjuhë që nuk dinë të lidhin bibliotekën C. Epo, nëse doni të shijoni diçka interesante. Epo, dhe gradualisht ato (gjuhët) janë tejmbushur me llojin e tyre të infrastrukturës. Dhe ata jetojnë disi mirë.

Gjuhë programimi dhe udhëzime në karrierë

Tani le të flasim se si të kuptojmë se çfarë dëshironi në jetë. Cilat janë gjërat e lezetshme? Ju mund të bëni një lloj programimi sistemesh, apo jo? Është bukur t'i numërosh këto biçikleta atje, dëshiron të lëshosh katërkopterë, disa kamera dhe diçka tjetër për të bërë. Atëherë C është ndoshta zgjedhja juaj.

Nëse doni të shkruani, ndoshta jo aplikacionet më interesante në jetë, por është mirë që t'i dizajnoni, mendoni për të gjitha dhe të fitoni shumë para për t'u ulur dhe mërzitur shumicën e kohës (duhet të paguani për këtë nëse ju jeni miss me cilësi të lartë), ja ku janë - Java, .Net. Shkon të punosh në bankë, shkruani, shkoni në punë në nëntë me një këmishë të bardhë, merrni një rrogë të mirë dhe shkruani sipas rekomandimeve të burimeve më të mira Java, .Net-sheep dhe gjithçka tjetër ...

Nëse dëshironi të shkruani ndonjë aplikacion, disa shfletues, disa lodra, diçka tjetër, atëherë C ++ është e mrekullueshme. Nëse dëshironi të shkruani faqe interneti, ja ku janë, gjuhët e zgjedhjes suaj (lektori tregon në Perl, Python, PHP, Ruby), nuk ka shumë ndryshim. E vetmja gjë është se PHP do të vdesë para Python, kështu që nëse jeni dembel për të mësuar gjëra të reja, atëherë mësoni Python. Nuk do të vini re një ndryshim të madh, por do të qëndroni më gjatë.

Çfarë po ndodh me Ruby është gjithashtu e paqartë. Epo, ju gjithashtu mund të PHP, nëse e keni mësuar tashmë, pasi ato janë aq të thjeshta sa nuk kërkon kaq shumë kohë për të rimësuar atje.

Dhe, së fundi, ekziston një fushë tjetër e aplikimit të gjuhëve të programimit - kjo është kur një jo-programues i përdor ato. Le të themi se jeni një matematikan, fizikan, kimist, analist, kushdo, dhe ju duhet të llogaritni shpejt diçka, të analizoni disa të dhëna (për biologët, për shembull, sa dhelpra Arktike jetojnë në Ishujt Komandant). Ju mund t'i vendosni të gjitha këto në një tabelë në Excel ose ta analizoni atë me diçka. Python është gjithashtu një përshtatje e mirë për këtë, ai di të punojë me tekst dhe bibliotekat janë plot me të gjitha llojet, statistikore dhe gjithçka tjetër. Nëse dëshironi të bëni një lloj Learning Machine, të përpunoni disa të dhëna, të parashikoni, atëherë kjo gjithashtu bëhet më shpejt në Python tani. Sidoqoftë, duhet të theksohet se detyrat janë shumë të ndryshme. Për shembull, nëse dëshironi të tregtoni në bursë në çast në kushtet kur kuotat ndryshojnë gjatë gjithë kohës, atëherë sado interesante të shkruani Machine Learning në Python, njerëzit që e kanë të shkruar në diçka më shpejt do të kenë kohë të blejnë gjithçka më herët. ndërsa ju do të numëroheni, edhe nëse algoritmet e tyre janë më të këqija. Prandaj, edhe këto detyra të mësimit të makinerive (disa prej tyre) kërkojnë performancë të lartë (dhe jashtëzakonisht të lartë), dhe, në përputhje me rrethanat, gjuhë të tjera.

Mënyra e vetme për të ditur se çfarë dëshironi është të provoni gjithçka. Tani do ta them si një nga vizionet se si mund të provoni gjithçka. Si të bëhesh programues dhe i lumtur? Kështu që. Ne fillojmë nga e para. Këtu ju po studioni në shkollë matematikën, gjuhën ruse dhe lëndë të tjera të detyrueshme dhe me zgjedhje, dhe njohuritë tuaja në fushën e programimit pasqyrohen në tabelë (pedagoguesi tregon një tabelë bosh) për momentin. Dhe ju dëshironi të bëheni një person i lumtur, të bëni atë që doni, të fitoni shumë para dhe të mos i mohoni asgjë vetes dhe të jeni të lumtur.

Një mënyrë për ta bërë këtë. Ka, sigurisht, lloj-lloj historish frymëzuese për njerëz që nuk shkuan fare në universitet, ose i lanë ata dhe u bënë miliarderë, pronarë kompanish etj. Por duhet theksuar se shumica e njerëzve që mund të mos jenë bërë miliarderë, por edhe jetojnë mirë, kanë mbaruar ende universitetin në një moment.

Cila është situata jonë me pranimin në universitet (tani ju jeni duke studiuar në shkollë)? Ndërsa jeni në shkollë, duhet të kuptoni se hapi tjetër është të regjistroheni dhe të kujdeseni për të. Kaloni provimin ose fitoni Olimpiadën. Në provim, mund të përdorni Pascal, C ++ (përfshirë C të pastër), Python (nuk do t'i përmend më tej). Në Olimpiadë - i njëjti Pascal, i njëjti C ++, i njëjti Python (do të flasim për problemet e tij tani) dhe, më shpesh, ka Java. Ende gjithçka mund të ndodhë në varësi të Olimpiadës, por jo thelbi.

Si duket grafiku i shpërndarjes së gjuhëve në Olimpiadën Gjith-Ruse në Informatikë? Njerëzit që marrin pjesë në Olimpiadën Gjith-Ruse, më të lezetshmen, për çfarë shkruajnë? Duket kështu (këtu do të thotë Pascal, dhe këtu është rreth 2000, dhe këtu është rreth zero, këtu është C ++, dhe këtu është 2015).

Në vitin 2000, pothuajse askush nuk shkruante në C ++. Pesëmbëdhjetë vjet më vonë, pothuajse askush nuk shkruan në Pascal, pavarësisht se Pascal është modern. Kjo është një gjuhë që mund të bëjë pothuajse gjithçka njësoj. Thjesht të gjithë janë bërë dembelë për të mësuar këtë, çdo trend të ri, dhe të gjithë vazhdojnë të shkruajnë në Borland Pascal, që sigurisht nuk mund të bëjë asgjë. Në C ++ njerëzit shkruajnë disa algoritme renditjeje (STL) - shkëlqyeshëm, ata shkruan sort () dhe kaq. Në Pascal, në të rregullt, në të vjetër - ky është një problem. Ata shkruan një grup (të nevojshëm) - shkëlqyeshëm, e shkruan në C ++, në Pascal përsëri mundimi është i vazhdueshëm. Në Pascal-et e reja, natyrisht, ju mund ta bëni këtë, por ato në fakt kushtojnë para. Ndoshta nuk e keni vënë re, por është.

Ekziston edhe Java, por Java ka shumë shkronja. Është për projekte të mëdha, por për programe të vogla të disponueshme rezulton të jetë mjaft e keqe, sepse ka shumë letra të panevojshme. Por edhe disa njerëz shkruajnë, ju mund të mësoni të shkruani mbi të. Por në Provimin e Unifikuar të Shtetit, nuk është kështu dhe Provimi i Unifikuar i Shtetit do të duhet ende të kalohet në pjesën më të madhe.

Çfarë është më e mira për provimin? Për provimin, është më mirë (nëse nuk dini asgjë dhe nuk ju mësojnë asgjë në shkollë) të mësoni Python. Disa detyra të provimit janë zgjidhur në mënyrë të përsosur mbi të. Në Olimpiadë, në përgjithësi, rezulton se C ++ është (përdorur), sepse Python është shumë i ngadalshëm, jo ​​gjithçka zgjidhet atje.

Kështu, ju keni studiuar një nëngrup të vogël të gjuhës dhe disa algoritme (ndoshta) dhe keni zgjidhur shumë probleme në mënyrë që të merrni një diplomë të Olimpiadës tuaj dhe të shkoni në universitet për të marrë arsimin e lartë.

Tani do t'ju tregoj se si ne në HSE e ndërtojmë kursin, në çfarë rendi janë gjuhët, si studiohen në matematikën e aplikuar dhe shkencat kompjuterike në Fakultetin e Shkencave të Aplikuara, të cilën Yandex dhe unë po e bëjmë. Në semestrin e parë - Python (jo i plotë, për mënyrën se si duhet të mësoni në shkollë) dhe C ++ (më i gjerë, shumë më i gjerë se sa zakonisht mësohet në shkolla). Më lejoni t'ju them menjëherë që të mos keni frikë, nëse papritmas doni të hyni, thoni: "Pse, unë tashmë i di të gjitha këto, pse do të studioj diku? Më mirë do të shkoja diku tjetër." Për ata që tashmë dinë të programojnë mirë, ekziston një mundësi për të shkuar drejtpërdrejt në studimin e algoritmeve, dhe në një trajnim mjaft teorik. Nuk po i shikojmë tani, kjo (tregon tabelën) është për ata që programojnë medium ose aspak.

Në semestrin e parë, ata studiojnë bazat e Python, vetëm që njerëzit të mësojnë të programojnë dhe që askush të mos ofendohet veçanërisht. Python mësohet rrallë në shkolla, kryesisht njerëzit vijnë me njohuri të Pascal ose C ++. Në thelb edhe Pascal, nëse është një shkollë masive. Epo, në mënyrë që askush të mos u ofendua, të gjithë mësojnë një gjuhë të re (sikur të jenë në kushte të barabarta). Dhe C ++ thjesht sepse më pas mund të shkoni kudo nga C ++.

Më pas vjen kursi "Algoritmet" dhe një projekt i veçantë kursi. Algoritme klasike me implementim. Jo se në teori kemi marrë diçka, kemi llogaritur kompleksitetin. Në leksion, ne e morëm atë, llogaritëm kompleksitetin, në seminar - e morëm, zbatuam algoritmin. Një projekt ka të bëjë me studentët që bëjnë diçka të përfunduar. Për shembull, një nga projektet ishte: të numërosh ... Le të themi se keni shumë apartamente në Moskë dhe kuptoni: "Oh, kam shumë gjëra të panevojshme, do të marr me qira disa. Dhe ata vendosin një çmim, dhe askush nuk dëshiron të marrë me qira një apartament nga ju - ndoshta shumë i shtrenjtë. Ose vendosin një lloj çmimi, e hoqën menjëherë dhe mendon: "Oh, ndoshta e kam kaluar me çmim të ulët", dhe gjithashtu mërzitesh. Kjo do të thotë, ishte e nevojshme të llogaritet se sa kushton të marrësh me qira një apartament? Ju drejtoni të dhënat - kjo krijon një vlerësim për ju. Një faqe e tillë, e cila përbëhej nga disa gjëra: merrni sugjerime, analizoni, aplikoni një lloj algoritmi të mësimit të makinerive (ndoshta) jo modest dhe bëni një faqe të bukur në internet në të cilën mund të zgjidhni diçka, të vozitni diçka, disa metra, çdo numër dhomash, numrin e saunave, numrin e xhakuzive në banesën tuaj dhe përafërsisht vlerësoni koston. Kjo do të thotë, një lloj gjëje e përfunduar, jo shumë e ndërlikuar. Këtu do të thotë (lektori tregon kursin mbi algoritmet) një C ++ kaq energjike, me konsol I / O. Epo, këtu (lektori tregon mbishkrimin "projekt") është diçka nën drejtimin e një mentori, ndoshta me baza të dhënash, ndoshta me analizim të teksteve dhe me diçka tjetër.
Pastaj vjen semestri i tretë - një lëndë e quajtur "Sistemet Kompjuterike". Ka mjaft asembler për të kuptuar (shumë pak) dhe më pas, diçka e ngjashme me C-në e pastër dhe ndërveprimin me sistemet operative, programimin e sistemit në thelb. Dhe një projekt për një seminar është gjithashtu diçka për temën e të gjitha llojeve të ndërveprimeve në rrjet, mjaft të nivelit të ulët: zhvilloni një program të dobishëm, për shembull rsync (sinkronizimi, ndoshta ju e dini. Në C të pastër, pak a shumë, shkruani një analog të rsync, të cilin do ta keni në dosjet e sinkronizimit të rrjetit me të gjitha akseset e skedarëve, e kështu me radhë).

Dhe së fundi, e katërta. Unë as nuk di si ta quaj, kjo është një vinaigrette teknologjish e nevojshme për zhvillim real, për shembull, për zhvillimin e uebit. Domethënë, ky është një aplikim praktik i bazave të të dhënave, përsëri diçka e ngjashme me atë që është bërë në projekt (lektorja tregon projektin e vitit të 2-të), por më e thelluar. Domethënë, gjëra të tilla pak a shumë konkrete janë tashmë programim praktik. Paralelisht me këtë, ekziston ndonjë teori, mirë, këtu ata janë të angazhuar edhe në shkencë.

Dhe pas dy kursesh, njerëzit shpërndahen për të bërë atë që u intereson, sepse kjo gjë mbulon mjaft gjerësisht baza të tilla programimi dhe njerëzit në këtë pikë tashmë e kuptojnë se nuk duan të merren me sistemet kompjuterike në asnjë rast (për shembull, ata bënë jo si programimi i sistemit ), por duan të merren me disa algoritme teorike, vështirësinë e llogaritjes, nxjerrjen e disa gjërave të reja, të shpërndara apo diçka tjetër. Ose, përkundrazi, ata mendojnë se nuk kanë shumë këtu ( pedagogu tregon linjën e parë të kursit me Python dhe C ++) shko, pastaj ( pedagogu tregon një linjë të tretë të kursit, me programimin e sistemit) - pasi nuk ju pëlqen, numëroni bajt dhe vendosni të gjitha llojet e kufizimeve në lexim-shkrim, bëni transmetime, thread dhe diçka tjetër. Dhe në përputhje me këtë, njerëzit zgjedhin një drejtim dhe mësojnë. Kjo është, në parim, në mënyrë që ju të mos zhvilloni "sindromën e rosës" - së pari patë Paskalin tuaj dhe tani thoni "Pascal është fuqi"; ose më i avancuar - patë C ++ dhe filluat të thoni për të gjithë se C ++ është i fuqishëm, dhe gjithçka tjetër nuk është shumë e mirë.

Këtu duhet ta shohim këtë (lektori tregon listën e kurseve në dërrasën e zezë) më gjerësisht - kjo është një nga metodat që u zgjodh, veçanërisht në HSE (është shfaqur së fundmi, kështu që është mjaft moderne). Ka mënyra të tjera për t'u njohur me njëri-tjetrin. Në universitete të tjera të mira vendosen në një rend pak më ndryshe dhe thekse të tjera. Por ata gjithashtu përpiqen t'i njohin njerëzit me gjithçka që kanë.

Si një programues kërkon një punë

ti je kjo ( pedagogu tregon listën e lëndëve) bëri gjithçka, studioi në universitet, studioi diçka më produktive për dy vjet të tjerë dhe ju duhet të shkoni në punë. Si zgjidhni diçka për të punuar? Së pari, ju keni njohur gjithçka, keni hyrë thellë diku dhe tashmë e dini atë që doni. Ju duhet të zgjidhni atë që ju pëlqen natyrshëm. Sepse nëse dashuroni do investoni energji, do keni motivim dhe në përgjithësi gjithçka do të jetë mirë. Sepse nuk ka të bëjë vetëm me paratë, por edhe t'i bëjë ato interesante dhe të këndshme për ju. Epo, dhe ju dëshironi të futeni në një kompani të lezetshme, merrni një punë. Çfarë lloj personi do të doja të shihja unë personalisht? Për shembull, njëqind studentë vijnë tek unë - duhet të marr dy ose një në punë. Pse vijnë, nuk e kuptoj fare kush janë, çfarë janë, si janë? Në rastin më të mirë do të më tregojnë diplomën që kanë marrë në universitet dhe unë do të them: “Ua! Kjo është një diplomë e lezetshme, por nuk është aq e lezetshme!”. Dhe mund të jem i gabuar, meqë ra fjala. Ndoshta personi ka pasur shumë kohë të lirë dhe ka mësuar shumë më mirë.

Çfarë do të ishte e mrekullueshme? Së pari, disa projekte me burim të hapur që keni shkruar nga fillimi në fund. Është e dëshirueshme, nëse jam duke bërë një lloj infrastrukture në mënyrë që të dhënat të lexohen shpejt, ose diçka tjetër, atëherë, natyrisht, do të isha i interesuar të më shkruante diçka me kod të hapur. Jo një faqe interneti e krijuar, por diçka në lidhje me temën. Pse jam i interesuar për këtë? Unë mund të shikoj kodin tuaj, mund të shoh sa shpesh keni kryer, mund të shoh se si keni reaguar ndaj gabimeve nga përdoruesit, gabimeve nga zhvilluesit që e përdorin atë - gjithçka është e shkruar, unë shikoj gjithçka dhe mendoj: "Uau, ky gabim ka dy vjet qe nuk jam ketu, mbyllur, ketu i pergjigjesh perdoruesit pa edukate, atehere nuk marr dicka tjeter”. Kjo është, ky është projekti juaj personal.

Tjetra, çfarë tjetër do të ishte interesante? Do të doja të shihja se si e keni bërë punën ekipore. Domethënë, ju vini tek unë për një intervistë dhe më thoni: “Unë dhe djemtë nga universiteti kemi bërë një aplikim të mirë. Unë po bëja një bazë të dhënash atje, ata po bënin një lloj aplikacioni celular atje, dhe kishim një djalë që punonte atje, një vajzë-dizenjatore, një djalë në mbështetje teknike. Ishim pesë veta dhe bëmë një projekt të mrekullueshëm”. Epo, shoh se cili është projekti juaj në të vërtetë, them: "Cili është i juaji?" Unë e shikoj përsëri kodin dhe kuptoj që ju dini të punoni në një ekip me njerëz.

Programues nuk është ai që rri vetëm (një indi i tillë) në garazh, diku me drita të fikur, nuk flet me askënd, merr mjekër dhe shkruan. Gjithsesi, ekziston një lloj ndërveprimi me njerëzit. Me një shef, për shembull, që ndonjëherë mund t'ju shajë (shefat, ata janë kaq, jo gjithmonë të sjellshëm). Dhe e shoh që di të punosh me njerëzit dhe më gëzon nëse ke një ekip të mirë të një lloji. Edhe nëse nuk është mirë, është më mirë sesa të mos e kesh.

Çfarë tjetër do të doja personalisht? Nëse e keni shfaqur veten në projekte të mëdha. Për shembull, ne kemi angazhuar diçka për kernelin Linux, nëse jeni duke bërë programim të sistemit, ne rregulluam disa gabime. Kjo do të thotë, ata treguan se ju mund të lexoni kodin e dikujt tjetër dhe jeni në gjendje të bëni disa ndryshime në të. Unë shikoj: "Oh, me të vërtetë, ju kuptove diçka të ndërlikuar dhe rregulluat disa defekte!" Dhe unë kam filluar të jem shumë i lumtur për këtë. Sepse unë kam… mirë, nuk e di… programuesi im u largua sepse konkurrentët i ofruan atij një pagë më të lartë, dhe unë urgjentisht duhet të mbyll gojën dikujt - ty. Më duket sikur ke shkruar vetëm nga e para, por nuk di të lexosh dhe modifikosh kodin e dikujt tjetër dhe unë mërzitem.

Dhe së fundi, në varësi të pozicionit specifik, ka gjëra të tjera të ndryshme. Nëse jeni një analist i punës, do të doja që të zgjidhni detyrat e analizës së të dhënave në Kaggle. Nëse ju merrni një punë në disa gjëra algoritmike, unë do të doja që ju të bëni disa algoritme në programimin sportiv. Dhe në fund, nëse keni menduar për profesionin, lexoni se si bëhen intervistat, keni takuar që disa njerëz atje shprehin pakënaqësi të madhe: “Erdha, dhe më pyesin se cili është hobi im. Unë ulem si një buf dhe nuk përgjigjem, sepse nuk kam hobi, "- dhe ata mendojnë se HR-të e bëjnë këtë. Në fakt, ata po përpiqen të kuptojnë se sa miqësor dhe i përshtatshëm jeni. Nëse jeni jo miqësor dhe joadekuat, atëherë pavarësisht se sa gjeni dhe punëtor jeni, një specialist i ashpër me njohuri të mëdha, do të jetë e vështirë për ekipin të punojë me ju dhe nuk do ta tërhiqni projektin vetëm. Për më tepër, edhe nëse shtriheni, mund të imagjinoni se çfarë ngarkese për kompaninë. Dhe se do të vish nesër dhe do të thuash: “Më rrisni rrogën 10 herë, ndryshe do të largohem nga ju”. Kuptohet që kompanitë nuk duan të futen në këtë situatë. Prandaj, edukimi i përshtatshmërisë dhe vullnetit të mirë në vetvete është po aq i rëndësishëm (të paktën) sa zhvillimi i një lloj aftësie profesionale.

Për ta përmbledhur, çfarë mund të thoni? Cilat gjuhë janë të mira dhe cilat janë të këqija? Epo, brenda një grupi gjuhësh, për shembull midis Ruby, Python dhe PHP, cilën të zgjidhni? Sigurisht, përgjigja e saktë është Python, por në fakt ndryshimi midis tyre është në numrin e gabimeve të lejuara, në sasinë e diçkaje tjetër - 5%, mirë, ndoshta 10%. Kjo do të thotë, nëse tashmë keni një projekt të gatshëm të shkruar në PHP, atëherë askush në mendjen e tij të mirë nuk do të thotë: "Le të rishkruajmë gjithçka në Python". Ata do të thonë: "Le të punësojmë më shumë zhvillues PHP dhe të vazhdojmë të shkruajmë në PHP." E shkëlqyeshme, kjo nuk është një zgjedhje e keqe. Është e qartë se nëse papritmas filloni të shkruani një projekt, atëherë mund të jetë e mençur të zgjidhni Python tani. Edhe pse, varet gjithashtu. Ndoshta keni një mori zhvilluesish të lirë PHP në treg, por ata Python janë të shtrenjtë dhe mendoni: "Po, teknologjia është më e freskët, por unë do të kursej para për zhvilluesit e gatshëm". Dhe kjo është e gjitha, shkëlqyeshëm, ju tashmë keni ardhur dhe punoni atje.
Si të zgjedh midis Java dhe C ++? Po, e njëjta gjë ndodh. Mendoj se kur të vendosni se në cilën gjuhë të filloni një projekt të ri të madh, do të fitoni njohuri në fushën tuaj profesionale dhe do të jeni në gjendje të bëni zgjedhjen e duhur. Tani për tani, ju nuk keni pse ta bëni këtë zgjedhje ende, prandaj ju këshilloj të bëni atë që dëshironi.

Bazat, siç thashë tashmë, shumë, shumë bazat e programimit (çfarë është një funksion, çfarë janë nëse-të, për-të, vargjet, diçka tjetër) mund të mësohen pak a shumë në çdo gjuhë. Për shembull, në C ++, sepse duket si shumë gjëra, dhe specifikat në të (në këtë nivel) janë më pak, dhe shkronjat janë më së paku për të shkruar të panevojshme. Epo, atëherë, kur të mësoni disa gjëra komplekse arkitekturore, mësoni dhe shqetësohuni shumë për këtë. Kjo do të thotë, gjëja kryesore është - përpiquni, kërkoni atë që ju pëlqen dhe kur kuptoni se tashmë është ora 4 e mëngjesit, dhe uleni dhe shkruani për argëtim, sepse ju pëlqen, ndoshta është në këtë momenti që keni gjetur...

Çdo person që vendos të zotërojë bazat e procesit të krijimit të programeve kompjuterike, shtron pyetjen se cilat janë gjuhët më të njohura të programimit sot dhe cilat janë më të mirat për të mësuar. Dhe nëse pyetja e parë është shumë e lehtë për t'u përgjigjur, atëherë e dyta duhet t'i përgjigjet vetë studentit, bazuar në planet dhe nevojat e tij.

Le të hedhim një vështrim të shpejtë në gjuhët më të njohura të programimit në mënyrë që të zgjidhni atë që ju tërheq dhe të filloni ta mësoni atë.

programim?

Para se të çmontoni gjuhët kryesore të programimit dhe t'i përshkruani ato, është e nevojshme të çmontoni vetë konceptin.

Një gjuhë programimi është një sistem zyrtar shenjash që përdoret për të shkruar programe kompjuterike. Si çdo gjuhë tjetër, ajo ka rregullat e veta leksikore, semantike dhe sintaksore.

Të dallojë gjuhët e niveleve të ulëta dhe të larta të programimit. Sot përdorin kryesisht të dytin.

Gjuhë programimi të nivelit të lartë dhe të ulët

Gjuha e programimit të nivelit të ulët ka një strukturë afër strukturës.Në këtë rast komandat shënohen jo duke përdorur zero dhe njëshe, por duke përdorur shënime kujtimore. Gjuha më e famshme e programimit të nivelit të ulët është gjuha e asamblesë.

Puna me ndonjë nga gjuhët kërkon kualifikime të larta, dhe të kuptuarit, përveç kësaj, kërkon shumë kohë për të shkruar programe. Në të njëjtën kohë, duke përdorur ato të ulëta, mund të krijoni programe të vogla, por në të njëjtën kohë efektive. Programuesit fillestarë nuk rekomandohen të fillojnë njohjen e tyre me ta.

Gjuhët e programimit të nivelit të lartë karakterizohen nga prania e konstrukteve semantike për përshkrimin e operacioneve. Studimi i tyre kërkon shumë kohë dhe zbatimi i tyre në praktikë kërkon kujdes dhe kuptim të strukturave dhe rregullave bazë të sintaksës dhe fjalorit. Por në të njëjtën kohë, aftësia në gjuhët e nivelit të lartë ju lejon të krijoni projekte të mëdha, shumëngjyrëshe, shumëfunksionale në kohë rekord.

Niveli i lartë përfshin Pascal, Java, C, C ++, C #, Delphi dhe shumë të tjerë. Ato përdoren për të shkruar softuer dhe aplikacione.

Gjuhët më të njohura të programimit

Cilat janë gjuhët më të njohura të programimit sot?

Vitet e fundit, më të njohurat dhe më të kërkuarat janë Java, C, C ++, Python, C #, të cilat janë ndër gjuhët kryesore të programimit. Ato përbëjnë bazën e programeve moderne dhe përdoren kur shkruani ndonjë projekt të madh. Më shumë se 70% e programuesve punojnë me këto gjuhë. Parashikohet që edhe në 10 vitet e ardhshme të jenë në të njëjtat kërkesa si sot.

Ruby, PHP, JavaScript konsiderohen jo më pak të njohura. Shumica e ekspertëve fokusohen gjithashtu në to.

Në përgjithësi, pavarësisht nga popullariteti, çdo specialist, pak a shumë duke respektuar veten, duhet të dijë të paktën disa gjuhë të niveleve të ndryshme. Kjo për faktin se shumica e projekteve të mëdha zhvillohen në gjuhë të ndryshme. Për shembull, disa module shkruhen duke përdorur C, të tjerët zhvillohen në Java dhe të tjerë në Delphi.

C, C ++ dhe C #

Le të fillojmë me familjen C.

Gjuha C është përpiluar dhe zhvilluar në vitet '70. Mbi bazën e saj, më vonë u krijuan gjuhë të tilla si C ++ dhe C #, Java.

C ++ është një gjuhë e fuqishme e krijuar për krijimin e shërbimeve dhe drejtuesve të nivelit të ulët dhe aplikacioneve dhe komplekseve softuerike shumë mbresëlënëse.

C # është një gjuhë moderne e orientuar nga objekti i bazuar në gjuhët C dhe C ++. Ka sistem te tipit te sigurt. Një nga veçoritë e tij dalluese është se ajo është gjithashtu shumë e ngjashme me një gjuhë tjetër të njohur programimi - Java.

Një nga disavantazhet e gjuhës është se ju lejon të krijoni aplikacione vetëm për sistemin operativ Windows, dhe përveç kësaj, është shumë e rëndë, që do të thotë se programet e shkruara në të zënë shumë hapësirë.

Mund të vërehet se në shumë mënyra C, C ++ dhe C # janë gjuhë programimi për fillestarët. Pasi t'i keni zotëruar ato, mund të jeni i sigurt se mësimi i një gjuhe të re do të marrë një minimum kohe.

Ju mund të njiheni me to dhe të shkruani aplikacionet tuaja të para në një ambient special Borland ose Visual Studio.

JavaScript

JavaScript është një gjuhë me aftësi të orientuara nga objekti. Zhvilluar në 1996 dhe sot një nga më të njohurit. Gjuha përdoret kryesisht për skriptimin në internet dhe funksionon në shfletues të mëdhenj si Internet Explorer, Firefox, Opera. Është gjithashtu i lidhur ngushtë me HTML dhe CSS, kështu që ju duhet të zotëroni bazat e këtyre gjuhëve përpara se të filloni ta mësoni atë.

Vlen të përmendet se pavarësisht ngjashmërisë në emër, JavaScript dhe Java janë dy gjuhë krejtësisht të ndryshme.

Kjo gjuhë është e përshtatshme për ata që janë të fokusuar në krijimin e shfletuesve dhe skripteve, aplikacioneve dhe shtesave për to. Nëse planifikoni të krijoni faqet tuaja, duhet gjithashtu ta njihni më mirë atë.

Java

Duke marrë parasysh gjuhët më të njohura të programimit, nuk mund të mos përmendet Java. Është një gjuhë programimi e orientuar drejt objektivave që është në përdorim që nga viti 1995. Është mjaft i lehtë dhe funksionon në çdo makinë Java të çdo arkitekture. Përdoret për zhvillimin e aplikacioneve për Android dhe iOS.

Python

Python - detyra kryesore e të cilit është të rrisë produktivitetin e zhvilluesit, ta bëjë kodin më të lexueshëm. Ai ka një listë të vogël të konstrukteve sintaksore dhe një bibliotekë standarde shumë mbresëlënëse të funksioneve. Zhvillimi i gjuhës filloi në vitet '90 dhe vazhdon edhe sot e kësaj dite. Përdoret për zhvillimin e projekteve të ndryshme, zgjerimet dhe integrimin e aplikacioneve të zhvilluara më parë.

Bazat e gjuhës Python mund të mësohen si një pikënisje për programim dhe si një gjuhë e dytë plotësuese.

Rubin

Ruby është një gjuhë programimi e nivelit të lartë që përmban pjesë të Perl, Smalltalk, Eiffel, Ada dhe Lisp. Përdoret që nga viti 1995. Përparësitë kryesore të gjuhës janë thjeshtësia dhe fleksibiliteti i saj. I përshtatshëm për të shkruar aplikacione të vogla dhe për të zhvilluar programe serioze.

gjuha PHP

PHP është një gjuhë skriptimi mjaft e njohur e krijuar për ndërtimin e aplikacioneve në ueb. Shumë shpesh përfshihet edhe në listën e "Gjuhëve të Programimit për Fillestar" dhe rekomandohet për mësim.

Mund t'ju ndihmojë të krijoni aplikacione ueb me cilësi të lartë në një kornizë kohore shumë të ngushtë. Gjuha ka një strukturë të thjeshtë dhe të kuptueshme, e cila ju lejon ta mësoni atë brenda pak ditësh.

konkluzioni

Ne kemi shqyrtuar gjuhët më të njohura të programimit, studimi i të cilave do t'ju ndihmojë në të ardhmen të krijoni me sukses projektet tuaja dhe të fitoni para si programues. Nuk ka konsensus se cila gjuhë të studiohet, por në të njëjtën kohë, ekspertët vërejnë se është e dëshirueshme të njihen disa gjuhë programimi, pasi kjo do të zgjerojë më tej fushën e veprimtarisë dhe do të lehtësojë punën në projekte të ndryshme ekipore.

Programimi është një shkencë e tërë që ju lejon të krijoni programe kompjuterike. Ai përfshin një numër të madh të operacioneve dhe algoritmeve të ndryshme që formojnë një gjuhë të vetme programimi. Pra, çfarë është dhe cilat janë gjuhët e ndryshme të programimit? Artikulli jep përgjigje, dhe gjithashtu ofron një listë të përgjithshme të gjuhëve të programimit.

Historia e shfaqjes dhe ndryshimit të gjuhëve të programit duhet të studiohet së bashku me historinë e zhvillimit të teknologjisë kompjuterike, sepse këto koncepte janë të lidhura drejtpërdrejt. Pa gjuhë programimi, do të ishte e pamundur të krijohej ndonjë program për funksionimin e një kompjuteri, që do të thotë se krijimi i kompjuterëve do të bëhej një ushtrim i pakuptimtë.

Gjuha e parë e makinës u shpik në vitin 1941 nga Konrad Zuse, i cili është shpikësi i motorit analitik. Pak më vonë, në vitin 1943, Howard Aiken krijoi makinën Mark 1, e aftë për të lexuar udhëzime në nivelin e kodit të makinës.

Në vitet 1950, kishte një kërkesë aktive për zhvillimin e softuerit dhe gjuha e makinerisë nuk mund të trajtonte sasi të mëdha kodi, kështu që u krijua një mënyrë e re e komunikimit me kompjuterët. Assembler është gjuha e parë mnemonike që zëvendëson udhëzimet e makinës. Me kalimin e viteve, lista e gjuhëve të programimit vetëm sa rritet, sepse fusha e aplikimit të teknologjive kompjuterike po bëhet më e gjerë.

Klasifikimi i gjuhëve të programimit

Për momentin, ka më shumë se 300 gjuhë programimi. Secila prej tyre ka karakteristikat e veta dhe është e përshtatshme për një detyrë specifike. Të gjitha gjuhët e programimit mund të ndahen përafërsisht në disa grupe:

  • I orientuar nga aspekti (ideja kryesore është ndarja e funksionalitetit për të rritur efikasitetin e moduleve të softuerit).
  • Strukturore (bazuar në idenë e krijimit të një strukture hierarkike të blloqeve individuale të programit).
  • Logjike (bazuar në teorinë e aparatit të logjikës matematikore dhe rregullat e zgjidhjes).
  • Të orientuar drejt objekteve (në një programim të tillë, nuk përdoren më algoritmet, por objektet që i përkasin një klase të caktuar).
  • Multi-paradigma (kombinoni disa paradigma, dhe vetë programuesi vendos se cilën gjuhë të përdorë në një rast të veçantë).
  • Funksionale (elementet kryesore janë funksionet që ndryshojnë vlerën në varësi të rezultateve të llogaritjeve të të dhënave fillestare).

Programimi për fillestarët

Shumë njerëz shtrojnë pyetjen, çfarë është programimi? Në thelb, është një mënyrë për të komunikuar me një kompjuter. Falë gjuhëve të programimit, ne mund të vendosim detyra specifike për pajisje të ndryshme duke krijuar aplikacione ose programe të veçanta. Kur studioni këtë shkencë në fazën fillestare, gjëja më e rëndësishme është të zgjidhni gjuhë programimi të përshtatshme (interesante për ju). Lista fillestare është më poshtë:

  • Basic u shpik në vitin 1964, i përket familjes së gjuhëve të nivelit të lartë dhe përdoret për të shkruar programe aplikimi.
  • Python ("Python") është mjaft i lehtë për t'u mësuar falë sintaksës së tij të thjeshtë dhe të lexueshme, por avantazhi është se mund të përdoret për të krijuar programe të rregullta desktop dhe aplikacione ueb.
  • Pascal ("Pascal") - një nga gjuhët më të vjetra (1969), e krijuar për të mësuar studentët. Modifikimi i tij modern është i shtypur dhe i strukturuar fuqishëm, por Pascal është një gjuhë mjaft logjike që është e kuptueshme në një nivel intuitiv.

Kjo nuk është një listë e plotë e gjuhëve të programimit për fillestarët. Ekziston një numër i madh sintaksash që janë të disponueshme për t'u kuptuar, dhe sigurisht që do të jenë të kërkuara në vitet e ardhshme. Gjithkush ka të drejtë të zgjedhë në mënyrë të pavarur drejtimin që do të jetë interesant për të.

Fillestarët kanë mundësinë të përshpejtojnë mësimin e programimit dhe bazave të tij falë mjeteve speciale. Asistenti kryesor është mjedisi i integruar i zhvillimit për programet dhe aplikacionet Visual Basic ("Visual Basic" është gjithashtu një gjuhë programimi që trashëgoi stilin e gjuhës Basic të viteve 1970).

Nivelet e gjuhës së programimit

Të gjitha gjuhët e formalizuara të destinuara për krijimin, përshkrimin e programeve dhe algoritmeve për zgjidhjen e problemeve në kompjuterë ndahen në dy kategori kryesore: gjuhë programimi të nivelit të ulët (lista jepet më poshtë) dhe ato të nivelit të lartë. Le të flasim për secilën prej tyre veç e veç.

Gjuhët e nivelit të ulët janë krijuar për të krijuar udhëzime makinerie për procesorë. Avantazhi i tyre kryesor është se ata përdorin shënimin mnemonik, domethënë, në vend të një sekuence zero dhe njësh (nga sistemi i numrave binar), kompjuteri kujton një fjalë të shkurtuar kuptimplote nga gjuha angleze. Gjuhët më të famshme të nivelit të ulët janë "Assembler" (ka disa nënspecie të kësaj gjuhe, secila prej të cilave ka shumë të përbashkëta, por ndryshon vetëm në një sërë direktivash dhe makrosh shtesë), CIL (e disponueshme në Net platformë) dhe JAVA Bytecode.

Gjuhët e programimit të nivelit të lartë: një listë

Gjuhët e nivelit të lartë janë krijuar për lehtësinë dhe efikasitetin e aplikacioneve; ato janë saktësisht e kundërta e gjuhëve të nivelit të ulët. Karakteristika e tyre dalluese është prania e strukturave semantike që përshkruajnë në mënyrë të përmbledhur dhe koncize strukturat dhe algoritmet e programeve. Në gjuhët e nivelit të ulët, përshkrimi i tyre në kodin e makinës do të ishte shumë i gjatë dhe i pakuptueshëm. Gjuhët e nivelit të lartë janë të pavarura nga platforma. Në vend të kësaj, përpiluesit kryejnë funksionin e një përkthyesi: ata e përkthejnë tekstin e programit në udhëzime elementare të makinës.

Lista e mëposhtme e gjuhëve të programimit: C ("C"), C # ("C-sharp"), "Fortran", "Pascal", Java ("Java") - janë ndër sintaksat më të përdorura të nivelit të lartë. Ajo ka karakteristikat e mëposhtme: këto gjuhë punojnë me struktura komplekse, mbështesin llojet e të dhënave të vargut dhe operacionet me skedarët e informacionit I/O, dhe gjithashtu kanë avantazhin e të qenit shumë më të lehta për t'u punuar për shkak të lexueshmërisë dhe sintaksës së qartë.

Gjuhët më të përdorura të programimit

Në thelb, ju mund të shkruani një program në çdo gjuhë. Pyetja është, a do të funksionojë me efikasitet dhe pa probleme? Prandaj duhen zgjedhur gjuhët më të përshtatshme të programimit për zgjidhjen e problemeve të ndryshme. Lista sipas popullaritetit mund të karakterizohet si më poshtë:

  • Gjuhët OOP: Java, C ++, Python, PHP, VisualBasic dhe JavaScript;
  • një grup gjuhësh strukturore: Basic, Fortran dhe Pascal;
  • multi-paradigmë: C #, Delphi, Curry dhe Scala.

Fusha e programeve dhe aplikimeve

Zgjedhja e gjuhës në të cilën është shkruar ky ose ai program varet kryesisht nga zona e aplikimit të tij. Kështu, për shembull, për të punuar me "harduerin" e vetë kompjuterit (shkrimi i drejtuesve dhe programet mbështetëse), opsioni më i mirë do të ishte C ("C") ose C ++, të cilat përfshihen në gjuhët kryesore të programimit. (shih listën e mësipërme). Dhe për zhvillimin e aplikacioneve celulare, duke përfshirë lojërat, duhet të zgjidhni Java ose C # ("C-Sharp").

Nëse nuk keni vendosur ende në cilin drejtim të punoni, ju rekomandojmë të filloni të mësoni nga gjuhët C ose C ++. Ata kanë një sintaksë shumë të qartë, një ndarje të qartë strukturore në klasa dhe funksione. Plus, duke ditur C ose C ++, mund të mësoni lehtësisht çdo gjuhë tjetër programimi.

Artikujt kryesorë të lidhur