Mis keeles praegu programmeeritakse? Viis paljulubavat programmeerimiskeelt helge tulevikuga

Lastele mõeldud palavikuvastaseid ravimeid määrab lastearst. Aga palaviku puhul on hädaolukordi, kui lapsele tuleb kohe rohtu anda. Siis võtavad vanemad vastutuse ja kasutavad palavikualandajaid. Mida on lubatud imikutele anda? Kuidas saate vanematel lastel temperatuuri alandada? Millised ravimid on kõige ohutumad?

  • Tõlge

Kui jagame programmeerimiskeeled populaarsuse järgi, jagatakse need kolme ešeloni. Esimene tasand sisaldab peavoolu keeli, nagu Java, JavaScript, Python, Ruby, PHP, C#, C++ ja Objective-C. Kuigi mõned juhtivad keeled võivad hääbuma hakata, on parem teada neist üht või mitut, kui soovite hõlpsasti tööd leida.


Teise astme keeled üritavad tungida peavoolu, kuid pole seda veel saavutanud. Need on end tõestanud tugevate kogukondade loomisega, kuid enamik konservatiivseid IT-ettevõtteid neid siiski ei kasuta. Scala, Go, Swift, Clojure ja Haskell on keeled, mida ma liigitaksin teise astme hulka. Mõned ettevõtted kasutavad neid keeli üksikute teenuste jaoks, kuid laialdane kasutuselevõtt on haruldane (välja arvatud Swift, mis hakkab iOS-i põhikeelena Objective-C-st mööduma). Go ja Swiftil on hea võimalus järgmise kahe-kolme aasta jooksul liikuda teiselt tasemelt esimesele.


Enamik esimese ešeloni keeli on oma positsioonidel kindlalt juurdunud. Seetõttu võtab keele kaotamine juhtivalt positsioonilt märkimisväärselt aega ja teise astme keelel on väga raske esimesse sisse murda.


Selle artikli paljutõotavad keeled kuuluvad kolmandasse astmesse ja nad alles alustavad oma teed. Mõned keeled jäävad kolmandasse astmesse paljudeks aastateks, ilma et see oleks populaarsust kogunud, samas kui teised puhkevad areenile vaid paari aastaga. Nagu näiteks keeled, mida artiklis käsitletakse.

Paljulubavad keeled: miks just need viis?

Viis programmeerimiskeelt, millest arutatakse, on väga uued (võimalik, et kuulete mõnest esimest korda) ja neil on ilmselgelt suurepärased võimalused järgmise 2-3 aasta jooksul teisele tasemele murda. Võib-olla kunagi suudab üks neist keeltest vajutada esimese ešeloni keeli.


Seetõttu valiti sellesse loendisse need viis keelt:


Elm kogub JavaScripti kogukonnas populaarsust eelkõige nende seas, kes eelistavad funktsionaalset programmeerimist, mis on tõusuteel. Nagu TypeScript või Dart, on ka Elm üle võetud JavaScripti.


Rust on süsteemide programmeerimiskeel, mis on mõeldud peamiselt niššidele, mis kasutavad C ja C++. Seetõttu on üllatav näha, et selle keele populaarsus veebiarendajate seas kasvab kiiremini. See fakt on mõttekam, kui saate teada, et keele lõi Mozilla, kes soovis pakkuda paremat võimalust veebiarendajatele, kes peavad kirjutama madala tasemega koodi ja olema samal ajal tõhusamad kui PHP, Ruby, Python või JavaScript. Rust valiti ka 2016. aasta StackOverflow arendajate küsitluses parimaks "kõige armastatumaks tehnoloogiaks" (see tähendab, et enamik kasutajaid sooviks keele kasutamist jätkata).


Kotlin on olnud umbes viis aastat, kuid just sel aastal jõudis see tootmisvalmis versioonini 1.0. Kuigi see pole veel saavutanud Scala, Groovy või Clojure’i populaarsust – kolm kõige populaarsemat ja küpsemat (Javat arvestamata) keelt JVM-i all – eristub see paljudest teistest JVM-i keeltest ja näib olevat valmis selle koha sisse võtma. selle grupi juhtide seas.. Keel sai alguse JetBrainsist (populaarse IntelliJ IDEA IDE looja). Seega on see loodud arendaja tootlikkusele keskendudes.


Crystal on veel üks keel, mis loodab tuua C-taseme programmide jõudluse veebiarendajate kõrgetasemelisse maailma. Crystal on suunatud Ruby kogukonnale, sest selle süntaks on Rubyga sarnane ja mõnikord identne. Ruby idufirmade niigi suur arv kasvab jätkuvalt ja Crystal võib mängida võtmerolli nende rakenduste jõudluse järgmisele tasemele viimisel.


Elixir sai inspiratsiooni ka Ruby ökosüsteemist, kuid selle asemel, et püüda tuua C-laadset kasu, keskendub see hästi ligipääsetavate, tundlike süsteemide ehitamisele, s.t. millega kriitikud ütlevad, et Railsil on probleeme. Elixir saavutab need eelised Erlang VM-iga, millel on kindel maine, mis on rajatud enam kui 25-aastasele edule telekommunikatsioonitööstuses. Phoenix (Elixiri veebiraamistik) koos suure ja õitsva ökosüsteemiga annavad sellele keelele täiendava veetluse.


Nüüd vaadake, kuidas neli neist viiest keelest tõusevad populaarsuse redelil (StackOverflow ja GitHubi andmete põhjal):




Kõigil neil keeltel on kirglik kogukond ja oma iganädalane uudiskiri. Kui mõtlete noore keele õppimisele, mis pakub põnevaid tulevikuvõimalusi, lugege kõigi nende viie keele kohta lühikesi esitlusi, mille on kirjutanud kogenud entusiastid ja vastavate ökosüsteemide juhid.

Elm

Elm on funktsionaalne programmeerimiskeel, mis keskendub kasutatavusele ja mis kompileeritakse suure jõudlusega JavaScripti koodiks. Saate seda kasutada, sealhulgas koos JavaScriptiga, veebis kasutajaliideste loomiseks. Elmi peamised eelised JavaScripti ees on töökindlus, hoolduse lihtsus ja keskendumine lõbusale programmeerimisele. Täpsemalt:

  • Käitusaja erandid puuduvad: Elm koodil on maine ei tee kunagi käitusajal erandeid. Üldse mitte nagu "määratlemata pole funktsioon".
  • Legendaarne armuline koostaja: Elm koostaja sageli kiitust konkurentide kõige kasulikumate veaaruannete jaoks. "Kui see kompileerib, siis see tavaliselt lihtsalt töötab" on levinud arvamus, isegi pärast suurt ümbertöötamist. See muudab suuri Elmi projekte palju lihtsamaks hooldada kui võrreldavaid JS-projekte.
  • Semantiline versioonimine: Elm-pakett jõustab semantilised versioonid automaatselt. Kui paketi autor üritab teha API rikkuvaid muudatusi ilma peamist versiooninumbrit tõstmata, tuvastab elm-pakett selle ja keeldub avaldamast uus versioon pakett. Ükski teine ​​teadaolev paketihaldur ei jõusta semantilist versioonimist nii usaldusväärselt.
  • Kiire ja funktsionaalne: Elm on puhas funktsionaalne keel, mis ei taga mutatsioone ega kõrvalmõjusid. See mitte ainult ei taga Elmi koodi suurepärast skaleeritavust, vaid aitab ka muuta rakenduse kasutajaliidese kiiremini kui React, Angular või Ember.
  • Võimsad tööriistad: elm-formaat vormindab lähtekoodi vastavalt kogukonna standardile. Enam pole vaja vaidleda kodeerimise tavade üle. Lihtsalt vajutage oma redaktoris nuppu "Salvesta" ja teie kood muutub ilusaks. elm-test on varustatud patareidega, mis toetavad nii seadme testimist kui ka juhuslikku testimist. elm-css võimaldab teil kirjutada Elmi koodi, mis kompileerub css-failiks, nii et saate koodi jagada oma rakenduse ja stiililehtede vahel, et teie konstandid ei läheks kunagi sünkroonist välja.

Elm kood võib suhelda ka JavaScriptiga. See tähendab, et saate seda väikestes annustes oma JS-koodi süstida ja saate siiski kasutada tohutut JS-i ökosüsteemi ja mitte ratast uuesti leiutada.

Kotlin

Kotlin on staatiliselt trükitud keel, mis keskendub JVM-ile ja JavaScriptile. Kotlin sündis JetBrainsi vajadusest, mis otsis uut keelt oma tööriistakomplekti (mis oli enamasti kirjutatud Java keeles) arendamiseks. Midagi, mis võimaldaks neil kasutada olemasolevat koodibaasi ja samal ajal lahendada mõningaid Java probleeme. Ja just lahendused nendele tavalistele vigadele, millega tarkvara kirjutamisel kokku puututakse, on määratlenud suure osa Kotlini omadustest.

  • Lühidus: vähendage teatud konstruktsioonide väljendamiseks vajaliku katlakoodi hulka.
  • Mitmekülgsus: looge keel, mis sobib igat tüüpi tööstuslike rakenduste jaoks, olgu see siis veebi-, mobiiliarendus-, töölaua- või serverirakendused.
  • Ohutus: Laske keelel lahendada mõningaid levinud lõkse, mis on seotud probleemidega, nagu nullviite erandid.
  • Interaktsioon: võimaldavad keelel koostoimida olemasolevate Java koodibaaside, teekide ja raamistikega, võimaldades järkjärgulist kasutuselevõttu ja juba tehtud investeeringutest kasu saada.
  • Tööriistad: JetBrains toodab tööriistu ja valmistab neid, tuginedes veendumusele, et paljusid rutiinseid ülesandeid saab automatiseerida ning need viia tõhusama ja produktiivsema arenguni. Seega peaks keel hõlpsasti võimaldama abivahendite kasutamist.

