A JavaScript a legjobb nyelv az új kódolók számára?

Számos hibája ellenére a JavaScript csak lehet a legjobb bonyolító nyelv gyerekeknek és új tanulóknak

2007. év volt. Az O’Reilly Media, a legfelső szintű műszaki kiadó, ötletemmel fordult hozzám. Szeretnék egy könyvet írni a JavaScriptet bemutató kezdőknek?

Válaszom azonnali volt: Miért?

Nem volt a Java haszontalan. De a JavaScript csak egy összetevő volt a weboldal létrehozásához szükséges technológiák gondos elrendezésében - és messze a legkevésbé volt fontos. Igen, egy JavaScript pixie por szórása validálhatja a hosszú alakokat vagy gombokat világíthat, amikor valaki fölmászik rajta. De a JavaScript nem volt választható - vegye ki egy oldalról, és minden működött többé-kevésbé azonos módon.

Néhány komoly poggyász mellett a JavaScript is jött. A böngésző kompatibilitási problémáival volt összekapcsolva, lassú, bizonytalan és kifejezetten megbízhatatlan. Nem érdekeltem, hogy valakit megtanítsam, hogyan kell létrehozni egy haszontalan JavaScript-alapú weboldal-widget. Ez az ötlet ugyanolyan értelmetlennek tűnt, mint a forgó gömbök animált gifjei, amelyek mind az internet korai napjaiban dühösek voltak.

A JavaScript használatának legkézenfekvőbb módja, vagy akkor akkor naivan gondoltam, hogy hagyja, hogy a nagy szerveroldali keretrendszer bármilyen JavaScript-et megjelenítsen közvetlenül az oldalra. Igen, lehet, hogy a JavaScript kissé fel van duzzadva, de a böngészőnek a végére szabta, és semmi sem tört meg - még akkor is, ha a látogató teljesen kikapcsolta a JavaScriptet.

