Milyen nyelven van jelenleg programozva? Öt ígéretes programozási nyelv fényes jövővel

A gyermekek számára lázcsillapítót gyermekorvos írja fel. De vannak vészhelyzetek a láz miatt, amikor a gyermeknek azonnal gyógyszert kell adni. Ezután a szülők vállalják a felelősséget és lázcsillapító szereket használnak. Mit szabad adni a csecsemőknek? Hogyan lehet csökkenteni a hőmérsékletet idősebb gyermekeknél? Milyen gyógyszerek a legbiztonságosabbak?

  • Fordítás

Ha felosztjuk a programozási nyelveket a népszerűség szerint, akkor három szintre osztjuk őket. Az első szint olyan mainstream nyelveket tartalmaz, mint a Java, JavaScript, Python, Ruby, PHP, C#, C++ és Objective-C. Bár előfordulhat, hogy a vezető nyelvek némelyike ​​kihalóban van, jobb, ha ismer egyet vagy többet közülük, ha könnyen szeretne munkát találni.


A másodlagos nyelvek megpróbálnak betörni a mainstreambe, de ezt még nem érték el. Erős közösségek létrehozásával bizonyították rátermettségüket, de a legtöbb konzervatív IT-cég még mindig nem használja őket. A Scala, a Go, a Swift, a Clojure és a Haskell azok a nyelvek, amelyeket a második szinthez sorolnék. Egyes cégek ezeket a nyelveket használják az egyes szolgáltatásokhoz, de a széles körben elterjedt alkalmazása ritka (kivéve a Swiftet, amely kezdi megelőzni az Objective-C-t, mint az iOS fő nyelvét). A Go és a Swift jó eséllyel a következő két-három éven belül a második szintről az elsőre lép.


A legtöbb nyelv az első lépcsőben szilárdan gyökerezik a pozíciójában. Ezért egy nyelv elvesztése a vezető pozícióból jelentős időt vesz igénybe, és egy második szintű nyelvnek nagyon nehéz betörni az elsőbe.


Az ebben a cikkben szereplő ígéretes nyelvek a harmadik szinthez tartoznak, és csak most kezdik felfelé. Egyes nyelvek sok éven át a harmadik szinten maradnak anélkül, hogy népszerűvé válnának, míg mások néhány éven belül betörtek a színre. Mint például a cikkben tárgyalt nyelvek.

Ígéretes nyelvek: miért ez az öt?

Az öt programozási nyelv, amelyről szó lesz, nagyon új (elképzelhető, hogy néhányról most fogsz először hallani), és egyértelműen kiváló esélyük van arra, hogy a következő 2-3 évben betörjenek a második szintre. Talán egyszer ezeknek a nyelveknek az egyike képes lesz az első fokozat nyelveit lenyomni.


Ezért választották ezt az öt nyelvet ehhez a listához:


Az Elm egyre népszerűbb a JavaScript közösségben, elsősorban a funkcionális programozást kedvelők körében, ami egyre terjed. A TypeScripthez vagy a Darthoz hasonlóan az Elm is JavaScript-re van átírva.


A Rust egy rendszerprogramozási nyelv, amelyet elsősorban a C-t és C++-t használó résekhez szántak. Ezért meglepő, hogy ennek a nyelvnek a népszerűsége gyorsabban növekszik a webfejlesztők körében. Ez a tény sokkal értelmesebb, ha rájössz, hogy a nyelvet a Mozilla készítette, aki jobb lehetőséget akart adni azoknak a webfejlesztőknek, akiknek alacsony szintű kódot kell írniuk, ugyanakkor teljesítményesebbnek kell lenniük, mint a PHP, Ruby, Python. vagy JavaScript. A 2016-os StackOverflow fejlesztői felmérésben a Rust a legjobb „legkedveltebb technológiának” is megválasztották (ami azt jelenti, hogy a legtöbb felhasználó továbbra is szeretné használni a nyelvet).


A Kotlin körülbelül öt éve létezik, de csak ebben az évben érte el a gyártásra kész 1.0-s verziót. Bár még nem érte el a Scala, a Groovy vagy a Clojure népszerűségét – a három legnépszerűbb és legérettebb (a Java-t nem számítva) nyelv a JVM alatt –, mégis kiemelkedik sok más JVM nyelv közül, és késznek tűnik a helyére. ennek a csoportnak a vezetői között. A nyelv a JetBrains-től származik (a népszerű IntelliJ IDEA IDE megalkotója). Tehát a fejlesztői termelékenységre összpontosítva tervezték.


A Crystal egy másik nyelv, amely C-szintű programteljesítményt kíván elhozni a webfejlesztők magas szintű világába. A Crystal a Ruby közösséget célozza meg, mert szintaxisa hasonló, és néha megegyezik a Rubyéval. A Ruby startupok már amúgy is nagy száma folyamatosan növekszik, és a Crystal kulcsszerepet játszhat ezen alkalmazások teljesítményének magasabb szintre emelésében.


Az Elixir is a Ruby ökoszisztémából merített ihletet, de ahelyett, hogy C-szerű előnyöket próbálna hozni, a jól hozzáférhető, reszponzív rendszerek építésére koncentrál, pl. amivel a kritikusok szerint Railsnek baja van. Az Elixir ezeket az előnyöket az Erlang VM-mel éri el, amely szilárd hírnevet szerzett a 25 éves távközlési iparban szerzett sikerekre építve. A Phoenix (az Elixir webes keretrendszere), valamint egy nagy és virágzó ökoszisztéma további vonzerőt ad ennek a nyelvnek.


Most nézze meg, hogy az öt nyelv közül négy hogyan mászik fel a népszerűségi létrán (a StackOverflow és a GitHub adatai alapján):




Ezen nyelvek mindegyike szenvedélyes közösséggel és saját heti hírlevéllel büszkélkedhet. Ha egy olyan fiatal nyelv elsajátításán gondolkodik, amely izgalmas jövőbeli lehetőségeket rejt magában, olvassa el mind az öt nyelvről szóló rövid prezentációkat, amelyeket tapasztalt rajongók és az adott ökoszisztéma vezetői írtak.

Szilfa

Az Elm egy funkcionális programozási nyelv, amely a használhatóságra összpontosít, és amely nagy teljesítményű JavaScript-kódra fordít. Használhatja, beleértve a JavaScripttel együtt is, felhasználói felületek létrehozására az interneten. Az Elm fő előnye a JavaScripttel szemben a megbízhatóság, a könnyű karbantartás és a szórakoztató programozásra való összpontosítás. Konkrétabban:

  • Nincs futásidejű kivétel: Az Elm kódnak hírneve van futásidőben soha nem tesz kivételt. Egyáltalán nem olyan, mint az "undefined nem függvény".
  • A legendás kegyes fordító: Elm fordító gyakran dicséret a leghasznosabb hibajelentésekért a versenytársak között. "Ha lefordítja, általában csak működik" - ez a közhiedelem, még nagyobb átalakítás után is. Ez sokkal könnyebbé teszi a nagy Elm projektek karbantartását, mint a hasonló JS projektek.
  • Szemantikus verziószámítás: Az elm-package automatikusan érvényesíti a szemantikai verziókat. Ha a csomag szerzője megpróbál API-t megszakító változtatásokat végrehajtani anélkül, hogy megemelné a fő verziószámot, az elm-package ezt észleli, és megtagadja a közzétételt új verzió csomag. Egyetlen másik ismert csomagkezelő sem kényszeríti ki ennyire megbízhatóan a szemantikai verziókövetést.
  • Gyors és funkcionális: Az Elm egy tiszta funkcionális nyelv, amely garantálja, hogy nincsenek mutációk vagy mellékhatások. Ez nemcsak nagyszerű méretezhetőséget biztosít az Elm kód számára, hanem abban is, hogy gyorsabban jelenítse meg az alkalmazás felhasználói felületét, mint a React, Angular vagy Ember.
  • Erőteljes eszközök: Az elm-formátum a közösségi szabványnak megfelelően formázza a forráskódot. Nincs több vita a kódolási konvenciókon. Csak nyomja meg a "Mentés" gombot a szerkesztőben, és a kód gyönyörűvé válik. Az elm-test akkumulátorral érkezik, amely támogatja mind az egységtesztet, mind a véletlenszerű tesztelést. Az elm-css lehetővé teszi az Elm kód írását, amely css fájlba fordítódik, így megoszthatja a kódot az alkalmazás és a stíluslapok között, így biztosítva, hogy a konstansok soha ne váljanak ki a szinkronból.

Az Elm kód a JavaScript-szel is kölcsönhatásba léphet. Vagyis kis adagokban befecskendezheti a JS kódjába, és továbbra is használhatja a hatalmas JS ökoszisztémát, és nem találja fel újra a kereket.

Kotlin