Kotlin on olnud ja jääb alati keskenduma pragmatismile – otsides ühiseid probleeme, millega koodi kirjutamisel sageli kokku puutume, ja püüdes neid lahendada. See jookseb punase niidina läbi erinevate keelefunktsioonide, näiteks:

  • Vaikimisi ohutu null: Kotlini tüübid on vaikimisi nullitatavad, mis väldib tüütuid nullviite/osuti erandeid.
  • Esimese klassi delegatsioon: võimalus delegeerida klassiliikme funktsionaalsust välisele funktsioonile, mis hõlbustab taaskasutamist ja parandab kompositsiooni.
  • Kokkulepped: tavade kogum, mis võimaldab kirjutada ekspressiivset koodi, sillutades teed tugevasti trükitud DSL-ile, mis parandab loetavust ja lihtsustab ümberkujundamist.
    html ( head ( pealkiri (+"XML kodeering Kotliniga") ) body ( p ( + "See on mingi HTML" ) )

Kotlin 1.0 ilmus 2016. aasta veebruaris pärast enam kui viieaastast arendustööd ja ulatuslikku testimist reaalsetes projektides. Praegu on Kotlini kasutavaid JetBrainsi tooteid üle kümne. Seda kasutavad ka sellised ettevõtted nagu Amex, NBC Digital, Expedia ja Gradle.


Lisateabe saamiseks külastage kotlinlang.org


See osa on kirjutatud

1. Projekti programmeerimiskeelt valides on valik kahe poole vahel - kas valida vana end tõestanud tööriist või uus, ilus, funktsionaalne, kuid vähe testitud ja seetõttu ebausaldusväärne keel. Mida on selles olukorras kõige targem teha? Millised on iga otsuse riskid ja kuidas nendega toime tulla?

Igor Zilberg, SmartHead
Tööriistade valikul on vaja lähtuda ülesande adekvaatsusest ja valitud tööriistu tundva kogenud meeskonna olemasolust. Uute tööriistadega töötamise riskid on viidud miinimumini uuringute, kontseptsiooni tõestuse loomise ja kogenud konsultantide kaasamisega. Uusi tehnoloogiaid tuleks pidevalt uurida, kuid neid tuleks rakendada ainult siis, kui need sobivad konkreetse ülesandega paremini.

Aleksander Makarchuk, qb
Äri jaoks ei eksisteeri mõistet "ilus keel". Saate panustada uuele testimata keelele ainult siis, kui see tagab projektile mõne erilise USP, mida kliendid tunnevad ja mis kõige tähtsam, tahavad selle eest maksta. Kui see tingimus on täidetud, saate valida uue keele, kuid peate leppima kõigi sellega seotud riskidega.

Grigori Nikonov, Actis Wunderman
Muidugi oleneb see projektist ja keele enda küpsusest. Kui projekt võimaldab või keelekasutus on vajalik tingimus ja vajalikud aineteegid on olemas, siis on täiesti võimalik katset lubada. Riskid on ilmsed: "lõksud", mille otsa võid poolel teel komistada. Nende riskide minimeerimine on samuti ilmne: võimalusel viige enne projekti algust läbi uuringud ja veenduge, et foorumites või tootjalt oleks keelele vähemalt aktiivne tugi.

, ADV
Selles küsimuses sõltub kõik projekti ajastusest ja eelarvest. Kui mõlemad on väga piiratud, ei ole igasugune uurimine õigustatud ja võib tuua kaasa suuri probleeme kuni projekti täieliku ebaõnnestumiseni.

Aleksei Fedorov, "Klassikaaslased"
Vastus sõltub paljuski sellest, kui kaua projekt aega võtab. Kui see on väike kohandatud projekt, mis tuleb kiiresti teha, üle anda ja unustada, siis saate valida, mida soovite. Kui see on aastaid kestev suur projekt, siis on parem valida tõestatud tehnoloogiad, mille jaoks saate palgata vajaliku arvu spetsialiste. Selleks, et hinnata, kui palju konkreetse tehnoloogia spetsialiste teie piirkonnas on, piisab, kui kasutada mõnda mõistlikku teenust, näiteks LinkedIn või HeadHunter. Ja siis tuleb vaadata mittefunktsionaalseid nõudeid: koormus, turvalisus, veataluvus jne.

2. Millised on olulised tegurid, mis garanteerivad, et keelt saab ja tuleks tootmises kasutada?

Igor Zilberg, SmartHead
Keegi ega miski ei anna siin maailmas garantiisid. Toetume oma kogemustele ja levinud parimatele tavadele.

Aleksander Makarchuk, qb
On kolm peamist märki, mis näitavad, et teatud keele kasutamine on tulus ja ohutu. Esiteks "elava" kogukonna olemasolu selles keeles, teiseks edukate juhtumite olemasolu ja kolmandaks keele tugi suurte müüjate poolt.

Grigori Nikonov, Actis Wunderman
"küpsete" ainekogude ja raamistike olemasolu, aktiivne võrgukogukond, mis pakub nõu probleemide lahendamiseks, negatiivse tagasiside puudumine lõpliku rakenduse stabiilsuse ja toimivuse kohta.

Aleksei Persianov, Mihhail Parfenjuk, ADV
Tegurid on antud keele kogukond, elluviidud projektide arv, arendajate arv jne. Toote tootmisse laskmine uues ja toores keeles peidab endas suuri probleeme toega.

Aleksei Fedorov, "Klassikaaslased"
Formaalset garantiid saab toetada ainult lepinguga. Kui on olemas tõsine müüja (näiteks Oracle, SAP, IBM), kes garanteerib näiteks selle, et tema tehnoloogiat toetatakse järgmise 10 aasta jooksul ja selle müüjaga on sõlmitud vastav tugileping, siis põhimõtteliselt , võite seda pidada mingiks garantiiks. Probleem on selles, et see on tavaliselt väga kallis ja suurte müüjate toe kvaliteet on tavaliselt vastik.

Järelikult maailmas viimased aastad võttis kasutusele teise praktika – avatud lähtekoodiga. Kui teil on avatud lähtekoodiga avatud lähtekoodiga tööriist (keel, raamistik, andmebaas või mis iganes), annab see teile teatud garantii, et kui selles tööriistas äkki leitakse viga, saate äärmisel juhul selle vea parandada omavahendid.käed. Just seda avatud lähtekoodiga lahenduste omadust pean ma tänase äri võtmeks.

3. Kuidas toimida, kui arendaja või isegi mitu arendajat teevad ettepaneku programmeerimiskeele muutmiseks, kuid olukord näitab, et nende elevust ei toeta tehnoloogiale adekvaatsed ärinõuded?

Igor Zilberg, SmartHead
Arendajad ei kehtesta ärinõudeid. Ettevõtted pakuvad neid. Kuid äri sõltub koodide kvaliteedist, mida arendajad kirjutavad. Seega, kui arendajad soovivad kasutada tehnoloogiat, mis äriprobleemi lahendamiseks ilmselgelt ei sobi, siis tuleb arendajaid kas veenda või muuta. Adekvaatne ja kogenud arendaja on võimeline mõistma ärinõudeid ja rakendama neile sobivaimat lahendust. Meil selliseid probleeme ei olnud. Meie praktikas juhtub sagedamini vastupidist: klient, selle asemel, et sõnastada ärinõudeid, mõjutab tehnoloogia valikut (sageli oma nõuete elluviimise arvelt).

Aleksander Makarchuk, qb
Kui uuele keelele üleminekut ei toeta käegakatsutavad argumendid ja see ei tõota projektile tõsiseid eeliseid, siis pole seda vaja. Aga loomulikult tuleb seda arendajatele selgitada, et meeskonnal ei jääks muljet, et nad seda ei kuula.

Grigori Nikonov, Actis Wunderman
Pidage kinni konservatiivsest poliitikast ja ärge muutke keelt ilma mõjuva põhjuseta. Alati tuleb mõni projekt uue keele proovimiseks.

Aleksei Persianov, Mihhail Parfenjuk, ADV
Poolel teel saad arendajatega kohtuda ainult sisemise projekti puhul või siis, kui see on kirjutatud meeskonna koolitamiseks. Sel juhul on ebaõnnestumise riskid väikesed ja ebaõnnestumise korral antakse kasulik kogemus tulevikku. Vastasel juhul ei hinda ettevõte arendajate perfektsionismi.

Aleksei Fedorov, "Klassikaaslased"
Esiteks tuleks küsida, mis on keele muutmise idee põhjendus. Mida see annab? Millised on plussid ja millised miinused? Mis on sellise ülemineku maksumus ja milline on ajaraam? Millised on riskid?

Kui saadud vastused ärilisest vaatenurgast teile sobivad, siis jätkake. Kui te pole rahul, peate proovima arendajatele edastada põhjused, miks te neist keeldute.

4. Millal on ühelt keelelt teisele ülemineku hind seda väärt?

Igor Zilberg, SmartHead
Platvormi vahetamise kulusid ja sellega kaasnevat kasu ei ole võimalik väljaspool projekti konteksti hinnata. Sellist otsust saab teha vaid konkreetse projekti raames teadliku lähenemise alusel, mitte mingite "universaalsete" arvamuste või reeglite alusel.

Aleksander Makarchuk, qb
Millal toob see kaasa nii otsese kui kaudse käegakatsutava kasumi, kuna projektis ilmub uus USP, mis muudab toote konkurentsivõimelisemaks.

Grigori Nikonov, Actis Wunderman
Juhul, kui uue keele kasutamine võimaldab oluliselt optimeerida kogu ainevaldkonna eluahelat: alates rakenduse kavandamisest, arendamisest ja testimisest kuni juurutamise ning hilisemate uuenduste ja parendusteni, mis tulenevad keele omadustest ja ümbritsevast ökosüsteemist. seda.

Aleksei Persianov, Mihhail Parfenjuk, ADV
Kui keeletugi lõpetatakse ja samal ajal spetsialistide arv turul kipub nulli minema. Või kui kaotate täielikult vana meeskonna ilma tehnoloogia säästmise võimaluseta. Kui kasum keelest on suurem kui selle ülemineku maksumus.

Aleksei Fedorov, "Klassikaaslased"
Kui teil ja teie kolleegidel on ülaltoodud küsimustele selged vastused.

5. Kas arvate, et teatud ülesannete puhul on keelekasutus väljakujunenud? Kui jah, siis kuidas te seda täpselt näete? Kas võib ilmuda või juba eksisteerida keel, mis muudab olukorda ja tõmbab enamuse arendajatest üle?

Igor Zilberg, SmartHead
Muidugi on olemas mõned tüüpilised rakendused erinevatele platvormidele (mitte keeltele). Näiteks Java ja .NET suhteliselt suurte ärirakenduste või -teenuste jaoks. Node.js mitme lõimega töötlemiseks ja sõnumite saatmiseks. Ärge loetlege kõike. Need piirid on aga väga-väga hägused ja sõltuvad ka piirkonnast. USA-s näiteks veidi teistsugune kasutuskogemus, "mood" ja platvormide tüüpilised kasutusvaldkonnad kui meil.

Aleksander Makarchuk, qb
Ühest küljest on keelte jaotus rakenduste järgi väljakujunenud, kuid teisest küljest on üsna olulised piirkondlikud ja hinnategurid: tehnoloogia sisestamise kulud, tugi jne. Mis puutub uute keelte esilekerkimisse, siis siin on vaja sellist asja märgata. Viimastel aastatel on suhtluse tase märkimisväärselt kasvanud ja programmeerimiskeeled on tegelikult endiselt samad. Võib-olla toob kommunikatsioonivaldkonna edasine revolutsioon kaasa täiesti uued arendustehnoloogiad.

Grigori Nikonov, Actis Wunderman
Põhimõtteliselt on selline jaotus olemas: C ja C ++ kasutatakse traditsiooniliselt madala taseme arendamiseks, Java ja C # peetakse üldotstarbelisteks keelteks, mis sobivad paljude ülesannete jaoks äriloogikast mobiilirakendusteni. Python, Ruby ja PHP on suunatud peamiselt veebiarendusele, JavaScript - brauserirakendustele. Arvan, et selles vallas drastilisi muutusi ei tule, kuigi keelte ja raamistike mood vahel muutub – nüüd hakkab näiteks Go keel populaarsust koguma.

Aleksei Persianov, Mihhail Parfenjuk, ADV
Jah. Mõned asjad on töö kiiruse ja kasutuslihtsuse tõttu erinevates keeltes paremini rakendatavad, näiteks PHP-projektides saate keele "aegluse" tõttu rakendada vestlust Node'is või agregaatorit Java-s - tulemus on parem.

Igal aastal saab iga uus keel "parimate" loorbereid ja meelitab arendajaid, kuid siiani on tõestatud keelte positsioonid ilmselt vankumatud. Tulevikus on kõik võimalik.

Aleksei Fedorov, "Klassikaaslased"
Enamik meile tuntud kaasaegsetest programmeerimiskeeltest on multifunktsionaalsed, st suudavad teha väga erinevaid otsuseid.

Mis puutub uude keelde - jah, selline keel võib ilmuda, kuid tööstuse üsna tugeva inertsi tõttu ei usu ma, et järgmise 5 aasta jooksul keegi Java ja C / C ++ pjedestaalilt maha lükkab. Kui valida mingi “hobune”, siis panustaksin JavaScriptile. Täna näeme selles valdkonnas tohutut kasvu kõiges JavaScriptiga seonduvas. Raamid sünnivad nagu seeni pärast vihma. Internetis leviv hüpe selle tehnoloogia ümber on tohutu. Vaatame, kuhu see kõik välja viib.

6. Kas programmeerija peab olema DevOps (omama programmeerija ja süsteemiadministraatori oskusi)? Mida teha sellega, et enamik programmeerijaid keeldub selles valdkonnas pädevusi arendamast ja vastutust kandmast?

Aleksei Persianov, Mihhail Parfenjuk, ADV
Keskkonna konfigureerimiseks kasutavad nad tavaliselt süsteemiadministraatori teenuseid. Kuid tõenäoliselt on mõistlik, et koodi kirjutaja peaks suutma saidi seadistada selle koodi optimaalseks täitmiseks. See säästab aega ja kulusid.

7. Kas peaksite oma projektides kasutama mikroteenuseid?

Aleksei Persianov, Mihhail Parfenjuk, ADV
Kindlat vastust pole, kuid meie vastus on jah. Muidugi võivad need lisada palju probleeme, kuid aitavad ka paljusid lahendada. Näiteks saab tänu mikroteenustele kirjutada rakenduse erinevad osad erinevates programmeerimiskeeltes, võimalik skaleerida rakenduse laetud osi jne.

8. Kas arendaja peaks suutma töötada paljude kaasaegsete veebitehnoloogiate ja -keeltega?

Aleksei Persianov, Mihhail Parfenjuk, ADV
Viimastel aastatel on esiots teinud tohutu läbimurde, samas kui serveripoolsete keelte areng pole nii märgatav. Arendaja peab muidugi teadma seotud valdkondade põhitõdesid, kuid serverikeelte ja kliendikeelte guru ei saa olla, igaüks peab tegema oma asja ja olema selles tõeline professionaal.

Aruande pealkiri

Kaasaegsed programmeerimiskeeled ja nende kasutamine

Projekti autor

Projekti struktuur

● Programmeerimiskeele klassifikatsiooniskeem

● Programmeerimiskeelte klassifikatsioon

● Programmeerimiskeelte ülevaade

● Kasulikud ressursid

Programmeerimiskeele klassifikatsiooniskeem

Programmeerimiskeelte klassifikatsioon

protseduuriline programmeerimine- on arvuti von Neumanni arhitektuuri peegeldus. Protseduurikeeles kirjutatud programm on käskude jada, mis määratleb ülesande lahendamise algoritmi. Protseduurilise programmeerimise põhiidee on mälu kasutamine andmete salvestamiseks. Peamine käsk on määramine, mille abil määratakse ja muudetakse arvuti mälu. Programm teisendab mälu sisu, muutes selle algolekust saadud olekusse.

On olemas sellised protseduurilise programmeerimise keeled:

 Fortrani keel loodi 20. sajandi 50. aastate alguses teaduslike ja tehniliste probleemide programmeerimiseks;

 Cobol - loodud 20. sajandi 60ndate lõpus, et lahendada erinevatele andmekandjatele salvestatud suurte andmemahtude töötlemise probleeme;

 Algol (1960) on mitmeotstarbeline täiustatud programmeerimiskeel. See tutvustas esimest korda mõisteid "programmiploki struktuur" ja "dünaamiline mälujaotus";

 20. sajandi 60. aastate keskel loodi spetsiaalne programmeerimiskeel algajatele - BASIC. Seda iseloomustab arendamise lihtsus ja universaalsete tööriistade kättesaadavus teaduslike, tehniliste ja majanduslike probleemide, aga ka ülesannete, näiteks mängude, lahendamiseks.

Kõik ülaltoodud keeled olid keskendunud erinevatele probleemide klassidele, kuid ühel või teisel määral olid need seotud konkreetse arvutiarhitektuuriga.

 Aastatel 1963-1966 loodi mitmeotstarbeline universaalkeel PL-1. See keel sobib hästi arvutusprotsesside uurimiseks ja planeerimiseks, modelleerimiseks, loogikaülesannete lahendamiseks ja tarkvarasüsteemide arendamiseks.

 Pascali keel (PASCAL) (1968-1971) on kõige populaarsem PC-le mõeldud protseduuriline programmeerimiskeel, mida kasutatakse siiani edukalt. Pascali keel põhineb lähenemisel üldisest ülesandest konkreetsele (lihtsamale ja mahult väiksemale). Peamised Pascali põhimõtted on järgmised: a) Struktuurne programmeerimine, mis põhineb alamprogrammide ja sõltumatute andmestruktuuride kasutamisel; b) Ülevalt alla programmeerimine, kui ülesanne on jagatud lihtsateks iseseisvalt lahendatavateks ülesanneteks. Seejärel ehitatakse algse probleemi lahendus täielikult ülevalt alla.

 Protseduuriliste programmeerimiskeelte hulka kuulub ADA keel (1979). Keel on oma nime saanud esimese programmeerija, Byroni tütre Ada Lovelace'i järgi. Seda eristab kujunduste modulaarsus.

 Protseduuriliste programmeerimiskeelte hulka kuulub ka C-keel (70. aastate algus). Selle algne versioon oli kavandatud rakendamise keeleks operatsioonisüsteem Unix montaažikeele asemel. C-keele üks omadus on see, et avaldiste ja väidete erinevused on silutud, mis lähendab seda funktsionaalsetele programmeerimiskeeltele. Lisaks puudub C-keeles protseduuri mõiste ja alamprogrammide kasutamine põhineb funktsiooni mõistel, mis võib kombineerida protseduuri võimalusi. Ühelt poolt saab seda vastavalt juhtimisstruktuuride ja andmestruktuuride komplektile klassifitseerida kõrgetasemeliseks keeleks ja teisest küljest sisaldab see tööriistu, mis võimaldavad otsest juurdepääsu arvuti funktsionaalsetele üksustele, mis tähendab, et seda saab kasutada töökeelena.