Mondanom sem kell, hogy nem írtam a könyvet. Folyamatosan kódoltam a webszerveren, és írok a kedvenc technológiáimról (általában a C # és a .NET-keretrendszer). Elmúlt évek.

Aztán történt valami furcsa.

A JavaScriptet vette át.

Még mindig nem hiszem, hogy a JavaScript megérdemli, hogy programozási nyelveken a legjobb választásnak hívják. Azt sem gondolom, hogy ez különösen jó nyelv, ha teljesen őszinteek vagyunk. De egy dolgot meggondoltam. Most azt hiszem, hogy a JavaScript csak lehet a legjobb kiindulási pont gyerekeknek és új kódolóknak.

A JavaScript hihetetlen elérhetősége

A JavaScript páratlan előnye, hogy elérhető.

A JavaScript mindenhol megtalálható - minden operációs rendszeren, minden böngészőmárkán, asztali számítógépeken és mobil eszközökön egyaránt támogatott. Ugyanolyan fontos, hogy a JavaScript nem igényel telepítést. Valójában már nehéz emlékezni a nem olyan távoli múltra, amikor a cégek kliens-szerver alkalmazásokat2 vezetnének be a belső hálózatukba, heteket töltve birkózva a telepítési problémákkal és a váratlan hibákkal. E rémálmokkal szemben láthatja a JavaScript vonzerejét.

Elérhetőségének köszönhetően a JavaScript-nek nem kellett a legjobb programozási nyelvvé válnia. Csak annyira jónak kell lennie.

Hasonló dinamika működik a kódolás megtanulásakor is. Először az elérés kérdése nem tűnik olyan fontosnak az olyan személyek számára, akiknek egyetlen célja a jó programozási gyakorlatok megtanulása. De ugyanazok a kérdések játszódnak be a programozás megtanulása során, mint a szakmai fejlődés során. Ha azt akarja, hogy munkája egyetemesen elérhető legyen, a JavaScript az egyetlen jelölt.

Tegyük fel például, hogy elképesztő személyiség-előrejelző-kvíz alkalmazást készített. A fejlesztési környezet felállítása viszonylag egyszerű. De mi történik, ha el szeretné küldeni a programját egy barátjának? Telepítenie kell egy futási időt, vagy ugyanazt a fejlesztési környezetet kell beállítania? Szüksége van-e számítógépükre a biztonsági beállítások ellenőrzésére, mielőtt lehetővé tenné számukra a program letöltését és telepítését? Talán a barátja olyan operációs rendszert használ, amely egyáltalán nem támogatja a programot, vagy egy olyan mobil platformot, amely csak az iTunesban vagy a Google Play áruházban terjesztett professzionális alkalmazásokat engedélyezi. A JavaScript és az alapvető weboldal használatával (a GitHub egy kis helyet fog kapni ingyen), ezek a problémák megszűnnek.

És ha az új leendő gyerek, akkor ez egy vitathatatlan tény: a gyerekek és a böngészők szorosan illenek egymáshoz. Ha számítógépen (nem mobil eszközön) figyelt egy gyermeket munkahelyén, akkor valószínűleg észrevette, hogy időnk legalább 98% -át böngészőben töltik. Ott játszanak játékot, használnak közösségi médiát, és áttekintik az iskolai munkákat a Google tanteremben és a Google Dokumentumokon keresztül. Természetes, hogy az általuk létrehozott kódot ugyanabban a böngésző-világban fogyasztják, amelyben már élnek.

Most a problémákra ...

De mi van a problémákkal? A JavaScriptnek van néhány komoly hátránya, és furcsaságai, következetlenségei és korlátai különösen fájdalmasak lehetnek azok számára, akik első alkalommal tanulnak programozni. Szerencsére vannak olyan modern megoldások, amelyek megakadályozzák a fájdalom legnagyobb részét.

Nézzük meg a négy leggyakoribb panaszt.

1. A JavaScript nem biztonságos

Az egyik kulcsfontosságú koncepció, amelyet az új programozók már korán megtanulnak, a változók, tárolók, amelyek információkat tárolnak a program élettartama alatt. A JavaScript problémája az, hogy laza és hanyag a változókkal. Elfogad olyan dolgokat, amelyek nem tűnnek helyesnek, és figyelmen kívül hagyja a nyilvánvaló problémákat. Lustaságával a kisméretű helyesírások kódütköző katasztrófákká válhatnak.

Íme néhány példa néhány kódra, amely kudarcra van ítélve:

var myNumber = 100;
myNumber = myNumbr + 1;

Megtalálta a hibát? A második sor valójában két változót használ: a myNumber változót, amelyet az első sorban definiáltunk, és egy képzeletbeli myNumbr változót. Tudjuk, hogy a második változó helyesírás eredménye, de a JavaScript segítséget nyújt „kijavít” a problémán egy új myNumbr változó létrehozásával, aminek következtében a számítás csendesen meghiúsul. Ugyanez a probléma akkor fordul elő, ha változó nevet használ ellentmondó nagybetűkkel (például a MyNumber a MyNumber helyett). Hasonló probléma akkor fordul elő, ha úgy gondolja, hogy egy változó olyan számot tart, amikor valójában van egy darab szövege, és így tovább. Minden JavaScript fejlesztőnek van ilyen JavaScript horror története.

Elég nehéz megtanulni kódolni anélkül, hogy aggódnia kellene a programozási nyelv egyidejű szabotálásával kapcsolatban. De szerencsére a típusú biztonsági problémákat a megfelelő fejlesztőeszköz segítségével könnyen meg lehet oldani.

Az egyik kedvenc kódszerkesztőm - mind tanulás, mind professzionális felhasználás céljából - a Visual Studio Code. Ingyenes, könnyű, nyílt forráskódú és végtelenül bővíthető. Az egyik legjobb tulajdonsága az a képesség, hogy hibaellenőrizze a JavaScript kódot a gyakori problémák esetén. A hibaellenőrzést bekapcsolhatja egy konfigurációs fájl hozzáadásával vagy a JavaScript-fájl tetejére való megcímkézéssel:

// @ ts-check

Íme egy példa, amelynek két hibája van, és egyik sem jelent problémát a JavaScript szemében:

Hitel: Matthew MacDonald ©

A ts-check megjegyzés használatakor a Visual Studio hasznos módon aláhúzza ezeket a lehetséges hibákat:

Az egérrel vigye az egérmutatót ezen aláhúzott területek egyikére, és a Visual Studio felbukkan a probléma magyarázatára:

Elvihető? Bár a JavaScript tolerálja a sok rossz programozási gyakorlatot, ha a Java kódot egy jó kódszerkesztővel kombinálja, élményhez juthat, amely hasonló a többi modern programozási nyelvhez. És nem adta fel a JavaScript elérhetőségét.

2. A JavaScript nem teszi meg az OOP-t

Az objektum-orientált programozás (OOP) a kód modellezésének és elrendezésének a módja. Helyesen készítve, az OOP segít a programozóknak egyszerűbb, jobban szervezett kód létrehozásában. Ez megkönnyíti a fontos funkcionalitások újbóli felhasználását.

A JavaScriptnek híres módon nincs támogatása az objektum-orientált programozáshoz. Valójában a JavaScript fejlesztői rutinszerűen hamis technikákat és furcsa megoldásokat hamisítanak. Ezeknek a technikáknak értelme lehet annak, aki már megtanulta a programozást (és még ha nem is, egyszerűen átmásolhatja a mintát a saját projektjébe, és megtanulhatja élni vele). De ha teljesen új vagy a kódolásban, akkor a kludge használata az alapvető programozási koncepcióhoz egyértelmű hiba.

Szerencsére vannak jobb, elegánsabb megoldások, amelyek megfelelően vannak integrálva a JavaScript nyelvbe. Kedvencem a TypeScript, a Microsoft által 2012-ben elindított nyílt forráskódú projekt. A TypeScript a JavaScript egyfajta tisztított változataként működik, amely objektum-orientált programozást tesz lehetővé (más hasznos fejlesztésekkel, például a szigorú típusellenőrzés mellett).

Vannak, akik kifogásolják, hogy a TypeScript nem pontosan a JavaScript - és ez igaz. De itt van a varázslatos rész. Kódját írhatja a TypeScript formátumban, majd konvertálhatja JavaScript-re, mielőtt felhasználná egy weblapon. Ez mind a két világ legjobbját nyújtja: modern programozási nyelv a kód írásához, és ugyanaz az univerzális támogatás a kód futtatásához, mint a szokásos JavaScriptnek.

A legjobb az egész, hogy ez az egész folyamat automatikusan megtörténik, ha olyan eszközt használ, mint a Visual Studio Code. Igen, a létrehozott JavaScript-kód továbbra is páratlan megoldásokat fog használni. De mi van? A programozó megtanulja az OOP koncepciókat, a kész kód csuklás nélkül működik, és a modern számítógépek könnyedén kezelik az egész rendetlenséget.

Nem hiszel nekem? A mai leginnovatívabb asztali alkalmazások közül néhány a TypeScript és az Electron kombinációját használja, amely keret lehetővé teszi a JavaScript böngészőn kívüli futtatását. Az egyik leglenyűgözőbb példa a Visual Studio Code. Így van - ugyanazt a sima eszközt, amellyel JavaScript-kódot írtál, JavaScript-kóddal is írták. Pontosabban, a JavaScript nyelv modern TypeScript ízével készült.

Természetesen nem kell használni a Typecriptet, és az új JavaScript programozók sokat tehetnek anélkül, hogy bármilyen OOP alapelvet megtanulnának, ha ezt választják. Valójában ez a választás kérdése. Akárhogy is, a remény van a láthatáron: A JavaScript fejlesztése továbbra is folyamatban van, és az újabb verziók lassan bővítik a TypeScript néhány javítását.

3. A világ tele van rossz JavaScript kóddal

Hallottál már a Visual Basicről?

4. A JavaScriptnek további könyvtárakra és keretekre van szüksége

A további funkciók eléréséhez (és a kerék újra feltalálásának elkerülése érdekében) a JavaScript kódolóknak más összetevőket, könyvtárakat és kereteket kell használniuk. A megfelelő alapanyagok kiválasztása - amelyek jól működnek, hosszú távon támogatottak lesznek és nem kerülnek ellentmondásba egymással - nem olyan egyszerű, mint amilyennek látszik.

A legtöbb nyelv a probléma egyik változatával néz szembe. Néhány nyelv azonban olyan súlyosan sújtja ezt a helyzetet, mint a JavaScript. Ahhoz, hogy komoly programozóvá váljon a mindenki számára szabad JavaScript-ban, össze kell állítania saját köteg fejlesztési eszközét és kiegészítőit, és olyan összetett és összetett lehetőségek közül kell választania, amelyekből nem fogja tudni, hogy egy megfelel neked, amíg nem alaposan megtanultam (amelyen valószínűleg elavulttá vált, helyébe a legújabb forró új divat lép fel).

Bármennyire rosszak is ezek a fejfájások, nem igazán érinti az új kódolókat. Ha valaki megtanulja kódolni a JavaScriptet, akkor a legjobb megoldás az, ha távol tartunk a keretrendszerektől és a könyvtáraktól, függetlenül attól, hogy jQuery, Angular, React, Vue beszélgetünk, vagy valami olyat, amit a mondat beírása és a pillanat között találtak meg. hit közzé. Végül, miután egy új kódoló megbízhatóan megismerte a programozási alapokat, valószínűleg meg akarják vizsgálni ezen keretek legalább egyikét. De ez egy másik nap témája.

Van saját véleménye a gyerekek programozásának legjobb első nyelvéről? Nincs helyes válasz (és vannak saját kedvenceim). Nyugodtan dobja el a nagyra becsült válaszokat az alábbi megjegyzés szakaszban! És ha ingyenes, előzetes áttekintési példányt szeretne kapni a gyerekeknek szánt új kódolókönyveimről, iratkozzon fel a ProseTech hírlevelre.

¹ A szerveroldali kód az a kód, amely egy webszerveren fut, távol a számítógéptől. Az ügyféloldali kód az a kód, amely közvetlenül a böngészőjében fut. Például, keressen egy terméket az Amazonon és a szerveroldali kódot megkeresi az Amazon adatbázisaiban, létrehozza a HTML-t a lehetséges egyezések listájával, és elküldi azt a böngészőjéhez.

² Az ügyfél-szerver alkalmazások egy régebbi alkalmazási modell, amely a munkát két részre osztja. Az egyik rész egy asztali számítógépen (az ügyfélen) fut, amely a másik számítógéppel (a szerver) kommunikál egy másik számítógépen.