A Kotlin egy statikusan tipizált nyelv, amely a JVM-re és a JavaScript-re összpontosít. A Kotlin a JetBrains igényéből született, amely új nyelvet keresett eszközkészletének fejlesztéséhez (amely többnyire Java nyelven íródott). Valami, ami lehetővé tenné számukra, hogy a meglévő kódbázist használják, és egyúttal megoldják a Java problémák egy részét. És a szoftverírás során fellépő gyakori buktatókra a megoldások határozták meg Kotlin jellemzőit.

  • Tömörség: csökkentse az egyes konstrukciók kifejezéséhez szükséges kazánkód mennyiségét.
  • Sokoldalúság: olyan nyelvet hozzon létre, amely bármilyen típusú ipari alkalmazáshoz alkalmas, legyen az webes, mobilfejlesztési, asztali vagy szerveralkalmazás.
  • Biztonság: hagyja, hogy a nyelv kezelje az olyan problémákkal kapcsolatos gyakori buktatókat, mint a nulla hivatkozási kivételek.
  • Kölcsönhatás: lehetővé teszi a nyelv számára, hogy együttműködjön a meglévő Java kódbázisokkal, könyvtárakkal és keretrendszerekkel, lehetővé téve a fokozatos átvételt és a már végrehajtott befektetések előnyeit.
  • Eszközök: A JetBrains olyan eszközöket készít és készít, amelyek azon a meggyőződésen alapulnak, hogy sok rutinfeladat automatizálható, és hatékonyabb és produktívabb fejlesztéshez vezethet. Így a nyelvnek könnyen lehetővé kell tennie a segédeszközök használatát.