Objektorienteeritud programmeerimine (OOP) on programmeerimismeetod, milles programmide põhielementideks on objektid. Programmeerimiskeeltes realiseeritakse objekti mõiste kui omaduste kogum (antud objektile omased andmestruktuurid), meetodid nende töötlemiseks (alamprogrammid nende omaduste muutmiseks) ja sündmused, millele antud objekt saab reageerida ja mis nagu reeglina viivad objekti omaduste muutumiseni. Andmete ja nende töötlemisprotseduuride kombineerimist ühes objektis nimetatakse kapseldamiseks ja see on üks olulisemaid OOP põhimõtteid.

Teine põhimõiste on klass. Klass on mall, millest saab luua konkreetse programmiobjekti, see kirjeldab omadusi ja meetodeid, mis määravad selle klassi objektide käitumise. Iga konkreetset objekti, millel on selle klassi struktuur, nimetatakse klassi eksemplariks.

Järgmised olulisemad OOP põhimõtted on pärilikkus ja polümorfism. Pärimine näeb ette uute klasside loomise olemasolevate baasil ja võimaldab alanejaklassil omada (pärida) kõiki ülemklassi omadusi.

Polümorfism tähendab, et sündinud objektidel on teave selle kohta, milliseid meetodeid nad peaksid kasutama sõltuvalt sellest, kus nad ahelas asuvad.

