Bevezetés
Helló. Üdvözlünk. Remélem, mindenki jól van. Remélem, jól szórakoztál, amikor a Jurasic July során régi és nagy hatású nyelvekkel ismerkedtél. Most pedig jöjjön a 2023-as év 8. hónapja és a 7. tematikus hónapunk: az Appy August.
Mit értünk alkalmazások alatt?
Nos, ez több mindent jelenthet:
- Webes alkalmazásokat, amelyek manapság sokunk mindennapjait kitöltik
- Natív alkalmazásokat, mint amilyenek a telefonodon vagy a táblagépeden futnak
- Asztali alkalmazásokat, amelyek közvetlenül a Windows, Mac vagy Linux operációs rendszereden futnak
- Szakterület-specifikus alkalmazásokat
- Üzleti alkalmazásokat
- És még sok mást!
Szóval melyek a nyelvek?
Nem is kevesebb, mint 14 nyelvet nézünk meg: ABAP, CoffeeScript, Dart, Delphi, Elm, Java, JavaScript, Kotlin, Objective-C, PHP, PureScript, ReasonML, Swift és TypeScript.
A jelvények
Szerezd meg a jelvényt úgy, hogy ebben a hónapban teljesítesz 5 feladatot valamelyikükben. Az egész éves jelvényhez pedig a következőket kell teljesítened:
- Anagramma: adott egy szó és a lehetséges anagrammák listája, keresd meg az anagrammáit
- Telefonszám: tisztíts meg egy telefonszámot
- Háromszög: sorolj be egy háromszöget
- RNS-átírás: alakíts át egy DNS-szekvenciát az RNS-kiegészítőjévé
- Scrabble-pontszám: adott egy szó, határozd meg a Scrabble-pontszámát
Áttekintések
ABAP
- Az 1980-as években a SAP SE fejlesztette ki, és a tervezési célja világossá válik, ha megnézzük, mit jelentett a mozaikszó: Allgemeiner Berichts-Aufbereitungs-Prozessor, ami németül „általános jelentés-előkészítő processzort” jelent. Később az ABAP általánosabban alkalmazhatóvá vált, és a mozaikszót Advanced Business Application Programmingre frissítették, hogy tükrözze ezt
- Erősen és statikusan típusos nyelv
- Több paradigmát támogat: imperatív és objektumorientált programozást
- Bytecode-ra fordul. Érdekesség, hogy a forráskód magában az adatbázisban tárolódik
- Minden kód egy SAP-rendszer kontextusában fut, amely egy relációs adatbázisból és egy vagy több alkalmazásszerverből áll
- Proprietáris technológia és zárt forráskódú. Bár az egyik karbantartónk készített egy fantasztikus nyílt forráskódú újraimplementációt
- Üzleti alkalmazásokban használják, például a pénzügy, az anyaggazdálkodás, a számvitel és a menedzsment területén. Világszerte vannak ügyfelei, köztük olyan nagy nevek, mint az Apple, az Amazon és a Walmart
Miért nagyszerű
- Folyamatosan fejlődik, rendszeresen új funkciókkal bővül
- Megbízható: stabil funkcionalitás, mögötte évtizedek tapasztalatával
- Nagy szabványos könyvtár
Kiemelkedő tulajdonságok
- Zökkenőmentes integráció az SAP-rendszerrel és -adatbázissal, de sok más rendszerrel is
- Az ABAP Dictionary az SAP-rendszer adataira vonatkozó összes metaadatot tartalmazza, beleértve a táblákat, nézeteket és struktúrákat. A szótárban szereplő típusokkal statikusan típusozhatók a változók, még akkor is, ha a típus egy tábla
- Az ABAP Workbench az ABAP-rendszer része, és programok szerkesztésére szolgáló eszközkészletet tartalmaz. Magában foglalja a képernyők tervezését is
CoffeeScript
- A nyelv első commitjai 2009-ben születtek Jeremy Ashkenastól; az első commit üzenete ez volt: „a rejtélyes nyelv első commitja”
- Dinamikusan típusos és több paradigmát támogat (objektumorientált, imperatív, funkcionális, prototípus-alapú)
- JavaScriptre fordul (ezt nevezik transpipelésnek). A CoffeeScript aranyszabálya: „Ez csak JavaScript.” Az egyik első sikeres „JS-re transpipelő” nyelv
- Azért vált népszerűvé, mert a CoffeeScriptben nem voltak meg azok a problémák, amelyekkel a JS-t használók akkoriban küszködtek (például hogy a „this” kötése másképp működött, vagy hogy az osztályokat nem támogatta). A Ruby on Rails a 3.1-es verziótól kezdve tartalmazta
- 2017-ben megkapta a 2.0-s verziót, amelynek célja az volt, hogy felzárkózzon a legfrissebb JavaScript-szabványhoz. A nyelv nagyjából évente kap frissítést
- A nyelv fordítója eredetileg Rubyban íródott, de 2010-ben lecserélték egy CoffeeScriptben írt, önmagát hosztoló fordítóra (a fordító nem függ a NodeJStől, és közvetlenül a böngészőben is futhat)
- A CoffeeScript hatására a JavaScript átvett bizonyos funkciókat (lambda nyíl szintaxis, osztályok)
- Korábban a Dropbox és a Rails használta
Miért nagyszerű
- Tiszta, tömör szintaxis, amelyet a Python, a Ruby és a Haskell ihletett. Kevésbé bőbeszédű, mint a JavaScript: sok zárójelet és kapcsos zárójelet elhagy, részben a jelentéshordozó behúzás miatt (a whitespace számít)
- Egyszerűsített szemantika, például nincs zavar a let, a var és a const körül, mivel ezek nem léteznek, az == pedig ===-re (szigorú egyenlőségre) fordul, a függvénykötések pedig megelőzik a gyakori „this” hibákat
- Kifejezésalapú, ami azt jelenti, hogy egy if kifejezés eredményét értékül adhatod egy változónak
- Sok szintaktikai cukorka, például a @ használható a this helyett, a yes/on használható a true helyett, a // az egész osztásra, a @ a this helyett, és még sok más
Kiemelkedő tulajdonságok
- Tiszta, ember által olvasható JavaScriptre fordul, a forrás és a generált kód között egy az egyhez megfeleltetéssel.
- Kiváló együttműködés a JavaScripttel: a JS-ben írt kódot könnyedén használhatod a CoffeeScriptből (és fordítva). Bármely megírt JS-könyvtárat használhatod
- Olyan funkciókat ad hozzá, amelyek hiányoztak vagy hiányoznak a JavaScriptből: listaértelmezések, string-interpoláció, egzisztenciális operátor (?), láncolt összehasonlítások
- Kis nyelv, a fordító nagyjából 500 kb (tömörítve 100 kb)
Dart
- A Google-nél Lars Bak és Kasper Lund tervezte
- Első kiadása 2011-ben jelent meg
- A cél egy gyors, produktív nyelv létrehozása volt, amely különösen jól alkalmas felhasználói felületek építésére
- Statikusan típusos
- Több paradigmát támogat: elsősorban objektumorientált, de funkcionális és imperatív is
- Értelmezhető és just-in-time fordítható
- Elsősorban alkalmazások építésére használják, de backendek építésére is alkalmas
Miért nagyszerű
- Könnyen megtanulható az ismerős szintaxis miatt
- Modern típusrendszer: típuskövetkeztetés, mintaillesztés, async/await
- Kiváló dokumentáció
- Biztonság egy megbízható nullbiztonsági rendszer révén: nincs többé null pointer kivétel
- Jó tooling, támogatás különféle IDE-kben. A rövid visszajelzési ciklusra optimalizált, például a gyors hot reload révén
- Növekvő ökoszisztéma, sok elérhető könyvtárral
Kiemelkedő tulajdonságok
- Fordulhat JS-re, natív kódra, de Swiftre és Kotlinra is, ami remek a mobil alkalmazásokhoz.
- A Flutter könyvtárral gyorsan építhetők mobil, webes, asztali vagy beágyazott alkalmazások. Írd meg egyszer, futtasd több platformon
- Kiváló párhuzamosság-támogatás, async/await-tel, isolate-okkal (könnyűsúlyú párhuzamossági konstrukciók), future-ökkel és még sok mással
Delphi
- A Delphit a Borland fejlesztette ki, és 1995-ben jelent meg.
- Ez egy Object Pascal programozási nyelv, amelyet Anders Hejlsberg fejlesztett ki, aki a C# egyik vezető tervezője volt
- Erősen és statikusan típusos
- Natív kódra fordul
- Több paradigmát támogat: többnyire objektumorientált, de imperatív, deklaratív és eseményvezérelt is
- Üzleti alkalmazásokban, grafikus felületekben és iskolákban (programozás tanítására) használják
Miért nagyszerű
- Könnyen megtanulható. Az Object Pascal ötvözi a Pascal egyszerűségét és világosságát az objektumorientált programozás jegyeivel, ami megkönnyíti a kód írását és karbantartását
- Integrált fejlesztőkörnyezet (IDE): a Delphi IDE felhasználóbarát és funkciókban gazdag környezetet kínál, amely leegyszerűsíti a fejlesztési folyamatot. Kódnavigációt, hibakereső eszközöket, kódkiegészítést és más, a fejlesztést hatékonyabbá tevő produktivitási funkciókat nyújt.
- Stabilitás: a korai 1990-es évek óta létezik, és megbízható, stabil fejlesztőeszköznek és nyelvnek bizonyult, erős visszafelé kompatibilitással. A Delphi korábbi verzióiban írt kód minimális módosítással az újabb verziókban is lefordítható és futtatható.
- Platformfüggetlen támogatás: a Delphi a Windowson túlra is kiterjesztette képességeit, és platformfüggetlen fejlesztési támogatást kínál, amivel a fejlesztők több operációs rendszert is megcélozhatnak, például a macOS-t, az iOS-t, az Androidot és még sok mást. Ez szélesebb közönség számára teszi lehetővé alkalmazások készítését, és növeli a projektek elérését.
- Erős közösség és támogatás: a Delphinek elhivatott és aktív fejlesztői közössége van, amely könyvtárakkal, eszközökkel és erőforrásokkal járul hozzá az ökoszisztémához.
Kiemelkedő tulajdonságok
- Nagy teljesítményű futtatható fájlok: a Delphi alkalmazások sebességükről és teljesítményükről ismertek. A Delphi fordító erősen optimalizált natív futtatható fájlokat állít elő, ami bizonyos típusú alkalmazásoknál kritikus lehet, például azoknál, amelyek valós idejű feldolgozást vagy nagy számítási igényű feladatokat igényelnek.
- Rapid Application Development (RAD) környezet: a vizuális fogd-és-vidd (drag-and-drop) tervezőeszközök minimális erőfeszítéssel teszik lehetővé a fejlesztőknek felhasználói felületek létrehozását és összekapcsolását a funkciókkal, felgyorsítva a fejlesztési folyamatot.
- Komponensalapú architektúra: komponensalapú architektúrára épül, ahol újrafelhasználható komponensekből épülnek az alkalmazások. Megkönnyíti a kód újrafelhasználását és csökkenti a fejlesztési időt.
- Eseménykezelés: a Delphi beépített eseménymodellt használ, amelynek köszönhetően a fejlesztők könnyedén reagálhatnak a felhasználói műveletekre és más eseményekre. Az eseménykezelés leegyszerűsíti a felhasználói bemenet vagy a rendszeresemények elkapását és a megfelelő válaszadást.
- Adatbázis-kapcsolat: a Delphi natív adatbázis-elérési komponenseket kínál, amelyek zökkenőmentes integrációt tesznek lehetővé különféle adatbázisrendszerekkel. Ez a beépített támogatás leegyszerűsíti az adatbázis-vezérelt alkalmazások fejlesztését.
Elm
- A nyelvet Evan Czaplicki alkotta meg a szakdolgozatához, és 2012-ben jelent meg
- Kezdetben a grafikus felületekhez kapcsolódó funkcionális reaktív programozás (FRP) témáját dolgozta fel (FRP signalokkal), de 2017-ben az FRP-t elhagyták a TEA (The Elm Architecture) javára
- Statikusan és erősen típusos, funkcionális nyelv
- A szintaxist a Haskell ihlette
- Nyílt forráskódú nyelv, de nagyon véleményvezérelt, és a fejlesztési stílus hosszú, elmélyült munkaszakaszokat jelent Evan számára, mielőtt bármit nyilvánosságra hozna. Így a PR-ok sokáig nem kerülhetnek beolvasztásra, és a projekt elavultnak tűnhet, pedig ez csak Evan munkastílusa.
- Weboldalakon használják, például a NoRedInk, a Vendr, a Rakuten és a Brilliant
Miért nagyszerű
- Nagyon kicsi nyelv, a statikusan típusos funkcionális nyelvek ML családjában az egyik legkönnyebben megtanulható. Emiatt szinte ideális a funkcionális programozás tanítására.
- A fordító hibaüzenetei a legszebbek és leghasznosabbak, amikkel valaha találkozhatsz.
- Stabil nyelv: a legutóbbi kiadás 2019-ből származik
- Az ökoszisztémában kevés csomag van, de azok kiváló minőségűek.
- Erőteljes lintelő ökoszisztéma az elm-review-val (ez működteti az Exercism Elm kurzusának elemzőjét).
Kiemelkedő tulajdonságok
- Az Elm Architecture (TEA) minden Elm alkalmazás alapját adja, így nagyon könnyű áttekinteni ismeretlen Elm alkalmazásokat.
- Nincsenek futásidejű kivételek! Leszámítva egy-két dolgot.
- Nincs törés a függőségek frissítésekor, a szemantikus verziózást a fordító kényszeríti ki.
- Ha lefordul, akkor működik (a logikai hibákat leszámítva). És ha megszoktad, nagyon nehéz visszatérni más nyelvekhez.
- Matthew Griffith „elm-ui”-ja lehetővé teszi a „ha lefordul, akkor működik” élményt a stílus és az elrendezés terén, nem kell CSS.
- Full-stack webalkalmazások: a Lamdera egy spin-off, amely az Elmet használja full-stack webalkalmazásokhoz, nulla ragasztókóddal a frontend és a backend között.
Java
- A Sun Microsystemsnél James Gosling fejlesztette ki, és 1995-ben jelent meg.
- Öt eredeti célkitűzés:
- Egyszerű, objektumorientált és ismerős.
- Robusztus és biztonságos.
- Architektúra-semleges és hordozható.
- Nagy teljesítmény.
- Értelmezett, szálkezelt és dinamikus.
- Erősen és statikusan típusos
- Bytecode-ra fordul (a natív kód támogatásán dolgoznak)
- Több paradigmát támogat: imperatív, objektumorientált és funkcionális
- A nyelvnek és a virtuális gépnek hivatalos specifikációja van, így több implementációja is létezik (például az OpenJDK JVM és az Oracle Hotspot VM-je)
- Rengeteg szoftverben használják, a weboldalaktól a beágyazott rendszerekig, az alkalmazásoktól az adatbázisokig
Miért nagyszerű
- (Szinte) mindenhol fut (amire a Java-frissítő boldogan emlékeztet is ;))
- Általános célú: szinte bármilyen feladatra használható, beleértve az alkalmazásokat, weboldalakat és beágyazott rendszereket
- Együttműködés más JVM-nyelvekkel, mint a Kotlin, a Groovy, a Scala és a Clojure
- Kiváló tooling, mind az IDE-khez, mind más eszközökhöz, például build rendszerekhez
Kiemelkedő tulajdonságok
- A JVM egy kiforrott, stabil és nagy teljesítményű virtuális gép, amelyet folyamatosan fejlesztenek
- Hatalmas ökoszisztéma, rengeteg elérhető könyvtárral. Ezek a könyvtárak, akárcsak a Java, kiforrottak, stabilak és teljes funkcionalitásúak
- Fejlődik: a nyelv és a futtatókörnyezet is folyamatosan fejlődik; a nyelv rendszeresen frissül, hogy modernebb legyen, és kezelje a felhasználók panaszait (például a sablonkód és a bőbeszédűség csökkentését). A futtatókörnyezet terén rendszeresen indulnak új projektek a továbbfejlesztésére (például a Project Loom a könnyűsúlyú párhuzamossági konstrukciókhoz és a natív fordításhoz a GraalVM-en keresztül)
JavaScript
- A Netscape 1995-ben alkalmazta Brendan Eichet, hogy olyan nyelvet készítsen, amely dinamikussá teszi a weboldalakat. Az első prototípus híresen 10 nap alatt készült el
- 1997-ben ECMAScript néven szabványosították
- Dinamikusan és gyengén típusos
- Korábban kizárólag értelmezték, ma viszont gyakran just-in-time fordítják
- Több paradigmát támogat: prototípus-alapú (meglehetősen ritka), de objektumorientált, imperatív és funkcionális is
- Óriási szerepe volt abban, hogy a web azzá a sikeressé vált, ami ma. Például az AJAX nagyban segítette az interaktivitás megjelenését. A webfejlesztés de facto szabványa, mivel ez az egyetlen programozási nyelv, amelynek támogatása be van építve a böngészőbe
- Valószínűleg napjaink legtöbbet használt nyelve
- Backendekhez, frontendhez, szkriptekhez és parancssori eszközökhöz használják
Miért nagyszerű
- Általános célú: sokféle feladatra használható: backend, frontend, szkriptek, parancssori eszközök. Számos webes eszköz JavaScriptben íródott (és nodejs-en fut)
- A futtatókörnyezetek (például a V8) erősen optimalizáltak, és nagyon nagy teljesítményűek lehetnek, még ha a nyelv rendkívül dinamikus is
- Viszonylag kicsi nyelv, ami viszonylag könnyen megtanulhatóvá teszi. Különösen nagyszerű, hogy böngészőben is futtatható, mert így tanulás közben vizuális visszajelzést kapsz
- A specifikáció gyakran frissül, hogy új funkciókat vezessen be, mint az async/await vagy a string-interpoláció. Nagy az innováció a tooling terén is: újabb eszközök, például a deno, az esbuild és a bun.js segítik a JavaScript-kódbázisok kezelését
- A JSON-támogatás első osztályú, amit az is bizonyít, hogy a JSON a JavaScript Object Notation rövidítése
- Az eseményvezérelt, nem blokkoló kódra tervezték
Kiemelkedő tulajdonságok
- Hatalmas ökoszisztéma. Rengeteg könyvtár érhető el (2022 szeptemberében 2,1 millió csomag), de sok más nyelv is van, amely JavaScriptre céloz
- A legtöbb platformon és hardveren fut, a Windowstól az Apple-ig, a Raspberry Pi-ktől a telefonokig, a webszerverektől a serverless platformokig. A böngészőkbe be van építve a natív támogatás, így nem kell futtatókörnyezetet telepíteni.
- Ideális webfejlesztéshez: sok választható keretrendszer (React, Vue, Angular), valamint rengeteg eszköz a webalkalmazások építéséhez (például eslint, parcel)
- Használható izomorf módon, ami azt jelenti, hogy ugyanaz a nyelv (és kódbázis) használható a backendhez és a frontendhez is. Ez könnyebbé teszi a karbantartást, és lehetővé teszi a kód újrafelhasználását a frontend és a backend között
- A hatalmas népszerűség azt jelenti: rengeteg tanulási forrás (videók, blogok, kurzusok), és hatalmas közösség, amellyel kapcsolatba léphetsz
Kotlin
- A JetBrains fejlesztette 2010-ben, amely az IDE-iről híres (például IntelliJ, CLion, GoLand és Rider)
- A JetBrains termékeinek többsége Javában íródott, de szerettek volna egy JVM-nyelvet, amely csökkenti a sablonkódot, felgyorsítja a fejlesztést, és támogat néhány hiányzó funkciót. A Scala rendelkezett ezekkel a funkciókkal, de túl lassúnak bizonyult a fordításhoz. Így indult el a Project Kotlin.
- Erősen és statikusan típusos
- Több paradigmát támogat: imperatív, objektumorientált, funkcionális, deklaratív
- Alapértelmezésben JVM bytecode-ra fordul, de JS-re és natív kódra is fordítható (hasznos azokon a platformokon, ahol a virtuális gépek nem lehetségesek vagy nem kívánatosak, például az iOS-eszközökön)
- A Google 2019-ben az Android-alkalmazások írásához előnyben részesített nyelvnek jelölte meg
- Weboldalak, alkalmazások (többnyire Android) és akár teljes IDE-k (a fentebb említett fejlesztőkörnyezetek) építésére használják
Miért nagyszerű
- Általános célú: szinte bármilyen feladatra használható, beleértve az alkalmazásokat és weboldalakat. A Google 2019-ben a Kotlint jelölte meg az Android-alkalmazások fejlesztéséhez előnyben részesített nyelvnek
- Mivel a JVM-en fut, minden előnye érvényesül: kiforrott, nagy teljesítményű VM és rengeteg elérhető könyvtár
- Enyhíti a Java sok problémáját, például az ellenőrzött kivételeket, a nullbiztonságot és a bőbeszédűséget
- Modern nyelv: fejlett típuskövetkeztetés, kifejezésalapú, változtathatatlanság, mintaillesztés, korutinok, csatornák
- Kiváló tooling (nem is csoda, ha maga az IDE is ebben a nyelvben íródott :)
Kiemelkedő tulajdonságok
- Produktív: a Kotlin átveszi más nyelvek legjobb részeit, és egyetlen egységes, produktív nyelvvé formálja őket, sőt bizonyos esetekben tovább is fejleszti az eredetit (például helyi kiterjesztésmetódusokkal)
- Korutinok: míg sok nyelvben az async/await be van építve a nyelvbe, addig a Kotlinban ez egy könyvtárként valósul meg a nyelv korutin-funkciójával. A korutinok a felfüggesztő függvények kezelésének egy módja, amelyek biztonságosabb és kevésbé hibalehetőséget rejtő absztrakciót nyújtanak az aszinkron műveletekhez, mint a future-ök és a promise-ok.
- Kiváló párhuzamosság: az async/await, a csatornák és a változtathatatlanság mind hozzájárulnak a kiváló párhuzamossághoz
- A Compose Multiplatform lehetővé teszi megosztott felhasználói felületek építését ugyanabból a kódbázisból, deklaratív szintaxissal
Objective-C
- Eredetileg Brad Cox és Tom Love fejlesztette ki az 1980-as évek elején; a NeXT választotta a NeXTSTEP operációs rendszeréhez. Mivel az Apple macOS közvetlenül a NeXTSTEP-ből származik, az Apple-szoftverek preferált nyelvévé vált
- Úgy tervezték, hogy ötvözze a SmallTalk objektumorientált elképzeléseit a C-vel, az üzenetküldést használva az objektumorientált konstrukció magjaként
- A C szuperhalmaza, így bármely C-kód érvényes Objective-C-kód, és mindkettő kombinálható ugyanabban a kódbázisban
- Statikus és dinamikus típusozás
- Lefordított
- A macOS- és iOS-alkalmazások írásának standard nyelve volt a Swift 2014-es megjelenéséig
- macOS- és iOS-alkalmazásokhoz használják
Miért nagyszerű
- A C ötvözése objektumorientált funkciókkal igazán erőteljes lehet
- Vékony futtatókörnyezet, ami erőforrás-hatékony
- Könnyűsúlyú osztályszintaxis
- A Fast enumeration könnyebbé teszi a for ciklusokat, mint a C-ben
- Erős visszafelé kompatibilitás
Kiemelkedő tulajdonságok
- Támogatja az Automatic Reference Counting (ARC) mechanizmust, amely automatikusan felszabadítja a memóriát, amikor egy objektumra már nem hivatkoznak, megkönnyítve a memóriakezelést
- A dinamikus futtatókörnyezet lehetővé teszi a metódus-swizzlinget (egy szelektor viselkedésének dinamikus megváltoztatása (mint a monkey patching)), a reflexiót és az üzenettovábbítást (kiváló observer vagy proxy mintához)
- A protokollok és interfészek interfészfunkciókat hoznak a C-be, a kategóriainterfészekkel pedig akár meglévő típusok is bővíthetők
PHP
- Rasmus Lerdorf fejlesztette ki és valósította meg 1993-ban, első kiadása 1995-ben jelent meg
- A név egy rekurzív betűszó: PHP: Hypertext Preprocessor
- Dinamikusan és gyengén típusos, azzal a lehetőséggel, hogy fokozatosan erős futásidejű típus-ellenőrzéseket adjunk hozzá
- Több paradigmát támogat: imperatív, funkcionális, objektumorientált, procedurális, reflektív
- Értelmezett vagy just-in-time fordított
- Az eredeti szerveroldali renderelési platform
- Weboldalakhoz (Facebook, Wikipedia és még sok más) és számos tartalomkezelő rendszerhez (Wordpress, JOOMLA) használják.
Miért nagyszerű
- Mindenütt jelen van: a PHP az összes weboldal 77,4%-án használatban van^1, platformtól függetlenül
- Egyszerű szintaxis, hasonló más elterjedt programozási nyelvekhez (Java, JavaScript, C), ami könnyen megtanulhatóvá teszi
- Általános célú. Sokféle feladatra használható, az apró webes szkriptektől a vállalatok által futtatott nagy szerveroldali alkalmazásokig.
- Nagyon elterjedt és széles körben használt. Számos tanulási forrás, keretrendszer és könyvtár létezik.
- Erős adatbázis-támogatás
- Továbbra is aktívan fejlesztik, modern funkciókat adva ki
- Platformfüggetlen. Mindenen fut: Windows, Mac, Linux, Unix
- Nyílt forráskódú és ingyenes
Kiemelkedő tulajdonságok
- Egyszerű futtatni és élesíteni. Nincs buildlánc. Nincsenek fordítók.
- Fokozatos típusrendszer. Ott adj hozzá típusokat, ahol szükséged van rájuk, a dinamikus típust használd a fejlesztés egyes részeinek egyszerűsítésére.
- Gyors prototípus-készítés. Készíts egy weboldalt az ötleted teszteléséhez, és futtasd a saját gépeden.
PureScript
- Phil Freeman tervezte, az első verzió 2013-ban jelent meg
- Azért kezdett el dolgozni a PureScripten, mert nem volt megelégedve a Haskell JavaScriptre történő transpipelésének más próbálkozásaival
- Erősen és statikusan típusos
- JS-re fordul
- Tisztán funkcionális nyelv
- A szintaxist és a funkciókat a Haskell ihlette
- Webalkalmazások építésére használják, de szerveroldali alkalmazások vagy asztali alkalmazások építésére is használható az Electronon keresztül
Miért nagyszerű
- Osztozik mindabban, ami a Haskellt naggyá teszi:
- Erős és nagy teljesítményű típusrendszer: algebrai adattípusok, típusosztályok, magasabb rendű típusok
- Kifejező: mintaillesztés, típuskövetkeztetés
- Biztonság: nincsenek null értékek, változtathatatlan típusok
- Tisztán funkcionális: a mellékhatások a típusrendszerben vannak kódolva
- Egyszerű, típusbiztos JSON-dekódolás/kódolás típusokká
- Ember által olvasható JavaScriptre fordul
- Jó tooling
Kiemelkedő tulajdonságok
- A funkcionális mag tökéletes a futásidejű hibák nélküli, típusbiztos webalkalmazásokhoz
- Kiváló JS-együttműködés
- Hatékony JS-re fordul
ReasonML
- A Facebooknél Jordan Walke alkotta meg, az első verzió 2016-ban jelent meg
- Az OCamlre épül, de megszabadították a sajátosságaitól, és a JS-együttműködésre tervezték
- Statikusan típusos és funkcionális nyelv
- Lefordított
- Weboldalak építésére használják (például a Facebooknál)
Miért nagyszerű
- Az OCaml minden jó tulajdonsága, de webes környezetben:
- Nagy teljesítményű típusrendszer: minden érték egyszerűbb típusokkal (például rekordok, változatok és opciók) van típusozva a bonyolult típusok helyett. Nincs többé undefined hiba, ami javítja a megbízhatóságot
- Kifejező: mintaillesztés, típuskövetkeztetés, destrukturálás
- Biztonság: nincsenek null értékek, alapértelmezett változtathatatlanság
- Ember által olvasható JavaScriptre fordul
- OCamlre is fordítható (és fordítva), ami azt jelenti, hogy a teljes OCaml-ökoszisztémát használhatja (például natív binárisra fordításra)
Kiemelkedő tulajdonságok
- A ReasonML fordítási ideje szuper gyors, ami gyors iterációs ciklusokat eredményez.
- Kiváló JS-együttműködés, mind a JS használatához ReasonML-kódból, mind a ReasonML JS-be exportálásához. Még TS-típusokat is képes generálni. C-vel is együttműködik. Még a JSX-szerű szintaxist is támogatja
Swift
- A Swift fejlesztését Chris Lattner kezdte el 2010-ben, és 2014-ben a WWDC-n jelentették be világszerte.
- A cél az volt, hogy az Apple régi programozási nyelvét, az Objective-C-t, amely a 80-as évek eleje óta nem kapott jelentős változásokat, lecseréljék egy új, modern nyelvre. Úgy tervezték, hogy az Objective-C nagy részével együttműködjön.
- Erősen és statikusan típusos
- Lefordított, az LLVM-et használva a gépi kódra fordítás kezelésére (mint például a Rust)
- Több paradigmát támogat: funkcionális, objektumorientált, imperatív, deklaratív
- Eredetileg proprietáris szoftver volt, de 2015-ben nyílt forráskódúvá vált
- Elsősorban mobil- és asztali alkalmazásokhoz használják, de backendekhez és serverless forgatókönyvekben is
Miért nagyszerű
- Modern nyelv: típuskövetkeztetés, mintaillesztés, algebrai adattípusok, Unicode stringek
- Produktív: a Swift átveszi más nyelvek (például a Rust, a Python, a C# és a Ruby) legjobb részeit, és egyetlen egységes, produktív nyelvvé formálja őket
- Biztonságos: a mutatók nincsenek kitéve, egy opcionális típus megakadályozza a null pointer kivételeket, explicit hibakezelés és automatikus memóriakezelés az ARC (Automatic Reference Counting) révén
- Rendszeresen frissül. Kezdetben az Apple nem félt törő változtatásokat bevezetni azoknál a dolgoknál, amelyekről bebizonyosodott, hogy nem működnek jól. Ez megakadályozza a „poggyász” felhalmozódását. Általában elérhetővé tesznek egy eszközt a kód migrálásának segítésére. A Swift 5 óta az Application Binary Interface (ABI) stabil
- Az Objective-C-vel ellentétben a Swift minden jelentős platformon fut: macOS, Windows és Linux
Kiemelkedő tulajdonságok
- Gyors. Hatékony gépi kódra fordul, ami gyors futást eredményez
- Zökkenőmentes együttműködés az Objective-C-vel, de jól együttműködik a C-vel és a C++-szal is
- Nagy közösség, számos kiváló elérhető forrással
TypeScript
- A Microsoftnál alkották meg, válaszul a nagy léptékű alkalmazások JS-ben való fejlesztése körüli frusztrációra. Az egyik tervezője Anders Hejlsberg volt, a C# vezető tervezője, valamint a Delphi és a Turbo Pascal megalkotója
- Az első verzió 2012-ben jelent meg
- Több paradigmát támogat: funkcionális, prototípus-alapú, imperatív, objektumorientált és generikus
- Fokozatos és kacsa-típusozást használ
- Lefordított (JS-re)
- Weboldalakhoz, mind frontendhez, mind backendhez, valamint szkriptekhez és parancssori eszközökhöz használják
Miért nagyszerű
- Nagy teljesítményű és rugalmas típusrendszer: uniótípusok, literáltípusok, tuple-ök. Gyakorlatilag bármely, JS-kódban használható minta leírható típusbiztos módon TS-ben. A típusrendszer olyan erőteljes, hogy még Turing-teljes is
- Mivel a JS szuperhalmaza, fokozatosan bevezethető egy JS-kódbázisba
- Ötvözi a két világ legjobbját: a dinamikus és a statikus típusozást
- Népszerűsége gyorsan nő; sok eszköz vagy typescript-típusokat kínál, vagy maga is typescriptre íródott át. Számos elérhető forrás
- A nyelv rendszeresen frissül, korán átvéve a közelgő ECMAScript-funkciókat
Kiemelkedő tulajdonságok
- Nagyobb biztonság és helyesség: a statikus típusozás ki tudja küszöbölni a JS-sel tipikusan elkövetett hibák számos osztályát
- Zökkenőmentes együttműködés a JS-sel. Egyedi típusdefiníciók adhatók hozzá, hogy típusbiztos módon dolgozzunk JS-kóddal. Nagy számban érhetők el egyedi típusdefiníciók
- Kiváló tooling/IDE-támogatás. A típusannotációk, a kódkiegészítés és még a biztonságos, nagy léptékű refaktorálás is elérhető sok IDE-ben
- Élvezheted a JS-ökoszisztémában való futás minden előnyét: rengeteg csomag, sok tooling, nagy közösség stb.
Melyiket próbáld ki?
- Ha natív alkalmazásokat szeretnél építeni, a Dart, a Delphi, a Java, a Kotlin és a Swift remek választás. Ugyanakkor a JS-re forduló többi nyelv bármelyike is használható natív alkalmazások építésére. Érdemes megjegyezni, hogy az iOS/macOS alkalmazások építésének hivatalos nyelve a Swift, az Android-alkalmazásoké pedig a Kotlin
- Ha webes alkalmazásokat szeretnél építeni, a CoffeeScript, a Dart, az Elm, a Java, a JavaScript, a Kotlin, a PHP, a PureScript, a ReasonML és a TypeScript remek választás
- Ha érdekel a funkcionális programozás, az Elm, a PureScript és a ReasonML kézenfekvő választás, de a CoffeeScript, a Dart, a Java, a JavaScript, a Kotlin, a Swift és a TypeScript is támogatja a funkcionális programozást
- Az objektumorientált programozáshoz az ABAP, a Dart, a Delphi, a Java, a Kotlin, az Objective-C, a PHP és a Swift logikus jelöltek, de a CoffeeScript, a JavaScript és a TypeScript is támogatja ezt a paradigmát
- Ha üzleti alkalmazások írása érdekel, az ABAP és a Delphi tökéletes erre
1. Aug 2023
·
Hasznosnak találtad?
Közzétette
Erik Schierboom