Kotlin mindig is a pragmatizmusra összpontosított, és mindig is az lesz – olyan közös problémákat keresve, amelyekkel gyakran találkozunk kódírás közben, és megpróbálunk segíteni ezek megoldásában. Ez vörös szálként fut végig különféle nyelvi funkciókon, például:

  • Alapértelmezés szerint nulla biztonságos: A Kotlin típusok alapértelmezés szerint nem nullázhatók, így elkerülhető a bosszantó null referencia/mutató kivétel.
  • Első osztályú küldöttség: az osztálytag funkcionalitásának külső funkcióra való delegálásának képessége, ami megkönnyíti az újrafelhasználást és javítja a kompozíciót.
  • Megállapodások: konvenciók halmaza, amelyek lehetővé teszik kifejező kód írását, megnyitva az utat egy erősen begépelt DSL számára, amely javítja az olvashatóságot és egyszerűsíti az újrafeldolgozást.
    html ( fej ( cím (+"XML kódolás Kotlinnal") ) törzs ( p ( + "Ez valami HTML" ) )

A Kotlin 1.0 2016 februárjában jelent meg több mint öt évnyi fejlesztés és valós projektekben végzett kiterjedt tesztelés után. Jelenleg több mint tíz JetBrains termék használja a Kotlint. Olyan cégek is használják, mint az Amex, az NBC Digital, az Expedia és a Gradle.


További információért látogasson el a kotlinlang.org oldalra


Ezt a részt írták

1. Amikor egy projekthez programozási nyelvet választunk, két oldal közül kell választani - egy régi bevált eszközt vagy egy új, szép, működőképes, de kevéssé tesztelt, ezért megbízhatatlan nyelvet. Mi a legokosabb tennivaló ebben a helyzetben? Milyen kockázatokkal jár az egyes döntések, és hogyan kezeljük ezeket?

Igor Zilberg, SmartHead
Az eszközöket a feladat megfelelősége és a kiválasztott eszközöket ismerő, tapasztalt csapat jelenléte alapján kell kiválasztani. Az új eszközökkel való munkavégzés kockázatait a kutatás, a koncepció bizonyítása és a tapasztalt tanácsadók bevonása minimalizálja. Az új technológiákat folyamatosan fel kell tárni, de csak akkor kell alkalmazni, ha azok jobban megfelelnek egy adott feladatnak.

Sándor Makarchuk, qb
Az üzleti életben a „szép nyelv” fogalma nem létezik. Csak akkor fogadhat egy új, nem tesztelt nyelvre, ha az garantáltan olyan különleges USP-t ad a projektnek, amelyet az ügyfelek érezhetnek, és ami a legfontosabb, fizetni is akarnak érte. Ha ez a feltétel teljesül, akkor választhat új nyelvet, de vállalnia kell az ezzel járó összes kockázatot.

Grigorij Nikonov, Actis Wunderman
Természetesen ez a projekttől és magának a nyelvnek az érettségétől függ. Ha a projekt megengedi, vagy a nyelvhasználat szükséges feltétel, és a szükséges tantárgyi könyvtárak rendelkezésre állnak, akkor a kísérlet engedélyezése teljesen lehetséges. A kockázatok nyilvánvalóak: „csapdák”, amelyekbe félúton belebotlhatunk. Ezeknek a kockázatoknak a minimalizálása is kézenfekvő: lehetőség szerint végezzen kutatást a projekt megkezdése előtt, és győződjön meg arról, hogy legalább a fórumon vagy a gyártótól aktívan támogatják a nyelvet.

, ADV
Ebben a kérdésben minden a projekt időzítésétől és költségvetésétől függ. Ha mindkettő nagyon korlátozott, akkor minden kutatás nem indokolt, és nagy problémákat okozhat, akár a projekt teljes kudarcáig.

Alekszej Fedorov, "Osztálytársak"
A válasz nagyban függ attól, hogy mennyi ideig tart a projekt. Ha ez egy kis egyedi projekt, amelyet gyorsan kell elvégezni, át kell adni és el kell felejteni, akkor választhat, amit akar. Ha ez egy évekig tartó nagy projekt, akkor jobb, ha bevált technológiákat választ, amelyekhez a szükséges számú szakembert felveheti. Annak becsléséhez, hogy egy adott technológia hány szakembere van az Ön régiójában, elegendő bármilyen ésszerű szolgáltatást igénybe venni, például a LinkedIn-t vagy a HeadHuntert. És akkor meg kell nézni a nem funkcionális követelményeket: terhelés, biztonság, hibatűrés stb.

2. Melyek azok a lényeges tényezők, amelyek garantálják, hogy a nyelvet lehet és kell használni a termelésben?

Igor Zilberg, SmartHead
Senki és semmi nem ad garanciát ezen a világon. Tapasztalatainkra és közös legjobb gyakorlatainkra támaszkodunk.

Sándor Makarchuk, qb
Három fő jel utal arra, hogy egy adott nyelv használata jövedelmező és biztonságos. Először is egy "élő" közösség jelenléte ezen a nyelven, másodszor a sikeres esetek jelenléte, harmadszor pedig a nyelv támogatása a nagy gyártók részéről.

Grigorij Nikonov, Actis Wunderman
"Érett" tantárgyi könyvtárak és keretrendszerek jelenléte, aktív online közösség, amely tanácsokat ad a problémák megoldásához, a végső alkalmazás stabilitására és teljesítményére vonatkozó negatív visszajelzések hiánya.

Alekszej Perszianov, Mihail Parfenyuk, ADV
Tényezők az adott nyelv közössége, a megvalósított projektek száma, a fejlesztők száma stb. Egy termék új és nyers nyelven történő előállítása nagy támogatási problémákat rejt magában.

Alekszej Fedorov, "Osztálytársak"
Formális garanciát csak szerződéssel lehet alátámasztani. Ha van egy komoly szállító (például Oracle, SAP, IBM), aki például garantálja, hogy a technológiája a következő 10 évben támogatott lesz, és ezzel a szállítóval megfelelő támogatási szerződést kötöttek, akkor elvileg , ezt tekintheti valamiféle garanciának . A probléma az, hogy általában nagyon drága, és a nagy gyártók támogatásának minősége általában undorító.

Ezért a világban utóbbi évek elfogadott egy másik gyakorlatot - nyílt forráskódot. Ha van egy nyílt forráskódú eszköze (nyelve, keretrendszere, adatbázisa vagy bármi más) nyílt forráskóddal, akkor ez némi garanciát ad arra, hogy ha hirtelen hibát talál ebben az eszközben, akkor extrém esetekben kijavíthatja ezt a hibát saját források. A nyílt forráskódú megoldások ezt a tulajdonságát tartom a mai üzlet kulcsának.

3. Hogyan kell eljárni, ha egy fejlesztő, vagy akár több fejlesztő javasolja a programozási nyelv változtatását, de a helyzet azt mutatja, hogy az izgalmát nem támasztják alá megfelelő üzleti követelmények a technológiával szemben?

Igor Zilberg, SmartHead
A fejlesztők nem támasztanak üzleti követelményeket. A vállalkozások biztosítják őket. Az üzlet azonban a fejlesztők által írt kód minőségétől függ. Ezért, ha a fejlesztők olyan technológiát akarnak használni, amely nyilvánvalóan nem alkalmas üzleti probléma megoldására, akkor a fejlesztőket vagy meggyőzni kell, vagy változtatni kell. A megfelelő és tapasztalt fejlesztő képes megérteni az üzleti követelményeket, és azokra a legmegfelelőbb megoldást alkalmazni. Nálunk nem voltak ilyen problémáink. Gyakorlatunkban ennek az ellenkezője gyakrabban fordul elő: az ügyfél ahelyett, hogy üzleti követelményeket fogalmazna meg, befolyásolja a technológia kiválasztását (sokszor saját követelményeinek megvalósítása rovására).

Sándor Makarchuk, qb
Ha az új nyelvre való átállást nem támasztják alá kézzelfogható érvek, és nem kecsegtet komoly előnyökkel a projekt számára, akkor nincs rá szükség. De persze ezt el kell magyarázni a fejlesztőknek, nehogy a csapatnak az a benyomása legyen, hogy nem hallgatnak rá.

Grigorij Nikonov, Actis Wunderman
Ragaszkodjon a konzervatív politikához, és ne változtasson nyelvet alapos ok nélkül. Mindig lesz újabb projekt egy új nyelv kipróbálására.

Alekszej Perszianov, Mihail Parfenyuk, ADV
A fejlesztőkkel félúton csak belső projekt esetén lehet találkozni, vagy ha a csapat betanítására van írva. Ebben az esetben a kudarc kockázata kicsi, és kudarc esetén a hasznos tapasztalatok átkerülnek a jövőbe. Ellenkező esetben az üzlet nem fogja értékelni a fejlesztők perfekcionizmusát.

Alekszej Fedorov, "Osztálytársak"
Először is meg kell kérdezni, mi az oka a nyelv megváltoztatásának. Mit fog adni? Mik az előnyei és mik a hátrányai? Mennyibe kerül egy ilyen átállás és mennyi az időkeret? Mik a kockázatok?

Ha a kapott válaszok üzleti szempontból megfelelnek Önnek, folytassa. Ha nem elégedett, meg kell próbálnia közölni a fejlesztőkkel az okokat, amelyek miatt elutasítja őket.

4. Mikor éri meg az egyik nyelvről a másikra váltás költsége?

Igor Zilberg, SmartHead
Nem lehet megbecsülni a platformváltás költségeit és a kapcsolódó előnyöket a projekt összefüggésén kívül. Ilyen döntést csak egy adott projekten belüli tudatos megközelítés alapján lehet meghozni, semmiféle "univerzális" vélemény vagy szabály alapján nem.

Sándor Makarchuk, qb
Mikor lesz ez kézzelfogható nyereséggel, mind közvetlen, mind közvetett módon egy új USP projektben való megjelenése miatt, amely versenyképesebbé teszi a terméket.

Grigorij Nikonov, Actis Wunderman
Abban az esetben, ha egy új nyelv használata lehetővé teszi a tantárgy teljes életláncának jelentős optimalizálását: az alkalmazás tervezésétől, fejlesztésétől és tesztelésétől a nyelv és a környező ökoszisztéma tulajdonságaiból adódó implementációig és az azt követő frissítésekig, fejlesztésekig. azt.

Alekszej Perszianov, Mihail Parfenyuk, ADV
Amikor megszűnik a nyelvi támogatás, és ezzel párhuzamosan a szakemberek száma a piacon nullára szokott csökkenni. Vagy ha teljesen elveszíti a régi csapatot anélkül, hogy képes lenne megmenteni a technológiát. Amikor a nyelvből származó haszon nagyobb lesz, mint az átállás költsége.

Alekszej Fedorov, "Osztálytársak"
Amikor Ön és kollégái egyértelmű válaszokat kapnak a fenti kérdésekre.

5. Úgy gondolja, hogy bizonyos feladatoknál jól bevált a nyelvhasználat szétválasztása? Ha igen, hogyan látja pontosan? Megjelenhet vagy már létezik olyan nyelv, amely megváltoztatja a helyzetet és magával ragadja a fejlesztők többségét?

Igor Zilberg, SmartHead
Természetesen van néhány tipikus alkalmazás különböző platformokra (nem nyelvekre). Például Java és .NET viszonylag nagy üzleti alkalmazásokhoz vagy szolgáltatásokhoz. Node.js többszálú és üzenetküldéshez. Ne sorolj fel mindent. Ezek a határok azonban nagyon-nagyon elmosódnak, és régiótól is függenek. Az USA-ban például kicsit más a platformok használati tapasztalata, "divatja", tipikus felhasználási területei, mint nálunk.

Sándor Makarchuk, qb
Egyrészt jól bevált a nyelvek alkalmazás szerinti felosztása, másrészt nagyon fontosak a regionális és ártényezők: a technológiai belépési költség, a támogatás stb. Az új nyelvek megjelenésével kapcsolatban itt kell észrevenni egy ilyet. Az elmúlt néhány évben a kommunikáció szintje jelentősen nőtt, és a programozási nyelvek valójában még mindig ugyanazok. Talán a kommunikáció területén a további forradalom az, ami teljesen új fejlesztési technológiákat von maga után.

Grigorij Nikonov, Actis Wunderman
Elvileg van egy ilyen felosztás: a C-t és a C ++-t hagyományosan alacsony szintű fejlesztésekhez használják, a Java és a C # általános célú nyelvek, amelyek az üzleti logikától a mobil alkalmazásokig sokféle feladatra alkalmasak. A Python, a Ruby és a PHP elsősorban a webfejlesztést, a JavaScriptet pedig a böngészőalkalmazásokat célozza meg. Nem hiszem, hogy ezen a téren drasztikus változások lesznek, bár a nyelvek és keretrendszerek divatja időnként változik – most például a Go nyelv kezd egyre népszerűbb lenni.

Alekszej Perszianov, Mihail Parfenyuk, ADV
Igen. A munka sebessége és a könnyű használhatóság miatt bizonyos dolgokat jobban implementálnak különböző nyelveken, például PHP-projektekben a nyelv "lassúsága" miatt csevegést valósíthat meg a Node-ban vagy egy aggregátort Java-ban. - jobb lesz az eredmény.

Minden évben minden új nyelv megkapja a „legjobbak” babérjait, és vonzza a fejlesztőket, de eddig valószínűleg megingathatatlanok a bevált nyelvek pozíciói. A jövőben minden lehetséges.

Alekszej Fedorov, "Osztálytársak"
Az általunk ismert modern programozási nyelvek többsége többfunkciós, vagyis nagyon eltérő döntéseket tud hozni.

Ami egy új nyelvet illeti - igen, megjelenhet egy ilyen nyelv, de az iparág meglehetősen erős tehetetlensége miatt nem hiszem, hogy a következő 5 évben valaki lenyomja a Java és a C / C ++ nyelvet a talapzatról. Ha valamilyen „lovát” választasz, akkor JavaScriptre tippelnék. Ma hatalmas növekedést látunk az iparágban mindenben, ami a JavaScripttel kapcsolatos. A keretek úgy születnek, mint a gomba eső után. Óriási a felhajtás az interneten e technológia körül. Lássuk, hová vezet mindez.

6. A programozónak DevOps-nak kell lennie (rendelkezik-e programozói és rendszergazdai képességekkel)? Mi a teendő azzal, hogy a legtöbb programozó megtagadja a kompetenciák fejlesztését és a felelősségvállalást ezen a területen?

Alekszej Perszianov, Mihail Parfenyuk, ADV
A környezet konfigurálásához általában a rendszergazda szolgáltatásait veszik igénybe. De valószínűleg logikus, hogy a kódot író személynek képesnek kell lennie arra, hogy beállítsa a platformot a kód optimális végrehajtásához. Ezzel időt és költségeket takaríthat meg.

7. Használjon mikroszolgáltatásokat a projektjei során?

Alekszej Perszianov, Mihail Parfenyuk, ADV
Nincs határozott válasz, de a mi válaszunk igen. Természetesen sok problémát okozhatnak, de sokak megoldásában is segítenek. Például a mikroszolgáltatásoknak köszönhetően az alkalmazás különböző részei különböző programozási nyelveken írhatók, lehetőség nyílik az alkalmazás betöltött részei méretezésére stb.

8. Egy fejlesztőnek képesnek kell lennie a modern webes technológiák és nyelvek széles skálájával dolgozni?

Alekszej Perszianov, Mihail Parfenyuk, ADV
Az elmúlt években a front-end hatalmas áttörést ért el, míg a szerveroldali nyelvek fejlődése nem annyira észrevehető. A fejlesztőnek természetesen ismernie kell a kapcsolódó területek alapjait, de nem lehet gurunak lenni a szervernyelvekben és a kliensnyelvekben, mindenkinek a saját dolgát kell tennie, és abban igazi profinak kell lennie.

A jelentés címe

Modern programozási nyelvek és használatuk

Projekt szerzője

Projekt felépítése

● Programozási nyelv osztályozási séma

● Programozási nyelvek osztályozása

● A programozási nyelvek áttekintése

● Hasznos források

Programozási nyelv osztályozási séma

A programozási nyelvek osztályozása

eljárási programozás- a számítógép Neumann architektúráját tükrözi. A procedurális nyelven írt program olyan parancsok sorozata, amelyek algoritmust határoznak meg egy probléma megoldására. A procedurális programozás alapötlete a memória használata az adatok tárolására. A fő parancs a hozzárendelés, melynek segítségével a számítógép memóriája meghatározásra és módosításra kerül. A program átalakítja a memória tartalmát, megváltoztatva azt a kezdeti állapotból a kapott állapotba.

Vannak ilyen eljárási programozási nyelvek:

 A Fortran nyelvet a 20. század 50-es éveinek elején hozták létre tudományos és technikai problémák programozására;

 Cobol - a 20. század 60-as éveinek végén hozták létre a különféle adathordozókon tárolt nagy mennyiségű adat feldolgozásának problémáinak megoldására;

 Az Algol (1960) egy többcélú fejlett programozási nyelv. Először vezette be a "programblokk-struktúra" és a "dinamikus memóriafoglalás" fogalmát;

 A 20. század 60-as éveinek közepén egy speciális programozási nyelvet hoztak létre kezdőknek - BASIC. Jellemzője a könnyű fejlesztés és az univerzális eszközök elérhetősége a tudományos, műszaki és gazdasági problémák, valamint feladatok, például a játék megoldására.

A fent felsorolt ​​nyelvek mindegyike különböző típusú problémákra összpontosított, de bizonyos fokig egy adott számítógépes architektúrához kötöttek.

 1963-1966-ban létrehozták a PL-1 többcélú univerzális nyelvet. Ez a nyelv kiválóan alkalmas számítási folyamatok tanulmányozására, tervezésére, modellezésére, logikai problémák megoldására, szoftverrendszerek fejlesztésére.

 A Pascal nyelv (PASCAL) (1968-1971) a PC-k legnépszerűbb procedurális programozási nyelve, amelyet máig sikeresen használnak. A Pascal nyelv az általános feladattól a konkrét (egyszerűbb és kisebb volumenű) megközelítésen alapul. A Pascal főbb alapelvei a következők: a) Strukturális programozás, amely szubrutinok és független adatstruktúrák használatán alapul; b) Top-down programozás, amikor a feladatot egyszerű, önállóan megoldott feladatokra bontjuk. Ezután az eredeti probléma megoldása teljesen felülről lefelé épül fel.

 A procedurális programozási nyelvek közé tartozik az ADA nyelv (1979), amely az első programozóról, Ada Lovelace-ről, Byron lányáról kapta a nevét. A kialakítások modularitása jellemzi.

 A C nyelv (70-es évek eleje) is a procedurális programozási nyelvek közé tartozik. Eredeti változatát a megvalósítás nyelvének tervezték operációs rendszer Unix az assembly nyelv helyett. A C nyelv egyik sajátossága, hogy a kifejezések és az utasítások közötti különbségek kisimulnak, ami közelebb hozza a funkcionális programozási nyelvekhez. Ráadásul a C nyelvben nem szerepel az eljárás fogalma, az alprogramok használata pedig a függvény fogalmán alapul, amely egyesítheti egy eljárás képességeit. Egyrészt a vezérlési struktúrák és adatstruktúrák halmaza szerint a magas szintű nyelvek közé sorolható, másrészt olyan eszköztárral rendelkezik, amely lehetővé teszi a számítógép funkcionális egységeinek közvetlen elérését, ami azt jelenti, hogy használható műveleti nyelvként.