Teine oluline OOP põhimõte on modulaarsus - objektid sisaldavad oma omaduste täielikku definitsiooni, väljaspool seda ei tohiks olla meetodite ja omaduste määratlusi, see võimaldab vabalt kopeerida ja realiseerida ühte objekti teistesse.

Kõige kaasaegsemad programmeerimiskeeled on C++ ja Java. Alates 1990. aastate keskpaigast on paljusid objektorienteeritud keeli rakendatud visuaalse disaini süsteemidena, milles tarkvaratoote liidese osa luuakse interaktiivselt, programmilauseid kirjutades vähe või üldse mitte. Objektorienteeritud visuaalse disaini süsteemide hulka kuuluvad Visual Basic, Delphi, C++ Builder, Visual C++. VBA (Visual Basic for Application) keel on Microsoft Office'i rakenduste keel (Excel, Word, Power Point jne). VBA järgib keele põhisüntaksit ja programmeerimiskeelte reegleid Basic - dialektid, võimaldab teil luua makrosid teatud toimingute täitmise automatiseerimiseks ja GUI kasutaja, integreerimine erinevate tarkvaratoodete vahel.

Deklaratiivsed programmeerimiskeeled

Nende hulka kuuluvad funktsionaalsed ja loogilised programmeerimiskeeled. Funktsionaalne programmeerimine on programmide kirjutamise viis, mille ainus toiming on funktsiooni kutsumine. Funktsionaalne programmeerimine ei kasuta mälu andmete salvestamise kohana ega kasuta seetõttu ka vahepealseid muutujaid, määramislauseid ja silmuseid. Funktsionaalsete keelte põhikontseptsioon on väljend. Funktsionaalkeeles kirjutatud programm on funktsioonide ja avaldiste kirjelduste jada. Avaldis arvutatakse taandades kompleksi lihtsaks. Kõik väljendid on kirjutatud loenditena. Lisp (LISP, LIST Processing) loodi 1959. aastal esimese keelena. See keel võimaldab töödelda suures koguses tekstiteavet. Loogiline programmeerimine on programmeerimine loogika mõttes. 1973. aastal loodi tehisintellekti keel Prolog (PROLOG) (Programming in Logic). Prologi programm ehitatakse üles faktide ja reeglite jadast, seejärel formuleeritakse väide, mida Prolog püüab reeglite abil tõestada. Keel ise otsib lahendust sellesse manustatud otsingu- ja sobitamismeetodite abil. Loogikaprogrammid ei ole väga kiired, kuna nende täitmise protsess taandub otseste ja vastupidiste arutlusahelate ehitamisele erinevate otsingumeetodite abil.

Programmeerimiskeelte ülevaade

komplekteerija

Arvuti programmeerimiskeeled jagunevad kahte põhirühma:

1) madala tasemega keeled;

2) kõrgtasemel keeled.

Assamblee keeled on madala tasemega keeled. Nad said oma nime Assembleri süsteemiprogrammi nimest, mis teisendab sellistes keeltes kirjutatud lähteprogrammid otse masinkäsukoodideks. Siin olevad osad on laused ja montaaži tulemuseks on masinkäskude jada.Assemblee keel ühendab endas masinkäskekeele eelised ja mõningad kõrgkeelte omadused. Assembler annab võimaluse kasutada lähteprogrammis sümboolseid nimetusi ja säästab programmeerijat tüütust tööst (paratamatu masinakäskude keeles programmeerimisel) arvutimälu eraldamisel käskude, muutujate ja konstantide jaoks.

Monteerija võimaldab samasugust paindlikkust ja arvuti tehniliste võimaluste täielikku ärakasutamist, samuti masina juhiste keelt. Assembleri lähteteksti tõlkija on lihtsam kui kõrgetasemelise programmeerimiskeele jaoks vajalik kompilaator. Assembly keeles on võimalik kirjutada programm, mis on oma suuruse ja täitmisaja poolest sama efektiivne kui masinkeeles programm. Kõrgetasemelistes keeltes see eelis puudub. Seda keelt kasutatakse sageli reaalajas süsteemide, tehnoloogiliste protsesside ja seadmete programmeerimiseks, tagades info- ja mõõtesüsteemide töö. Sellistel süsteemidel on tavaliselt kõrged nõudmised masina mälumahule. Sageli täiendatakse komplekteerimiskeelt makrode moodustamise abil, millest igaüks on samaväärne terve masinakäskude rühmaga. Sellist keelt nimetatakse makrokoostaja keeleks. Mooni "ehitus" plokkide kasutamine viib montaažikeele lähemale kõrgetasemelisele keelele. Assembler on masinast sõltuv keel, st see peegeldab teatud tüüpi arvutite arhitektuurilisi omadusi

Pascal

Pascali programmeerimiskeele töötas välja Nicholas Wirth, Šveitsi Föderaalse Tehnoloogiainstituudi arvutiteaduse osakonna professor 1968. aastal alternatiivina olemasolevatele ja üha keerulisemaks muutuvatele programmeerimiskeeltele nagu PL/1, Algol, Fortran. Pascali intensiivne areng tõi kaasa selle standardi ilmumise juba 1973. aastal muudetud sõnumina ja sellest keelest tõlkijate arv ületas 1979. aastal 80. 80ndate alguses tugevdas Pascal oma positsiooni veelgi, kui ilmus MS-Pascal ja Turbo tõlkijad -Pascal PC jaoks. Sellest ajast peale on Pascalist saanud üks olulisemaid ja laialdasemalt kasutatavaid programmeerimiskeeli. On oluline, et keel on ammu ületanud akadeemilise ja kitsalt erialase huvi ning seda kasutatakse enamikus kõrgelt arenenud riikide ülikoolides mitte ainult kasutaja töövahendina. Pascali kõige olulisem omadus on struktureeritud programmeerimise idee. Teine oluline tunnus on andmestruktuuri mõiste kui üks põhimõisteid.

Pascali populaarsuse peamised põhjused on järgmised:

Keele lihtsus võimaldab teil seda kiiresti omandada ja luua algoritmiliselt keerukaid programme.

Väljatöötatud andmestruktuuride esitamise vahendid pakuvad mugavust nii numbrilise kui ka sümboolse ja bitiinformatsiooniga töötamiseks

Spetsiaalsete meetodite olemasolu Pascali kompilaatorite loomiseks lihtsustas nende arengut ja aitas kaasa keele laialdasele levikule

