Uploaded avatar of ErikSchierboom

Itt az Alkalmazásos augusztus!

@ErikSchierboom
Kb. 3 éve ezelőtt
Videó

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?

  1. 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
  2. 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
  3. 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
  4. 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
  5. Ha üzleti alkalmazások írása érdekel, az ABAP és a Delphi tökéletes erre
1. Aug 2023 · Hasznosnak találtad?