Objektum orientált programozás (OOP) egy olyan programozási módszer, amelyben a programok fő elemei az objektumok. A programozási nyelvekben az objektum fogalmát tulajdonságok (egy adott objektumra jellemző adatszerkezetek), ezek feldolgozására szolgáló módszerek (tulajdonságaik megváltoztatására szolgáló szubrutinok) és események halmazaként valósítják meg, amelyekre egy adott objektum reagálni tud, és amelyekre pl. szabály, az objektum tulajdonságainak megváltozásához vezet. Az adatok és feldolgozási eljárások egy objektumban való kombinációját beágyazásnak nevezik, és ez az OOP egyik legfontosabb alapelve.

Egy másik alapvető fogalom az osztály. Az osztály egy sablon, amelyből egy adott programobjektum létrehozható, leírja azokat a tulajdonságokat és metódusokat, amelyek meghatározzák az osztályba tartozó objektumok viselkedését. Minden egyes objektumot, amely ennek az osztálynak a szerkezete, az osztály példányának nevezzük.

Az OOP következő legfontosabb alapelvei az öröklődés és a polimorfizmus. Az öröklődés lehetővé teszi új osztályok létrehozását a meglévők alapján, és lehetővé teszi, hogy a leszármazott osztály rendelkezzen (örökölje) a szülő osztály összes tulajdonságát.

A polimorfizmus azt jelenti, hogy a megszületett objektumok információval rendelkeznek arról, hogy milyen módszereket kell használniuk attól függően, hogy hol vannak a láncban.

Az OOP másik fontos alapelve a modularitás - az objektumok jellemzőik teljes definícióját tartalmazzák, a módszerek és tulajdonságok definícióit nem szabad azon kívül elhelyezni, ez lehetővé teszi egy objektum szabad másolását és implementálását másokba.

A legmodernebb programozási nyelvek a C++ és a Java. Az 1990-es évek közepe óta számos objektum-orientált nyelvet implementáltak vizuális tervezőrendszerként, amelyekben a szoftvertermékek interfész részét interaktívan, programutasítások írása nélkül, vagy alig írják. Az objektumorientált látványtervező rendszerek közé tartozik a Visual Basic, a Delphi, a C++ Builder, a Visual C++. A VBA (Visual Basic for Application) nyelv a Microsoft Office alkalmazások (Excel, Word, Power Point stb.) nyelve. A VBA követi a nyelv alapvető szintaxisát és a programozási nyelvek szabályait Basic - dialektusok, lehetővé teszi makrók létrehozását bizonyos műveletek végrehajtásának automatizálásához és GUI felhasználó, a különböző szoftvertermékek közötti integráció.

Deklaratív programozási nyelvek

Ide tartoznak a funkcionális és logikai programozási nyelvek. A funkcionális programozás olyan programírási mód, amelyben az egyetlen művelet egy függvény meghívása. A funkcionális programozás nem használja a memóriát adatok tárolására, ezért nem használ közbenső változókat, hozzárendelési utasításokat és ciklusokat. A funkcionális nyelvek kulcsfogalma a kifejezés. A funkcionális nyelven írt program függvények és kifejezések leírásainak sorozata. A kifejezést úgy számítjuk ki, hogy a komplexet egyszerűre redukáljuk. Minden kifejezés listaként van írva. A Lisp (LISP, LIST Processing) 1959-ben jött létre első nyelvként. Ez a nyelv lehetővé teszi nagy mennyiségű szöveges információ feldolgozását. A logikai programozás logikai értelemben programozás. 1973-ban létrehozták a Prolog (PROLOG) mesterséges intelligencia nyelvet (Programming in Logic). Egy Prolog program tények és szabályok sorozatából épül fel, majd megfogalmazódik egy állítás, amit a Prolog a szabályok segítségével próbál bizonyítani. A nyelv maga keresi a megoldást a beleágyazott keresési és egyeztetési módszerek segítségével. A logikai programok nem túl gyorsak, mivel végrehajtásuk folyamata a közvetlen és fordított érvelési láncok különféle keresési módszerekkel történő felépítésére redukálódik.

A programozási nyelvek áttekintése

szerelő

A számítógépes programozási nyelvek 2 fő csoportra oszthatók:

1) alacsony szintű nyelvek;

2) magas szintű nyelvek.

Az összeállítási nyelvek alacsony szintű nyelvek. Nevüket az Assembler rendszerprogram nevéről kapták, amely az ilyen nyelveken írt forrásprogramokat közvetlenül gépi utasításkódokká alakítja. Az itt található részek utasítások, az assembly eredménye pedig a gépi utasítások sorozata.Az assembly nyelv egyesíti a gépi utasításnyelv előnyeit és a magas szintű nyelvek néhány jellemzőjét. Az assembler lehetőséget ad a szimbolikus nevek használatára a forrásprogramban, és megkíméli a programozót a fárasztó (a gépi utasítások nyelvén történő programozásnál elkerülhetetlen) munkától az utasítások, változók és konstansok számítógépes memóriájának lefoglalása során.

Az összeszerelő ugyanolyan rugalmasságot és a számítógép műszaki lehetőségeinek, valamint a gépi utasítások nyelvének teljes kihasználását teszi lehetővé. Az assembler forrásfordító egyszerűbb, mint a magas szintű programozási nyelvekhez szükséges fordító. Assembly nyelven olyan programot lehet írni, amely méretét és végrehajtási idejét tekintve ugyanolyan hatékony, mint egy gépi nyelvű program. Ez az előny a magas szintű nyelveknél hiányzik. Ezt a nyelvet gyakran használják valós idejű rendszerek, technológiai folyamatok és berendezések programozására, információs és mérőrendszerek működésének biztosítására. Az ilyen rendszerek általában nagy követelményeket támasztanak a gép által elfoglalt memória mennyiségével szemben. Az assembly nyelvet gyakran kiegészítik makrók létrehozásával, amelyek mindegyike egy egész gépi utasításcsoportnak felel meg. Az ilyen nyelvet makró assembler nyelvnek nevezik. A pipacsos „építőelemek” használata blokkolja és közelebb hozza az assembly nyelvet egy magas szintű nyelvhez. Az Assembler egy gépfüggő nyelv, azaz egy adott típusú számítógép architektúrájának jellemzőit tükrözi

Pascal

A Pascal programozási nyelvet Nicholas Wirth, a Svájci Szövetségi Technológiai Intézet Számítástechnikai Tanszékének professzora fejlesztette ki 1968-ban a meglévő és egyre összetettebb programozási nyelvek, például a PL/1, Algol, Fortran alternatívájaként. A Pascal intenzív fejlődése oda vezetett, hogy már 1973-ban megjelent szabványa átdolgozott üzenet formájában, és 1979-ben az ebből a nyelvből fordítók száma meghaladta a 80-at. A 80-as évek elején a Pascal tovább erősítette pozícióját a MS-Pascal és Turbo fordítók - Pascal PC-hez. Azóta a Pascal az egyik legfontosabb és legszélesebb körben használt programozási nyelvvé vált. Alapvető fontosságú, hogy a nyelv már régóta túlmutat az akadémiai és szűken vett szakmai érdeklődésen, és a fejlett országok legtöbb egyetemén nem csak a felhasználó munkaeszközeként használják. A Pascal legfontosabb jellemzője a strukturált programozás megtestesült ötlete. Egy másik lényeges jellemzője az adatstruktúra fogalma, mint az egyik alapfogalom.

A Pascal népszerűségének fő okai a következők:

A nyelv egyszerűsége lehetővé teszi annak gyors elsajátítását és algoritmikusan összetett programok létrehozását.