Pascali kompilaatorite optimeerivad omadused võimaldavad luua tõhusaid programme. See oli üks põhjusi, miks Pascalit süsteemide programmeerimiskeelena kasutati.

Pascali keel rakendab struktureeritud programmeerimise ideid, mis muudab programmi visuaalseks ning annab häid võimalusi arendamiseks ja silumiseks.

Bell Labsi töötaja Denis Ritchie lõi C-keele 1972. aastal, töötades koos Ken Thompsoniga Unixi operatsioonisüsteemi juurutamise vahendina, kuid selle keele populaarsus kasvas kiiresti üle konkreetse operatsioonisüsteemi ja konkreetsete süsteemi programmeerimisülesannete piirid. Praegu ei saa ühtegi tööriista ja operatsioonisüsteemi pidada täielikuks, kui see ei sisalda C-kompilaatorit. Ritchie ei leiutanud C-d lihtsalt oma peast – Thompsoni välja töötatud B-keel toimis prototüübina. Programmeerimiskeel C töötati välja praktiliste programmeerijate töövahendina. Sellest lähtuvalt oli selle autori peamine eesmärk luua igati mugav ja kasulik keel.

C on süsteemi programmeerija tööriist ja võimaldab teil süveneda arvutis toimuva teabe töötlemise kõige peenematesse mehhanismidesse. Kuigi keel nõuab programmeerijalt kõrget distsipliini, ei ole see formaalsetes pretensioonides range ja võimaldab teha napisõnalisi sõnastusi.

C on kaasaegne keel. See hõlmab neid juhtimisstruktuure, mida programmeerimise teooria ja praktika soovitavad. Selle struktuur julgustab programmeerijat kasutama oma töös ülalt-alla disaini, struktureeritud programmeerimist ja samm-sammult moodulite arendamist.

C on võimas ja paindlik keel. Suurem osa Unixi operatsioonisüsteemist, Fortrani, Pascali, Lispi ja BASIC-i kompilaatorid ja tõlgid on sellega kirjutatud.

C on mugav keel. See on piisavalt struktureeritud, et toetada head programmeerimisstiili, ilma et see oleks seotud rangete piirangutega. Mõnes mõttes on C-keel kõige mitmekülgsem, sest lisaks kaasaegsetele kõrgetasemelistele programmeerimiskeeltele omasele tööriistakomplektile (struktuur, modulaarsus, teatud andmetüübid) sisaldab see tööriistu peaaegu monteerija tasemel programmeerimiseks. Suur hulk operaatoreid ja seadmeid nõuavad programmeerijalt hoolikat, täpset ja head keeleoskust koos kõigi selle eeliste ja puudustega.

C++ keel ilmus 80ndate alguses. Loodud Bjarne Stroustrupi algse eesmärgiga säästa ennast ja oma sõpru assembler-, C- või mitmete muude kõrgetasemeliste keelte programmeerimisest.

Erinevus C ja C++ ideoloogia vahel on keele autori sõnul ligikaudu järgmine: C programm peegeldab protsessori “mõtlemisviisi”, C++ aga programmeerija mõtteviisi. Kaasaegse programmeerimise nõuetele vastates keskendub C++ uute andmetüüpide väljatöötamisele, mis vastavad kõige täielikumalt valitud teadmisvaldkonna kontseptsioonidele ja rakenduse ülesannetele. Klass on C++ põhimõiste. Klassi kirjeldus sisaldab seda tüüpi objektide esitamiseks vajalike andmete kirjeldust ja toimingute komplekti sarnaste objektidega töötamiseks.

Erinevalt traditsioonilistest C- ja Pascal-struktuuridest ei ole klassi liikmed mitte ainult andmed, vaid ka funktsioonid. Klassi liikmefunktsioonidel on privilegeeritud juurdepääs selle klassi objektide andmetele ja need pakuvad liidest nende objektide ja ülejäänud programmi vahel. Edasises töös ei ole absoluutselt vaja meeles pidada klassi sisemist struktuuri ja sisseehitatud funktsioonide mehhanismi. Klass on selles mõttes nagu elektriseade – selle seadmest teavad vähesed, aga kõik oskavad seda kasutada.

C++ keel on objektprogrammeerimiskeel, uusim tehnika programmide kavandamiseks ja juurutamiseks, mis praegusel kümnendil tõenäoliselt asendab traditsioonilise protseduurilise programmeerimise. Keele looja dr Bjorn Stroustrapi põhieesmärk oli varustada C ++ keel konstruktsioonidega, mis võimaldavad tõsta programmeerijate tootlikkust ja hõlbustada suurte tarkvaratoodete valdamise protsessi.

Abstraktsioon, rakendamine, pärimine ja polümorfism on olulised omadused, mis C++-l on, muutes selle mitte ainult universaalseks nagu C, vaid ka objektkeeleks. Fortran Fortran on laialdaselt kasutatav keel, eriti numbrilise modelleerimisega tegelevate kasutajate seas. See on tingitud mitmest põhjusest:

Aastate jooksul kogunenud tohutute Fortrani rakendusprogrammide rahaliste vahendite olemasolu, samuti tohutu hulga programmeerijate olemasolu, kes seda keelt tõhusalt kasutavad;

Tõhusate Fortrani tõlkijate olemasolu igat tüüpi arvutites ja erinevate masinate versioonid on üsna standardiseeritud ning programmide masinast masinasse ülekandmine ei valmista tavaliselt suuri raskusi;

Fortrani esialgne keskendumine füüsilistele, matemaatilistele ja tehnilistele rakendustele; Eelkõige väljendus see selles, et see jäi pikka aega ainsaks keeleks, millel oli sisseehitatud keerukat tüüpi muutujad ja suur hulk sisseehitatud funktsioone selliste muutujatega töötamiseks.

Viimase perioodi jooksul on välja kujunenud uus programmeerimismetoodika ja -filosoofia. Alates 70. aastate algusest on Fortrani teenitud kriitika osaliseks saanud. 1977. aastal võeti vastu uus keelestandard Fortran-77. Uue standardi loomine võttis palju aega, kuid nüüd võime juba lugeda, et selle arendus on lõppenud ja uus Fortran-90 standard on hakanud jõudma Fortrani kasutajate praktikasse. Ainult sellistel masinatel nagu IBM PC on mitu tõlkijat, nagu Watfor, Lap-Fortran jne. Kuid seda tüüpi masinatel on kõige levinumad Fortran-77 tõlkija erinevad versioonid. 1990. aastal välja antud MS-Fortran 5.0 tõlkija vastab peaaegu täielikult Fortran-90 standardile. Enamik suuremaid teaduslikke ja tehnilisi rakendusi on kirjutatud Fortranis selle teisaldatavuse ja stabiilsuse ning ka sisseehitatud matemaatiliste ja trigonomeetriliste funktsioonide tõttu. Iga Fortrani rakendusprogrammi täiendav, lahutamatu osa on laiendatud graafiline raamatukogu, mis võimaldab kasutada erinevaid graafilisi andmeid ja pilte.

Keel loodi peamiselt aastatel 1975–1980 USA kaitseministeeriumi grandioosse projekti tulemusena, mille eesmärk oli töötada välja ühtne programmeerimiskeel nn manussüsteemide jaoks (st automatiseeritud komplekside reaalajas juhtimissüsteemid). Eelkõige pidasid nad silmas sõjaliste objektide (laevad, lennukid, tankid, raketid, mürsud jne) pardajuhtimissüsteeme. Seetõttu ei tohiks Ada autorite tehtud otsuseid pidada universaalseteks. Neid tuleb tajuda valitud ainevaldkonna omaduste kontekstis. Ada keel tekkis aastatel 1978-1979 toimunud rahvusvahelise keeleprojektide konkursi tulemusena. Osalejad pidid vastama üsna rangetele üksikasjalikele nõuetele, mis töötati välja USA kaitseministeeriumi egiidi all. Huvitav on see, et kõik selle konkursi viimastesse voorudesse jõudnud keeled põhinesid Pascalil. Sellega seoses võib Adat tinglikult iseloomustada kui Pascalit, mis on välja töötatud ülaltoodud viit põhinõuet silmas pidades. Samas läksid autorid peamiselt Pascali uute elementidega laiendamise teed. Tulemuseks on palju keerulisem keel.

cobol

Cobol on suhteliselt vana keel, mis on välja töötatud peamiselt majandusuuringute jaoks. Keel võimaldab tõhusalt töötada suure andmehulgaga, see on täis erinevaid otsingu-, sortimis- ja levitamisvõimalusi. Coboli programmide kohta, mis põhinevad laialdasel kasutamisel inglise keelest, on need väidetavalt arusaadavad ka neile, kes cobolit ei räägi, kuna selles programmeerimiskeeles olevad tekstid ei vaja erilisi kommentaare. Selliseid programme nimetatakse isedokumenteerimiseks. Muud Coboli eelised on tavaliselt tingitud selle struktureeritusest. Selle keele üsna võimsad kompilaatorid on välja töötatud personaalarvutite jaoks. Mõned neist on nii tõhusad, et personaalarvutis silutud programmi saab hõlpsasti suurarvutitesse üle kanda.

Loetledes miinused, ei saa jätta meelde, et Cobolis saab programmeerida ainult kõige lihtsamaid algebralisi arvutusi. Tehniliste arvutuste jaoks see keel ei sobi. Teine põhjus, mis mingil määral keele arengut takistab, on Ameerika Ühendriikides spetsiaalselt loodud tööstuskomitee olemasolu, mis töötab välja standardeid, mida jälgib valitsuskomisjon. Nagu sellistel puhkudel ikka, ei kiirusta tarkvaraarendusfirmad oma kavandeid komisjoni jäikade nõuetega sobitama, versioonikonkurentsi ei toimu ja lõpuks kaotavad keele leviku.

PL/1 töötas välja aastatel 1964-1965 IBM. PL/1 on üks universaalsetest keeltest ehk võimaldab lahendada ülesandeid erinevatest valdkondadest: arvulised arvutused, tekstitöötlus, majandusprobleemid jne. Oma võimaluste poolest kattub see selliste keeltega nagu Fortran, Algol-60 (loodud numbriliste arvutuste jaoks), Kobol (majanduslike probleemide jaoks), kuigi mitmel põhjusel ei saanud PL/1 neid keeli välja tõrjuda.

PL/1 sisaldab kõiki nn kõrgetasemelistele keeltele iseloomulikke põhikonstruktsioone, aga ka mitmeid spetsiifilisi tööriistu, mis on praktiliseks programmeerimiseks mugavad. Keel meenutab suure hulga detailidega konstruktorit – kasutajal tuleb valdada vaid neid keeleosi, mis on tema jaoks praktiliselt vajalikud. Selle laused on üsna mahukad, mis võimaldab sageli kirjutada programmi kompaktsemalt kui teistes keeltes. Programmeerija, kes oskab PL/1 keelt, saab hõlpsasti omandada mis tahes muud sama või sarnase klassi keelt.

Samas on PL/1-l ka mitmeid puudujääke, mis raskendavad keele õppimist ja kasutamist. Peamised neist on järgmised. Esiteks on palju vahendeid, mis üksteist dubleerivad; Teiseks ei ole programmid täiesti masinast sõltumatud.

Modula

Võib arvata, et Modula keele ajalugu algab 1980. aastal, mil Niklaus Wirth, üks silmapaistvaid infoteoreetikuid, keda enamik arvutiteadlasi tunneb peamiselt kui Pascali keele loojat, avaldas uue programmeerimiskeele kirjelduse, mis ta helistas Modulale. Erinevalt Pascalist, mis oli mõeldud programmeerimise õpetamise keeleks, oli Modula algusest peale professionaalsete süsteemide programmeerijate keel, jätkates oma eelkäija parimaid traditsioone ja rikastades neid uute ideedega, mis vastavad sellistele programmeerimiskeeltele nagu struktuur. , modulaarsus ja laienemisvõime. Nagu paljud teised programmeerimiskeeled, on ka Modula teinud läbi evolutsiooni, mille käigus selle esialgne nimi muudeti Modula-2-ks. Samaaegselt Modula keele väljatöötamisega loodi selle jaoks uued kompilaatorid, kuid ükski neist ei suutnud võistelda Pascali ja C keele parimate rakendustega, näiteks Borlandi väljatöötatutega. Sellel Modula keele üleminekuperioodil peeti parimateks Logitechi tehtud teostusi, mis oma omaduste järgi kaotasid Turbo Pascalile ja Turbo C-le. Alles 1988. aastal, pärast Top Speedi süsteemi ilmumist Ameerika turule, võttis Modula-2 oma õiguspärase koha süsteemi programmeerimiseks mõeldud protseduurikeelte seas. Top Speed’i süsteemi populaarsuse kasvule aitasid kaasa mitmed tegurid: mugav ja lisaks kergesti muudetav töökeskkond, kiire kompilaator ja selektiivne linker. Kuid kõige olulisem osutus see, et loodud programmid eristusid suure kiirusega ega võtnud palju mäluruumi.

BASIC