Az adatszerkezetek ábrázolásának kifejlesztett eszközei mind a numerikus, mind a szimbolikus és bitinformációkkal való munka kényelmét biztosítják

A Pascal fordítóprogramok létrehozására szolgáló speciális módszerek jelenléte leegyszerűsítette fejlesztésüket és hozzájárult a nyelv széles körű elterjedéséhez

A Pascal fordítóinak optimalizáló tulajdonságai lehetővé teszik hatékony programok létrehozását. Ez volt az egyik oka annak, hogy a Pascalt rendszerprogramozási nyelvként használták.

A Pascal nyelv a strukturált programozás ötleteit valósítja meg, ami vizuálissá teszi a programot, és jó lehetőségeket biztosít a fejlesztésre és a hibakeresésre.

A Bell Labs munkatársa, Denis Ritchie 1972-ben hozta létre a C nyelvet, miközben Ken Thompsonnal dolgozott a Unix operációs rendszer implementálásának eszközeként, de ennek a nyelvnek a népszerűsége gyorsan túlnőtt egy adott operációs rendszer és a konkrét rendszerprogramozási feladatok határain. Jelenleg egyetlen eszköz és operációs rendszer sem tekinthető teljesnek, ha nem tartalmaz C-fordítót. Ritchie nemcsak a fejéből találta ki a C-t – a Thompson által kifejlesztett B nyelv prototípusként szolgált. A C programozási nyelvet gyakorlati programozók eszközeként fejlesztették ki. Ennek megfelelően szerzőjének fő célja egy kényelmes és minden szempontból hasznos nyelv megalkotása volt.

A C egy rendszerprogramozó eszköz, és lehetővé teszi, hogy mélyrehatóan megismerkedjen a számítógépes információfeldolgozás legfinomabb mechanizmusaival. Bár a nyelv nagyfokú fegyelmet követel a programozótól, nem szigorú a formai igényességben, és lehetővé teszi a tömör megfogalmazásokat.

A C egy modern nyelv. Ide tartoznak azok a vezérlési struktúrák, amelyeket a programozás elmélete és gyakorlata ajánl. Felépítése arra ösztönzi a programozót, hogy munkája során felülről lefelé irányuló tervezést, strukturált programozást és lépésről lépésre történő modulfejlesztést alkalmazzon.

A C egy erőteljes és rugalmas nyelv. A legtöbb Unix operációs rendszer, a Fortran, Pascal, Lisp és BASIC fordítói és tolmácsai ezzel íródnak.

A C egy kényelmes nyelv. Eléggé felépített ahhoz, hogy támogassa a jó programozási stílust anélkül, hogy szigorú korlátokhoz kötné. Bizonyos értelemben a C nyelv a legsokoldalúbb, mert a modern, magas szintű programozási nyelvekben rejlő eszközök (strukturalitás, modularitás, bizonyos adattípusok) mellett szinte assembler szintű programozási eszközöket is tartalmaz. Az operátorok és létesítmények széles köre megköveteli a programozótól, hogy legyen óvatos, pontos, és jól ismerje a nyelvet annak minden előnyével és hátrányával együtt.

A C++ nyelv a 80-as évek elején jelent meg. Bjarne Stroustrup készítette azzal az eredeti céllal, hogy megmentse magát és barátait az assembly, a C vagy más magas szintű nyelveken való programozástól.

A nyelv szerzője szerint a C és a C++ ideológiája között megközelítőleg a következő a különbség: egy C program a processzor „gondolkodásmódját”, míg a C++ a programozó gondolkodásmódját tükrözi. A modern programozás követelményeinek megfelelően a C++ olyan új adattípusok kidolgozására helyezi a hangsúlyt, amelyek a leginkább megfelelnek a választott tudásterület fogalmainak és az alkalmazás feladatainak. Az osztály a C++ kulcsfogalma. Az osztályleírás tartalmazza az ilyen típusú objektumok ábrázolásához szükséges adatok leírását, valamint a hasonló objektumokkal való munkavégzéshez szükséges műveleteket.

A hagyományos C és Pascal struktúrákkal ellentétben az osztálytagok nem csak adatok, hanem függvények is. Egy osztály tagfüggvényei kiváltságos hozzáféréssel rendelkeznek az adott osztály objektumain belüli adatokhoz, és interfészt biztosítanak ezen objektumok és a program többi része között. A további munka során egyáltalán nem szükséges megjegyezni az osztály belső felépítését és a beépített funkciók mechanizmusát. Ebben az értelemben a tanterem olyan, mint egy elektromos készülék - kevesen ismerik a készülékét, de mindenki tudja, hogyan kell használni.

A C++ nyelv az objektumprogramozás eszköze, a programok tervezésének és megvalósításának legújabb technikája, amely a jelenlegi évtizedben valószínűleg felváltja a hagyományos procedurális programozást. A nyelv megalkotójának, Dr. Bjorn Stroustrapnak a fő célja az volt, hogy a C ++ nyelvet olyan konstrukciókkal szerelje fel, amelyek lehetővé teszik a programozók produktivitásának növelését és a nagy szoftvertermékek elsajátításának folyamatát.

Az absztrakció, az implementáció, az öröklődés és a polimorfizmus a C++ alapvető tulajdonságai, így nemcsak univerzális, mint a C, hanem objektumnyelv is. Fortran A Fortran egy széles körben használt nyelv, különösen a numerikus modellezéssel foglalkozó felhasználók körében. Ennek több oka lehet:

Az évek során felhalmozott, alkalmazott Fortran programok hatalmas alapjai, valamint hatalmas számú programozó jelenléte, akik hatékonyan használják ezt a nyelvet;

A hatékony Fortran fordítók minden típusú számítógépen jelen vannak, és a különféle gépekhez készült verziók meglehetősen szabványosak, és a programok gépről gépre történő átvitele általában nem okoz nagy nehézségeket;

A Fortran eredeti középpontjában a fizikai, matematikai és műszaki alkalmazások álltak; Ez különösen abban nyilvánult meg, hogy hosszú ideig ez volt az egyetlen nyelv, amelybe beépített összetett típusú változók és számos beépített függvény tartozik az ilyen változókkal való munkavégzéshez.

Az elmúlt időszakban új programozási módszertan és filozófia alakult ki. A 70-es évek eleje óta a Fortran megérdemelt kritikáknak van kitéve. 1977-ben új nyelvi szabványt, a Fortran-77-et fogadtak el. Egy új szabvány megalkotása sok időt vett igénybe, de most már azt mondhatjuk, hogy a fejlesztése befejeződött, és az új Fortran-90 szabvány elkezdett bekerülni a Fortran felhasználók gyakorlatába. Csak az olyan gépeken, mint az IBM PC, számos fordító létezik, mint például a Watfor, Lap-Fortran stb. De az ilyen típusú gépeken a legelterjedtebbek a Fortran-77 fordító különféle változatai. Az 1990-ben kiadott MS-Fortran 5.0 fordító szinte teljes mértékben megfelel a Fortran-90 szabványnak. A legtöbb jelentős tudományos és műszaki alkalmazás a Fortranban készült, a hordozhatóság és a stabilitás, valamint a beépített matematikai és trigonometrikus függvények miatt. Bármely Fortran alkalmazás további, szerves része egy kibővített grafikus könyvtár, amely lehetővé teszi különböző grafikus adatok és képek használatát.

A nyelvet főként 1975-1980-ban hozták létre az Egyesült Államok Védelmi Minisztériumának grandiózus projektje eredményeként, amelynek célja az úgynevezett beágyazott rendszerek (azaz automatizált komplexumok valós idejű vezérlőrendszerei) egységes programozási nyelvének kifejlesztése volt. Mindenekelőtt a katonai létesítmények (hajók, repülőgépek, tankok, rakéták, lövedékek stb.) fedélzeti vezérlőrendszereire gondoltak. Ezért az Ada szerzői által hozott döntések nem tekinthetők egyetemesnek. Ezeket a kiválasztott tantárgyi terület jellemzőivel összefüggésben kell érzékelni. Az adai nyelv az 1978-1979-ben megrendezett nemzetközi nyelvi projektek versenyének eredményeként jött létre. A résztvevőknek meglehetősen szigorú, az amerikai védelmi minisztérium égisze alatt kidolgozott részletes követelményeknek kellett megfelelniük. Érdekes módon az összes nyelv, amely a verseny utolsó fordulójába jutott, Pascalon alapult. Ebből a szempontból az Adát a fenti öt alapkövetelmény figyelembevételével kifejlesztett Pascalként jellemezhetjük. Ugyanakkor a szerzők elsősorban a Pascal új elemekkel való bővítésének útján jártak. Az eredmény egy sokkal összetettebb nyelv.

cobol

A cobol egy viszonylag régi nyelv, amelyet elsősorban gazdasági kutatásokra fejlesztettek ki. A nyelv lehetővé teszi a hatékony munkavégzést nagy mennyiségű adattal, tele van különféle keresési, rendezési és terjesztési lehetőségekkel. A széles körben elterjedt használaton alapuló Cobol programokról az angol nyelvből, állítólag a cobolt nem beszélők számára is érthetőek, hiszen ezen a programozási nyelven a szövegek nem igényelnek különösebb kommentárt. Az ilyen programokat öndokumentálónak nevezzük. A Cobol egyéb előnyei általában a strukturáltságának tulajdoníthatók. Ebből a nyelvből meglehetősen hatékony fordítókat fejlesztettek ki személyi számítógépekhez. Némelyikük annyira hatékony, hogy a személyi számítógépen hibakereső program könnyen átvihető nagyszámítógépekre.