BASIC (Basic - Beginner's All-Purpose Symbolic Instruction Code – “universaalne sümboolne juhiskood algajatele”). Fortrani otsene järeltulija ja siiani kõige populaarsem personaalarvutite programmeerimiskeel. BASIC ilmus 1963. aastal (autorit oleks raske nimetada, kuid selle välimuse põhiteene kuulub kahtlemata ameeriklastele John Kemenyle ja Thomas Kurtzile). Nagu iga eelis, tuli ka BASICu lihtsus struktureerimise arvelt, eriti varajastes versioonides; lisaks ei võimaldanud BASIC rekursiooni – huvitav nipp, mis võimaldab kirjutada efektiivseid ja samas lühikesi programme.

Välja on töötatud võimsad BASIC-kompilaatorid, mis pakuvad lisaks rikkalikule sõnavarale ja suurele jõudlusele ka struktureeritud programmeerimise võimalust. Mõne programmeerija arvates on kõige huvitavamad versioonid GWBASIC, Turbo-Basic ja Quick Basic.

Omal ajal tähistas Quick Basicu ilmumine teise põlvkonna BASIC programmeerimissüsteemide sündi. See andis võimaluse modulaarseks ja protseduuriliseks programmeerimiseks, teekide loomiseks, valmisprogrammide koostamiseks jne, mis viis selle Quick Basicu kujul selliste klassikaliste programmeerimiskeelte nagu C, Pascal, Fortran jne tasemele. on muutunud de facto standardiks. BASICu erinevate versioonide seas olid vaieldamatud liidrid Microsofti Quick Basic 4.5 ja PDS 7.1, mis ilmusid 80ndate lõpus.

Lisp

Lispi keele pakkus välja J. McCarthy 1960. aastal ja see on keskendunud mittenumbriliste ülesannete lahendamise programmide väljatöötamisele. Selle keele ingliskeelne nimi - LISP on lühend väljendist LISt Processing (loendite töötlemine) ja rõhutab hästi selle peamist rakendusvaldkonda. Mõiste “nimekiri” osutus väga mahukaks. Loendite kujul on mugav kujutada algebralisi avaldisi, graafikuid, lõplike rühmade elemente, hulki, järeldusreegleid ja paljusid muid keerukaid objekte. Loendid on kõige paindlikum teabe esitusviis arvutimälus. Pole siis ime, et käepärane keel, mis on spetsiaalselt loodud loendite käsitlemiseks, hakkas kiiresti silma.

Pärast Lispi tulekut pakkusid erinevad autorid välja mitmeid teisi tehisintellekti valdkonna probleemide lahendamisele keskendunud algoritmkeeli, mille hulgas võib märkida Planner, Snobol, Refal, Prolog. See aga ei takistanud Lispi jäämast selliste probleemide lahendamise populaarseimaks keeleks. Peaaegu neljakümne aastase eksisteerimise jooksul on selle keele dialektid ilmunud: Common LISP, Mac LISP, Inter LISP, Standard LISP jne. Nendevahelised erinevused ei ole põhimõttelised ja taanduvad peamiselt veidi erinevale. sisseehitatud funktsioonide komplekt ja teatav erinevus noodiprogrammide kujul. Seetõttu saab programmeerija, kes on õppinud neist ühe kallal töötama, hõlpsasti omandama mis tahes teise. Lispi suureks eeliseks on funktsionaalne orientatsioon, st programmeerimine toimub funktsioonide abil. Veelgi enam, funktsiooni all mõeldakse reeglit, mis sobitab teatud klassi elemendid teise klassi vastavate elementidega. Sobitamisprotsess ise ei mõjuta programmi toimimist, oluline on ainult selle tulemus – funktsiooni väärtus. See muudab suurte tarkvarasüsteemide kirjutamise ja silumise suhteliselt lihtsaks. Programmide selgus, nende funktsioonide selge piiritlemine, keeruliste kõrvalmõjude puudumine nende täitmisel on kohustuslikud nõuded selliste loogiliselt keerukate ülesannete programmeerimiseks nagu tehisintellekti ülesanded. Programmeerimise distsipliin muutub eriti oluliseks siis, kui programmi kallal ei tööta mitte üks inimene, vaid terve rühm programmeerijaid.

Programmeerimiskeel Lisp on mõeldud eelkõige sümboolse teabe töötlemiseks. Seetõttu on loomulik, et Lispi maailmas ei mängi numbrid kaugeltki peamist rolli. Lispi peamisi andmetüüpe nimetatakse "aatomiks" ja "punktipaariks".

Proloog

Loogiline programmeerimiskeel on mõeldud teatud ainevaldkonna teadmiste esindamiseks ja kasutamiseks. Selle keele programmid koosnevad teatud relatsioonide komplektist ja selle täitmine taandub etteantud seoste põhjal uue seose tuletamiseks. Prolog rakendab deklaratiivset lähenemist, mille puhul piisab probleemi kirjeldamisest reeglite ja väidete abil antud objektide kohta. Kui see kirjeldus on piisavalt täpne, suudab arvuti iseseisvalt vajaliku lahenduse leida.

Objekt PAL

Object PAL on võimas programmeerimiskeel. Object PAL on objektorienteeritud sündmustepõhine visuaalne programmeerimiskeel. Objekti PAL-i funktsionaalsuse algtasemel saate teha andmeoperatsioone, luua spetsiaalseid menüüsid ja hallata andmesisestuse seanssi. Objekti PAL-i sündmused genereerivad käske, mis jäljendavad Paradoxi interaktiivse kasutamise mõju. Võimalik on automatiseerida sageli sooritatavaid ülesandeid, samuti teha toiminguid tabelite, vormide ja aruannetega, mis interaktiivse töö ajal ei olnud kättesaadavad. Lisaks pakub Object PAL kõiki Windowsi keskkonnas täisfunktsionaalse programmeerimiskeele funktsioone. Objekti PAL-i abil saate luua terviklikke süsteeme, mis rakendavad kohandatud menüüsüsteemi, abisüsteemi ja igasuguseid andmete valideerimist. Objekti PAL-is saate oma töö salvestada dünaamilises lingiteekis, millele pääseb juurde mitmel kujul. Lisaks on võimalik luua linke teiste dünaamiliste raamatukogudega, mis sisaldavad programme, mis on kirjutatud sellistes keeltes nagu C, C++ või Pascal.

Objekti PAL-i saab kasutada eraldiseisvate programmide loomise tööriistana. Saate kirjutada täieliku Windowsi rakenduse ja käivitada selle Paradoxi all.

Object PAL toetab dünaamilist andmevahetust nii kliendi kui ka serverina. Lisaks toetab Object PAL kliendina liitdokumendi mootorit. Lisaks ülaltoodule on võimalik oma rakendusse lisada multimeediumitööriistu, pakkudes töötavale rakendusele heli- ja animatsiooniefekte.

Borlandi dBase keele juurutus on objektorientatsiooni ja traditsioonilise programmeerimise õnnelik hübriid. See võimaldas luua süsteeme, kasutades objektide disaini ja tavapäraseid kirjetöötlustehnikaid. Borlandi ettevõtte suur saavutus oli see, et ta ühendas väga edukalt objekti- ja protseduurilise programmeerimise tehnikad. Esimene Windowsi versioon andis kasutajale andmebaasitarkvaraturu võimsaima objektitööriista. See võimaldab teil luua uusi objektide klasse, millel on pärilikkuse, kapseldamise ja polümorfismi omadused. Samuti võimaldab see neid objekte programmeerida traditsiooniliste dBase'i käskude abil, mis on ideaalne lihtsate tabelandmebaaside haldamiseks. Kõik see annab vaieldamatu eelise - objekti programmeerimise tehnikatele üleminekuks ilma suuremate raskusteta on üleminek sama keeruline, nagu näiteks Paradox DBMS-is.

Java keel tekkis osana projektist, mille eesmärk oli luua täiustatud tarkvara erinevatele kodumasinatele. Projekti elluviimist alustati C++ keeles, kuid peagi tekkis mitmeid probleeme, millega kõige paremini toime tulla oli vahetada tööriist ise – programmeerimiskeel. Selgus, et vaja on platvormist sõltumatut programmeerimiskeelt, mis võimaldaks luua programme, mida ei peaks iga arhitektuuri jaoks eraldi kompileerima ja mida saaks kasutada erinevatel protsessoritel erinevate operatsioonisüsteemide all. Interaktiivsete Interneti-toodete loomiseks oli vaja Java keelt. Tegelikult ajendas enamik Java loomisel tehtud arhitektuurilisi otsuseid soovist pakkuda C-le ja C++-le sarnane süntaks. Java kasutab muutujate deklareerimiseks, parameetrite edastamiseks, operaatorite edastamiseks ja koodivoo juhtimiseks peaaegu identseid tavasid. Java lisab kõik C++ head omadused.

Java keeletehnoloogias ühinevad kolm põhielementi

Java teeb oma apletid üldiseks kasutamiseks kättesaadavaks – väikesed, tugevad, dünaamilised, platvormist sõltumatud aktiivsed võrgurakendused, mis on manustatud veebilehed. Java-aplette saab kohandada ja tarbijatele levitada sama lihtsalt kui mis tahes HTML-dokumenti.

Java vallandab objektorienteeritud rakenduste arendamise võimsuse, ühendades lihtsa ja tuttava süntaksi jõulise ja hõlpsasti kasutatava arenduskeskkonnaga. See võimaldab paljudel programmeerijatel kiiresti uusi programme ja aplette luua.

Java pakub programmeerijale rikkalikku objektiklasside komplekti, et paljudest akendes, võrgunduses ja sisend-/väljundis kasutatavatest süsteemifunktsioonidest selgelt abstraktne võtta. Nende klasside põhiomadus on see, et need pakuvad platvormist sõltumatuid abstraktsioone paljudele süsteemiliidestele.

Arvutivõrkude programmeerimiskeeled

Arvutivõrkude programmeerimiskeeli tõlgendatakse. Nende jaoks jagatakse tõlke tasuta ja programmid ise on lähtekoodis. Selliseid keeli nimetatakse skriptikeelteks.

Perl on tõlgenduskeel, mille on loonud programmeerija Larry Wall suurte tekstide ja failide töötlemiseks ning see tähistab Practical Extraction and Report Language (praktilise andmete ekstraheerimise ja aruandluse keel). Näiteks Perli abil saate luua skripti, mis avab ühe või mitu faili, töötleb teavet ja kirjutab tulemused.

Perl on keel, mis on kohandatud suvaliste tekstifailide töötlemiseks, neist vajaliku teabe hankimiseks ja sõnumite väljastamiseks. Perl on mugav ka erinevate süsteemiprogrammide kirjutamiseks. Seda keelt on lihtne kasutada, see on tõhus, kuid raske on öelda, et see on elegantne ja kompaktne. Perli avaldiste süntaks on lähedane C omale. Rekursioon võib olla suvalise sügavusega. Kuigi Perl on võimeline tekstifaile skannima, saab see käsitleda ka binaarandmeid. Perl võimaldab kasutada regulaaravaldisi, luua objekte, sisestada Perli koodi tükke C või C++ programmi ning samuti pääseb ligi andmebaasidele, sealhulgas Oracle'ile.

World Wide Web leiutamisega osutus Perl suurepäraseks viisiks veebiserveritega suhtlemiseks läbi ühise lüüsiliidese (CGI) – ühise sideliidese. Perli käsud saavad hõlpsasti andmeid hankida HTML-vormilt või muust allikast ja teha sellega mingeid toiminguid.

Keel PHP(1995-1997) omab juurdepääsu andmebaasile ja seda kasutavad dünaamiliste saitide loojad üle maailma.

Keel tcl/tk(80ndate lõpp) koosneb võimsatest käskudest, mis on loodud töötama abstraktsete tüpimata objektidega ja võimaldab luua graafilise liidesega programme.

Keel VRML(1994) loodi virtuaalsete kolmemõõtmeliste liideste korraldamiseks Internetis.

Keel XML. Alates 1996. aastast on käimas töö universaalse dokumendistruktuuri keele loomise nimel. Sellest võib saada HTML-keele asendaja.

Järeldus

Kasulikud ressursid

Isili arvustus

Kus on aruanne?

Arvustusi Ranifka

Re: Kus on aruanne?
Kõik saab olema :D

Shamagulova Elite'i tagasiside

Arvustusi Alexander Mishin

Suurepärane aruanne. Õppis palju programmeerimiskeelte kohta.

Tagasiside Aleksander Morozovilt

Muidugi tahaks mingis vormis aruannet või vähemalt ettekannet näha.

Dünaamiliselt muutuvas maailmas, kus alles eile muutuvad lugupeetud ametid olematuks, otsivad paljud inimesed oma elus tegevust, et see oleks nii huvitav ja praegusele ajale asjakohane kui ka tulus. Väga sageli viivad sellised otsingud programmeerimiseni: head programmeerijad teenivad isegi SRÜ-s tuhandeid dollareid, neil on palju vaba aega, võimalus teha kaugtööd ja neil on võimalused karjääri kasvuks.

Lisaks nendele eelistele erineb programmeerimine ka selle poolest, et selle valdamiseks ei pea kulutama aastaid ülikoolides pükse pühkides. Siin otsustab kõik eneseharimine, Internetis on kõik vajalikud materjalid edukaks iseseisvaks õppimiseks mis tahes programmeerimiskeeles: tekstipõhised õppetunnid, videotunnid, juhised, kogenud spetsialistide nõuanded ja muud õppematerjalid. Nii saate hõlpsasti omandada kaasaegsed programmeerimistehnoloogiad ja leida tõeliselt korraliku töö.

Kuid enne asja juurde asumist peate vastama enda jaoks ühele olulisele küsimusele: millised kaasaegsed programmeerimiskeeled on 2017. aastal asjakohased, millistele neist oma aega ja vaeva kulutada? Siin sõltub palju õigest vastusest - õppeprotsessi keerukus ja kiirus, reaalsesse tegevusse sisenemise miinimumläve ja edasised karjäärivõimalused.

Paljutõotavad programmeerimise ja keelte valdkonnad 2017. aastaks

Konkreetse programmeerimiskeele (ühe või mitme) õppimiseks otsustamiseks peate esmalt vastama küsimusele: millises programmeerimisvaldkonnas inimene tahaks töötada. Kõige populaarsemad ja kiiresti arenevad piirkonnad on praegu:

Veebi programmeerimise tehnoloogiad. Veebilehtede, veebiteenuste ja panganduse, veebipoodide, ettevõtete sihtlehtede ja muu taolise loomine – kõik see on osa veebiprogrammeerimisest. Üha enam inimesi planeedil muutub Interneti-kasutajaks, see muutub kiiremaks ja odavamaks, isegi küpses ja kõrges eas inimesed saavad võrgu aktiivseteks kasutajateks. 2017. aastal see trend ainult tugevneb ja selle arengu lagi pole veel näha. Seetõttu on väga kasulik õppida Internetiga seotud programmeerimiskeeli. Allpool on esitatud nimekiri neist populaarseimatest;

Programmeerimine vidinate jaoks: nutitelefonid, tahvelarvutid, nutikellad, virtuaalreaalsusprillid ja palju muud. See on ka väga huvitav ja kiiresti arenev tegevusvaldkond. Miljardid inimesed üle maailma kasutavad nende abil vidinaid, loevad uudiseid, vaatavad videoid, kuulavad muusikat ja teevad palju muud. Kõik need elektroonikafunktsioonid on võimalikud tänu hästi kirjutatud tekstile tarkvara. See maksab sageli palju rohkem kui füüsiline seade ise. Programmeerimine selles valdkonnas on nüüd väga tulus. Väärib märkimist, et siin kasutatakse kõige sagedamini kõrgetasemelisi programmeerimiskeeli.

Millist keelt valida

On võimatu öelda, milline keel on kõige kaasaegsem. Paljusid neist kasutatakse väga laialdaselt ja aktiivselt. Aga kui me räägime paljutõotavatest programmeerimiskeeltest, siis võib parimaks nimetada järgmist:

  • Java. Kõige mitmekülgsem ja populaarseim programmeerimiskeel, millega saate arendada nii rakendusi arvutitele kui ka vidinatele, eriti Androidi juhtimine OS. Selge süntaksiga, õpib üsna lihtsalt ja kiiresti, esimesed programmid Java keeles saab kirjutada juba paar nädalat peale koolituse algust. Peamine omadus, mis teeb selle paljulubavaks, on Androidi programmeerimise kasutamine, mis areneb praegu väga kiiresti;
  • C#. Suurepärane võimalus inimesele, kes soovib pühendada oma tegevused arvutisüsteemide programmide kirjutamisele. Just C Sharpi keel (C#) on aluseks, mille alusel kirjutatakse enamik programme erinevatele Microsofti platvormidele ja teenustele. Selle abil saate arendada veebirakendusi .NETi ja Azure'i abil, aga ka programme otse Windowsile, erinevaid ärirakendusi ja palju muud. C#-le pähe saamine nõuab natuke tööd, kuid see tasub end lõpuks ära;
  • PHP. Kui teie ülesandeks on kirjutada Interneti-ressurssidele kvaliteetseid skripte ja interaktiivseid malle või olla serveri administraator, mis on praegu väga tulus tegevus, siis PHP parim viis sellist püüdlust realiseerida. Kaasaegsed programmeerimiskeeled lihtsalt ei saa ilma selle esindajata hakkama. Ta õpib üsna kiiresti ja lihtsalt - kui PHP-d hoolikalt ja regulaarselt õppida, siis 2-3 aasta pärast võid kandideerida väga heale kohale ja vastavale palgale.

Muidugi pole see kaugeltki keelte ja nende klassifikatsiooni täielik kirjeldus, kuid isegi nii väikesest loendist piisab, et valida endale hea ja paljutõotav tegevusvaldkond.

Kaasaegsete programmeerimiskeelte täielik ülevaatamine võib võtta liiga palju aega, kuid see pole nii vajalik, sest tasub meeles pidada peamist - vähemalt mõnda keelt vabalt valdav inimene leiab kindlasti oma koha programmeerimise valdkond. Ja ühe nende keelte oskusest piisab kindlasti hea raha teenimiseks ja huvitavate probleemide lahendamiseks.

Esimese kõrgetasemelise programmeerimiskeele Fortran ilmumisest 1957. aastal on möödunud peaaegu 60 aastat ja pole üllatav, et programmeerimine on nii pika aja jooksul kaugele edasi astunud. Seal on uued tehnoloogiad, uued programmeerimiskontseptsioonid ja paradigmad ning loomulikult uued keeled. Reeglina on programmeerimiskeele loomine ajendatud ajastu nõudmistest: uued ülesanded nõuavad nende lahendamiseks sageli uusi tööriistu, mis teevad oma tööd paremini kui nende eelkäijad. Sellega seoses ilmub igal aastal mitu uut keelt, mis sisaldavad kõike parimat, mis aastakümnete pikkuse praktilise programmeerimise jooksul on kogunenud ja toovad samal ajal midagi uut. Selles artiklis käsitletakse mõnda kõige huvitavamatest programmeerimiskeeltest, mis on ilmunud üsna hiljuti, kuid on end juba tõestanud kui võimsaid ja kaasaegseid tööriistu arendaja jaoks.

Swift

Apple'i loodud üldotstarbeline tasuta keel iOS-i ja OS X arendamiseks. Keel ühildub Objective-C-ga, mis võimaldab kasutada mõlemat keelt ühes programmis. Keele arendamine algas 2010. aastal Apple’i arendusjuhi Chris Lattneri juhtimisel. Kiiresti laenatud ideid paljudest olemasolevatest keeltest erinevates suundades: alates C ++ kuni Haskellini. Keele ametlik tutvustamine toimus 2014. aasta juunis koos 500-leheküljelise kasutusjuhendiga. Saate töötada Swiftiga iOS-i Xcode 6 programmeerimiskeskkonnas. Keeleversioon 3.0 lisab Linuxi toe.
Keel võttis palju Objective-C-st; samal ajal on see turvalisem ja kiirem. Arendajate kinnitusel töötab Swifti kood 1,5 korda kiiremini kui Objective-C sarnane kood.

Häkkima

 i välja töötatud keel; näeb välja nagu PHP. Häkkimiskood käivitatakse spetsiaalses virtuaalmasinas, mis toetab ka PHP-d. Keel on avatud – Hacki lähtekoodid on avatud kõigile, kes soovivad selle täiustamises osaleda. Kuigi keel põhineb tuntud PHP-l, on arendajatel õnnestunud luua täiesti uus ja ülimalt töökindel tööriist veebisaitide ja muude rakenduste kiireks loomiseks. Tulemus avaldas  ile nii suurt muljet, et kõik ettevõtte projektid kanti üle Hackile – fakt, mis räägib enda eest.

Julia

Uus keel matemaatilisteks arvutusteks. Keele süntaksit on mõjutanud Matlab ja teised matemaatilised keeled, kuid on ka olulisi erinevusi. Keel ise on kirjutatud C ja C++ keeles; Keele programmikood käivitatakse LLVM-i virtuaalmasinas, mille jaoks on Julia varustatud JIT-kompilaatoriga. Tänu kompileerimisele saavutati suur rakenduskiirus, mis on võrreldav C ++ keeles kirjutatud programmidega.
Keel toetab hajutatud andmetöötlust, funktsioonide ülekoormust ja koodi paralleelsust. Julia põhiülesanne: töötage suure hulga arvutustega, säilitades samal ajal suure jõudluse. Nendel eesmärkidel on keelele lisatud ka pilvandmetöötluse tugi. Lisaks puhtmatemaatilistele ülesannetele on Julia abil võimalik luua ka üldotstarbelisi programme.

Noolemäng

Google'i loodud keel JavaScripti asendamiseks. Mõnede JavaScripti keele "põhivigade" tõttu, mida ei saa parandada, otsustati veebiprogrammeerimiseks luua uus keel. Samas tuli keel luua võimalikult sarnane olemasolevatele, et algajatele üleminekut ja õppimist lihtsustada. Praegu käivitatakse Dart-programme kahel viisil: läbi Virtuaalne masin Dart VM ja tõlkides JavaScripti. Tulevikus on kavas Dart asendada JavaScripti kui universaalse veebiprogrammeerimiskeelega.

Tippige skript

Teine keel, mis positsioneerib end JavaScripti asendajana. Uue keele arendajaks oli kuulus Anders Hejlsberg, Delphi, C# ja Turbo Pascali autor. Type Script on avatud keel, mis on tagasiühilduv Java Scriptiga. Kompilaator teisendab Type Scripti koodi JavaScriptiks, mille seejärel brauser käivitab. Erinevalt JS-ist toetab uus keel kõiki objektorienteeritud programmeerimise funktsioone, aga ka moodulite ühendamist. Tüübiskripti ja JavaScripti ühilduvus võimaldab olemasolevat JavaScripti koodi kasutada uutes Type Scripti projektides, sealhulgas populaarsetes JS-i teekides. Üldist programmeerimisparadigmat toetatakse.



Toeta projekti – jaga linki, aitäh!
Loe ka
kukevõitlusmängu reeglid kukevõitlusmängu reeglid Mod for minecraft 1.7 10 vaatamise retsepti.  Retseptid esemete meisterdamiseks Minecraftis.  Relvad Minecraftis Mod for minecraft 1.7 10 vaatamise retsepti. Retseptid esemete meisterdamiseks Minecraftis. Relvad Minecraftis Šilling ja naelsterling – sõnade päritolu Šilling ja naelsterling – sõnade päritolu