A hátrányokat felsorolva nem szabad elfelejteni, hogy a Cobolon csak a legegyszerűbb algebrai számítások programozhatók. Mérnöki számításokhoz ez a nyelv nem alkalmas. A másik ok, amely bizonyos mértékig hátráltatja a nyelv fejlődését, egy speciálisan létrehozott iparági bizottság jelenléte az Egyesült Államokban, amely szabványokat dolgoz ki, amelyeket egy kormánybizottság felügyel. Ahogy az ilyenkor lenni szokott, a szoftverfejlesztő cégek nem sietnek tervezeteiket a megbízás merev követelményeihez igazítani, nincs verzióverseny, és a végén elveszik a nyelv elterjedését.

A PL/1-et 1964-1965 között fejlesztette ki az IBM. A PL/1 az univerzális nyelvek egyike, azaz különböző területeken megoldható problémákat tesz lehetővé: numerikus számítások, szövegfeldolgozás, gazdasági feladatok stb. Lehetőségeit tekintve átfedésben van olyan nyelvekkel, mint a Fortran, Algol-60 (numerikus számításokhoz készült), Kobol (gazdasági problémákra), bár a PL/1 számos ok miatt nem tudta kiszorítani ezeket a nyelveket.

A PL/1 tartalmazza az úgynevezett magas szintű nyelvekre jellemző összes alapvető konstrukciót, valamint számos speciális eszközt, amelyek kényelmesek a gyakorlati programozáshoz. A nyelv egy nagyszámú részlettel rendelkező konstruktorra hasonlít - a felhasználónak csak a nyelv azon részeit kell elsajátítania, amelyek számára gyakorlatilag szükséges. Operátorai meglehetősen nagy kapacitásúak, ami gyakran lehetővé teszi a programok kompaktabb megírását, mint más nyelveken. A PL/1-et tudó programozó könnyedén elsajátíthatja az azonos vagy hasonló osztályú bármely más nyelvet.

Ugyanakkor a PL/1-nek számos hiányossága is van, amelyek megnehezítik a nyelv tanulását és használatát. A főbbek a következők. Először is, sok eszköz létezik, amelyek megkettőzik egymást; Másodszor, a programok nem teljesen gépfüggetlenek.

Modula

Feltételezhető, hogy a Modula nyelv története 1980-ban kezdődik, amikor Niklaus Wirth, az egyik kiemelkedő információelméleti szakember, akit a legtöbb informatikus főként a Pascal-nyelv megalkotójaként ismert, közzétette egy új programozási nyelv leírását, amely felhívta Modulát. A Pascaltól eltérően, amelyet programozási nyelvnek szántak, a Modula kezdettől fogva a professzionális rendszerprogramozók nyelve volt, folytatva elődje legjobb hagyományait, és olyan új ötletekkel gazdagítva őket, amelyek megfelelnek a programozási nyelvek olyan követelményeinek, mint a szerkezet. , modularitás és a bővítési képesség. Sok más programozási nyelvhez hasonlóan a Modula is fejlődésen ment keresztül, melynek során eredeti neve Modula-2-re változott. A Modula nyelv fejlesztésével egyidőben új fordítók is készültek hozzá, azonban egyik sem tudta felvenni a versenyt a Pascal és C nyelvek legjobb implementációival, például a Borland által fejlesztettekkel. Ebben az átmeneti időszakban a Modula nyelv esetében a Logitech által készített implementációk számítottak a legjobbnak, amelyek jellemzőik szerint elvesztek a Turbo Pascal és a Turbo C előtt. Csak 1988-ban, miután a Top Speed ​​rendszer megjelent az amerikai piacon, a Modula-2 elfoglalta méltó helyét a rendszerprogramozásra szánt eljárási nyelvek között. A Top Speed ​​rendszer növekvő népszerűségéhez több tényező is hozzájárult: kényelmes és emellett könnyen változtatható operációs környezet, gyors fordító és szelektív linker. De a legjelentősebb az volt, hogy a létrehozott programok nagyon gyorsak voltak, és nem foglaltak sok memóriát.

ALAPVETŐ

BASIC (Basic - Beginner's All-Purpose Symbolic Instruction Code – „univerzális szimbolikus utasításkód kezdőknek”). A Fortran közvetlen leszármazottja, és még mindig a legnépszerűbb személyi számítógépek programozási nyelve. A BASIC 1963-ban jelent meg (nehéz lenne megnevezni a szerzőt, de megjelenésének fő érdeme kétségtelenül az amerikaiaké John Kemeny és Thomas Kurtz). Mint minden előny, a BASIC egyszerűsége a strukturálás rovására ment, különösen a korai verziókban; ráadásul a BASIC nem engedte meg a rekurziót – ez egy érdekes trükk, amellyel hatékony és egyben rövid programokat írhat.

Erőteljes BASIC fordítókat fejlesztettek ki, amelyek nemcsak gazdag szókincset és nagy teljesítményt biztosítanak, hanem a strukturált programozás lehetőségét is. Egyes programozók szerint a legérdekesebb verziók a GWBASIC, a Turbo-Basic és a Quick Basic.

Egy időben a Quick Basic megjelenése a BASIC programozási rendszerek második generációjának születését jelentette. Lehetőséget adott a moduláris és procedurális programozásra, könyvtárak létrehozására, kész programok fordítására stb., ami Quick Basic formájában olyan klasszikus programozási nyelvek szintjére hozta, mint a C, Pascal, Fortran stb. de facto mércévé vált. A BASIC különféle verziói között a vitathatatlan vezetők a Microsoft Quick Basic 4.5 és PDS 7.1 verziói voltak, amelyek a 80-as évek végén jelentek meg.

Selypít

A Lisp nyelvet J. McCarthy javasolta 1960-ban, és a nem numerikus problémák megoldására szolgáló programok fejlesztésére összpontosít. Ennek a nyelvnek az angol neve - LISP a LIST Processing (listafeldolgozás) kifejezés rövidítése, és jól hangsúlyozza alkalmazásának fő területét. A „lista” fogalma nagyon terjedelmesnek bizonyult. Listák formájában kényelmes az algebrai kifejezések, gráfok, véges csoportok elemei, halmazok, következtetési szabályok és sok más összetett objektum ábrázolása. A listák az információmegjelenítés legrugalmasabb formája a számítógép memóriájában. Nem csoda tehát, hogy egy praktikus nyelv, amelyet kifejezetten a listák kezelésére terveztek, gyorsan megfogott.

A Lisp megjelenése után különböző szerzők számos más algoritmikus nyelvet javasoltak, amelyek a mesterséges intelligencia területén felmerülő problémák megoldására összpontosítottak, köztük a Planner, a Snobol, a Refal, a Prolog. Ez azonban nem akadályozta meg, hogy a Lisp továbbra is a legnépszerűbb nyelv az ilyen problémák megoldásában. Fennállásának csaknem negyven éve alatt számos dialektusa jelent meg ennek a nyelvnek: Common LISP, Mac LISP, Inter LISP, Standard LISP stb. A köztük lévő különbségek nem alapvetőek, és főként egy kissé eltérő nyelvjárásból erednek. beépített függvények halmaza és némi különbség a jelölési programok formájában. Ezért egy programozó, aki megtanult az egyiken dolgozni, könnyen elsajátíthatja bármelyik másikat. A Lisp nagy előnye a funkcionális orientációja, vagyis a programozás funkciók segítségével történik. Ezen túlmenően a függvény olyan szabályként értendő, amely egy bizonyos osztály elemeit egy másik osztály megfelelő elemeivel egyezteti. Maga az illesztési folyamat nincs hatással a program működésére, csak az eredménye a fontos - a függvény értéke. Ez viszonylag egyszerűvé teszi a nagy szoftverrendszerek írását és hibakeresését. A programok áttekinthetősége, funkcióik világos körülhatárolása, végrehajtásuk során a trükkös mellékhatások hiánya kötelező követelmény az olyan logikailag összetett feladatok programozásához, mint a mesterséges intelligencia feladatok. A programozási fegyelem különösen akkor válik fontossá, ha nem egy ember, hanem programozók egész csoportja dolgozik a programon.

A Lisp programozási nyelv elsősorban szimbolikus információk feldolgozására szolgál. Ezért természetes, hogy a Lisp világában a számok messze nem játsszák a főszerepet. A Lisp főbb adattípusait „atomnak” és „pontpárnak” nevezik.

Prológus

A logikai programozási nyelvet úgy alakították ki, hogy egy bizonyos területtel kapcsolatos ismereteket reprezentálja és felhasználja. A programok ezen a nyelven egy bizonyos relációkészletből állnak, és ennek végrehajtása egy új reláció levezetésére redukálódik az adottak alapján. A Prolog deklaratív megközelítést valósít meg, amelyben elegendő a problémát az adott objektumokra vonatkozó szabályok és utasítások segítségével leírni. Ha ez a leírás kellően pontos, akkor a számítógép önállóan meg tudja találni a kívánt megoldást.

PAL objektum

Az Object PAL egy erőteljes programozási nyelv. Az Object PAL egy objektumorientált, eseményvezérelt, vizuális programozási nyelv. Az Object PAL funkcionalitás kezdeti szintjén adatműveleteket hajthat végre, speciális menüket hozhat létre, és kezelheti az adatbeviteli munkamenetet. Az Object PAL eseményei olyan parancsokat generálnak, amelyek utánozzák a Paradox interaktív használatának hatását. Lehetőség van a gyakran végrehajtott feladatok automatizálására, valamint olyan táblákon, űrlapokon, jelentéseken végzett műveletek végrehajtására, amelyek az interaktív munka során nem voltak elérhetők. Ezenkívül az Object PAL a teljes értékű programozási nyelv összes funkcióját biztosítja a Windows környezetben. Az Object PAL segítségével komplett rendszereket hozhat létre, amelyek egyéni menürendszert, súgórendszert és mindenféle adatellenőrzést valósítanak meg. Az Object PAL-ban a munkáját egy dinamikus hivatkozási könyvtárban tárolhatja, amelyhez több űrlap is hozzáférhet. Ezenkívül lehetőség van kapcsolatok létrehozására más dinamikus könyvtárakkal, amelyek olyan nyelveken írt programokat tartalmaznak, mint a C, C++ vagy Pascal.

Az Object PAL eszközként használható önálló programok létrehozására. Írhat egy komplett Windows alkalmazást, és futtathatja a Paradox alatt.

Az Object PAL kliensként és szerverként is támogatja a dinamikus adatcserét. Ezenkívül az Object PAL ügyfélként támogatja az összetett dokumentummotort. A fentieken kívül lehetőség van multimédiás eszközök beépítésére az alkalmazásba, ha a futó alkalmazást hang- és animációs effektusokkal látja el.

A dBase nyelv Borland implementációja az objektumorientáció és a hagyományos programozás boldog hibridje. Lehetővé tette az objektumtervezés és a hagyományos iratfeldolgozási technikák használatával rendszerek létrehozását. A Borland cég nagy eredménye az volt, hogy nagyon sikeresen ötvözte az objektum- és procedurális programozási technikákat. Az első Windows-verzió az adatbázisszoftver-piac leghatékonyabb objektumeszközét adta a felhasználónak. Lehetővé teszi új objektumosztályok létrehozását, amelyek az öröklődés, a tokozás és a polimorfizmus tulajdonságaival rendelkeznek. Ezenkívül lehetővé teszi ezen objektumok programozását hagyományos dBase parancsokkal, ideális egyszerű táblázatos adatbázisok kezelésére. Mindez tagadhatatlan előnyt jelent - az objektumprogramozási technikákra való átállás különösebb nehézség nélkül valósítható meg, például az átmenet olyan bonyolult, mint a Paradox DBMS-ben.

A Java nyelv egy olyan projekt részeként jött létre, amelynek célja fejlett szoftverek létrehozása különféle háztartási készülékekhez. A projekt megvalósítása C++ nyelven indult el, de hamarosan számos probléma merült fel, amelyek megoldására magát az eszközt - a programozási nyelvet - váltották a legjobban. Nyilvánvalóvá vált, hogy olyan platformfüggetlen programozási nyelvre van szükség, amely lehetővé teszi olyan programok készítését, amelyeket nem kell külön-külön lefordítani az egyes architektúrákhoz, és különböző processzorokon, különböző operációs rendszereken használhatók. A Java nyelvre szükség volt az interaktív internetes termékek létrehozásához. Valójában a Java létrehozása során hozott legtöbb építészeti döntést az a vágy vezérelte, hogy a C-hez és a C++-hoz hasonló szintaxist biztosítsanak. A Java közel azonos konvenciókat használ a változók deklarálására, a paraméterek átadására, az operátorok átadására és a kódfolyam vezérlésére. A Java hozzáadja a C++ összes jó tulajdonságát.

Három kulcselem a Java nyelvi technológiában

A Java általános használatra teszi elérhetővé kisalkalmazásait – kicsi, robusztus, dinamikus, platformfüggetlen aktív hálózati alkalmazások, amelyek be vannak ágyazva weboldalak. A Java kisalkalmazások olyan egyszerűen testreszabhatók és terjeszthetők a fogyasztók számára, mint bármely HTML-dokumentum.

A Java felszabadítja az objektum-orientált alkalmazásfejlesztés erejét azáltal, hogy az egyszerű és ismerős szintaxist egy robusztus és könnyen használható fejlesztői környezettel kombinálja. Ez lehetővé teszi a programozók széles körének, hogy gyorsan hozzon létre új programokat és új kisalkalmazásokat.

A Java objektumosztályok gazdag készletével látja el a programozót, hogy egyértelműen elvonatkoztassa az ablakkezelésben, a hálózatépítésben és az I/O-ban használt számos rendszerfunkciót. Ezen osztályok fő jellemzője, hogy platformfüggetlen absztrakciókat biztosítanak a legkülönfélébb rendszerinterfészekhez.

Programozási nyelvek számítógépes hálózatokhoz

A számítógépes hálózatok programozási nyelveit értelmezik. A hozzájuk tartozó tolmácsokat ingyenesen terjesztik, maguk a programok pedig forráskódban vannak. Az ilyen nyelveket script nyelveknek nevezik.

A Perl egy Larry Wall programozó által létrehozott értelmezett nyelv nagy szövegek és fájlok feldolgozására, és a Practical Extraction and Report Language (a gyakorlati adatkinyeréshez és jelentéskészítéshez használt nyelv) rövidítése. A Perl segítségével például létrehozhat egy szkriptet, amely megnyit egy vagy több fájlt, feldolgozza az információkat, és írja az eredményeket.

A Perl egy tetszőleges szöveges fájlok feldolgozására, a szükséges információk kinyerésére és üzenetek kiadására alkalmas nyelv. A Perl különféle rendszerprogramok írásához is hasznos. Ez a nyelv könnyen használható, hatékony, de nehéz azt mondani, hogy elegáns és kompakt. A Perl kifejezések szintaxisa közel áll a C szintaxisához. A rekurzió tetszőleges mélységű lehet. Bár a Perl képes szöveges fájlok vizsgálatára, bináris adatokat is képes kezelni. A Perl lehetővé teszi reguláris kifejezések használatát, objektumok létrehozását, Perl kódrészletek beszúrását egy C vagy C++ programba, és lehetővé teszi az adatbázisok elérését, beleértve az Oracle-t is.

A World Wide Web feltalálásával a Perl nagyszerű módnak bizonyult a webszerverekkel való kommunikációra a Common Gateway Interface (CGI) – egy közös kommunikációs interfész – révén. A Perl-parancsok könnyen lekérhetnek adatokat egy HTML-űrlapról vagy más forrásból, és végrehajthatnak rajta valamilyen műveletet.

Nyelv PHP(1995-1997) hozzáfér az adatbázishoz, és dinamikus oldalak készítői használják szerte a világon.

Nyelv tcl/tk(80-as évek vége) olyan hatékony parancsokból áll, amelyeket úgy terveztek, hogy absztrakt, nem gépelt objektumokkal dolgozzanak, és lehetővé teszi grafikus felülettel rendelkező programok létrehozását.

Nyelv VRML(1994) az internet virtuális háromdimenziós interfészek szervezésére jött létre.

Nyelv XML. 1996 óta dolgoznak egy univerzális dokumentumszerkezeti nyelv létrehozásán. A HTML nyelv helyettesítője lehet.

Következtetés

Hasznos források

Isili véleménye

Hol a jelentés?

Értékelte: Ranifka

Re: Hol a jelentés?
Minden lesz :D

Visszajelzés a Shamagulova Elite-től

Értékelte: Alexander Mishin

Kiváló riport. Sokat tanultam a programozási nyelvekről.

Alexander Morozov visszajelzése

Természetesen szívesen látnék valamilyen formában beszámolót vagy legalább előadást.

Egy dinamikusan változó világban, amikor a tegnap tisztelt szakmák semmivé válnak, sokan keresnek valami elfoglaltságot az életben, hogy az egyszerre legyen érdekes és releváns a jelenkornak, és egyben jövedelmező is. Nagyon gyakran az ilyen keresések programozáshoz vezetnek: a jó programozók még a FÁK-ban is több ezer dollárt keresnek, sok szabadidejük van, lehetőségük van távolról dolgozni, és esélyük van a karrier növekedésére.

Ezen előnyök mellett a programozás abban is különbözik, hogy elsajátításához nem kell éveket tölteni azzal, hogy a gatyáját törölgesse az egyetemeken. Itt mindent az önképzés dönt el, az interneten minden szükséges anyag megtalálható a sikeres önálló tanuláshoz bármilyen programozási nyelven: szöveges leckék, videóleckék, instrukciók, tapasztalt szakemberek tanácsai és egyéb oktatási anyagok. Így könnyedén elsajátíthatja a modern programozási technológiákat, és valóban tisztességes munkát találhat.

De mielőtt belevágna az üzletbe, meg kell válaszolnia egy fontos kérdést magának: mely modern programozási nyelvek lesznek relevánsak 2017-ben, melyikre fordítsa idejét és energiáját? Itt sok múlik a helyes válaszon - a tanulási folyamat összetettségén és sebességén, a valódi tevékenység megkezdésének minimális küszöbén és a további karrierlehetőségeken.

A programozás és a nyelvek ígéretes területei 2017-re

Annak eldöntéséhez, hogy melyik programozási nyelvet tanulja meg (egy vagy több), először meg kell válaszolnia a kérdést: a programozás mely területén szeretne egy személy dolgozni. A legnépszerűbb és leggyorsabban fejlődő területek jelenleg:

Web programozási technológiák. Weboldalak, online szolgáltatások és banki szolgáltatások, online áruházak, üzleti céloldalak és hasonlók létrehozása – mindez a webprogramozás része. A bolygón egyre többen válnak internetezővé, egyre gyorsabb és olcsóbb, érett és idős korúak is aktív felhasználóvá válnak a hálózatnak. 2017-ben ez a tendencia csak erősödik, fejlődésének plafonja még nem látszik. Ezért nagyon hasznos az internethez kapcsolódó programozási nyelvek elsajátítása. Az alábbiakban bemutatjuk a legnépszerűbbek listáját;

Programozás kütyühöz: okostelefonok, táblagépek, okosórák, virtuális valóság szemüvegek és még sok más. Ez is egy nagyon érdekes és gyorsan fejlődő tevékenységi terület. Világszerte emberek milliárdjai használnak kütyüt, olvasnak híreket, néznek videókat, hallgatnak zenét és sok más dolgot csinálnak rajtuk. Mindezek az elektronikai funkciók a jól megírtnak köszönhetően lehetségesek szoftver. Gyakran sokkal többe kerül, mint maga a fizikai eszköz. A programozás ezen a területen ma már nagyon jövedelmező. Érdemes megjegyezni, hogy itt leggyakrabban magas szintű programozási nyelveket használnak.

Melyik nyelvet válasszuk

Lehetetlen megmondani, melyik nyelv a legmodernebb. Sokukat nagyon széles körben és aktívan használják. De ha ígéretes programozási nyelvekről beszélünk, akkor a következőket nevezhetjük a legjobbnak:

  • Jáva. A legsokoldalúbb és legnépszerűbb programozási nyelv, amellyel mind számítógépes, mind kütyü alkalmazásokat fejleszthet, különösen Android vezérlés OS. Világos a szintaxisa, könnyen és gyorsan tanul, az első programokat Java nyelven már néhány héttel a képzés megkezdése után meg lehet írni. A fő jellemző, ami nagyon ígéretessé teszi, az Android programozás használata, amely jelenleg nagyon gyorsan fejlődik;
  • C#. Nagyszerű lehetőség azoknak, akik tevékenységüket számítógépes rendszerekhez való programok írásának szeretnék szentelni. A C Sharp nyelv (C#) az az alapja, amelyre a legtöbb programot a Microsoft különféle platformjaira és szolgáltatásaira írják. Segítségével webalkalmazásokat fejleszthet .NET és Azure használatával, valamint közvetlenül Windowshoz programokat, különféle üzleti alkalmazásokat és sok más dolgot. Kell egy kis munka, hogy felkapd a fejed a C#-on, de végül megtérül;
  • PHP. Ha az Ön feladata, hogy kiváló minőségű szkripteket és interaktív sablonokat írjon internetes forrásokhoz, vagy egy szerver adminisztrátora legyen, ami ma már nagyon jövedelmező foglalkozás, akkor a PHP a legjobb mód megvalósítani az ilyen törekvést. A modern programozási nyelvek egyszerűen nem nélkülözhetik ezt a képviselőt. Nagyon gyorsan és könnyen tanul - ha alaposan és rendszeresen tanulod a PHP-t, akkor 2-3 év múlva már nagyon jó pozícióra és megfelelő fizetésre jelentkezhetsz.

Természetesen ez messze nem a nyelvek és besorolásuk teljes leírása, de még egy ilyen kis lista is elég ahhoz, hogy jó és ígéretes tevékenységi területet válasszon magának.

A modern programozási nyelvek teljes áttekintése túl sok időt vehet igénybe, de ez nem annyira szükséges, mert érdemes megjegyezni a legfontosabb dolgot - az a személy, aki legalább néhány nyelvet folyékonyan beszél, biztosan megtalálja a helyét a programozás területe. És ezen nyelvek egyikének ismerete minden bizonnyal elég lesz ahhoz, hogy jó pénzt keressen és érdekes problémákat oldjon meg.

Majdnem 60 év telt el az első magas szintű programozási nyelv, a Fortran 1957-es megjelenése óta, és nem meglepő, hogy a programozás ilyen hosszú idő alatt előrelépett. Vannak új technológiák, új programozási koncepciók és paradigmák, és természetesen új nyelvek. A programozási nyelv létrehozását általában a kor követelményei vezérlik: az új feladatok megoldásához gyakran új eszközökre van szükség, amelyek jobban teljesítenek, mint elődeik. Ebben a tekintetben minden évben több új nyelv jelenik meg, amelyek magukba foglalják a több évtizedes gyakorlati programozás során felhalmozott legjavát, és egyben valami újat is hoznak. Ebben a cikkben megvitatjuk azokat a legérdekesebb programozási nyelveket, amelyek a közelmúltban jelentek meg, de már bebizonyították, hogy hatékonyak és modern eszközök a fejlesztő számára.

Gyors

Az Apple által iOS és OS X fejlesztésekhez készített általános célú ingyenes nyelv, amely kompatibilis az Objective-C-vel, ami lehetővé teszi mindkét nyelv használatát egy programban. A nyelv fejlesztése 2010-ben kezdődött Chris Lattner, az Apple fejlesztési vezetője vezetésével. Gyorsan kölcsönzött ötleteket sok létező nyelvről különböző irányokba: a C ++-tól a Haskell-ig. A nyelv hivatalos bemutatására 2014 júniusában került sor, egy 500 oldalas használati útmutatóval együtt. Dolgozhat a Swift-en az iOS Xcode 6 programozási környezetben. A 3.0-s nyelvi verzió támogatja a Linuxot.
A nyelv sokat átvett az Objective-C-ből; ugyanakkor biztonságosabbnak és gyorsabbnak van elhelyezve. A fejlesztők biztosítékai szerint a Swift kódja másfélszer gyorsabban működik, mint az Objective-C hasonló kódja.

Csapkod

A   által kifejlesztett nyelv; úgy néz ki, mint a PHP. A hack kódot egy speciális virtuális gépen hajtják végre, amely támogatja a PHP-t is. A nyelv nyitott – a Hack forráskódok bárki számára nyitva állnak, aki részt akar venni a fejlesztésében. Bár a nyelv a jól ismert PHP-n alapul, a fejlesztőknek sikerült egy teljesen új és rendkívül megbízható eszközt létrehozniuk weboldalak és egyéb alkalmazások gyors létrehozásához. Az eredmény annyira lenyűgözte a  ot, hogy a cég összes projektje átkerült a Hackhez – ez a tény önmagáért beszél.

Julia

Új nyelv a matematikai számításokhoz. A nyelv szintaxisát a Matlab és más matematikai nyelvek is befolyásolták, de vannak jelentős különbségek is. Maga a nyelv C és C++ nyelven íródott; A nyelv programkódja az LLVM virtuális gépen fut le, amelyhez a Julia JIT fordítóval van felszerelve. A fordításnak köszönhetően a C ++ nyelven írt programokhoz hasonló nagy sebességű alkalmazási munka valósult meg.
A nyelv támogatja az elosztott számítást, a funkciók túlterhelését és a kódpárhuzamot. Julia fő feladata: nagy mennyiségű számítással dolgozzon a magas teljesítmény megőrzése mellett. Ebből a célból felhőalapú számítástechnikai támogatás is bekerült a nyelvbe. A tisztán matematikai feladatokon túl a Julia segítségével általános célú programok is készíthetők.

Dárda

A Google által a JavaScript helyettesítésére létrehozott nyelv. A JavaScript nyelv néhány "alapvető hibája" miatt, amelyek nem javíthatók, úgy döntöttek, hogy új nyelvet hoznak létre a webes programozáshoz. Ugyanakkor a nyelvet a meglévőkhöz a lehető leghasonlóbban kellett megalkotni, hogy a kezdők számára leegyszerűsödjön az átállás és a tanulás. Jelenleg a Dart programokat kétféleképpen hajtják végre: keresztül Virtuális gép Dart VM és JavaScript-re való lefordítással. A tervek szerint a jövőben a Dart felváltja a JavaScriptet, mint a webes programozás univerzális nyelvét.

Írja be a Script

Egy másik nyelv, amely a JavaScriptet helyettesíti. Az új nyelv fejlesztője a híres Anders Hejlsberg volt, a Delphi, a C# és a Turbo Pascal szerzője. A Type Script egy nyílt nyelv, amely visszafelé kompatibilis a Java Scripttel. A fordító a Type Script kódot JavaScript-be konvertálja, amelyet aztán a böngésző végrehajt. A JS-től eltérően az új nyelv támogatja az objektum-orientált programozás összes funkcióját, valamint a modulok csatlakoztatását. A Type Script és a JavaScript kompatibilitás lehetővé teszi a meglévő JavaScript kód használatát új Type Script projektekben, beleértve a népszerű JS könyvtárakat is. Az általános programozási paradigma támogatott.



Támogasd a projektet – oszd meg a linket! Köszönjük!
Olvassa el is
kakasviadal játékszabályok kakasviadal játékszabályok Mod a minecraft 1.7-hez 10 nézhető recept.  Receptek tárgyak készítéséhez Minecraftban.  Fegyverek a Minecraftban Mod a minecraft 1.7-hez 10 nézhető recept. Receptek tárgyak készítéséhez Minecraftban. Fegyverek a Minecraftban Shilling és font – a szavak eredete Shilling és font – a szavak eredete